Repository navigation
feat(planning): route by size and fog, with a mid-interview check and a ship-it exit - #7102
Conversation
… a ship-it exit The interview now checks at each round boundary for a worsened context-guard zone or more branches opened than closed, and recommends /planning:wayfind chart with the ledger, constraints, intake disclosure and glossary carried over. A "this is small, ship it" exit defers the open rows and hands off to implementation. The entry gate states why it is diff size and retry cost. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01L8KdG7fWg2YrErVYWtohmR
|
The lanes run once the PR is marked ready. That flip waits for Kyle, because it also starts the review lanes. Until then, the local runs listed under Verification in the PR body are the signal. Generated by Claude Code |
…ting point The "Routing by size and fog" section pushed interview SKILL.md to 510 lines, over check-skill's 500-line hard cap. Its body moves to context/routing.md behind a one-paragraph pointer, outside every digest-pinned section. The wayfind handoff named the intake starting-point disclosure, but the ledger had no place for it, so a /clear before /planning:wayfind chart lost it. The ledger template gains a "## Starting point" section and the handoff writes it before handing off; wayfind's chart step reads it. Ship-it now states the gates it keeps: the assumption sweep is skipped, the Step 3 confirmation still runs, deferred rows carry arbiter USER-RESERVED, and the Step 4 --brief cross-check must pass. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01L8KdG7fWg2YrErVYWtohmR
…ger repeating Ship-it now hands off by session kind (implement, design, general summary, or scope return) instead of always to /implementation:implement. The zone trigger fires on a zone worse than at entry and is not re-raised after a decline until it escalates. The ledger template's starting-point line is a placeholder, so no example disclosure reaches wayfind's Notes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01W6SjPvY7DmXBGzboeCq8nj
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
Claude finished @kyle-sexton's task in 1m 19s —— View job Security review complete
No security issues found. This PR only touches planning-skill prose ( Checked specifically for instruction-surface deletions (the instruction exception register classes:
No findings to post inline. claude-lane-summary: lane=claude-security-review sha=9dca6612e8adc53ec5cf8c1f71eeaa9467aca5d6 run=38341966346 |
|
Claude finished @kyle-sexton's task in 6m 37s —— View job Review complete
Scope note: This PR's body already discloses several known gaps (the Stance-section "one round vs. two rounds" mismatch, wayfind's no-fog bail-out vs. the zone-only trigger, the assumption-sweep skip list not naming ship-it). I didn't re-report those — they're not new information. I focused on what the author's own analysis hadn't covered. Finding (1 inline comment)
Everything else checked out: the register-gate interaction ( Not independently verified: I was not able to execute the shell test suites ( claude-lane-summary: lane=claude-review sha=9dca6612e8adc53ec5cf8c1f71eeaa9467aca5d6 run=38341966342 |
|
claude-security-review has reviewed this pull request through 4c550bb; a later push is reviewed from there. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 9dca6612e8
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
claude-review has reviewed this pull request through 4c550bb; a later push is reviewed from there. |
…ip the sweep in the checklist The fog trigger counts the branches a round's answers exposed, since a new branch gets its register row only when asked. The ship-it handoff lists the deferred rows, because /planning:plan's approval gate does not run on that path. The ledger checklist records that a ship-it exit skips the assumption sweep. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01W6SjPvY7DmXBGzboeCq8nj
|
Claude finished @kyle-sexton's task in 52s —— View job Security review complete
No security issues found. Scope: incremental — only the diff since
Instruction-surface deletion check: neither hunk deletes, narrows, or softens a standing instruction — both add new constraints/specificity on top of existing gates (the Step 3 confirmation gate and Step 4 No findings to post inline. claude-lane-summary: lane=claude-security-review sha=2548d6dbcdf77c567e282b013d8ef20cb8d96014 run=38342698080 |
|
Claude finished @kyle-sexton's task in 2m 43s —— View job Review complete
Scope: incremental, last reviewed at This diff is a targeted set of fixes responding to three earlier review comments:
I checked each fix against the surrounding unchanged text it interacts with (the Step 2/3 register-recap restatement, the scope/general/Brief deferred-row listing in the untouched lines 70-77, the skip-criteria list's other bullets) and didn't find a new inconsistency or logic gap introduced by this diff. No findings to report. claude-lane-summary: lane=claude-review sha=2548d6dbcdf77c567e282b013d8ef20cb8d96014 run=38342698064 |
…ext size alone A worsened context zone with no fog now recommends /session-flow:handoff; /planning:wayfind is recommended only when two rounds running open more branches than they close, so wayfind's too-big AND foggy stop rule holds. The ledger checklist gains the round-boundary check. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01W6SjPvY7DmXBGzboeCq8nj
|
Claude finished @kyle-sexton's task in 53s —— View job Security review complete
No security issues found. Scope: incremental, three files, all prose-only planning-skill content — no executable code, no secret handling, no auth/access-control logic, no injection surface:
Instruction-surface deletion check: this redirects a routing recommendation between two downstream skills; it doesn't delete, narrow, or soften any standing instruction. The "never switch on your own" rule (model only recommends, user decides) is preserved verbatim in both the old and new text, so there's no No findings to post inline. claude-lane-summary: lane=claude-security-review sha=4c550bbda42c1c39f6aecc8d916fee0960074f1c run=38346331131 |
|
Claude finished @kyle-sexton's task in 5m 4s —— View job Review complete
Scope: incremental, last reviewed at This diff implements the owner's resolution (option a, per the 04:24:58 review-comment thread) to the zone-vs-fog conflict Codex and kyle-sexton raised earlier: a context-zone-only trigger now recommends the interview's own I checked this against the pieces it has to stay consistent with:
I didn't find a defect in this increment — it's a narrowly-targeted, internally consistent fix for exactly the conflict it says it fixes, and I couldn't construct a scenario where the new routing produces a wrong or contradictory recommendation. Not independently verified: sandbox tool-approval blocked running No findings to report. claude-lane-summary: lane=claude-review sha=4c550bbda42c1c39f6aecc8d916fee0960074f1c run=38346331130 |
Requested by Kyle · project thread
Closes #6729
Summary
Before: the interview already skipped a quick-to-review, cheap-to-retry diff and had a soft "ballooning frontier" cue toward
/planning:wayfind. It had no explicit check partway through, no way to say "this is small, ship it", and no statement of what the wayfind handoff carries.After: the interview has a "Routing by size and fog" section that points at a new
context/routing.md. At every round boundary it checks whether the work is bigger than it looked: the context-guard zone worsened, or two rounds running opened more questions than they closed. On a trigger it recommends/planning:wayfind chart, carrying over the ledger, constraints, intake disclosure and shorthand glossary. At any boundary the operator can say "this is small, ship it", and the model can propose it.Fix
interview/context/routing.md(new): the entry gate and its reason, the bigger-than-thought check and its two triggers, the handoff contents, and the ship-it exit. The zone trigger reads context-guard's report and writes no threshold, since the zones belong to context-guard.interview/SKILL.mdkeeps a## Routing by size and fogsection with a one-paragraph pointer, outside every digest-pinned section.interview/templates/checklist.md) gains a## Starting pointsection. The handoff writes the intake disclosure there before handing off, so a/clearbetween the two skills does not lose it. Wayfind chart step 1 seeds its Notes from the ledger's constraint ledger,## Starting pointline and shorthand glossary.deferred, with the reply as resolution;### Deferred questionstaggedarbiter: USER-RESERVED;--briefcross-check must exit 0;/implementation:implement.planning(minor).Already in place, so unchanged: the "tiny, reviewable, cheap-to-retry diff skips the interview" gate and "What this skill does NOT do" text; wayfind's new-effort gate (a cold start is told to interview first); wayfind seeding from the ledger.
Defaults picked:
context/spoke.interview/SKILL.mdwas at the 500-line hard cap, andinterview-defenses.test.shpins the digests of the Action Router, Stance and "does NOT do" sections; recomputing a digest is attended-only. To fit the pointer, the session-config paragraph was unwrapped onto one line, with its wording unchanged.USER-RESERVEDbecause the handoff skips/planning:plan, so a/planning:planarbiter would never run.Left for Kyle (needs an attended digest change): the Stance section (
interview/SKILL.md"Question budget", about line 111) still says a single round that opens more branches than it closes is the wayfind signal. Its "Interview outgrew one session" bullet in the loop section says the same.context/routing.mdtreats one such round as noise and two running as the trigger. Aligning the pinned Stance text means recomputing its digest ininterview-defenses.test.sh, which an unattended run must not do.Ready-flip review (fresh-context, on the merged head): fixed in
a010901— ship-it now hands off by session kind (implement,/planning:designfor design-significant work, general summary,scopereturn); the zone trigger needs a zone worse than at entry and is not re-raised after a decline until it escalates; the ledger's## Starting pointline is a placeholder so no example reaches wayfind; deferredUSER-RESERVEDrows are stated as dropped by the user; "operator" made "user". Left open for Kyle:4c550bb: a worsened context zone with no fog recommends/session-flow:handoff;/planning:wayfind chartis recommended only on the fog trigger (two rounds running with more branches opened than closed), keeping wayfind's too-big AND foggy stop rule intact.interview/SKILL.md"Sweep for assumptions" skip list does not name the ship-it exit (routing.md and the ledger checklist do); the file sits at 499 of 500 lines.Bot review round fixed in
2548d6d: the branch trigger counts branches the answers exposed (register rows appear only when asked); the ship-it handoff lists the deferred rows; the ledger checklist records the ship-it sweep skip.Verification
At the ready-flip head (main merged):
check-affected.sh --tests7 passed, 2 skipped;interview-defenses.test.sh172 pass;check-skill.sh plugins/planning/skills12 passed; cross-plugin drift and shared-copies checks clean.At head
c5c4bf3:plugins/skill-quality/scripts/check-skill.sh plugins/planning/skills: 12 passed, 0 failed. Interview passes with 0 errors; itsSKILL.mdis 497 lines, and 499 when merged with currentmain.scripts/affected-tests.sh --base origin/main --run: all 5 selected suites pass, includinginterview-defenses.test.sh(172 pass, 0 fail) andcheck-open-questions.test.sh.node_modules/.bin/markdownlint-cli2on the changed files and the new spoke: 0 issues.scripts/check-changelog-fragments.sh --checkand--check-required origin/main: valid.scripts/check-changelog-parity.sh --check,--check-bump origin/mainand--check-preserved origin/main: pass.git merge-treeagainst currentmain, which now includes fix(planning): word interview questions so yes accepts the recommendation #7036: clean.Related
🤖 Generated with Claude Code
https://claude.ai/code/session_01L8KdG7fWg2YrErVYWtohmR
Generated by Claude Code
Generated by Claude Code