Repository navigation
Planner stuck release + logged stop verdicts; dependent-task RED rule (live run 19) - #31
Merged
Merged
Conversation
… is realized, not a defect
Live e2e run 18 (12/12, $0.99, 15m47s): the mid-sprint re-plan of T2 ran
the planner's stop gate over the whole plan, and `targets check` blocked
its stop 9 times on T1's merged `create tests/parse.rs` ("already
exists") while the brief said not to touch T1. Now a create whose path
exists AND defines its planned_symbol passes (the change shipped) and
`target` resolves it to file:line; a file without the symbol is still a
plan defect. Test-first in scripts/test/semantic-targets.test.py,
reproduced on run 18's own plan. ROADMAP §0 records run 18 and the two
gaps it found (planner stop verdicts unlogged; RED tests satisfiable by
the prior task's placeholder).
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014j4wLin3oJTtnvjE9Lq2VV
…n 19 (the other thread's run 18 landed first)
…k release The planner's SubagentStop gate now goes through _gatelib.sh: every verdict lands in gates.jsonl and the event stream like the other gates, and the same block three times in a row releases the planner's stop unverified with a state/stuck/plan-sprintN.<agent> marker (a re-dispatch is a new agent id and starts over). A direct call (selfcheck, the supervisor's own check) is logged as a self-check and never releases. Live e2e run 18: a re-planning planner was blocked 9 times on one unchanged reason, none counted, and only a second dispatch ended it. Test-first: scripts/test/planner-stuck.test.py (5 checks). Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014j4wLin3oJTtnvjE9Lq2VV
…ier tasks leave on main Live run 18: three of T2's planned tests already passed against T1's placeholder, so T2 could not be RED and cost a mid-sprint re-plan. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014j4wLin3oJTtnvjE9Lq2VV
…anded in #29 first) Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014j4wLin3oJTtnvjE9Lq2VV
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Requested by Adeel · project thread
Stacked on #30 (its commits show here until it merges).
Before: the planner's stop gate (
gate-stage2-completeon SubagentStop) wrote no verdict togates.jsonlor the event stream, and the stuck release did not cover it. In live run 19 a re-planning planner was blocked 9 times on one unchanged reason: none counted, nothing ended the loop, and only a second dispatch did. The re-plan itself happened because three of T2's planned RED tests already passed against T1's placeholder, and the planner persona said nothing about dependent tasks.After: every planner verdict is logged like the other gates (role
planner, reason hash,gate.passed/gate.failedevents), and the same block three times in a row releases its stop unverified with astate/stuck/plan-sprintN.<agent>marker the supervisor acts on; a re-dispatch is a new agent id and starts over. A direct call (the supervisor's own check,selfcheck) is logged as a self-check and never releases. The planner persona now plans a later task's RED tests against what the earlier tasks leave on main.How:
gate-stage2-completesources_gatelib.sh(fail-closed, verdict log, stuck release) and reports throughfail; its stuck key isplan-<sprint>+ the host's agent id;_gate_stuckadmitsplannerwith its own release message. Both planner persona copies carry the same paragraph.Evidence: new
scripts/test/planner-stuck.test.py5/5 (written first, red before the change);ids-integrity5/5,commit-trace8/8,plan-render5/5,semantic-targets6/6,fail-closed5/5,budget-roles6/6,make conformance58/58,make test-hosts pycheck shellcheckOK,claude plugin validate --strictandeval-validateOK,check-tracking41 requirements. CHANGELOG, bin/README, SKILL.md, ROADMAP §0 and TRACKING updated.Generated by Claude Code