Repository navigation
feat(cb-z719.2): the producer stops at each declared gate and waits for the navigator - #469
Conversation
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
The review gate's poll loop keys on the persistent aggregate reviewDecision, so a stale CHANGES_REQUESTED immediately re-satisfies the wait on later rounds instead of waiting for the navigator's next review.
Get a fresh assessment by requesting another Copilot review.
Review effort: Balanced
Findings: 1
Open (1)
What changed in this PR
This PR implements the second child of the navigator-gates epic (cb-z719.2), building on the navigator_gates project key introduced in #468. It teaches the producer and bugfixer roles to stop and wait for the navigator at any of three declared gates — plan, review, merge — each expressed as an asking state with its own phase word and no clock. When the key is absent, behaviour is unchanged. Because these are harness skills/ and agents/ changes, they alter how every consumer's builders behave once the key is declared.
Changes:
- Adds a new The navigator's gates section to
skills/produce-bead/SKILL.md(readproject-conf navigator_gates, then gate onplanbefore building,reviewafter the sub-agent review, andmergein place ofgh pr merge), and threads references into the pass overview and the State-file phase list. - Extends
skills/fix-bug/SKILL.mdso the bugfixer'splangate presents the reproduction test and intended fix, withreview/mergeread as written. - Adds an "awaiting the navigator's merge" row to the
beads-workflowrouting table and documents the three gate phase words in thescripts/agent-statephase reference comment.
| File | Description |
|---|---|
skills/produce-bead/SKILL.md |
Defines the three navigator gates, their phase words, wait mechanics, and the merge-gate park; wires references into steps 2/4 and the State-file phase list. |
skills/fix-bug/SKILL.md |
Points the bugfixer at The navigator's gates and defines its plan gate as the reproduction test plus intended fix. |
skills/beads-workflow/SKILL.md |
Adds the "awaiting the navigator's merge" lifecycle row (human + ## Ready to merge, planned/stage label kept). |
scripts/agent-state |
Documents plan-gate/review-gate/merge-gate as asking phases in the phase-vocabulary comment (comment-only). |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| until d="$(gh pr view <n> --json reviewDecision -q .reviewDecision)" \ | ||
| && [ "$d" = APPROVED -o "$d" = CHANGES_REQUESTED ]; do bd heartbeat <id>; sleep 30; done |
There was a problem hiding this comment.
Right; the loop now records the newest review before asking and waits for one with a higher id whose state is a verdict, carrying the id forward each round.
…or the navigator produce-bead reads navigator_gates once per pass and, for each gate declared, asks the navigator synchronously in the asking state: plan puts the design to them before the first increment, review asks for their review on the pull request after the sub-agent pass and polls GitHub's reviewDecision, merge parks the bead for them with the pull request ready. fix-bug follows with the reproduction test as its plan; agent-state's table names the three gate phases; the routing table gains the awaiting-merge row. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GKiLr59caM9f6DxkrsDYR8
…e it handled reviewDecision stays CHANGES_REQUESTED after fixes are pushed until the navigator submits a new review, so a loop keyed on it spun on every round after the first. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GKiLr59caM9f6DxkrsDYR8
a4fbcba to
49dae1c
Compare

Bead cb-z719.2, child of cb-z719. Stacked on #468, which declares the key.
skills/produce-bead/SKILL.mdgains The navigator's gates, read once per pass fromproject-conf navigator_gates. Each gate is a question in theaskingstate with its own phase word, waiting like every other question, with no clock:plan-gate): after the design is written and before the first increment, the question carries Files to change, Increments and Decided by me; approve or amend, an amendment written into the design; a change to the agreed experience goes to UX throughproducer-park, never into the plan.review-gate): after the sub-agent review is posted and answered, so what reaches the navigator has been read once; the producer asks with the PR link and pollsreviewDecisionuntil APPROVED or CHANGES_REQUESTED, answering the navigator's comments on the PR like findings and re-asking after a round.merge-gate): after green checks and approval, in place ofgh pr merge; the bead is parked withhumanand a## Ready to mergenote, the claim released, the pass ended; the navigator merges and closes, or unparks and the next producer finishes.fix-bugfollows, its plan gate being the reproduction test and the intended fix.scripts/agent-state's phase table names the three gate words. The routing table gains "awaiting the navigator's merge". An absent key is today's fleet: no gate, no question.portable-snippets,state-contract-syncandtests/agent-state.shgreen. Changes what every consumer's producers and bugfixer do once the key is declared.🤖 Generated with Claude Code
https://claude.ai/code/session_01GKiLr59caM9f6DxkrsDYR8