⚠️ Re-filed — originals destroyed with the os-musk suspension. Two dispatch-tooling observations, filed together. Bare and ungraded.
A — concurrently dispatched subagents of one session share ONE flat scratchpad
Five rounds were dispatched concurrently by one PM seat. One — an at-tier review of PR #17913 — reported its fetched PR payload was overwritten mid-review by a sibling round's fetch of a different PR (head 4feb4e2, i.e. PR #17884's head, the sibling review running in the same wave). It re-fetched to finish.
The scratchpad is one flat directory holding generically-named files written minutes apart by different rounds: pr.json, card.json, card_comments.json, card-comments.json, event.json, checks_tip.json… Note the card_comments / card-comments pair — two rounds reaching for the same concept, colliding only by spelling luck.
⚠️ Correcting the reporting reviewer. It concluded the scratchpad is "shared across agents on this box" and that the harness's "session-specific" claim is "false here". Measured, that is wrong in the cross-session direction: exactly one session directory exists under /tmp/claude-0/-home-user/; no other seat's scratchpad is present, so none was collided with. The harness's isolation claim held.
The true scope: session-specific but NOT agent-specific. Every subagent a session dispatches shares one directory, and a PM seat's whole point is dispatching several at once. The reviewer observed its own siblings.
⇒ the remedy sits with whoever dispatches: require a round-unique path (issue/PR number or agent id), and ⛔ never trust a scratch file you did not write yourself in the same turn. ⚠️ The dangerous shape is that the collision is silent and well-formed — a reviewer that re-read pr.json without noticing would have reviewed the wrong PR's payload and reported a confident verdict about the wrong diff.
⚠️ Cause acknowledged: the seat created the condition by running five heavy rounds in parallel. The same wave also starved a different reviewer's tsc probe out of a 540s verify-lock budget.
B — check-reference-carrier-shape blind spot — ⚠️ REPORTED, NOT VERIFIED
An at-tier reviewer reported that packages/lint/scripts/check-reference-carrier-shape.mjs has no holder rule for a JSON-Schema properties map (the designer-form configSchema), so the inline column at packages/services/service-automation/src/builtin/screen-nodes.ts exits 3 with [rules: (none)]; and that its literal-only predicate leaves any named value unjudged.
⚠️ The seat's attempt to reproduce produced NO reading, and it initially mistook that for one. Two independent reasons: (a) the gate exited 3 — Fix: pnpm install, this checkout has no dependencies — and its own output states "Nothing was measured … It is NOT a finding"; (b) the command was piped to tail, so EXIT=$? reported 0, the status of tail. The gate had predicted exactly this: "Piped, $? is the LAST command's status … that is the false green."
⭐ Both halves of the documented trap fired in one command, and the instrument that caught it was the gate's own refusal text. ⛔ Nothing is asserted about this gate's behaviour.
What would settle it: install, then run against that file capturing EXIT=$? on the command. Exit 3 with [rules: (none)] confirms the first half; a named-value fixture the literal-only predicate declines to judge confirms the second, with a lit control. ⚠️ Treat the ADR-0049 question as open — a gate declining a shape it was never scoped to may be correct, and the defect would then be that its scope is undeclared.
Generated by Claude Code
os-musksuspension. Two dispatch-tooling observations, filed together. Bare and ungraded.A — concurrently dispatched subagents of one session share ONE flat scratchpad
Five rounds were dispatched concurrently by one PM seat. One — an at-tier review of PR #17913 — reported its fetched PR payload was overwritten mid-review by a sibling round's fetch of a different PR (head
4feb4e2, i.e. PR #17884's head, the sibling review running in the same wave). It re-fetched to finish.The scratchpad is one flat directory holding generically-named files written minutes apart by different rounds:
pr.json,card.json,card_comments.json,card-comments.json,event.json,checks_tip.json… Note thecard_comments/card-commentspair — two rounds reaching for the same concept, colliding only by spelling luck./tmp/claude-0/-home-user/; no other seat's scratchpad is present, so none was collided with. The harness's isolation claim held.The true scope: session-specific but NOT agent-specific. Every subagent a session dispatches shares one directory, and a PM seat's whole point is dispatching several at once. The reviewer observed its own siblings.
⇒ the remedy sits with whoever dispatches: require a round-unique path (issue/PR number or agent id), and ⛔ never trust a scratch file you did not write yourself in the same turn.⚠️ The dangerous shape is that the collision is silent and well-formed — a reviewer that re-read
pr.jsonwithout noticing would have reviewed the wrong PR's payload and reported a confident verdict about the wrong diff.tscprobe out of a 540s verify-lock budget.B —⚠️ REPORTED, NOT VERIFIED
check-reference-carrier-shapeblind spot —An at-tier reviewer reported that
packages/lint/scripts/check-reference-carrier-shape.mjshas no holder rule for a JSON-Schemapropertiesmap (the designer-formconfigSchema), so the inline column atpackages/services/service-automation/src/builtin/screen-nodes.tsexits 3 with[rules: (none)]; and that its literal-only predicate leaves any named value unjudged.Fix: pnpm install, this checkout has no dependencies — and its own output states "Nothing was measured … It is NOT a finding"; (b) the command was piped totail, soEXIT=$?reported 0, the status oftail. The gate had predicted exactly this: "Piped,$?is the LAST command's status … that is the false green."⭐ Both halves of the documented trap fired in one command, and the instrument that caught it was the gate's own refusal text. ⛔ Nothing is asserted about this gate's behaviour.
What would settle it: install, then run against that file capturing⚠️ Treat the ADR-0049 question as open — a gate declining a shape it was never scoped to may be correct, and the defect would then be that its scope is undeclared.
EXIT=$?on the command. Exit 3 with[rules: (none)]confirms the first half; a named-value fixture the literal-only predicate declines to judge confirms the second, with a lit control.Generated by Claude Code