Filed by the domain:skills execution seat (session_01Gqi43smmqjJ5sUrhfoPeKu, seat post #7623) out of the #18774 round (PR #18808), from the dev's open_questions, re-read by the seat before filing. ⛔ Filed bare: finding only, domain:* / type / priority are triage's (lane self-triage exception noted — the seat did not grade its own filing). ⛔ A governed-text question (AGENTS.md, rules layer, the maintainer's word): the fact rows PR #18808 lands say the reading; the rules-layer sentence a dev actually reads does not.
Dedupe words: ls-remote pre-check hit meaning · branch is a hint claim is the comment · AGENTS.md issue-<n> pre-check · stray claude/issue-* heads · pre-check silent direction.
The reading, on origin/main 034f5a3afd
AGENTS.md :459–:463 (rule 2, 「One feature branch + one PR per task」):
The issue number is what makes in-flight work discoverable — git ls-remote --heads origin | grep issue-<n> is a one-command pre-check, and the Duplicate Fix Guard workflow warns on fix PRs whose branch names no declared issue.
That is the whole of what the rules layer says about the pre-check: what the command IS. It never says what a hit MEANS. Measured on the same tip:
The options, as the dev put them (seat's view: A)
- A — one clause on the existing sentence at :461–:463: a hit is a HINT; the claim is the
Claim: comment on the card; most heads carry no PR. Rules layer, the maintainer's word, its own serial (no open PR touches AGENTS.md at filing; 1099 / 1099 at the ratchet, paid in-file).
- B — leave
AGENTS.md alone: the fact rows carry the reading and every seat reads the pm-dispatch references anyway. ⚠️ The dev does not: the os-dev definition points at AGENTS.md, not at platform-readings.md.
- C — change the pre-check itself to a second read (branch AND an open PR or a
Claim: comment). ⚠️ Adds a read to a one-command check whose value is that it is cheap; the reading rule in A gets the same outcome without it.
Four axes on A: 实际业务需求 — the miss is measured today (257 / 291) on the surface a dev reads before claiming; 项目长远合理性 — the rule lives once where it binds, and the references table is declared the fact layer, not the rules layer; 防 AI 写错 — a pre-check with no stated reading is the tolerant-consumer shape, the reader supplies the semantics and supplies them in the silent direction; 创业阶段不扩散 — one clause, no new mechanism, no new gate.
⛔ Not measured
- How many devs have actually skipped a card on a stray hit (no record exists; the only signal would be a card that sat unclaimed with a stray head present).
- Whether the Duplicate Fix Guard workflow reads the stray population at all (it warns on PR branch NAMES; it is not the pre-check).
Refs: #18774 · PR #18808 · AGENTS.md :459–:463 · .claude/skills/pm-dispatch/references/platform-readings.md :374–:379 (post-PR #18808)
domain:skills execution seat · seat post #7623 · readings taken on origin/main 034f5a3afd
Generated by Claude Code
Filed by the
domain:skillsexecution seat (session_01Gqi43smmqjJ5sUrhfoPeKu, seat post #7623) out of the #18774 round (PR #18808), from the dev'sopen_questions, re-read by the seat before filing. ⛔ Filed bare:findingonly,domain:*/ type / priority are triage's (lane self-triage exception noted — the seat did not grade its own filing). ⛔ A governed-text question (AGENTS.md, rules layer, the maintainer's word): the fact rows PR #18808 lands say the reading; the rules-layer sentence a dev actually reads does not.Dedupe words:
ls-remote pre-check hit meaning·branch is a hint claim is the comment·AGENTS.md issue-<n> pre-check·stray claude/issue-* heads·pre-check silent direction.The reading, on
origin/main034f5a3afdAGENTS.md:459–:463 (rule 2, 「One feature branch + one PR per task」):That is the whole of what the rules layer says about the pre-check: what the command IS. It never says what a hit MEANS. Measured on the same tip:
claude/issue-*heads onorigin(seat census 2026-09-17T21:45Z; the [finding] a dev container can create a remote branch but cannot delete one (both channels 403), so a "probe before you write" instruction manufactures a permanent stray branch — one is on origin now and defeats the AGENTS.md claim pre-check #18774 dev's re-take at 21:48Z read 291 again) — 26 with an open PR, 8 with a closed / merged PR whose branch was never deleted, 257 with NO PR among the newest 1,200 PRs (back to 2026-09-05).git push --delete→ HTTP 403;DELETE /git/refs/heads/…→ 403 「not permitted through this proxy」) — measured by three sessions on three branches ([finding] a dev container can create a remote branch but cannot delete one (both channels 403), so a "probe before you write" instruction manufactures a permanent stray branch — one is on origin now and defeats the AGENTS.md claim pre-check #18774, PR docs(pm-skills): a dev container creates a remote branch it cannot delete — probe on the branch the dev keeps #18808). So the stray population only grows from inside the loop.platform-readings.md:378 「「分支在」不是「卡已认领」:认领是Claim:评论,分支只是线索;291 个头里 257 个无 PR。」 and :379 「⛔ 不据ls-remote | grep issue-正命中回避该卡」. A dev readingAGENTS.mdalone gets the command and no reading rule.The options, as the dev put them (seat's view: A)
Claim:comment on the card; most heads carry no PR. Rules layer, the maintainer's word, its own serial (no open PR touchesAGENTS.mdat filing; 1099 / 1099 at the ratchet, paid in-file).AGENTS.mdalone: the fact rows carry the reading and every seat reads the pm-dispatch references anyway.AGENTS.md, not atplatform-readings.md.Claim:comment).Four axes on A: 实际业务需求 — the miss is measured today (257 / 291) on the surface a dev reads before claiming; 项目长远合理性 — the rule lives once where it binds, and the references table is declared the fact layer, not the rules layer; 防 AI 写错 — a pre-check with no stated reading is the tolerant-consumer shape, the reader supplies the semantics and supplies them in the silent direction; 创业阶段不扩散 — one clause, no new mechanism, no new gate.
⛔ Not measured
Refs: #18774 · PR #18808 ·
AGENTS.md:459–:463 ·.claude/skills/pm-dispatch/references/platform-readings.md:374–:379 (post-PR #18808)domain:skillsexecution seat · seat post #7623 · readings taken onorigin/main034f5a3afdGenerated by Claude Code