Uh oh!
There was an error while loading. Please reload this page.
docs(skills): triage debrief index template, minimal tail-page mutex read, long-thread status-read outsourcing - #10118
Merged
Conversation
…read, long-thread status-read outsourcing Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AeA3nU1B5Q2pgxqxgUrexd
This was referenced Aug 20, 2026
os-warren
marked this pull request as ready for review
August 20, 2026 07:13
Uh oh!
There was an error while loading. Please reload this page.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes#10108
What
One new section, 「分诊席读数成本三则(维护者 2026-08-20)」, added to
.claude/skills/pm-dispatch/references/dispatch-runbook.md(governed surface, human-merge-only), placed with the other triage-seat sections (after 座位贴活性巡查). It lands the three conventions the card mandates:issue_read getfor the comment count, compute the last page with a smallperPage(~15), read the tail only; back up one page iff the two readings are not in the tail. Never read the whole thread.Restart-when:lines, claim/report presence) go to a low-tier read-only subagent (sonnet), returning structured excerpts, tail-first. Verbatim boundary as the card requires: 裁决级阅读(契约复审、放行判定、代裁)不可外包 —— 省这部分是拿放行质量换 token,禁止。The section cross-references (without expanding) the two-layer durable fix in prose form — patrol instruments reading comment-level edges (landed, frozen) and seats restoring a read-body-once current-state line (blocked by the sanitizer escaping trap, separate line of work) — with no issue-ID citations, per the id-lint rule.
Where it landed, and why not a lane file
The dispatch note guessed a triage lane file under
references/lanes/; none exists — the six lane files are the domain lanes (cli/devx/engine/services/skills/spec) and the triage seat's job description lives in the SKILL.md 分诊座位职责 section, whose 细则 already live indispatch-runbook.md(发现分诊轮细则, 座位贴活性巡查, 紧急卡直接分诊). The runbook is therefore the actual triage runbook file the card's scope names (「分诊席 runbook/references」), and the card itself says convention ② is 「写进 runbook 一句话」. The six lane files and their 读锚 first bullets are untouched.SKILL.mdis untouched (its 1 remaining headroom line is claimed by PR #10105, which is unmerged and edits only SKILL.md — no file overlap with this PR).Line-budget: ceiling raise 223 → 244, with the ruling quoted
dispatch-runbook.mdsat at 223/223 (headroom 0). The section adds 21 lines; the ratchet's documented raise path requires a maintainer ruling quoted in the raising PR's body. The ruling is the card itself — maintainer-approved scope (2026-08-20, 「维护者拍板立卡 …『立卡』」), verbatim:The card mandates ~15 lines of new convention text into this file family, caps SKILL.md explicitly, and is silent on a references dedup requirement; the runbook is post-compression (one-time pass) and cutting 21 lines of other seats' rules to pay would drop rules with no other home.
scripts/pm/check-skill-line-ratchet.mjsgets the new ceiling at the landed count (headroom 0, same convention as every other row) with a provenance comment. If the reviewer prefers a separate new references file with its own ceiling row instead of this raise, that is a mechanical rework — say the word.Gates (union derived by
node scripts/pm/dispatch-gates.mjs, no args: "2 path(s) vs merge base 1800ffa", 8 families; all run at headb8847cba8, exit codes captured before any pipe via redirect-then-capture)check:pm-skill-ratchet— "✓ check-skill-line-ratchet: .claude/skills/pm-dispatch/references/dispatch-runbook.md is 244 lines (ceiling 244; headroom 0)." (exit 0); script self-test after the CEILINGS edit: "✓ check-skill-line-ratchet self-test: 19 cases pass." (exit 0)check:pm-skill-id-lint— "✓ check-skill-id-lint: 15 file(s) clean (pattern /#[0-9]{3,}/g)." (exit 0)check:pm-governed-merges— "✓ check-governed-merges --self-test: 81 assertions" (exit 0)check:pm-governed-prose— "✓ check-governed-prose: 2 instruction surface(s) name all 5 registered governed surfaces (docs/adr/** · .claude/** · skills/** · AGENTS.md · CLAUDE.md) and claim no others." (exit 0; prompt-named, run although the derivation did not place it)check:skill-frame-sync— "✓ check-skill-frame-sync: 4 copies of the decision frame are structurally isomorphic across 3 files" (exit 0)check:doc-authoring— "✓ doc authoring guard: 379 files clean — no bare metadata literals." (exit 0)check:cross-package-test-inputs— "OK: 12 package(s) read outside themselves, all declared, and turbo.json hashes every declared glob." (exit 0; both the pnpm and the raw-node spellings the derivation listed run this same script)check:doc-formula-expressions— "✓ check:doc-formula-expressions: 22 record-scoped formula example(s) across 404 files / 1414 TS blocks judged clean by @objectstack/formula." (exit 0, after building the lint dependency closure)NUL/control-byte self-scan on both edited files: no match (clean).
Reverse verification (directions predicted in writing before running)
git diff --exit-codereturned 0 against the committed head.#9999injected into the new section turns the gate red naming the file. Observed: "✗ check-skill-id-lint: .claude/skills/pm-dispatch/references/dispatch-runbook.md: 1 issue-ID citation(s)" at line 80 (exit 1). Restored byte-identical (git status --porcelainempty), re-run green: "✓ check-skill-id-lint: 15 file(s) clean" (exit 0).Changeset
None —
.claude/internal agent tooling plus its gate script, nothing user-visible;skip-changesetapplied.Governance: this edits a governed surface (
.claude/**) — draft PR, review requested from os-zhuang, human merge only; this PR stays draft.Generated by Claude Code