This post is the single authoritative registration of the skills seat. Four-section template; the job description is versioned at .claude/skills/pm-dispatch/references/lanes/skills.md — ⛔ not copied here.
Current PM
🟢 On duty · session session_01EXxTW8mvPBhoHxmyPZ63de (account zhuangjianguo) · assumed 2026-08-30T06:20Z, maintainer-invoked (/pm-dispatch skills). Ledger as of 11:52Z:
LANDED, closed out (5 PRs / 7 cards + 1 half): Ratchet bookkeeping: pm-dispatch SKILL.md widest-table-row pin can follow the paid-down row (765 to 642 bytes) once PR #13085 lands #13090 (PR chore(pm): tighten pm-dispatch SKILL.md table-row pin to 642 #13360 ) · [finding] ADR-0006 is what AGENTS.md and three ADR banners cite for the v5.0 project → environment rename — and its body does not contain that rename, nor does the changeset they name still exist #12747 +[finding] ADR-0006 is linked under two filenames — ADR-0007 and ADR-0008 point at the Superseded v3, everyone else at the Accepted v4, and the link checker is green either way #12748 (PR docs(adr): record the v5.0 project to environment rename in ADR-0006, and land its inbound pointers #13364 ) · ui#5759 (ui PR finding: lint.yml 的两个 required context 名(ESLint / TypeScript Type Check)在仓内无任何断言 —— 改名即静默丢门,而 ci.yml 的同类名字有 check:shard-attestation 守着 #6865 ) · [finding] the os-dev agent's standing text points devs at the ADDITIVE labels REST endpoint, which is 403 from every dev seat — every dispatch pays a wasted round-trip #12654 +[finding] The additive label endpoint POST /issues/{n}/labels WORKED from a dev container (HTTP 200, read-back confirmed) — the fleet note saying it is unreachable miscites two cards that are about REST *read* channels #12766 (PR fix(pm): GitHub REST channel reachability is a session property — not an endpoint or seat-type fact #13367 , merged 11:07) · [finding] git worktree add -b can fail writing upstream config and leave the branch created but no worktree — the recipe's own half-state, and .git/config is shared like the stash #13052 landed-half (PR Harden the worktree recipe with --no-track, and name .git/config in the shared-namespace inventory #13403 , merged 11:22; card stays open in the decision box by design).
AWAITING ONE APPROVE EACH: PR Densify the pm-dispatch governed corpus at phrase boundaries (whitespace-only) + the ruled funding-ban distinction #13389 ([finding] The governed protocol corpus itself wraps prose mid-phrase — defeating exactly the anchored greps the new Re-check discipline prescribes #13115 densification — conflict patch round done, head 169f57dd6, whitespace property re-verified vs current main, CI green, ready + both reviewers re-requested; prior approval expired by the patch push) · PR fix(agents,scripts): PIPESTATUS/pipefail are exit-code-safe only when the downstream reads to EOF #13427 ([finding] ${PIPESTATUS[0]} is documented as a SAFE form but reads 0 for a red gate when the downstream reader closes the pipe early (| head) #12979 PIPESTATUS/pipefail downgrade + i18n banner fix, ACCEPT, CI green, draft + both requested) · PR docs(agents): qualify line 8's DB-column item — control plane vs. the metadata tables #13431 ([finding] AGENTS.md:8 lists "DB column environment_id" among the v5.0 renamed surfaces — the spec now marks that very column Deprecated in favour of organization_id, so the constitutional line teaches a surface the platform is retiring #13368 line-8 scoped qualification, ACCEPT, CI green, draft + both requested).
DECISION BOX 2: [finding] git worktree add -b can fail writing upstream config and leave the branch created but no worktree — the recipe's own half-state, and .git/config is shared like the stash #13052 (AGENTS.md ceiling 1162→1164 for the §9 config-layer prose — A/B/C, 荐 A, B fallback) · [finding] H9 judges the PRESENCE of a Restart-when: line, never the REACHABILITY of the target it names — a hold pointing at an issue that cannot fire passes forever (refused twice over; maintainer call) #13278 .
BLOCKED: Worktree rescue fired against a LIVE seat — the WIP commit it left asserts "no gate, no ablation, no sweep" in the present tense, and that claim outlives the moment it was true #12637 → Blocked-by: #13115 (unblocks on Densify the pm-dispatch governed corpus at phrase boundaries (whitespace-only) + the ruled funding-ban distinction #13389 's merge; 62-line headroom).
IN FLIGHT: 0. Remaining queue face-held: SKILL.md/references + platform-readings ← Densify the pm-dispatch governed corpus at phrase boundaries (whitespace-only) + the ruled funding-ban distinction #13389 · os-dev.md ← fix(agents,scripts): PIPESTATUS/pipefail are exit-code-safe only when the downstream reads to EOF #13427 · AGENTS.md ← docs(agents): qualify line 8's DB-column item — control plane vs. the metadata tables #13431 .
Watch timer trig_016EpzaNTbSXNoq9mVyTpDvo (~12:06Z), re-armed on fire.
Inherited ledger
Previous shift os-litant closed clean 2026-08-29T11:3xZ; handover fully consumed. Face corrections on record: "AGENTS.md cluster" dissolved (#12979 /#12980 = os-dev.md face). Holds: #10947 (restart 09-04) · #12896 . Special ledger: objectui#6596 pm:awaiting-maintainer.
Hot-file serial queue
.claude/agents/os-dev.md: held by PR fix(agents,scripts): PIPESTATUS/pipefail are exit-code-safe only when the downstream reads to EOF #13427 → [finding] A timeout-killed command reports near-zero CPU to the shell's time, understating cost 14x-82x — and it reads exactly like "this step blocks rather than computes" #12980 (same family, same-taker advice, separate card) → [finding] The re-wrap funding ban lives only in the PM's SKILL.md — two devs paying line ratchets hit it independently in one hour because the dev contract never shows it #13116 · Make check:generated's "not run here" source-audit list a hard obligation in the os-dev contract — disposition 2 of #13207, routed to the skills lane #13300 · [finding] .claude/agents/os-dev.md rule 1 lists the verify lock's four guarantees and no non-guarantee, one line above a wall-clock absolute — every dev agent reads exclusivity the brief never promised #12800 · [finding] A PR-body PATCH DELETES the whole attribution footer block, not "normalises it to bare" — AGENTS.md:481 and os-dev.md:463 both state the measured-false behaviour, and three closed cards banked nothing #12886 · [finding] The ablation restore leg is provable only by a WHOLE-TREE status — an agent that reasons about it without running the preflight has no rule telling it so #13293 .
root AGENTS.md/CLAUDE.md: held by PR docs(agents): qualify line 8's DB-column item — control plane vs. the metadata tables #13431 → finding(process): the origin/main reading rule covers file CONTENTS but not file ENUMERATION — a working-tree glob feeding git show origin/main: yields a zero that looks like a full scan #13305 · [finding] A PR-body PATCH DELETES the whole attribution footer block, not "normalises it to bare" — AGENTS.md:481 and os-dev.md:463 both state the measured-false behaviour, and three closed cards banked nothing #12886 (+ ceiling-raise PR if [finding] git worktree add -b can fail writing upstream config and leave the branch created but no worktree — the recipe's own half-state, and .git/config is shared like the stash #13052 rules A).
SKILL.md + references (incl. platform-readings): held by PR Densify the pm-dispatch governed corpus at phrase boundaries (whitespace-only) + the ruled funding-ban distinction #13389 → Worktree rescue fired against a LIVE seat — the WIP commit it left asserts "no gate, no ablation, no sweep" in the present tense, and that claim outlives the moment it was true #12637 → pm-dispatch decision framework: add three maintainer-ruled standing rules — pull-directed priority order, startup-stage no-gradualism, release-reminder discipline (2026-08-27) #12668 (+[finding] the pm-dispatch Part of instruction should warn about the sentence that names who will close the card — measured red-then-green on PR #12777 #12779 , fable) → pm-dispatch: the PM-side self-discipline class recurs because its remediations are RULES — #11901 chose construct-removal instead and held; four rule-shaped fixes failed again today #12911 → platform-readings family [finding] MCP search_issues is returning FALSE ZEROS — reproduced on three seats across two repos, and it DEGRADED mid-session, so every dedup that rode on it passed vacuously #13326 · [finding] The zero-quota payload channel silently drops the NEWEST timeline items once an issue outgrows the SSR first window — measured 3 of 5 comments, both 2026-08-30 dispatch comments missing #13373 · Record the agent-created-Routine transport facts in references/platform-readings.md — fired sessions get no GitHub MCP tools, and self-binding trades new-session recoverability for tool availability #13257 · [finding] MCP pull_request_read returns a PR body with HTML entities ESCAPED, and PATCHing it back stores the escaped form — a blockquote silently becomes a paragraph starting with a literal > #13165 · [finding] MCP issue_read get_labels fails on a FRESH PR number while list_pull_requests returns its labels — misread as "no labels", the mandated RMW fallback strips concurrent bot labels #13141 (fold五门 at dispatch) → pin follow-down card LAST (unfunded re-wrap list now includes the fix(pm): GitHub REST channel reachability is a session property — not an endpoint or seat-type fact #13367 block, per the patch-round narrowing).
H17 index: no intersections.
Notes
New cards this shift: #13366 · #13429 (5 sibling pipe-advisory copies, high-leverage shared printer) · #13433 (sys_activity ghost column) · #13434 (stale saveMetaItem JSDoc ×4) · ui#6866 · ui#6880 — all bare/finding for central triage except the graded ones (#13373 p1, #13368 done). Cross-read: no twins. Decision box consumption is the maintainer's cadence. Prior body revisions carry earlier states.
This post is the single authoritative registration of the skills seat. Four-section template; the job description is versioned at
.claude/skills/pm-dispatch/references/lanes/skills.md— ⛔ not copied here.Current PM
🟢 On duty · session
session_01EXxTW8mvPBhoHxmyPZ63de(accountzhuangjianguo) · assumed 2026-08-30T06:20Z, maintainer-invoked (/pm-dispatch skills). Ledger as of 11:52Z:project→environmentrename — and its body does not contain that rename, nor does the changeset they name still exist #12747+[finding] ADR-0006 is linked under two filenames — ADR-0007 and ADR-0008 point at the Superseded v3, everyone else at the Accepted v4, and the link checker is green either way #12748 (PR docs(adr): record the v5.0 project to environment rename in ADR-0006, and land its inbound pointers #13364) · ui#5759 (ui PR finding: lint.yml 的两个 required context 名(ESLint / TypeScript Type Check)在仓内无任何断言 —— 改名即静默丢门,而 ci.yml 的同类名字有 check:shard-attestation 守着 #6865) · [finding] the os-dev agent's standing text points devs at the ADDITIVE labels REST endpoint, which is 403 from every dev seat — every dispatch pays a wasted round-trip #12654+[finding] The additive label endpoint POST /issues/{n}/labels WORKED from a dev container (HTTP 200, read-back confirmed) — the fleet note saying it is unreachable miscites two cards that are about REST *read* channels #12766 (PR fix(pm): GitHub REST channel reachability is a session property — not an endpoint or seat-type fact #13367, merged 11:07) · [finding]git worktree add -bcan fail writing upstream config and leave the branch created but no worktree — the recipe's own half-state, and.git/configis shared like the stash #13052 landed-half (PR Harden the worktree recipe with--no-track, and name.git/configin the shared-namespace inventory #13403, merged 11:22; card stays open in the decision box by design).169f57dd6, whitespace property re-verified vs current main, CI green, ready + both reviewers re-requested; prior approval expired by the patch push) · PR fix(agents,scripts): PIPESTATUS/pipefail are exit-code-safe only when the downstream reads to EOF #13427 ([finding]${PIPESTATUS[0]}is documented as a SAFE form but reads 0 for a red gate when the downstream reader closes the pipe early (| head) #12979 PIPESTATUS/pipefail downgrade + i18n banner fix, ACCEPT, CI green, draft + both requested) · PR docs(agents): qualify line 8's DB-column item — control plane vs. the metadata tables #13431 ([finding] AGENTS.md:8 lists "DB column environment_id" among the v5.0 renamed surfaces — the spec now marks that very column Deprecated in favour of organization_id, so the constitutional line teaches a surface the platform is retiring #13368 line-8 scoped qualification, ACCEPT, CI green, draft + both requested).git worktree add -bcan fail writing upstream config and leave the branch created but no worktree — the recipe's own half-state, and.git/configis shared like the stash #13052 (AGENTS.md ceiling 1162→1164 for the §9 config-layer prose — A/B/C, 荐 A, B fallback) · [finding] H9 judges the PRESENCE of aRestart-when:line, never the REACHABILITY of the target it names — a hold pointing at an issue that cannot fire passes forever (refused twice over; maintainer call) #13278.Blocked-by: #13115(unblocks on Densify the pm-dispatch governed corpus at phrase boundaries (whitespace-only) + the ruled funding-ban distinction #13389's merge; 62-line headroom).trig_016EpzaNTbSXNoq9mVyTpDvo(~12:06Z), re-armed on fire.Inherited ledger
Previous shift os-litant closed clean 2026-08-29T11:3xZ; handover fully consumed. Face corrections on record: "AGENTS.md cluster" dissolved (#12979/#12980 = os-dev.md face). Holds: #10947 (restart 09-04) · #12896. Special ledger: objectui#6596
pm:awaiting-maintainer.Hot-file serial queue
.claude/agents/os-dev.md: held by PR fix(agents,scripts): PIPESTATUS/pipefail are exit-code-safe only when the downstream reads to EOF #13427 → [finding] Atimeout-killed command reports near-zero CPU to the shell'stime, understating cost 14x-82x — and it reads exactly like "this step blocks rather than computes" #12980 (same family, same-taker advice, separate card) → [finding] The re-wrap funding ban lives only in the PM's SKILL.md — two devs paying line ratchets hit it independently in one hour because the dev contract never shows it #13116 · Make check:generated's "not run here" source-audit list a hard obligation in the os-dev contract — disposition 2 of #13207, routed to the skills lane #13300 · [finding].claude/agents/os-dev.mdrule 1 lists the verify lock's four guarantees and no non-guarantee, one line above a wall-clock absolute — every dev agent reads exclusivity the brief never promised #12800 · [finding] A PR-body PATCH DELETES the whole attribution footer block, not "normalises it to bare" — AGENTS.md:481 and os-dev.md:463 both state the measured-false behaviour, and three closed cards banked nothing #12886 · [finding] The ablation restore leg is provable only by a WHOLE-TREE status — an agent that reasons about it without running the preflight has no rule telling it so #13293.AGENTS.md/CLAUDE.md: held by PR docs(agents): qualify line 8's DB-column item — control plane vs. the metadata tables #13431 → finding(process): theorigin/mainreading rule covers file CONTENTS but not file ENUMERATION — a working-tree glob feedinggit show origin/main:yields a zero that looks like a full scan #13305 · [finding] A PR-body PATCH DELETES the whole attribution footer block, not "normalises it to bare" — AGENTS.md:481 and os-dev.md:463 both state the measured-false behaviour, and three closed cards banked nothing #12886 (+ ceiling-raise PR if [finding]git worktree add -bcan fail writing upstream config and leave the branch created but no worktree — the recipe's own half-state, and.git/configis shared like the stash #13052 rules A).Part ofinstruction should warn about the sentence that names who will close the card — measured red-then-green on PR #12777 #12779, fable) → pm-dispatch: the PM-side self-discipline class recurs because its remediations are RULES — #11901 chose construct-removal instead and held; four rule-shaped fixes failed again today #12911 → platform-readings family [finding] MCPsearch_issuesis returning FALSE ZEROS — reproduced on three seats across two repos, and it DEGRADED mid-session, so every dedup that rode on it passed vacuously #13326 · [finding] The zero-quota payload channel silently drops the NEWEST timeline items once an issue outgrows the SSR first window — measured 3 of 5 comments, both 2026-08-30 dispatch comments missing #13373 · Record the agent-created-Routine transport facts in references/platform-readings.md — fired sessions get no GitHub MCP tools, and self-binding trades new-session recoverability for tool availability #13257 · [finding] MCPpull_request_readreturns a PR body with HTML entities ESCAPED, and PATCHing it back stores the escaped form — a blockquote silently becomes a paragraph starting with a literal>#13165 · [finding] MCPissue_read get_labelsfails on a FRESH PR number whilelist_pull_requestsreturns its labels — misread as "no labels", the mandated RMW fallback strips concurrent bot labels #13141 (fold五门 at dispatch) → pin follow-down card LAST (unfunded re-wrap list now includes the fix(pm): GitHub REST channel reachability is a session property — not an endpoint or seat-type fact #13367 block, per the patch-round narrowing).Notes
New cards this shift: #13366 · #13429 (5 sibling pipe-advisory copies, high-leverage shared printer) · #13433 (sys_activity ghost column) · #13434 (stale saveMetaItem JSDoc ×4) · ui#6866 · ui#6880 — all bare/
findingfor central triage except the graded ones (#13373 p1, #13368 done). Cross-read: no twins. Decision box consumption is the maintainer's cadence. Prior body revisions carry earlier states.