You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
pullboard-run guide says the engine refuses only the builder; engine also refuses any seat under the builder's parent session #20
pullboard-run guide says the engine "refuses only the builder"; engine 90 also refuses any seat under the builder's parent session
What the guide says
skills/pullboard-run/SKILL.md:88: "Start every reviewer outside the builder's root: a fresh session, or a subagent of a different session from the one that started the builder. ... Pullboard itself refuses only the builder (SELF_VERIFY), so the rest is yours to keep."
Step 5 of the same guide has the coordinator start verifier subagents from its own session.
What the engine does
src/machine.js:146 guard notBuilder refuses SELF_VERIFY, VERIFIER_STANDING and SELF_SESSION_VERIFY. Its rule text: the verifier's agent session must not have built or submitted the item under any seat. src/item-authors.js:25 refuses SELF_SESSION_VERIFY when the verifying seat shares a parent session with any author. src/item-sessions.js:100 refuses when the agent session itself built or submitted. src/parent-session.js derives Claude Code identity from CLAUDE_CODE_SESSION_ID alone; an Agent-tool subagent has no id of its own, so every builder and verifier the coordinator spawns shares one parent session.
Observed
Board superagent, 2026-11-04. Coordinator (Claude Code) spawned builder implementation-3 and verifier review-2 as subagents. review-2's pullboard verify 33 accept was refused SELF_SESSION_VERIFY. The refusal's next-step ("ask another agent session to verify it: pullboard next --verify from that session's own worktree") does not say that, under Claude Code, "another agent session" means a separate process the person starts; a subagent of the coordinator is still the same session. The verdict landed only after the person started claude -p in a fresh worktree (review-3).
Proposed fix (agreed design)
Generate the guide's independence sentence from the notBuilder row in src/machine.js (its rule and alsoRefuses texts) instead of hand-written prose, with a regression test that fails when the guide and the row diverge.
In the Claude Code refusal path, make the SELF_SESSION_VERIFY next-step say: start the verifier as a separate process (new claude session in its own worktree), not an Agent-tool subagent of the coordinator.
Keep the engine rule as it is; the stricter rule is right, the guide is wrong.
Related: PR #18 (view health scan session fix), same board.
Activity