8000 Planner stuck release + logged stop verdicts; dependent-task RED rule (live run 19) by adeelahmad · Pull Request #31 · adeelahmad/aloop · GitHub
[go: up one dir, main page]

Skip to content

Planner stuck release + logged stop verdicts; dependent-task RED rule (live run 19) - #31

Merged
adeelahmad merged 5 commits into
masterfrom
claude/project-thread-vm6wyr-planner-stuck
Oct 18, 2026
Merged

adeelahmad merged 5 commits into
masterfrom
claude/project-thread-vm6wyr-planner-stuck

Conversation

@adeelahmad
Copy link
Copy Markdown
Owner

Requested by Adeel · project thread

Stacked on #30 (its commits show here until it merges).

Before: the planner's stop gate (gate-stage2-complete on SubagentStop) wrote no verdict to gates.jsonl or 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.failed events), and the same block three times in a row releases its stop unverified with a state/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-complete sources _gatelib.sh (fail-closed, verdict log, stuck release) and reports through fail; its stuck key is plan-<sprint> + the host's agent id; _gate_stuck admits planner with its own release message. Both planner persona copies carry the same paragraph.

Evidence: new scripts/test/planner-stuck.test.py 5/5 (written first, red before the change); ids-integrity 5/5, commit-trace 8/8, plan-render 5/5, semantic-targets 6/6, fail-closed 5/5, budget-roles 6/6, make conformance 58/58, make test-hosts pycheck shellcheck OK, claude plugin validate --strict and eval-validate OK, check-tracking 41 requirements. CHANGELOG, bin/README, SKILL.md, ROADMAP §0 and TRACKING updated.


Generated by Claude Code

… 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
@adeelahmad adeelahmad self-assigned this Oct 18, 2026
@adeelahmad
adeelahmad merged commit 915810c into master Oct 18, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

0