docs(skills): triage fire opens with by-name tool loading — stop the 55-schema ToolSearch ticket on self-retire rounds - #10105
Conversation
…55-schema ToolSearch ticket on self-retire rounds (#10104) One clause in the 分诊座位职责 section: the opening mutex-check / self-retire probe loads only list_issues + issue_read via the select: form of ToolSearch; the full toolset loads only after the round is judged live. Applies to triage fresh sessions only; standing execution seats and devs are exempt. Acceptance: idle round ~120k -> under ~40k, read back by the triage seat's next self-measurement. Net +1 line, paid from the file's 1-line headroom (681 -> 682/682). Fixes #10104 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AeA3nU1B5Q2pgxqxgUrexd
⛔ merge queue 构建失败 — 先分诊,再决定要不要重排队列构建 32328768059 红了。队列跑的是全量套件(PR 侧 CI 只跑 affected 子集), 失败的 job(日志抽取,best effort):
历史信号:
分诊清单:
Generated by Claude Code · merge-queue-triage workflow (#4859) |
队列失败分诊结论:非本 PR、非 main 代码回归 —— 是测试对未声明构建产物的依赖(分诊清单第 2/3 类之外的第四种:构建图缺边)skills 座亲测(session
即:该测试(#10092,01:53Z 合入)启动真 处置:① 本 PR 按清单「重排一次」是正当的 —— 失败与本 PR 无因果;② 耐久修法(给测试声明构建依赖边/让 Generated by Claude Code |
⛔ merge queue 构建失败 — 先分诊,再决定要不要重排队列构建 32333879492 红了。队列跑的是全量套件(PR 侧 CI 只跑 affected 子集), 失败的 job(日志抽取,best effort):
历史信号:
分诊清单:
Generated by Claude Code · merge-queue-triage workflow (#4859) |
⛔ merge queue 构建失败 — 先分诊,再决定要不要重排队列构建 32334243825 红了。队列跑的是全量套件(PR 侧 CI 只跑 affected 子集), 失败的 job(日志抽取,best effort):
历史信号:
分诊清单:
Generated by Claude Code · merge-queue-triage workflow (#4859) |
⛔ merge queue 构建失败 — 先分诊,再决定要不要重排队列构建 32334745408 红了。队列跑的是全量套件(PR 侧 CI 只跑 affected 子集), 失败的 job(日志抽取,best effort):
历史信号:
分诊清单:
Generated by Claude Code · merge-queue-triage workflow (#4859) |
⛔ merge queue 构建失败 — 先分诊,再决定要不要重排队列构建 32334640717 红了。队列跑的是全量套件(PR 侧 CI 只跑 affected 子集), 失败的 job(日志抽取,best effort):
历史信号:
分诊清单:
Generated by Claude Code · merge-queue-triage workflow (#4859) |
Fixes #10104
What
One clause added to the 分诊座位职责 section of
.claude/skills/pm-dispatch/SKILL.md(governed surface, human-merge-only): the triage fresh session's opening mutex-check / self-retire probe loads only the two tools it needs, by exact name, via theselect:form of ToolSearch —select:mcp__github__list_issues,mcp__github__issue_read— and the full toolset loads only after the round is judged live. A broad keyword ToolSearch at session start is forbidden (it injects the full 55-schema block). Applicability boundary stated in the clause: triage fresh sessions only; standing execution seats and devs (which need the full tool surface) are exempt.The exact added line (one physical line, matching the file's long-line paragraph convention):
Acceptance number is written into the clause as a verifiable criterion: idle round ~120k tokens → under ~40k, to be read back by the triage seat's own next self-measurement.
Line budget
Re-measured on fresh main at dispatch time: 681 lines against ceiling 682 — exactly 1 line of headroom. The clause is one physical line appended to the section's intro paragraph (net +1), spending the headroom; no dedup payment was needed and none was made. File now sits at 682/682.
Gates (all run at head
1d9108789)node scripts/pm/dispatch-gates.mjs(no args, real diff): derived change set "1 path(s) vs merge base 7552e03", matched 7 families, exit 0.check:pm-skill-ratchet— "✓ check-skill-line-ratchet: .claude/skills/pm-dispatch/SKILL.md is 682 lines (ceiling 682; headroom 0)." (exit 0, re-run on final head after reverse verification)check:pm-skill-id-lint— "✓ check-skill-id-lint: 15 file(s) clean (pattern /#[0-9]{3,}/g)." (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)check:pm-governed-merges— "✓ check-governed-merges --self-test: 81 assertions" (exit 0)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: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)All exit codes captured before any pipe (output redirected to file first).
Reverse verification (directions predicted in writing before running)
git diff --exit-codereturned 0 against the committed fix.#1234into the added line turns the gate red naming the file, proving the gate reads it. Observed: "✗ check-skill-id-lint: .claude/skills/pm-dispatch/SKILL.md: 1 issue-ID citation(s)" at line 249 (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 only, nothing user-visible;skip-changesetapplied.Governance: this edits a governed surface (
.claude/**) — draft PR, review requested from os-zhuang, human merge only.Generated by Claude Code