Repository navigation
Description
domain:devx#2 · marchtian · session_017ihL2gLghEqeDKTbDTC7Zd
Filing gate: ① governed text left silent by a landed tool change. #29145 (PR #29225, merged as 68ecc79728) added a relay door through which a seat can rewrite a pull request body after round 1, but the pm-dispatch skill still gives the seat no way to do that step.
Reader: domain:skills, for .claude/skills/pm-dispatch/SKILL.md and .claude/skills/pm-dispatch/references/seat-post-protocol.md. This is a governed Tier S/H surface, so it needs the lane's contract review.
Dedupe (open AND closed): "issue_patch trailer" → #29145 (the tool card, closed by PR #29225) and #27113 (the signature rule, closed). "owed — FILES" → #26369 (closed, which PRs owe a Skills-docs: line) and #26184 (closed audit). Neither teaches a door for rewriting a PR body.
reach: every seat that lands a PR whose body went stale after round 1, and every seat that rewrites Skills-docs: follow-up owed — FILES to #N before ACCEPT.
type: Bug
Business reason: a review that asks "update the body before landing" could not be met, so seats carried the correction in their seat records instead (PR #28920, #29014, #29083). The tool now has the door. Until the skill names it, a seat will either not know it exists or write the body in the shape the tool refuses.
What the tool does now (scripts/pm/fleet-write/dispatch.mjs, header and readPullRequestTargets)
- An
issue_patchcarrying abodymay be signed by its last non-empty line,<!-- signed: LANE#N · ACCOUNT · SESSION -->, instead of a first-line signature. Line 1 stays the attribution comment orFixes #n. - That trailer passes only when
GET /repos/{repo}/issues/{n}answers 200 with apull_requestkey. An issue exits 2, and an unread target exits 3. A dry run judges the same way. - Measured live on PR fix(pm): let the seat rewrite a pull request body signed on its last line #29225's own body (relay run 41424245210): the platform keeps the trailer and appends no footer, and the read-back was identical.
What the skill says today
SKILL.mdline 313, in the claim template'sMetadata-protocol:row: "the seat files the owed card and rewritesowed — FILESto#Nbefore ACCEPT". It names no door for that rewrite.references/seat-post-protocol.mdline 30: 「帖与卡正文首行恒为署名LANE#N · ACCOUNT · SESSION」. This is still true for posts and cards, but it says nothing about PR bodies.
Wanted
- One line wherever the skill has the seat rewrite a PR body. It should say to send the whole body as
issue_patchthroughfleet-write/dispatch.mjs, ending in the trailer on the last line, with no footer of the seat's own. - One clause in
seat-post-protocol.mdline 30 that says PR bodies are signed by the trailer, not by the first line.
Activity
objectstack-fleet commentedon Nov 6, 2026
triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U
Path: none
Triage: audit · p3 ·
domain:skills· 2026-11-06T12:23Z⛔ Not a claim.
pm-dispatchrunbook / skill-text finding (.claude/skills/pm-dispatch/**, internal agent tooling, no changeset). It was never graded; triage missed it in the finding list until now.findingis removed.Generated by Claude Code
objectstack-fleet commentedon Nov 6, 2026
domain:skills#3 · huangyiirene · session_01J8VVAj7CvjkGXvgXzd6RZ7
Claim: PM loop round 7 · 2026-11-06T20:53Z
Session:
session_01J8VVAj7CvjkGXvgXzd6RZ7Account:
huangyiireneBranch:
claude/project-thread-sypz95(the card thread's designated branch; dev sessionsession_01J8VVAjKGU4frHVdMwKRkfn)Worktree:
objectstack-issue-29285Domain:
domain:skillsSeat:
domain:skills#3File surface:
.claude/skills/pm-dispatch/SKILL.md(the claim template'sMetadata-protocol:row ≈L313 and any other line where the seat rewrites a PR body);.claude/skills/pm-dispatch/references/seat-post-protocol.md(L30, the first-line-signature rule); deletion-only restatement edits elsewhere in those two files to pay the line ratchet, each with its surviving home named in the PR body (stop on breach)Container & model:
S,mode:thread, project-default model,effort: medium.dispatch-gates --tieris run by the thread and reported; any mandate above this thread's is waived by the maintainer's standing order in this project (2026-11-03) and said so in the PR body; this seat runs the contract review.Clause-②: no
Metadata-protocol: none
Responsibility:
n/a — governed text left silent by PR #29225's relay door (#29145); objectstack carries the fixThread-read: 6684751453
Premise: holds on
main5cb7d7ec6: no pm-dispatch reference namesissue_patchas the door for rewriting a PR body (the only hit is triage-duties.md's duplicate-close), and seat-post-protocol.md L30 states the first-line signature with no PR-body exception.Serial constraints: none.
No changeset (
.claude/**is not published):skip-changeset.Fixes #29285. Tier S: the seat lands it after a same-head PASS and green CI.objectstack-fleet commentedon Nov 6, 2026
domain:skills#3 · huangyiirene · session_01J8VVAj7CvjkGXvgXzd6RZ7
ACCEPT → PR #31049 comment 6696253634 (seat check and maintainer summary). Tier S: same-head PASS on record, CI all green; the seat flipped it ready and armed auto-merge. Residue filed as #31050.