docs(pm): encode the 2026-08-31 director rulings — ruling-record carrier, and cross-fire round continuation - #14230

Merged
os-zhuang merged 2 commits into
mainfrom
claude/issue-13766-ruling-encodings
Sep 2, 2026
Merged

docs(pm): encode the 2026-08-31 director rulings — ruling-record carrier, and cross-fire round continuation#14230
os-zhuang merged 2 commits into
mainfrom
claude/issue-13766-ruling-encodings

Conversation

@os-justin

Copy link
Copy Markdown
Collaborator

Fixes#13766
Fixes#13765

Two-card, one-file flight: encodes the two mechanical 余项 from the 2026-08-31 director batch #20 rulings (items ⑤ and ④, director session session_01KGtaLpkW1mycWgkbSb3H6t) into .claude/skills/pm-dispatch/SKILL.md — one sentence per card, per-member commits.

Maintainer verbatim (batch reply, untranslated): 「#13765 是分诊席自己的问题,完全可以处理完,他的定时到达时如果上一批还没处理完就接着处理呗。其他同意」

Commit 1 — authoritative carrier of a recorded ruling (ruling ⑤)

Added to the 升级与决策 section, immediately after the atomic ruling-recording clause (③ 四件同笔): the authoritative carrier of "a ruling is recorded" is the director seat's per-sitting closing summary ledger; the ruling comment on the card is demoted to elaboration — still the first landing for execution and review, but existence disputes are settled by the ledger.

Ruling comment (2026-08-31, verbatim, untranslated):

B 生效:自本裁起,「一条裁决已记录」的权威载体 = 总监席每场收工的摘要台账(座位贴 #12708 世系,条目最小形状照既有:卡 · 权威引文 · 方向 · 状态转移);卡上的裁决评论降为详注(elaboration)—— 详注仍是执行与复核的第一落点,但存在性之争以台账为准

Commit 2 — a fire arriving mid-round continues the round (ruling ④)

Added to the 分诊座位职责 section's 发现分诊轮 paragraph, immediately after the 断点续跑 clause: a fire is a continuation trigger, not a reopen obligation; the backlog continues oldest-first, not re-sorted by a new fire; crossing fires is not carded as a contradiction.

Ruling comment (2026-08-31, verbatim, untranslated):

溢出语义由本裁补齐:定时到达时上一批还没处理完 ⇒ 接着处理 —— fire 是接续触发,不是重开义务;一个清空轮次可以跨多个 fire,存量按最老优先继续消化,⛔ 不因新 fire 重排、不因跨 fire 视为违规

把第 2 条接续语义写进 SKILL 分诊席职责段(一句话量级的澄清:「fire 到达时上一轮未清空 ⇒ 接续处理,轮次可跨 fire」),防止下一任席位把「跨 fire 未清空」再当矛盾立卡

Constraints honored

  • No ceiling raise: SKILL.md 984 → 989 lines (+5), ceiling 1005 untouched. Gate verdict at head 70a48ae: "check-skill-line-ratchet: .claude/skills/pm-dispatch/SKILL.md is 989 lines (ceiling 1005; headroom 16)". Per-line 120-byte budget also honored (a first draft tripped it at 123B; rewrapped).
  • scripts/pm/check-skill-line-ratchet.mjs untouched (serialized under another in-flight PR) — the diff is exactly one file.
  • No issue numbers in the file's operative text: the seat-post lineage is spelled 总监席座位贴世系, matching the file's number-free convention (check:pm-skill-id-lint: 23 files clean).
  • The enforced decision-frame copy untouched — the carrier sentence sits before the frame's declaring anchor (check:skill-frame-sync: 4 copies structurally isomorphic across 3 files).

Gates (union derived by dispatch-gates.mjs from the real changed set; run at 70a48ae; exits captured by redirect before any pipe)

  • Green, each by its own verdict line: check:pm-skill-ratchet · check:pm-skill-id-lint · check:skill-frame-sync · check:pm-governed-prose · check:pm-governed-merges · check:agent-test-spelling · check:doc-authoring · check:doc-formula-expressions (PREREQUISITE NOT MET on first run; measured after building @objectstack/formula and @objectstack/lint) · check:nul-bytes.
  • check-governed-queue-guard: NOT MEASURED locally — it reads the workflow event payload and refuses to exit 0 without one; CI-context only.

Governed surface (.claude/**): draft PR, human merge only — auto-merge is never armed here. Docs-only diff shipping from no published package: skip-changeset.

Session: https://claude.ai/code/session_01Whev4BkZ4BRcgiXYo4muWP

Generated by Claude Code


Generated by Claude Code

…tor seat's per-sitting summary ledger
Encodes the 2026-08-31 director-batch ruling (maintainer 「其他同意」, adopting
option B): 「一条裁决已记录」的权威载体 = 总监席每场收工的摘要台账 (seat-post
lineage; entry shape 卡 · 权威引文 · 方向 · 状态转移). The ruling comment on the
card is demoted to elaboration — still the first landing for execution and
review, but existence disputes are settled by the ledger.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Whev4BkZ4BRcgiXYo4muWP
…y rounds may span fires
Encodes the 2026-08-31 director-batch ruling (maintainer verbatim 「他的定时到达
时如果上一批还没处理完就接着处理呗」): a fire is a continuation trigger, not a
reopen obligation; the backlog continues oldest-first, not re-sorted by a new
fire; crossing fires is not a violation. Prevents a future seat from carding
un-emptied-across-fires as a contradiction.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Whev4BkZ4BRcgiXYo4muWP
@os-zhuang
os-zhuang marked this pull request as ready for review September 2, 2026 01:19
@os-zhuang
os-zhuang added this pull request to the merge queueSep 2, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentationImprovements or additions to documentationsize/xsskip-changesetPR has no user-facing published change; bypasses the changeset gate

Projects

None yet

3 participants

@os-justin@os-zhuang@claude
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

docs(pm): encode the 2026-08-31 director rulings — ruling-record carrier, and cross-fire round continuation - #14230

Merged
os-zhuang merged 2 commits into
mainfrom
claude/issue-13766-ruling-encodings
Sep 2, 2026
Merged

docs(pm): encode the 2026-08-31 director rulings — ruling-record carrier, and cross-fire round continuation#14230
os-zhuang merged 2 commits into
mainfrom
claude/issue-13766-ruling-encodings

Conversation

@os-justin

Copy link
Copy Markdown
Collaborator

Fixes#13766
Fixes#13765

Two-card, one-file flight: encodes the two mechanical 余项 from the 2026-08-31 director batch #20 rulings (items ⑤ and ④, director session session_01KGtaLpkW1mycWgkbSb3H6t) into .claude/skills/pm-dispatch/SKILL.md — one sentence per card, per-member commits.

Maintainer verbatim (batch reply, untranslated): 「#13765 是分诊席自己的问题,完全可以处理完,他的定时到达时如果上一批还没处理完就接着处理呗。其他同意」

Commit 1 — authoritative carrier of a recorded ruling (ruling ⑤)

Added to the 升级与决策 section, immediately after the atomic ruling-recording clause (③ 四件同笔): the authoritative carrier of "a ruling is recorded" is the director seat's per-sitting closing summary ledger; the ruling comment on the card is demoted to elaboration — still the first landing for execution and review, but existence disputes are settled by the ledger.

Ruling comment (2026-08-31, verbatim, untranslated):

B 生效:自本裁起,「一条裁决已记录」的权威载体 = 总监席每场收工的摘要台账(座位贴 #12708 世系,条目最小形状照既有:卡 · 权威引文 · 方向 · 状态转移);卡上的裁决评论降为详注(elaboration)—— 详注仍是执行与复核的第一落点,但存在性之争以台账为准

Commit 2 — a fire arriving mid-round continues the round (ruling ④)

Added to the 分诊座位职责 section's 发现分诊轮 paragraph, immediately after the 断点续跑 clause: a fire is a continuation trigger, not a reopen obligation; the backlog continues oldest-first, not re-sorted by a new fire; crossing fires is not carded as a contradiction.

Ruling comment (2026-08-31, verbatim, untranslated):

溢出语义由本裁补齐:定时到达时上一批还没处理完 ⇒ 接着处理 —— fire 是接续触发,不是重开义务;一个清空轮次可以跨多个 fire,存量按最老优先继续消化,⛔ 不因新 fire 重排、不因跨 fire 视为违规

把第 2 条接续语义写进 SKILL 分诊席职责段(一句话量级的澄清:「fire 到达时上一轮未清空 ⇒ 接续处理,轮次可跨 fire」),防止下一任席位把「跨 fire 未清空」再当矛盾立卡

Constraints honored

  • No ceiling raise: SKILL.md 984 → 989 lines (+5), ceiling 1005 untouched. Gate verdict at head 70a48ae: "check-skill-line-ratchet: .claude/skills/pm-dispatch/SKILL.md is 989 lines (ceiling 1005; headroom 16)". Per-line 120-byte budget also honored (a first draft tripped it at 123B; rewrapped).
  • scripts/pm/check-skill-line-ratchet.mjs untouched (serialized under another in-flight PR) — the diff is exactly one file.
  • No issue numbers in the file's operative text: the seat-post lineage is spelled 总监席座位贴世系, matching the file's number-free convention (check:pm-skill-id-lint: 23 files clean).
  • The enforced decision-frame copy untouched — the carrier sentence sits before the frame's declaring anchor (check:skill-frame-sync: 4 copies structurally isomorphic across 3 files).

Gates (union derived by dispatch-gates.mjs from the real changed set; run at 70a48ae; exits captured by redirect before any pipe)

  • Green, each by its own verdict line: check:pm-skill-ratchet · check:pm-skill-id-lint · check:skill-frame-sync · check:pm-governed-prose · check:pm-governed-merges · check:agent-test-spelling · check:doc-authoring · check:doc-formula-expressions (PREREQUISITE NOT MET on first run; measured after building @objectstack/formula and @objectstack/lint) · check:nul-bytes.
  • check-governed-queue-guard: NOT MEASURED locally — it reads the workflow event payload and refuses to exit 0 without one; CI-context only.

Governed surface (.claude/**): draft PR, human merge only — auto-merge is never armed here. Docs-only diff shipping from no published package: skip-changeset.

Session: https://claude.ai/code/session_01Whev4BkZ4BRcgiXYo4muWP

Generated by Claude Code


Generated by Claude Code

…tor seat's per-sitting summary ledger
Encodes the 2026-08-31 director-batch ruling (maintainer 「其他同意」, adopting
option B): 「一条裁决已记录」的权威载体 = 总监席每场收工的摘要台账 (seat-post
lineage; entry shape 卡 · 权威引文 · 方向 · 状态转移). The ruling comment on the
card is demoted to elaboration — still the first landing for execution and
review, but existence disputes are settled by the ledger.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Whev4BkZ4BRcgiXYo4muWP
…y rounds may span fires
Encodes the 2026-08-31 director-batch ruling (maintainer verbatim 「他的定时到达
时如果上一批还没处理完就接着处理呗」): a fire is a continuation trigger, not a
reopen obligation; the backlog continues oldest-first, not re-sorted by a new
fire; crossing fires is not a violation. Prevents a future seat from carding
un-emptied-across-fires as a contradiction.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Whev4BkZ4BRcgiXYo4muWP
@os-zhuang
os-zhuang marked this pull request as ready for review September 2, 2026 01:19
@os-zhuang
os-zhuang added this pull request to the merge queueSep 2, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentationImprovements or additions to documentationsize/xsskip-changesetPR has no user-facing published change; bypasses the changeset gate

Projects

None yet

3 participants

@os-justin@os-zhuang@claude
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

docs(pm): encode the 2026-08-31 director rulings — ruling-record carrier, and cross-fire round continuation - #14230

Merged
os-zhuang merged 2 commits into
mainfrom
claude/issue-13766-ruling-encodings
Sep 2, 2026
Merged

docs(pm): encode the 2026-08-31 director rulings — ruling-record carrier, and cross-fire round continuation#14230
os-zhuang merged 2 commits into
mainfrom
claude/issue-13766-ruling-encodings

Conversation

@os-justin

Copy link
Copy Markdown
Collaborator

Fixes#13766
Fixes#13765

Two-card, one-file flight: encodes the two mechanical 余项 from the 2026-08-31 director batch #20 rulings (items ⑤ and ④, director session session_01KGtaLpkW1mycWgkbSb3H6t) into .claude/skills/pm-dispatch/SKILL.md — one sentence per card, per-member commits.

Maintainer verbatim (batch reply, untranslated): 「#13765 是分诊席自己的问题,完全可以处理完,他的定时到达时如果上一批还没处理完就接着处理呗。其他同意」

Commit 1 — authoritative carrier of a recorded ruling (ruling ⑤)

Added to the 升级与决策 section, immediately after the atomic ruling-recording clause (③ 四件同笔): the authoritative carrier of "a ruling is recorded" is the director seat's per-sitting closing summary ledger; the ruling comment on the card is demoted to elaboration — still the first landing for execution and review, but existence disputes are settled by the ledger.

Ruling comment (2026-08-31, verbatim, untranslated):

B 生效:自本裁起,「一条裁决已记录」的权威载体 = 总监席每场收工的摘要台账(座位贴 #12708 世系,条目最小形状照既有:卡 · 权威引文 · 方向 · 状态转移);卡上的裁决评论降为详注(elaboration)—— 详注仍是执行与复核的第一落点,但存在性之争以台账为准

Commit 2 — a fire arriving mid-round continues the round (ruling ④)

Added to the 分诊座位职责 section's 发现分诊轮 paragraph, immediately after the 断点续跑 clause: a fire is a continuation trigger, not a reopen obligation; the backlog continues oldest-first, not re-sorted by a new fire; crossing fires is not carded as a contradiction.

Ruling comment (2026-08-31, verbatim, untranslated):

溢出语义由本裁补齐:定时到达时上一批还没处理完 ⇒ 接着处理 —— fire 是接续触发,不是重开义务;一个清空轮次可以跨多个 fire,存量按最老优先继续消化,⛔ 不因新 fire 重排、不因跨 fire 视为违规

把第 2 条接续语义写进 SKILL 分诊席职责段(一句话量级的澄清:「fire 到达时上一轮未清空 ⇒ 接续处理,轮次可跨 fire」),防止下一任席位把「跨 fire 未清空」再当矛盾立卡

Constraints honored

  • No ceiling raise: SKILL.md 984 → 989 lines (+5), ceiling 1005 untouched. Gate verdict at head 70a48ae: "check-skill-line-ratchet: .claude/skills/pm-dispatch/SKILL.md is 989 lines (ceiling 1005; headroom 16)". Per-line 120-byte budget also honored (a first draft tripped it at 123B; rewrapped).
  • scripts/pm/check-skill-line-ratchet.mjs untouched (serialized under another in-flight PR) — the diff is exactly one file.
  • No issue numbers in the file's operative text: the seat-post lineage is spelled 总监席座位贴世系, matching the file's number-free convention (check:pm-skill-id-lint: 23 files clean).
  • The enforced decision-frame copy untouched — the carrier sentence sits before the frame's declaring anchor (check:skill-frame-sync: 4 copies structurally isomorphic across 3 files).

Gates (union derived by dispatch-gates.mjs from the real changed set; run at 70a48ae; exits captured by redirect before any pipe)

  • Green, each by its own verdict line: check:pm-skill-ratchet · check:pm-skill-id-lint · check:skill-frame-sync · check:pm-governed-prose · check:pm-governed-merges · check:agent-test-spelling · check:doc-authoring · check:doc-formula-expressions (PREREQUISITE NOT MET on first run; measured after building @objectstack/formula and @objectstack/lint) · check:nul-bytes.
  • check-governed-queue-guard: NOT MEASURED locally — it reads the workflow event payload and refuses to exit 0 without one; CI-context only.

Governed surface (.claude/**): draft PR, human merge only — auto-merge is never armed here. Docs-only diff shipping from no published package: skip-changeset.

Session: https://claude.ai/code/session_01Whev4BkZ4BRcgiXYo4muWP

Generated by Claude Code


Generated by Claude Code

…tor seat's per-sitting summary ledger
Encodes the 2026-08-31 director-batch ruling (maintainer 「其他同意」, adopting
option B): 「一条裁决已记录」的权威载体 = 总监席每场收工的摘要台账 (seat-post
lineage; entry shape 卡 · 权威引文 · 方向 · 状态转移). The ruling comment on the
card is demoted to elaboration — still the first landing for execution and
review, but existence disputes are settled by the ledger.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Whev4BkZ4BRcgiXYo4muWP
…y rounds may span fires
Encodes the 2026-08-31 director-batch ruling (maintainer verbatim 「他的定时到达
时如果上一批还没处理完就接着处理呗」): a fire is a continuation trigger, not a
reopen obligation; the backlog continues oldest-first, not re-sorted by a new
fire; crossing fires is not a violation. Prevents a future seat from carding
un-emptied-across-fires as a contradiction.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Whev4BkZ4BRcgiXYo4muWP
@os-zhuang
os-zhuang marked this pull request as ready for review September 2, 2026 01:19
@os-zhuang
os-zhuang added this pull request to the merge queueSep 2, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentationImprovements or additions to documentationsize/xsskip-changesetPR has no user-facing published change; bypasses the changeset gate

Projects

None yet

3 participants

@os-justin@os-zhuang@claude
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

docs(pm): encode the 2026-08-31 director rulings — ruling-record carrier, and cross-fire round continuation - #14230

Merged
os-zhuang merged 2 commits into
mainfrom
claude/issue-13766-ruling-encodings
Sep 2, 2026
Merged

docs(pm): encode the 2026-08-31 director rulings — ruling-record carrier, and cross-fire round continuation#14230
os-zhuang merged 2 commits into
mainfrom
claude/issue-13766-ruling-encodings

Conversation

@os-justin

Copy link
Copy Markdown
Collaborator

Fixes#13766
Fixes#13765

Two-card, one-file flight: encodes the two mechanical 余项 from the 2026-08-31 director batch #20 rulings (items ⑤ and ④, director session session_01KGtaLpkW1mycWgkbSb3H6t) into .claude/skills/pm-dispatch/SKILL.md — one sentence per card, per-member commits.

Maintainer verbatim (batch reply, untranslated): 「#13765 是分诊席自己的问题,完全可以处理完,他的定时到达时如果上一批还没处理完就接着处理呗。其他同意」

Commit 1 — authoritative carrier of a recorded ruling (ruling ⑤)

Added to the 升级与决策 section, immediately after the atomic ruling-recording clause (③ 四件同笔): the authoritative carrier of "a ruling is recorded" is the director seat's per-sitting closing summary ledger; the ruling comment on the card is demoted to elaboration — still the first landing for execution and review, but existence disputes are settled by the ledger.

Ruling comment (2026-08-31, verbatim, untranslated):

B 生效:自本裁起,「一条裁决已记录」的权威载体 = 总监席每场收工的摘要台账(座位贴 #12708 世系,条目最小形状照既有:卡 · 权威引文 · 方向 · 状态转移);卡上的裁决评论降为详注(elaboration)—— 详注仍是执行与复核的第一落点,但存在性之争以台账为准

Commit 2 — a fire arriving mid-round continues the round (ruling ④)

Added to the 分诊座位职责 section's 发现分诊轮 paragraph, immediately after the 断点续跑 clause: a fire is a continuation trigger, not a reopen obligation; the backlog continues oldest-first, not re-sorted by a new fire; crossing fires is not carded as a contradiction.

Ruling comment (2026-08-31, verbatim, untranslated):

溢出语义由本裁补齐:定时到达时上一批还没处理完 ⇒ 接着处理 —— fire 是接续触发,不是重开义务;一个清空轮次可以跨多个 fire,存量按最老优先继续消化,⛔ 不因新 fire 重排、不因跨 fire 视为违规

把第 2 条接续语义写进 SKILL 分诊席职责段(一句话量级的澄清:「fire 到达时上一轮未清空 ⇒ 接续处理,轮次可跨 fire」),防止下一任席位把「跨 fire 未清空」再当矛盾立卡

Constraints honored

  • No ceiling raise: SKILL.md 984 → 989 lines (+5), ceiling 1005 untouched. Gate verdict at head 70a48ae: "check-skill-line-ratchet: .claude/skills/pm-dispatch/SKILL.md is 989 lines (ceiling 1005; headroom 16)". Per-line 120-byte budget also honored (a first draft tripped it at 123B; rewrapped).
  • scripts/pm/check-skill-line-ratchet.mjs untouched (serialized under another in-flight PR) — the diff is exactly one file.
  • No issue numbers in the file's operative text: the seat-post lineage is spelled 总监席座位贴世系, matching the file's number-free convention (check:pm-skill-id-lint: 23 files clean).
  • The enforced decision-frame copy untouched — the carrier sentence sits before the frame's declaring anchor (check:skill-frame-sync: 4 copies structurally isomorphic across 3 files).

Gates (union derived by dispatch-gates.mjs from the real changed set; run at 70a48ae; exits captured by redirect before any pipe)

  • Green, each by its own verdict line: check:pm-skill-ratchet · check:pm-skill-id-lint · check:skill-frame-sync · check:pm-governed-prose · check:pm-governed-merges · check:agent-test-spelling · check:doc-authoring · check:doc-formula-expressions (PREREQUISITE NOT MET on first run; measured after building @objectstack/formula and @objectstack/lint) · check:nul-bytes.
  • check-governed-queue-guard: NOT MEASURED locally — it reads the workflow event payload and refuses to exit 0 without one; CI-context only.

Governed surface (.claude/**): draft PR, human merge only — auto-merge is never armed here. Docs-only diff shipping from no published package: skip-changeset.

Session: https://claude.ai/code/session_01Whev4BkZ4BRcgiXYo4muWP

Generated by Claude Code


Generated by Claude Code

…tor seat's per-sitting summary ledger
Encodes the 2026-08-31 director-batch ruling (maintainer 「其他同意」, adopting
option B): 「一条裁决已记录」的权威载体 = 总监席每场收工的摘要台账 (seat-post
lineage; entry shape 卡 · 权威引文 · 方向 · 状态转移). The ruling comment on the
card is demoted to elaboration — still the first landing for execution and
review, but existence disputes are settled by the ledger.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Whev4BkZ4BRcgiXYo4muWP
…y rounds may span fires
Encodes the 2026-08-31 director-batch ruling (maintainer verbatim 「他的定时到达
时如果上一批还没处理完就接着处理呗」): a fire is a continuation trigger, not a
reopen obligation; the backlog continues oldest-first, not re-sorted by a new
fire; crossing fires is not a violation. Prevents a future seat from carding
un-emptied-across-fires as a contradiction.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Whev4BkZ4BRcgiXYo4muWP
@os-zhuang
os-zhuang marked this pull request as ready for review September 2, 2026 01:19
@os-zhuang
os-zhuang added this pull request to the merge queueSep 2, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentationImprovements or additions to documentationsize/xsskip-changesetPR has no user-facing published change; bypasses the changeset gate

Projects

None yet

3 participants

@os-justin@os-zhuang@claude
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

docs(pm): encode the 2026-08-31 director rulings — ruling-record carrier, and cross-fire round continuation - #14230

Merged
os-zhuang merged 2 commits into
mainfrom
claude/issue-13766-ruling-encodings
Sep 2, 2026
Merged

docs(pm): encode the 2026-08-31 director rulings — ruling-record carrier, and cross-fire round continuation#14230
os-zhuang merged 2 commits into
mainfrom
claude/issue-13766-ruling-encodings

Conversation

@os-justin

Copy link
Copy Markdown
Collaborator

Fixes#13766
Fixes#13765

Two-card, one-file flight: encodes the two mechanical 余项 from the 2026-08-31 director batch #20 rulings (items ⑤ and ④, director session session_01KGtaLpkW1mycWgkbSb3H6t) into .claude/skills/pm-dispatch/SKILL.md — one sentence per card, per-member commits.

Maintainer verbatim (batch reply, untranslated): 「#13765 是分诊席自己的问题,完全可以处理完,他的定时到达时如果上一批还没处理完就接着处理呗。其他同意」

Commit 1 — authoritative carrier of a recorded ruling (ruling ⑤)

Added to the 升级与决策 section, immediately after the atomic ruling-recording clause (③ 四件同笔): the authoritative carrier of "a ruling is recorded" is the director seat's per-sitting closing summary ledger; the ruling comment on the card is demoted to elaboration — still the first landing for execution and review, but existence disputes are settled by the ledger.

Ruling comment (2026-08-31, verbatim, untranslated):

B 生效:自本裁起,「一条裁决已记录」的权威载体 = 总监席每场收工的摘要台账(座位贴 #12708 世系,条目最小形状照既有:卡 · 权威引文 · 方向 · 状态转移);卡上的裁决评论降为详注(elaboration)—— 详注仍是执行与复核的第一落点,但存在性之争以台账为准

Commit 2 — a fire arriving mid-round continues the round (ruling ④)

Added to the 分诊座位职责 section's 发现分诊轮 paragraph, immediately after the 断点续跑 clause: a fire is a continuation trigger, not a reopen obligation; the backlog continues oldest-first, not re-sorted by a new fire; crossing fires is not carded as a contradiction.

Ruling comment (2026-08-31, verbatim, untranslated):

溢出语义由本裁补齐:定时到达时上一批还没处理完 ⇒ 接着处理 —— fire 是接续触发,不是重开义务;一个清空轮次可以跨多个 fire,存量按最老优先继续消化,⛔ 不因新 fire 重排、不因跨 fire 视为违规

把第 2 条接续语义写进 SKILL 分诊席职责段(一句话量级的澄清:「fire 到达时上一轮未清空 ⇒ 接续处理,轮次可跨 fire」),防止下一任席位把「跨 fire 未清空」再当矛盾立卡

Constraints honored

  • No ceiling raise: SKILL.md 984 → 989 lines (+5), ceiling 1005 untouched. Gate verdict at head 70a48ae: "check-skill-line-ratchet: .claude/skills/pm-dispatch/SKILL.md is 989 lines (ceiling 1005; headroom 16)". Per-line 120-byte budget also honored (a first draft tripped it at 123B; rewrapped).
  • scripts/pm/check-skill-line-ratchet.mjs untouched (serialized under another in-flight PR) — the diff is exactly one file.
  • No issue numbers in the file's operative text: the seat-post lineage is spelled 总监席座位贴世系, matching the file's number-free convention (check:pm-skill-id-lint: 23 files clean).
  • The enforced decision-frame copy untouched — the carrier sentence sits before the frame's declaring anchor (check:skill-frame-sync: 4 copies structurally isomorphic across 3 files).

Gates (union derived by dispatch-gates.mjs from the real changed set; run at 70a48ae; exits captured by redirect before any pipe)

  • Green, each by its own verdict line: check:pm-skill-ratchet · check:pm-skill-id-lint · check:skill-frame-sync · check:pm-governed-prose · check:pm-governed-merges · check:agent-test-spelling · check:doc-authoring · check:doc-formula-expressions (PREREQUISITE NOT MET on first run; measured after building @objectstack/formula and @objectstack/lint) · check:nul-bytes.
  • check-governed-queue-guard: NOT MEASURED locally — it reads the workflow event payload and refuses to exit 0 without one; CI-context only.

Governed surface (.claude/**): draft PR, human merge only — auto-merge is never armed here. Docs-only diff shipping from no published package: skip-changeset.

Session: https://claude.ai/code/session_01Whev4BkZ4BRcgiXYo4muWP

Generated by Claude Code


Generated by Claude Code

…tor seat's per-sitting summary ledger
Encodes the 2026-08-31 director-batch ruling (maintainer 「其他同意」, adopting
option B): 「一条裁决已记录」的权威载体 = 总监席每场收工的摘要台账 (seat-post
lineage; entry shape 卡 · 权威引文 · 方向 · 状态转移). The ruling comment on the
card is demoted to elaboration — still the first landing for execution and
review, but existence disputes are settled by the ledger.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Whev4BkZ4BRcgiXYo4muWP
…y rounds may span fires
Encodes the 2026-08-31 director-batch ruling (maintainer verbatim 「他的定时到达
时如果上一批还没处理完就接着处理呗」): a fire is a continuation trigger, not a
reopen obligation; the backlog continues oldest-first, not re-sorted by a new
fire; crossing fires is not a violation. Prevents a future seat from carding
un-emptied-across-fires as a contradiction.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Whev4BkZ4BRcgiXYo4muWP
@os-zhuang
os-zhuang marked this pull request as ready for review September 2, 2026 01:19
@os-zhuang
os-zhuang added this pull request to the merge queueSep 2, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentationImprovements or additions to documentationsize/xsskip-changesetPR has no user-facing published change; bypasses the changeset gate

Projects

None yet

3 participants

@os-justin@os-zhuang@claude
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

docs(pm): encode the 2026-08-31 director rulings — ruling-record carrier, and cross-fire round continuation - #14230

Merged
os-zhuang merged 2 commits into
mainfrom
claude/issue-13766-ruling-encodings
Sep 2, 2026
Merged

docs(pm): encode the 2026-08-31 director rulings — ruling-record carrier, and cross-fire round continuation#14230
os-zhuang merged 2 commits into
mainfrom
claude/issue-13766-ruling-encodings

Conversation

@os-justin

Copy link
Copy Markdown
Collaborator

Fixes#13766
Fixes#13765

Two-card, one-file flight: encodes the two mechanical 余项 from the 2026-08-31 director batch #20 rulings (items ⑤ and ④, director session session_01KGtaLpkW1mycWgkbSb3H6t) into .claude/skills/pm-dispatch/SKILL.md — one sentence per card, per-member commits.

Maintainer verbatim (batch reply, untranslated): 「#13765 是分诊席自己的问题,完全可以处理完,他的定时到达时如果上一批还没处理完就接着处理呗。其他同意」

Commit 1 — authoritative carrier of a recorded ruling (ruling ⑤)

Added to the 升级与决策 section, immediately after the atomic ruling-recording clause (③ 四件同笔): the authoritative carrier of "a ruling is recorded" is the director seat's per-sitting closing summary ledger; the ruling comment on the card is demoted to elaboration — still the first landing for execution and review, but existence disputes are settled by the ledger.

Ruling comment (2026-08-31, verbatim, untranslated):

B 生效:自本裁起,「一条裁决已记录」的权威载体 = 总监席每场收工的摘要台账(座位贴 #12708 世系,条目最小形状照既有:卡 · 权威引文 · 方向 · 状态转移);卡上的裁决评论降为详注(elaboration)—— 详注仍是执行与复核的第一落点,但存在性之争以台账为准

Commit 2 — a fire arriving mid-round continues the round (ruling ④)

Added to the 分诊座位职责 section's 发现分诊轮 paragraph, immediately after the 断点续跑 clause: a fire is a continuation trigger, not a reopen obligation; the backlog continues oldest-first, not re-sorted by a new fire; crossing fires is not carded as a contradiction.

Ruling comment (2026-08-31, verbatim, untranslated):

溢出语义由本裁补齐:定时到达时上一批还没处理完 ⇒ 接着处理 —— fire 是接续触发,不是重开义务;一个清空轮次可以跨多个 fire,存量按最老优先继续消化,⛔ 不因新 fire 重排、不因跨 fire 视为违规

把第 2 条接续语义写进 SKILL 分诊席职责段(一句话量级的澄清:「fire 到达时上一轮未清空 ⇒ 接续处理,轮次可跨 fire」),防止下一任席位把「跨 fire 未清空」再当矛盾立卡

Constraints honored

  • No ceiling raise: SKILL.md 984 → 989 lines (+5), ceiling 1005 untouched. Gate verdict at head 70a48ae: "check-skill-line-ratchet: .claude/skills/pm-dispatch/SKILL.md is 989 lines (ceiling 1005; headroom 16)". Per-line 120-byte budget also honored (a first draft tripped it at 123B; rewrapped).
  • scripts/pm/check-skill-line-ratchet.mjs untouched (serialized under another in-flight PR) — the diff is exactly one file.
  • No issue numbers in the file's operative text: the seat-post lineage is spelled 总监席座位贴世系, matching the file's number-free convention (check:pm-skill-id-lint: 23 files clean).
  • The enforced decision-frame copy untouched — the carrier sentence sits before the frame's declaring anchor (check:skill-frame-sync: 4 copies structurally isomorphic across 3 files).

Gates (union derived by dispatch-gates.mjs from the real changed set; run at 70a48ae; exits captured by redirect before any pipe)

  • Green, each by its own verdict line: check:pm-skill-ratchet · check:pm-skill-id-lint · check:skill-frame-sync · check:pm-governed-prose · check:pm-governed-merges · check:agent-test-spelling · check:doc-authoring · check:doc-formula-expressions (PREREQUISITE NOT MET on first run; measured after building @objectstack/formula and @objectstack/lint) · check:nul-bytes.
  • check-governed-queue-guard: NOT MEASURED locally — it reads the workflow event payload and refuses to exit 0 without one; CI-context only.

Governed surface (.claude/**): draft PR, human merge only — auto-merge is never armed here. Docs-only diff shipping from no published package: skip-changeset.

Session: https://claude.ai/code/session_01Whev4BkZ4BRcgiXYo4muWP

Generated by Claude Code


Generated by Claude Code

…tor seat's per-sitting summary ledger
Encodes the 2026-08-31 director-batch ruling (maintainer 「其他同意」, adopting
option B): 「一条裁决已记录」的权威载体 = 总监席每场收工的摘要台账 (seat-post
lineage; entry shape 卡 · 权威引文 · 方向 · 状态转移). The ruling comment on the
card is demoted to elaboration — still the first landing for execution and
review, but existence disputes are settled by the ledger.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Whev4BkZ4BRcgiXYo4muWP
…y rounds may span fires
Encodes the 2026-08-31 director-batch ruling (maintainer verbatim 「他的定时到达
时如果上一批还没处理完就接着处理呗」): a fire is a continuation trigger, not a
reopen obligation; the backlog continues oldest-first, not re-sorted by a new
fire; crossing fires is not a violation. Prevents a future seat from carding
un-emptied-across-fires as a contradiction.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Whev4BkZ4BRcgiXYo4muWP
@os-zhuang
os-zhuang marked this pull request as ready for review September 2, 2026 01:19
@os-zhuang
os-zhuang added this pull request to the merge queueSep 2, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentationImprovements or additions to documentationsize/xsskip-changesetPR has no user-facing published change; bypasses the changeset gate

Projects

None yet

3 participants

@os-justin@os-zhuang@claude
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

docs(pm): encode the 2026-08-31 director rulings — ruling-record carrier, and cross-fire round continuation - #14230

Merged
os-zhuang merged 2 commits into
mainfrom
claude/issue-13766-ruling-encodings
Sep 2, 2026
Merged

docs(pm): encode the 2026-08-31 director rulings — ruling-record carrier, and cross-fire round continuation#14230
os-zhuang merged 2 commits into
mainfrom
claude/issue-13766-ruling-encodings

Conversation

@os-justin

Copy link
Copy Markdown
Collaborator

Fixes#13766
Fixes#13765

Two-card, one-file flight: encodes the two mechanical 余项 from the 2026-08-31 director batch #20 rulings (items ⑤ and ④, director session session_01KGtaLpkW1mycWgkbSb3H6t) into .claude/skills/pm-dispatch/SKILL.md — one sentence per card, per-member commits.

Maintainer verbatim (batch reply, untranslated): 「#13765 是分诊席自己的问题,完全可以处理完,他的定时到达时如果上一批还没处理完就接着处理呗。其他同意」

Commit 1 — authoritative carrier of a recorded ruling (ruling ⑤)

Added to the 升级与决策 section, immediately after the atomic ruling-recording clause (③ 四件同笔): the authoritative carrier of "a ruling is recorded" is the director seat's per-sitting closing summary ledger; the ruling comment on the card is demoted to elaboration — still the first landing for execution and review, but existence disputes are settled by the ledger.

Ruling comment (2026-08-31, verbatim, untranslated):

B 生效:自本裁起,「一条裁决已记录」的权威载体 = 总监席每场收工的摘要台账(座位贴 #12708 世系,条目最小形状照既有:卡 · 权威引文 · 方向 · 状态转移);卡上的裁决评论降为详注(elaboration)—— 详注仍是执行与复核的第一落点,但存在性之争以台账为准

Commit 2 — a fire arriving mid-round continues the round (ruling ④)

Added to the 分诊座位职责 section's 发现分诊轮 paragraph, immediately after the 断点续跑 clause: a fire is a continuation trigger, not a reopen obligation; the backlog continues oldest-first, not re-sorted by a new fire; crossing fires is not carded as a contradiction.

Ruling comment (2026-08-31, verbatim, untranslated):

溢出语义由本裁补齐:定时到达时上一批还没处理完 ⇒ 接着处理 —— fire 是接续触发,不是重开义务;一个清空轮次可以跨多个 fire,存量按最老优先继续消化,⛔ 不因新 fire 重排、不因跨 fire 视为违规

把第 2 条接续语义写进 SKILL 分诊席职责段(一句话量级的澄清:「fire 到达时上一轮未清空 ⇒ 接续处理,轮次可跨 fire」),防止下一任席位把「跨 fire 未清空」再当矛盾立卡

Constraints honored

  • No ceiling raise: SKILL.md 984 → 989 lines (+5), ceiling 1005 untouched. Gate verdict at head 70a48ae: "check-skill-line-ratchet: .claude/skills/pm-dispatch/SKILL.md is 989 lines (ceiling 1005; headroom 16)". Per-line 120-byte budget also honored (a first draft tripped it at 123B; rewrapped).
  • scripts/pm/check-skill-line-ratchet.mjs untouched (serialized under another in-flight PR) — the diff is exactly one file.
  • No issue numbers in the file's operative text: the seat-post lineage is spelled 总监席座位贴世系, matching the file's number-free convention (check:pm-skill-id-lint: 23 files clean).
  • The enforced decision-frame copy untouched — the carrier sentence sits before the frame's declaring anchor (check:skill-frame-sync: 4 copies structurally isomorphic across 3 files).

Gates (union derived by dispatch-gates.mjs from the real changed set; run at 70a48ae; exits captured by redirect before any pipe)

  • Green, each by its own verdict line: check:pm-skill-ratchet · check:pm-skill-id-lint · check:skill-frame-sync · check:pm-governed-prose · check:pm-governed-merges · check:agent-test-spelling · check:doc-authoring · check:doc-formula-expressions (PREREQUISITE NOT MET on first run; measured after building @objectstack/formula and @objectstack/lint) · check:nul-bytes.
  • check-governed-queue-guard: NOT MEASURED locally — it reads the workflow event payload and refuses to exit 0 without one; CI-context only.

Governed surface (.claude/**): draft PR, human merge only — auto-merge is never armed here. Docs-only diff shipping from no published package: skip-changeset.

Session: https://claude.ai/code/session_01Whev4BkZ4BRcgiXYo4muWP

Generated by Claude Code


Generated by Claude Code

…tor seat's per-sitting summary ledger
Encodes the 2026-08-31 director-batch ruling (maintainer 「其他同意」, adopting
option B): 「一条裁决已记录」的权威载体 = 总监席每场收工的摘要台账 (seat-post
lineage; entry shape 卡 · 权威引文 · 方向 · 状态转移). The ruling comment on the
card is demoted to elaboration — still the first landing for execution and
review, but existence disputes are settled by the ledger.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Whev4BkZ4BRcgiXYo4muWP
…y rounds may span fires
Encodes the 2026-08-31 director-batch ruling (maintainer verbatim 「他的定时到达
时如果上一批还没处理完就接着处理呗」): a fire is a continuation trigger, not a
reopen obligation; the backlog continues oldest-first, not re-sorted by a new
fire; crossing fires is not a violation. Prevents a future seat from carding
un-emptied-across-fires as a contradiction.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Whev4BkZ4BRcgiXYo4muWP
@os-zhuang
os-zhuang marked this pull request as ready for review September 2, 2026 01:19
@os-zhuang
os-zhuang added this pull request to the merge queueSep 2, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentationImprovements or additions to documentationsize/xsskip-changesetPR has no user-facing published change; bypasses the changeset gate

Projects

None yet

3 participants

@os-justin@os-zhuang@claude
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

docs(pm): encode the 2026-08-31 director rulings — ruling-record carrier, and cross-fire round continuation - #14230

Merged
os-zhuang merged 2 commits into
mainfrom
claude/issue-13766-ruling-encodings
Sep 2, 2026
Merged

docs(pm): encode the 2026-08-31 director rulings — ruling-record carrier, and cross-fire round continuation#14230
os-zhuang merged 2 commits into
mainfrom
claude/issue-13766-ruling-encodings

Conversation

@os-justin

Copy link
Copy Markdown
Collaborator

Fixes#13766
Fixes#13765

Two-card, one-file flight: encodes the two mechanical 余项 from the 2026-08-31 director batch #20 rulings (items ⑤ and ④, director session session_01KGtaLpkW1mycWgkbSb3H6t) into .claude/skills/pm-dispatch/SKILL.md — one sentence per card, per-member commits.

Maintainer verbatim (batch reply, untranslated): 「#13765 是分诊席自己的问题,完全可以处理完,他的定时到达时如果上一批还没处理完就接着处理呗。其他同意」

Commit 1 — authoritative carrier of a recorded ruling (ruling ⑤)

Added to the 升级与决策 section, immediately after the atomic ruling-recording clause (③ 四件同笔): the authoritative carrier of "a ruling is recorded" is the director seat's per-sitting closing summary ledger; the ruling comment on the card is demoted to elaboration — still the first landing for execution and review, but existence disputes are settled by the ledger.

Ruling comment (2026-08-31, verbatim, untranslated):

B 生效:自本裁起,「一条裁决已记录」的权威载体 = 总监席每场收工的摘要台账(座位贴 #12708 世系,条目最小形状照既有:卡 · 权威引文 · 方向 · 状态转移);卡上的裁决评论降为详注(elaboration)—— 详注仍是执行与复核的第一落点,但存在性之争以台账为准

Commit 2 — a fire arriving mid-round continues the round (ruling ④)

Added to the 分诊座位职责 section's 发现分诊轮 paragraph, immediately after the 断点续跑 clause: a fire is a continuation trigger, not a reopen obligation; the backlog continues oldest-first, not re-sorted by a new fire; crossing fires is not carded as a contradiction.

Ruling comment (2026-08-31, verbatim, untranslated):

溢出语义由本裁补齐:定时到达时上一批还没处理完 ⇒ 接着处理 —— fire 是接续触发,不是重开义务;一个清空轮次可以跨多个 fire,存量按最老优先继续消化,⛔ 不因新 fire 重排、不因跨 fire 视为违规

把第 2 条接续语义写进 SKILL 分诊席职责段(一句话量级的澄清:「fire 到达时上一轮未清空 ⇒ 接续处理,轮次可跨 fire」),防止下一任席位把「跨 fire 未清空」再当矛盾立卡

Constraints honored

  • No ceiling raise: SKILL.md 984 → 989 lines (+5), ceiling 1005 untouched. Gate verdict at head 70a48ae: "check-skill-line-ratchet: .claude/skills/pm-dispatch/SKILL.md is 989 lines (ceiling 1005; headroom 16)". Per-line 120-byte budget also honored (a first draft tripped it at 123B; rewrapped).
  • scripts/pm/check-skill-line-ratchet.mjs untouched (serialized under another in-flight PR) — the diff is exactly one file.
  • No issue numbers in the file's operative text: the seat-post lineage is spelled 总监席座位贴世系, matching the file's number-free convention (check:pm-skill-id-lint: 23 files clean).
  • The enforced decision-frame copy untouched — the carrier sentence sits before the frame's declaring anchor (check:skill-frame-sync: 4 copies structurally isomorphic across 3 files).

Gates (union derived by dispatch-gates.mjs from the real changed set; run at 70a48ae; exits captured by redirect before any pipe)

  • Green, each by its own verdict line: check:pm-skill-ratchet · check:pm-skill-id-lint · check:skill-frame-sync · check:pm-governed-prose · check:pm-governed-merges · check:agent-test-spelling · check:doc-authoring · check:doc-formula-expressions (PREREQUISITE NOT MET on first run; measured after building @objectstack/formula and @objectstack/lint) · check:nul-bytes.
  • check-governed-queue-guard: NOT MEASURED locally — it reads the workflow event payload and refuses to exit 0 without one; CI-context only.

Governed surface (.claude/**): draft PR, human merge only — auto-merge is never armed here. Docs-only diff shipping from no published package: skip-changeset.

Session: https://claude.ai/code/session_01Whev4BkZ4BRcgiXYo4muWP

Generated by Claude Code


Generated by Claude Code

…tor seat's per-sitting summary ledger
Encodes the 2026-08-31 director-batch ruling (maintainer 「其他同意」, adopting
option B): 「一条裁决已记录」的权威载体 = 总监席每场收工的摘要台账 (seat-post
lineage; entry shape 卡 · 权威引文 · 方向 · 状态转移). The ruling comment on the
card is demoted to elaboration — still the first landing for execution and
review, but existence disputes are settled by the ledger.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Whev4BkZ4BRcgiXYo4muWP
…y rounds may span fires
Encodes the 2026-08-31 director-batch ruling (maintainer verbatim 「他的定时到达
时如果上一批还没处理完就接着处理呗」): a fire is a continuation trigger, not a
reopen obligation; the backlog continues oldest-first, not re-sorted by a new
fire; crossing fires is not a violation. Prevents a future seat from carding
un-emptied-across-fires as a contradiction.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Whev4BkZ4BRcgiXYo4muWP
@os-zhuang
os-zhuang marked this pull request as ready for review September 2, 2026 01:19
@os-zhuang
os-zhuang added this pull request to the merge queueSep 2, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentationImprovements or additions to documentationsize/xsskip-changesetPR has no user-facing published change; bypasses the changeset gate

Projects

None yet

3 participants

@os-justin@os-zhuang@claude