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
A living map of open work. Most items here are triaged decisions (deferred/declined with a documented trigger), not live backlog — so this issue, not the raw issue list, is the place to answer "where do I start?". Last updated 2026-08-11 (#85 closed — the 5f capture receipt shipped, v0.46.0; follow-up #87 added to Ready to build now. See the note on #81 below: its ba-propose Step 5f target was rewritten by this ship). Updated 2026-08-25 — #34 raised in the plan→execute lane: #92's brainstorm (ship-time ticket write-back) deliberately scoped plan-time write-back out and handed it to #34, which now owns every planning-time tracker write.
Evidence for the plan→execute thrust below:docs/research/2026-06-17-plan-execute-vs-ce-comparison.html — dev-workflow vs compound-engineering (ce-plan / ce-work).
🔭 Plan→execute evolution (current thrust — from the CE comparison)
Sequenced; the keystone (#31) shipped (#40, v0.27.0) — read-only plans + git-derived progress are now live. #33 (HTML output mode) shipped (PR #42, v0.30.0) — see Recently resolved.#27 (/ba:review-plan upgrade) shipped in v0.29.0 — see Recently resolved.
✅ Stacked-workflow support (#45 + #47) shipped — PR #51, v0.33.0. The new resolve-stack-base(git, opts) owned operation narrows <base> to the detected stack parent across execute / handoff / propose / review. See Recently resolved.
⬆️ Next up in this lane. Planning-time deferred-work capture — file a Linear ticket / plan deferred section (authoring-time only — #31 makes plans read-only). Widened 2026-08-25:#92 scoped plan-time write-back out, so this is now the sole owner of all planning-time tracker writes — deferred work and the Step 4.6 reconciliation ledger. Note its blocker: no ticket ID survives /ba-plan today (origin: is a brainstorm path), and Step 4.6 forbids tracker calls by name at skills/ba-plan/SKILL.md:510-511.
High (was Med) — stop losing deferred work you currently track by hand, and the only route by which a plan's narrowing reaches its ticket.
Reconsider the mandatory convention-compliance gate in /ba:plan.
—
➡️ superseded by #58 (model-fit lane) — the tradeoff now has external evidence.
Parked / not-doing: parallel worktree execution (Low — your call) · post-deploy-monitoring in /ba:propose (Low) · non-software planning path (dropped, not relevant).
✅ Ready to build now
#41 shipped (see Recently resolved). Of the two follow-ups it surfaced, #71 shipped narrowed and is closed (v0.40.0, PR #73 — see Recently resolved) and #72 (ba-execute has no failure branch for an explicitly-provided missing path) is still open and unlaned.
Independent — take any: #87 (presence-only CI pin for /ba-propose's six-value capture-receipt enum — the follow-up #85 deferred; rubric-mirror is the precedent shape, and #82 is adjacent work in the same script), #79 (two parts: a live resolve-stack-base bug making every non-stacked repo report ambiguous, plus letting ba-execute's menu invoke /ba-propose instead of printing it), #60 (audit reviewer dispatch prompts for recall-suppressing language), #83 (range/list line-anchors silently dropped by the review validator — affects all eight reviewers, surfaced by #55's dry-run; overlaps #69 and arguably belongs with #61). #59 is closed — both slices shipped (see Recently resolved). Its unfinished scope is #81, which is needs-brainstorm, not ready work: one of its three targets (ba-propose Step 5f) is pick-up-able, the other two are blocked on the always-reached problem. #65 shipped and is closed (v0.40.1, PR #74 — see Recently resolved).
#79 is the cheapest item on this map — item 1 is a two-line fix to a wrong string comparison, and its blast radius is all four resolve-stack-base consumers. Item 2 is small but revises CLAUDE.md's disable-model-invocation criterion, which #71 established; read that criterion before starting.
#64 shipped (see Recently resolved). The mirror-site check it might have supplied was dropped during planning, since CLAUDE.md's convention prose is not machine-readable — still a separate, undecided question.
The plan→execute items (#34, #36, #37) still need a brainstorm first; #38 is superseded by #58. #24 was deferred 2026-07-06 (see Deferred).
🤖 Autonomy chain (north-star — sequenced; start at the substrate)
#10 → #9 → independent validator → #19. Don't start at #19 (unshaped) or the validator (needs the autonomous path to exist first).
Autonomous MR lifecycle orchestrator (/ba:autopilot) — umbrella; needs its own brainstorm.
🧠 Knowledge compounding (cluster:compound)
/ba:compound works when run, but only runs when typed by hand — so compounding opportunities are lost. This lane fixes triggering first, then hardens doc quality, with corpus maintenance deferred. Evidence: docs/research/2026-07-18-ba-compound-auto-trigger-and-ce-capture-research.md (mechanics + ce-compound comparison).
Fire at the right moment — dropped the auto-path confirmation friction and added an assessment-gated ship-time capture offer to /ba:propose. The felt problem; highest value.
/ba:compound-refresh — corpus maintenance (five-outcome Keep/Update/Consolidate/Replace/Delete). Deferred behind the capture-side work.
deferred
Sequence: #52 shipped → #53 next → #54 (healthier capture before maintenance).
🧩 Model fit (cluster:model-fit — new thrust, 2026-07-26)
Anthropic published new context-engineering guidance for the Claude 5 generation, and Every reported that Opus 5 broke their existing plugin workflows — the same class of artifact as this one. Their fix was deleting scaffolding, not adding it. This lane adapts the prompt surface. Evidence: docs/research/2026-07-26-opus5-context-engineering-fit-research.md (external sources linked inside).
Headline: /ba:plan runs four same-turn self-verification layers over a plan the same model just wrote — the exact pattern the Opus 5 guide says to remove — and the two largest commands are ~18k tokens each with 40–60% unreachable per run.
Successor to #59. ⚠️Its Step 5f premise is stale:#85 rewrote 5f (v0.46.0) — the predicate moved to 5e and 5f shrank to a one-branch consumer, so the ~150-line block this item sized is gone. Re-measure before picking it up. ba-propose Step 5f was pick-up-able; ba-review's Step 5 resolvers and ba-plan's templates are reached on every run, so relocating them adds weight — blocked on design, with a revisit trigger.
⬇️ Downgraded from High — slice 2 measured −544 est tok on a /ba-review run but +29 on every other session and +1536 on --persist. The win is real and small; the conditional path got worse.
Adopt effort as the cost lever + calibrate artifact length. Overlaps #36 (tiered review escalation) — effort is the control surface that item was reaching for.
Med
needs-brainstorm
Sequence: #60 next (#59 closed; its successor #81 needs a brainstorm first) → #62/#63/#61. #58 is on hold — the v0.36.0 harness runs went against its premise; see the counter-evidence comment there before starting it. #65 shipped (v0.40.1 — and its own comment thread now carries a third data point against#58's premise: the convention gate returned three real findings that changed the artifact). #64 shipped (see Recently resolved).
(Historical: the #41 → #59 sequencing debate is resolved — both shipped. #41 renamed the files, #59's slices then shrank them.)
Caveat carried by every item in this lane: prompt-only changes cannot be dry-run in a live session, and there is no eval harness, so each needs a fresh-session before/after.
/ba:polish v0 (browser polish command) — deferred until further notice (2026-07-06): no current need, worth questionable. Revisit only if a concrete need for a post-review browser-polish phase appears.
Review-completeness check (plan or MR-description source; #11 merged in) — revisit when review traffic shifts toward plan-linked self-authored diffs, or you want completeness on plan-less MRs. #35 resolved (verification model locked); not slice-aware; re-check coupling vs #31.
/ba:compound-refresh (corpus maintenance) — revisit when corpus drift/overlap becomes a felt cost (duplicate docs that mislead, stale learnings citing moved code); already close in a consuming repo. Behind #52/#53.
(research doc)
Pre-existing collapsed section — if real code review shows a higher rate. docs/research/2026-06-07-preexisting-finding-frequency-research.md
A3 behavioral reviewer-prompt fixtures — re-declined 2026-07-27; the prompt-edit-velocity trigger was consumed by #64. Remaining: C2 lands · contributors >1 · an observed regression incident. Stays a per-change method, not a suite.
/ba:review-plan's anchor grammar silently drops cross-unit findings (cluster:review-quality) — found by a live run on the #41 plan; overlaps #61, may fold into it
Verification-first investigation skill — factful "how does X work" reports via a claim/confidence ledger, evidence-type triangulation + adversarial critique→refine, evidence-before-theory discipline (cluster:research, new lane)
🗄️ Recently resolved
[roadmap] /ba-propose Step 5f is silently skipped; its own trace mechanism cannot detect the skip #85 — /ba-propose Step 5f (the ship-time /ba-compound capture offer) was specified as a required terminal step but routinely did not run, and its own trace mechanism could not witness the skip — the four 5f: capture offer suppressed — <reason> lines were printed by the very prose being skipped. The fire/suppress predicate now resolves in 5e and rides the success block as a third line, capture: <value>, over a closed six-value enum; 5f is a one-branch consumer (fire on judged-reusable, no-op otherwise). Step 5's completion invariant became the receipt printed, not 5f ran. Decided by a fixture A/B, and the instrument's limits are on the record: four arms, and the hoisted arm won as the only one where no cell had to improvise (0 improvisations at high confidence, against 9 at medium for the nearest arm) — but the fixtures did not reproduce the field skip (5f ran in all four baseline cells), so the run is evidence about receipt shape and emission and is silent on whether co-location prevents the skip. The pre-committed decision rule also proved unsatisfiable as written (one fixture's ground truth is the line's absence) and was rescored, with a fourth arm added by a user-approved decision round. Verified at runtime before merge, not just by grep: a real commit_push_create ship on a stacked branch printed the three-line receipt in the correct order with a valid enum value, and the retired token appeared nowhere. That dry-run's own vehicle — a note on how to read a local version-bump FAIL — shipped with it (PR docs(prompt-authoring): prevent a second bump from a version-bump FAIL #88, squashed in). An 8-reviewer review pass closed two High findings pre-merge, both drift: README.md claimed the disposition is always "the third line" (the unresolved-URL route legitimately makes it line 2, at three further sites), and the 5e sketch used a goto 5f_dispatch(decision=None) label defined nowhere. The 5e mirror list was also corrected to separate the two sites that restate the literals from the three that are pointers. Residuals, recorded not closed: the six literals are pinned by no CI check (→ [roadmap] Presence-only CI pin for /ba-propose's six-value capture-receipt enum #87); unavailable and suppressed — non-interactive remain unexercised by any fixture; 5f's offer branch (judged-reusable → AskUserQuestion → /ba-compound) was not exercised by the dry-run, which resolved judged-not-reusable; and whether hoisting prevents the skip is unfalsified in either direction and only accrues from field use. Learnings: docs/solutions/prompt-authoring/2026-08-11-absence-grep-proves-spelling-not-concept-removed.md — a full-token grep read green while the file still described the deleted machinery in other words. Also found incidentally: Step 2e's n/a enumeration for Proof: does not know about .claude/agent_docs/, so passive prose there falls through to pending. Shipped (v0.46.0, PR fix(ba-propose): report the capture disposition on every ship receipt #86, maind0e6b28).
[roadmap] Comment-quality review — dedicated agent vs. fold-in, seeded by the antirez comment taxonomy #55 — comment-quality review, resolved as a dedicated agent (not fold-in): ported the user-level reviewer in as the eighth built-in, on ~78% sole-attribution / 3.3% exact-anchor overlap across 36 production runs. Dropped from the port: the read-ordering rule (the original justification, and measured-unsupported), the verdict line, and the input-shape pass selector, whose single-symbol branch is unreachable once the sole consumer always supplies a multi-file diff. Also repaired a live routing bug — complexity-reviewer deferred comment findings to architecture-reviewer (where "comment" appears nowhere) and to a reviewer that did not exist. Landed narrowed, user-approved pre-plan: no /ba-review-plan roster row, since plan documents carry no code comments — /ba-review is eight, /ba-review-plan stays seven, asymmetry stated at the roster site and both docs, reachable via Adjust → Other. Verification is four fresh-session dry-runs, not a suite. The first silently dropped 6 of 10 findings on line-range anchors against a single-integer grammar — the highest-value six — mitigated in this agent and split out to [roadmap] Range and list line-anchors are silently dropped by the review validator #83, which affects all eight and is long-standing. A validation criterion was also found self-contradictory mid-flight (zero-comment diffs required findings-none, contradicting the retained missing-contract rule) and loosened. Residuals, recorded not closed: missing-contract findings ship structurally suppressed at confidence 50 against a Medium floor of 75 ([roadmap] /ba:review — recalibrate the "Med-conf-100" posting/apply filter for taste-domain reviewers #44's tier); the evidence corpus was collected at model: inherit while it ships model: sonnet; and reviewer counts across skills and docs stay hand-maintained literals behind no CI check. Shipped (v0.45.0, PR feat(ba-review): add comment-quality-reviewer as the eighth built-in reviewer #84, main6ced791).
[roadmap] Shrink the always-resident prompt surface in review.md and propose.md #59 — closed, both slices shipped. Slice 1 de-triplicated the dispatch templates, collapsed the rubric out of the 7 reviewer agents and purged maintenance chatter (−213 ln). Slice 2: extract ba-review's --persist run-artifact procedure into skills/ba-review/references/review-persist.md, behind two load sites gated on PERSIST=true. The repo's first skill-local reference and first bare-relative citation. The probe, not the shrink, was the deliverable: a pre-registered three-arm live harness (7 cells, 0 void) established that a bare-relative skill-local citation resolves to the skill-local path (arm A), that the file is genuinely not read on a run that skips the branch (arm B, 3/3, each cell having dispatched reviewers and reached Step 5 — which is what makes the zero mean "skipped" rather than "died early"), and that a missing reference file makes the run skip-and-continue without improvising a directory (arm C, 3/3). Landed narrowed, and the numbers are worse than the lane assumed: two of the three planned targets were dropped during planning once shown to be reached on every run, and the measured resident saving is 70161 → 67641 bytes (~3.6%) while a --persist run now costs ~1318 est tokens more than before — conditionality bought at a cost on the conditional path. Also disclosed: the brainstorm's "exactly one load site per region" lock was overridden to two (to preserve the pre-reviewer ^C affordance), and an acceptance criterion was found self-contradictory mid-flight and re-anchored. Residuals, recorded not closed:--plugin-dir collapses plugin-root onto cwd, so this does not generalise to an installed plugin; and there is no regression detector — nothing re-verifies the Read on future runs, so re-run arms A and B on any model bump touching /ba-review. Found incidentally and split out to [roadmap] Fix resolve-stack-base's origin/HEAD exclusion; make /ba-propose invokable from ba-execute's menu #79: resolve-stack-base never excludes origin/HEAD. Unfinished scope moved to [roadmap] Finish the prompt-surface shrink: propose.md 5f, and two targets blocked on always-reached design #81. Shipped (v0.43.0, PR refactor(ba-review): stop loading persist prose on non-persist runs #78); issue closed 2026-08-09.
[roadmap] /ba:plan writes the plan to disk before the pre-write gate #65 — /ba-plan wrote the plan to disk before its own pre-write gate (Step 5). The step order was already correct; the prose contradicted itself, and in three places rather than the two the issue named — Step 4's bare "Write the plan", and Step 5 item 5's "Append compliance summary to the plan's end (as before)", which instructed an append to a file the same step forbids writing. Four wording edits, no new mechanism. Step 7 names Steps 5 and 6, not just 5: review caught that Step 6 also mutates the draft pre-write, so naming only 5 would license writing at 5's end. Shipped without a plan or a brainstorm artifact — it collapsed to +8 −6 across 4 files and the commit message carries the rationale. CLAUDE.md and README.md were amended to stop overclaiming: the gate convention stands, but only ba-plan enforces the ordering and ba-brainstorm is now named as known debt (its Phase 3 writes, then Phase 3.5 gates). Verification is a null, and a new kind: a two-arm live-harness dry run looked directional (baseline wrote at +125s, treatment wrote nothing) but neither arm ran Step 5 — the caller's global CLAUDE.md suppressed the subagent dispatch in both arms, symmetric so it left no asymmetry to spot, and claude -p exposes no AskUserQuestion. The baseline also never reproduced the bug, so the floor effect was confirmed rather than merely predicted. The coherence half needed no run; the sequencing claim is unverified and the commit message makes none. Learnings: docs/solutions/prompt-authoring/2026-07-31-global-instructions-replace-the-step-under-test.md — the third instrument-failure axis (subject substitution, vs. context and mechanism/filesystem). Shipped (v0.40.1, PR fix(ba-plan): remove the write-early contradiction around the pre-write gate #74, main135be88).
[roadmap] ba-plan's description is a capability blurb, and it is now model-invocable #71 — trigger-scope the three model-invocable skill descriptions (ba-plan, ba-review-plan, ba-compound — the only three omitting disable-model-invocation: true, so the only three a model can fire autonomously). Each gained a three-part shape: what it produces, an enumerated "Use when …" list, a shedding clause. ba-review-plan also discloses its in-place plan-file write in the description; its newest-file auto-detect hazard moved into the body, where the post-invocation behavior it describes actually lives. Landed narrowed: the issue's third bullet (rewrite all nine) was dropped — confirmed under the harness that the model-visible listing contains only those three, so the other six cannot affect triggering. Verification substituted, and it is a null: the mandated fixture A/B was declined (it scores post-invocation body behavior; triggering is a pre-invocation picker decision, and its global-CLAUDE.md confound biases both arms toward the treatment) in favour of a 36-session live-harness probe. The baseline never false-fired (0/3 on every ambiguous cue) — a floor effect, so the false-firing claim is not made; true-positive firing held or rose, and a FAST-TRACK-shaped cue went 2/3 → 3/3. Also fixed, found by this branch's own handoff refusing at runtime: three menu branches told the model to invoke a flagged skill (ba-execute → /ba-review, → /ba-propose; ba-plan → /ba-execute), and CLAUDE.md's flag criterion was corrected — it now turns on whether the caller must invoke the target to continue its own run, since an end-of-run handoff menu is not an in-run continuation. Learnings: docs/solutions/prompt-authoring/2026-07-31-probe-instrument-validation-false-zeros.md. Shipped (v0.40.0, PR fix(skills): bound when ba-* skills fire, and fix three dead handoffs #73, main4fe2c27).
[roadmap] Migrate dev-workflow commands → skills (/ba-<name>) #41 — migrate the nine commands to plugin skills: commands/ba/<n>.md → skills/ba-<n>/SKILL.md, invoked /ba-<n>. Claude Code 2.1.216 stopped resolving the directory-derived ba: namespace, so the short form returned Unknown command and nothing the plugin could ship restored it; the ba identity moved into the skill name (hyphen, never a colon — a colon is upstream's parser to redefine, and colons break Windows paths). All nine renames at 92–98% similarity. disable-model-invocation: true on the six non-dispatch-targets, omitted on the three another skill invokes. references/ stays repo-root and shared, with skill bodies anchored to ${CLAUDE_PLUGIN_ROOT}/references/… — which also fixed a pre-existing latent bug where the bare path only resolved when cwd happened to be this repo. A fourth standing invariant (retired-invocations) now fails on any reintroduction of the colon form outside docs/, with file:line; selfcheck 25 → 34 cases. docs/ deliberately untouched (~2400 historical occurrences are the record of what these were called when written). Every acceptance criterion verified at runtime via claude --plugin-dir ., including the ba-plan → ba-review-plan --auto dispatch and its [AUTO-SCORE: …] sentinel parse — see the issue for the probe table. An 8-reviewer review pass caught one Critical (CLAUDE.md claimed CI enforced the name:-equals-basename rule; no check does) and two High, all fixed pre-merge; CLAUDE.md ended 13 lines lighter than before the review. Follow-ups [roadmap] ba-plan's description is a capability blurb, and it is now model-invocable #71, [roadmap] ba-execute has no defined failure branch for an explicitly-provided missing plan path #72. Shipped (v0.39.0, PR fix: make the nine ba workflows invocable again as /ba-<name> skills #70, mainc65387c).
[roadmap] /ba:review-plan recommendations ignore the plan's own scope exclusions #66 — /ba:review-plan scope-exclusion anchor: Step 5 now treats a fix that edits/narrows/qualifies the plan's own ## What We're NOT Doing section as a spec decision regardless of severity bucket, routed through the existing Decide-now/Iterate-the-plan pair, quoting the exclusion verbatim. Narrowed during a fixture A/B (docs/research/2026-07-28-review-plan-scope-anchor-ab-research.md): a second, more ambitious trigger ("resolution requires arguing a remedy doesn't cross an exclusion," without editing the exclusion text) was tested and dropped as unproven prompt weight — it showed no separation from main across three fixture attempts. Covers the literal incident (exclusion text rewritten to pre-justify a fix); the subtler "argues around it" shape stays open — see the issue's closing comment. Shipped (v0.38.0, PR fix(review-plan): don't silently cross a plan's stated exclusions #68).
[roadmap] Structural assertions for cross-file invariants #64 — structural assertions for cross-file invariants: scripts/check-invariants.mjs (three checks — cross-command [AUTO-SCORE: …] sentinel agreement with fence-scoped heredoc pairing, references/*.md load-site resolution, .claude-plugin/plugin.json version-bump discipline), each a tri-state PASS/FAIL/UNKNOWN verdict with subject count + reason so a vacuous-empty subject set can never read as green. scripts/selfcheck-invariants.mjs (25 cases) exercises every FAIL/UNKNOWN branch against ephemeral os.tmpdir() trees. .github/workflows/invariants.yml runs both on push to main and on pull_request — the repo's first executable code and first CI. Rescoped from 5 checks to 3 during planning (two were vacuous/red at HEAD — see the issue for the dropped-checks findings). Code review surfaced and fixed two real bugs pre-merge (heredoc terminator double-count across a shared fence; a closing fence accepted past CommonMark's 0-3-space indentation cap). Shipped (v0.37.0, PR feat: catch cross-file convention breaks via CI #67, main9fab557).
[roadmap] /ba:review — Apply all dispositions (collapse per-finding confirmation loop) #43 — /ba:review collapse the per-finding confirmation loop: replaced the "Apply all fixes" resolution option with "Accept all recommendations" (final label — "dispositions" dropped as user-facing jargon), which executes each finding's recommended disposition (apply recommended-Apply, skip recommended-Skip, pause only at recommended-Modify) with a single confirmation. Reuses the existing reconciliation + verify-then-keep guard; own-MR top-menu shortcut swap; confidence filter retained as the severity escape hatch. Shipped (v0.32.0, PR feat(review): accept all reviewer recommendations in one step #50).
[roadmap] HTML output mode for plans (executable, agent-consumable) #33 — HTML output mode for plans + brainstorms: single self-contained .html artifact, visible-text header as frontmatter equivalent, <article id="u<n>"> unit cards (id on container, not heading tag), named HTML conformance preflight (3-signal conjunction) cited by all three consumers (execute / review-plan / handoff), references/html-rendering.md + per-command section contracts. Extension-first routing; md vs html guidance in README. Shipped (v0.30.0, PR feat: add HTML output mode for /ba:plan and /ba:brainstorm #42).
Bring /ba:review-plan up to parity with /ba:review #27 — /ba:review-plan parity with /ba:review: dropped external discovery; ported the judged selection ledger (re-keyed to plan sections / ### U<n> / keyed AC<n>), per-finding confidence + soft gate (Must-Address ≥50, Consider ≥75) + Suppressed bucket, and the parse→validate→group→merge→gate→render pipeline. The inline-vs-lean fork resolved to hybrid: a self-suppressing section-scoring auto-score runs at the end of /ba:plan (Step 7) via --auto + an [AUTO-SCORE: …] verdict sentinel, while the standalone command stays lean. Shipped (v0.29.0).
Newly visible after #41 (2026-07-30), updated 2026-07-31: three items converged on how a plan gets selected and executed — #65 (a plan reaches disk ungated), #71 (ba-plan is now model-invocable, so a plan can be generated unbidden), #72 (ba-execute has no failure branch for an explicit path that does not exist, adjacent to the auto-detect it would otherwise fall through to). All three terminate at the same mechanism: ba-execute auto-detects the most recent plan_schema: 2 file in docs/plans/.
#71 shipped without touching that mechanism (consumer-side hardening was scoped out, user-approved), so the convergence is unchanged by it — the question of whether these are three tickets or one is still open, now over #65 + #72 + #71's residual. Note the residual needs a joint call with the shipped plan-gate work (#65 / PR #74 — its reasoning is recorded in the commit message and the issue's closing comment; the brainstorm artifact was deliberately deleted before merge, so do not look for it under docs/brainstorms/). #65 declines consumer-side guards on reasoning that does not cover #71's case: "if the ordering invariant holds, no ungated plan exists to detect" is silent on a spuriously triggered ba-plan, which produces a fully gated, well-formed plan. Both threads decline the guard by pointing at the other's threat model, and now that #65 has shipped without it, the union still leaves it open — with #72 as the third arm.
Labels: ready · deferred · declined · needs-brainstorm, plus cluster:autonomy | polish | review-quality | infra | compound | model-fit | research. Filter the issue list by these to slice this map.
A living map of open work. Most items here are triaged decisions (deferred/declined with a documented trigger), not live backlog — so this issue, not the raw issue list, is the place to answer "where do I start?". Last updated 2026-08-11 (#85 closed — the 5f capture receipt shipped, v0.46.0; follow-up #87 added to Ready to build now. See the note on #81 below: its
ba-proposeStep 5f target was rewritten by this ship). Updated 2026-08-25 — #34 raised in the plan→execute lane: #92's brainstorm (ship-time ticket write-back) deliberately scoped plan-time write-back out and handed it to #34, which now owns every planning-time tracker write.🔭 Plan→execute evolution (current thrust — from the CE comparison)
Sequenced; the keystone (#31) shipped (#40, v0.27.0) — read-only plans + git-derived progress are now live. #33 (HTML output mode) shipped (PR #42, v0.30.0) — see Recently resolved. #27 (
/ba:review-planupgrade) shipped in v0.29.0 — see Recently resolved./ba-plantoday (origin:is a brainstorm path), and Step 4.6 forbids tracker calls by name atskills/ba-plan/SKILL.md:510-511./ba:review— size/sensitivity → depth./ba:plan.Parked / not-doing: parallel worktree execution (Low — your call) · post-deploy-monitoring in
/ba:propose(Low) · non-software planning path (dropped, not relevant).✅ Ready to build now
#41 shipped (see Recently resolved). Of the two follow-ups it surfaced, #71 shipped narrowed and is closed (v0.40.0, PR #73 — see Recently resolved) and #72 (
ba-executehas no failure branch for an explicitly-provided missing path) is still open and unlaned.Independent — take any: #87 (presence-only CI pin for
/ba-propose's six-value capture-receipt enum — the follow-up #85 deferred;rubric-mirroris the precedent shape, and #82 is adjacent work in the same script), #79 (two parts: a liveresolve-stack-basebug making every non-stacked repo reportambiguous, plus lettingba-execute's menu invoke/ba-proposeinstead of printing it), #60 (audit reviewer dispatch prompts for recall-suppressing language), #83 (range/list line-anchors silently dropped by the review validator — affects all eight reviewers, surfaced by #55's dry-run; overlaps #69 and arguably belongs with #61). #59 is closed — both slices shipped (see Recently resolved). Its unfinished scope is #81, which isneeds-brainstorm, not ready work: one of its three targets (ba-proposeStep 5f) is pick-up-able, the other two are blocked on the always-reached problem. #65 shipped and is closed (v0.40.1, PR #74 — see Recently resolved).#79 is the cheapest item on this map — item 1 is a two-line fix to a wrong string comparison, and its blast radius is all four
resolve-stack-baseconsumers. Item 2 is small but revisesCLAUDE.md'sdisable-model-invocationcriterion, which #71 established; read that criterion before starting.#64 shipped (see Recently resolved). The mirror-site check it might have supplied was dropped during planning, since
CLAUDE.md's convention prose is not machine-readable — still a separate, undecided question.The plan→execute items (#34, #36, #37) still need a brainstorm first; #38 is superseded by #58. #24 was deferred 2026-07-06 (see Deferred).
🤖 Autonomy chain (north-star — sequenced; start at the substrate)
#10 → #9 → independent validator → #19. Don't start at #19 (unshaped) or the validator (needs the autonomous path to exist first).
docs/research/2026-06-07-verify-fix-precondition-frequency-research.md/ba:autopilot) — umbrella; needs its own brainstorm.🧠 Knowledge compounding (
cluster:compound)/ba:compoundworks when run, but only runs when typed by hand — so compounding opportunities are lost. This lane fixes triggering first, then hardens doc quality, with corpus maintenance deferred. Evidence:docs/research/2026-07-18-ba-compound-auto-trigger-and-ce-capture-research.md(mechanics +ce-compoundcomparison)./ba:propose. The felt problem; highest value./ba:compound-refresh— corpus maintenance (five-outcome Keep/Update/Consolidate/Replace/Delete). Deferred behind the capture-side work.Sequence: #52 shipped → #53 next → #54 (healthier capture before maintenance).
🧩 Model fit (
cluster:model-fit— new thrust, 2026-07-26)Anthropic published new context-engineering guidance for the Claude 5 generation, and Every reported that Opus 5 broke their existing plugin workflows — the same class of artifact as this one. Their fix was deleting scaffolding, not adding it. This lane adapts the prompt surface. Evidence:
docs/research/2026-07-26-opus5-context-engineering-fit-research.md(external sources linked inside).Headline:
/ba:planruns four same-turn self-verification layers over a plan the same model just wrote — the exact pattern the Opus 5 guide says to remove — and the two largest commands are ~18k tokens each with 40–60% unreachable per run./ba:plan+/ba:execute. Subsumes #38 (that question's missing external evidence now exists).#59ba-proposeStep 5f was pick-up-able;ba-review's Step 5 resolvers andba-plan's templates are reached on every run, so relocating them adds weight — blocked on design, with a revisit trigger./ba-reviewrun but +29 on every other session and +1536 on--persist. The win is real and small; the conditional path got worse.legacy_format/mixed_formatsalvage counters are evidence the prose contract drifts).Sequence: #60 next (#59 closed; its successor #81 needs a brainstorm first) → #62/#63/#61. #58 is on hold — the v0.36.0 harness runs went against its premise; see the counter-evidence comment there before starting it. #65 shipped (v0.40.1 — and its own comment thread now carries a third data point against #58's premise: the convention gate returned three real findings that changed the artifact). #64 shipped (see Recently resolved).
(Historical: the #41 → #59 sequencing debate is resolved — both shipped. #41 renamed the files, #59's slices then shrank them.)
Caveat carried by every item in this lane: prompt-only changes cannot be dry-run in a live session, and there is no eval harness, so each needs a fresh-session before/after.
⏸️ Deferred — trigger-gated
/ba:polishv0 (browser polish command) — deferred until further notice (2026-07-06): no current need, worth questionable. Revisit only if a concrete need for a post-review browser-polish phase appears./ba:polishTier-2 platform map — after #24 ships and a consuming repo owns a map/ba:compound-refresh(corpus maintenance) — revisit when corpus drift/overlap becomes a felt cost (duplicate docs that mislead, stale learnings citing moved code); already close in a consuming repo. Behind #52/#53.docs/research/2026-06-07-preexisting-finding-frequency-research.md❌ Declined — revisit-gated
💭 Needs brainstorm (idea, not yet shaped)
/ba:review/ba:planconvention-compliance gate/ba:reviewMed-conf-100 posting/apply filter recalibration (taste-domain reviewers;cluster:review-quality)/ba:review-plan's anchor grammar silently drops cross-unit findings (cluster:review-quality) — found by a live run on the #41 plan; overlaps #61, may fold into it/ba:compounddoc-quality hardening — validators, track split, overlap-aware writes (cluster:compound)/ba:prove— screenshot evidence for the MR/ba:plan+/ba:execute(cluster:model-fit; subsumes #38)cluster:review-quality)cluster:model-fit)cluster:model-fit; overlaps #36)cluster:research, new lane)🗄️ Recently resolved
/ba-proposeStep 5f (the ship-time/ba-compoundcapture offer) was specified as a required terminal step but routinely did not run, and its own trace mechanism could not witness the skip — the four5f: capture offer suppressed — <reason>lines were printed by the very prose being skipped. The fire/suppress predicate now resolves in 5e and rides the success block as a third line,capture: <value>, over a closed six-value enum; 5f is a one-branch consumer (fire onjudged-reusable, no-op otherwise). Step 5's completion invariant became the receipt printed, not 5f ran. Decided by a fixture A/B, and the instrument's limits are on the record: four arms, and the hoisted arm won as the only one where no cell had to improvise (0 improvisations at high confidence, against 9 at medium for the nearest arm) — but the fixtures did not reproduce the field skip (5f ran in all four baseline cells), so the run is evidence about receipt shape and emission and is silent on whether co-location prevents the skip. The pre-committed decision rule also proved unsatisfiable as written (one fixture's ground truth is the line's absence) and was rescored, with a fourth arm added by a user-approved decision round. Verified at runtime before merge, not just by grep: a realcommit_push_createship on a stacked branch printed the three-line receipt in the correct order with a valid enum value, and the retired token appeared nowhere. That dry-run's own vehicle — a note on how to read a localversion-bumpFAIL — shipped with it (PR docs(prompt-authoring): prevent a second bump from a version-bump FAIL #88, squashed in). An 8-reviewer review pass closed two High findings pre-merge, both drift:README.mdclaimed the disposition is always "the third line" (the unresolved-URL route legitimately makes it line 2, at three further sites), and the 5e sketch used agoto 5f_dispatch(decision=None)label defined nowhere. The 5e mirror list was also corrected to separate the two sites that restate the literals from the three that are pointers. Residuals, recorded not closed: the six literals are pinned by no CI check (→ [roadmap] Presence-only CI pin for /ba-propose's six-value capture-receipt enum #87);unavailableandsuppressed — non-interactiveremain unexercised by any fixture; 5f's offer branch (judged-reusable→AskUserQuestion→/ba-compound) was not exercised by the dry-run, which resolvedjudged-not-reusable; and whether hoisting prevents the skip is unfalsified in either direction and only accrues from field use. Learnings:docs/solutions/prompt-authoring/2026-08-11-absence-grep-proves-spelling-not-concept-removed.md— a full-token grep read green while the file still described the deleted machinery in other words. Also found incidentally: Step 2e'sn/aenumeration forProof:does not know about.claude/agent_docs/, so passive prose there falls through topending. Shipped (v0.46.0, PR fix(ba-propose): report the capture disposition on every ship receipt #86,maind0e6b28).complexity-reviewerdeferred comment findings toarchitecture-reviewer(where "comment" appears nowhere) and to a reviewer that did not exist. Landed narrowed, user-approved pre-plan: no/ba-review-planroster row, since plan documents carry no code comments —/ba-reviewis eight,/ba-review-planstays seven, asymmetry stated at the roster site and both docs, reachable via Adjust → Other. Verification is four fresh-session dry-runs, not a suite. The first silently dropped 6 of 10 findings on line-range anchors against a single-integer grammar — the highest-value six — mitigated in this agent and split out to [roadmap] Range and list line-anchors are silently dropped by the review validator #83, which affects all eight and is long-standing. A validation criterion was also found self-contradictory mid-flight (zero-comment diffs required findings-none, contradicting the retained missing-contract rule) and loosened. Residuals, recorded not closed: missing-contract findings ship structurally suppressed at confidence 50 against a Medium floor of 75 ([roadmap] /ba:review — recalibrate the "Med-conf-100" posting/apply filter for taste-domain reviewers #44's tier); the evidence corpus was collected atmodel: inheritwhile it shipsmodel: sonnet; and reviewer counts across skills and docs stay hand-maintained literals behind no CI check. Shipped (v0.45.0, PR feat(ba-review): add comment-quality-reviewer as the eighth built-in reviewer #84,main6ced791).ba-review's--persistrun-artifact procedure intoskills/ba-review/references/review-persist.md, behind two load sites gated onPERSIST=true. The repo's first skill-local reference and first bare-relative citation. The probe, not the shrink, was the deliverable: a pre-registered three-arm live harness (7 cells, 0 void) established that a bare-relative skill-local citation resolves to the skill-local path (arm A), that the file is genuinely not read on a run that skips the branch (arm B, 3/3, each cell having dispatched reviewers and reached Step 5 — which is what makes the zero mean "skipped" rather than "died early"), and that a missing reference file makes the run skip-and-continue without improvising a directory (arm C, 3/3). Landed narrowed, and the numbers are worse than the lane assumed: two of the three planned targets were dropped during planning once shown to be reached on every run, and the measured resident saving is 70161 → 67641 bytes (~3.6%) while a--persistrun now costs ~1318 est tokens more than before — conditionality bought at a cost on the conditional path. Also disclosed: the brainstorm's "exactly one load site per region" lock was overridden to two (to preserve the pre-reviewer^Caffordance), and an acceptance criterion was found self-contradictory mid-flight and re-anchored. Residuals, recorded not closed:--plugin-dircollapses plugin-root onto cwd, so this does not generalise to an installed plugin; and there is no regression detector — nothing re-verifies the Read on future runs, so re-run arms A and B on any model bump touching/ba-review. Found incidentally and split out to [roadmap] Fix resolve-stack-base's origin/HEAD exclusion; make /ba-propose invokable from ba-execute's menu #79:resolve-stack-basenever excludesorigin/HEAD. Unfinished scope moved to [roadmap] Finish the prompt-surface shrink: propose.md 5f, and two targets blocked on always-reached design #81. Shipped (v0.43.0, PR refactor(ba-review): stop loading persist prose on non-persist runs #78); issue closed 2026-08-09./ba-planwrote the plan to disk before its own pre-write gate (Step 5). The step order was already correct; the prose contradicted itself, and in three places rather than the two the issue named — Step 4's bare "Write the plan", and Step 5 item 5's "Append compliance summary to the plan's end (as before)", which instructed an append to a file the same step forbids writing. Four wording edits, no new mechanism. Step 7 names Steps 5 and 6, not just 5: review caught that Step 6 also mutates the draft pre-write, so naming only 5 would license writing at 5's end. Shipped without a plan or a brainstorm artifact — it collapsed to +8 −6 across 4 files and the commit message carries the rationale.CLAUDE.mdandREADME.mdwere amended to stop overclaiming: the gate convention stands, but onlyba-planenforces the ordering andba-brainstormis now named as known debt (its Phase 3 writes, then Phase 3.5 gates). Verification is a null, and a new kind: a two-arm live-harness dry run looked directional (baseline wrote at +125s, treatment wrote nothing) but neither arm ran Step 5 — the caller's globalCLAUDE.mdsuppressed the subagent dispatch in both arms, symmetric so it left no asymmetry to spot, andclaude -pexposes noAskUserQuestion. The baseline also never reproduced the bug, so the floor effect was confirmed rather than merely predicted. The coherence half needed no run; the sequencing claim is unverified and the commit message makes none. Learnings:docs/solutions/prompt-authoring/2026-07-31-global-instructions-replace-the-step-under-test.md— the third instrument-failure axis (subject substitution, vs. context and mechanism/filesystem). Shipped (v0.40.1, PR fix(ba-plan): remove the write-early contradiction around the pre-write gate #74,main135be88).ba-plan,ba-review-plan,ba-compound— the only three omittingdisable-model-invocation: true, so the only three a model can fire autonomously). Each gained a three-part shape: what it produces, an enumerated "Use when …" list, a shedding clause.ba-review-planalso discloses its in-place plan-file write in the description; its newest-file auto-detect hazard moved into the body, where the post-invocation behavior it describes actually lives. Landed narrowed: the issue's third bullet (rewrite all nine) was dropped — confirmed under the harness that the model-visible listing contains only those three, so the other six cannot affect triggering. Verification substituted, and it is a null: the mandated fixture A/B was declined (it scores post-invocation body behavior; triggering is a pre-invocation picker decision, and its global-CLAUDE.mdconfound biases both arms toward the treatment) in favour of a 36-session live-harness probe. The baseline never false-fired (0/3 on every ambiguous cue) — a floor effect, so the false-firing claim is not made; true-positive firing held or rose, and a FAST-TRACK-shaped cue went 2/3 → 3/3. Also fixed, found by this branch's own handoff refusing at runtime: three menu branches told the model to invoke a flagged skill (ba-execute→/ba-review, →/ba-propose;ba-plan→/ba-execute), andCLAUDE.md's flag criterion was corrected — it now turns on whether the caller must invoke the target to continue its own run, since an end-of-run handoff menu is not an in-run continuation. Learnings:docs/solutions/prompt-authoring/2026-07-31-probe-instrument-validation-false-zeros.md. Shipped (v0.40.0, PR fix(skills): bound when ba-* skills fire, and fix three dead handoffs #73,main4fe2c27).commands/ba/<n>.md→skills/ba-<n>/SKILL.md, invoked/ba-<n>. Claude Code 2.1.216 stopped resolving the directory-derivedba:namespace, so the short form returnedUnknown commandand nothing the plugin could ship restored it; thebaidentity moved into the skill name (hyphen, never a colon — a colon is upstream's parser to redefine, and colons break Windows paths). All nine renames at 92–98% similarity.disable-model-invocation: trueon the six non-dispatch-targets, omitted on the three another skill invokes.references/stays repo-root and shared, with skill bodies anchored to${CLAUDE_PLUGIN_ROOT}/references/…— which also fixed a pre-existing latent bug where the bare path only resolved when cwd happened to be this repo. A fourth standing invariant (retired-invocations) now fails on any reintroduction of the colon form outsidedocs/, withfile:line; selfcheck 25 → 34 cases.docs/deliberately untouched (~2400 historical occurrences are the record of what these were called when written). Every acceptance criterion verified at runtime viaclaude --plugin-dir ., including theba-plan→ba-review-plan --autodispatch and its[AUTO-SCORE: …]sentinel parse — see the issue for the probe table. An 8-reviewer review pass caught one Critical (CLAUDE.mdclaimed CI enforced thename:-equals-basename rule; no check does) and two High, all fixed pre-merge;CLAUDE.mdended 13 lines lighter than before the review. Follow-ups [roadmap] ba-plan's description is a capability blurb, and it is now model-invocable #71, [roadmap] ba-execute has no defined failure branch for an explicitly-provided missing plan path #72. Shipped (v0.39.0, PR fix: make the nine ba workflows invocable again as /ba-<name> skills #70,mainc65387c)./ba:review-planscope-exclusion anchor: Step 5 now treats a fix that edits/narrows/qualifies the plan's own## What We're NOT Doingsection as a spec decision regardless of severity bucket, routed through the existing Decide-now/Iterate-the-plan pair, quoting the exclusion verbatim. Narrowed during a fixture A/B (docs/research/2026-07-28-review-plan-scope-anchor-ab-research.md): a second, more ambitious trigger ("resolution requires arguing a remedy doesn't cross an exclusion," without editing the exclusion text) was tested and dropped as unproven prompt weight — it showed no separation frommainacross three fixture attempts. Covers the literal incident (exclusion text rewritten to pre-justify a fix); the subtler "argues around it" shape stays open — see the issue's closing comment. Shipped (v0.38.0, PR fix(review-plan): don't silently cross a plan's stated exclusions #68).scripts/check-invariants.mjs(three checks — cross-command[AUTO-SCORE: …]sentinel agreement with fence-scoped heredoc pairing,references/*.mdload-site resolution,.claude-plugin/plugin.jsonversion-bump discipline), each a tri-state PASS/FAIL/UNKNOWN verdict with subject count + reason so a vacuous-empty subject set can never read as green.scripts/selfcheck-invariants.mjs(25 cases) exercises every FAIL/UNKNOWN branch against ephemeralos.tmpdir()trees..github/workflows/invariants.ymlruns both on push tomainand onpull_request— the repo's first executable code and first CI. Rescoped from 5 checks to 3 during planning (two were vacuous/red at HEAD — see the issue for the dropped-checks findings). Code review surfaced and fixed two real bugs pre-merge (heredoc terminator double-count across a shared fence; a closing fence accepted past CommonMark's 0-3-space indentation cap). Shipped (v0.37.0, PR feat: catch cross-file convention breaks via CI #67,main9fab557)./ba:compoundship-time capture (triggering-only slice): stripped the inert auto-trigger block + Step 0 friction gate fromcompound.md; added an assessment-gated, lean-silent ship-time capture offer as a terminal Step 5f in/ba:propose(after a successful create only) that offers to run/ba:compoundon the just-shipped learning; corrected the README/CLAUDE auto-trigger claims and documented the/ba:compoundhand-off exception. Host = propose only; nudge → single accept; human gate kept. Shipped (v0.34.0,main579f12b). Next in lane: [roadmap] /ba:compound — doc-quality hardening (validators, track split, overlap-aware writes) #53 (doc-quality hardening).resolve-stack-base(git, opts) → resolutionowned operation inexecute.md(sibling to the U-ID convention) narrows<base>to the detected stack parent by window-narrowing — fixing the U-ID subject-scan collision that silently skipped units on resume/handoff ([ba:execute] U-ID collisions across stacked plans break the subject-scan resume tier #45) and/ba:propose's always-target-mastermis-scope/mis-target ([ba:propose] Stack-aware MR targeting — default to the parent branch, not master, for stacked MRs #47). Consumed by execute / handoff / propose / review via injectedhost_signal(propose only); no change to the U-ID commit-subject grammar; own 4-site citation axis rendered as a 2-axis grid in CLAUDE.md. Shipped (v0.33.0, PR feat: correct /ba:* base resolution on stacked branches #51)./ba:reviewcollapse the per-finding confirmation loop: replaced the "Apply all fixes" resolution option with "Accept all recommendations" (final label — "dispositions" dropped as user-facing jargon), which executes each finding's recommended disposition (apply recommended-Apply, skip recommended-Skip, pause only at recommended-Modify) with a single confirmation. Reuses the existing reconciliation + verify-then-keep guard; own-MR top-menu shortcut swap; confidence filter retained as the severity escape hatch. Shipped (v0.32.0, PR feat(review): accept all reviewer recommendations in one step #50)./ba:proposeapply-by-default: propose now applies without the Step 4 confirm by default;--review/BA_PROPOSE_REVIEW=1restores the confirmation gates (the opt-in was inverted from the original--yesdesign). Shipped (v0.31.0, PR feat(propose): default to apply, surface proof/risk/where-to-look #49)..htmlartifact, visible-text header as frontmatter equivalent,<article id="u<n>">unit cards (id on container, not heading tag), named HTML conformance preflight (3-signal conjunction) cited by all three consumers (execute / review-plan / handoff),references/html-rendering.md+ per-command section contracts. Extension-first routing; md vs html guidance in README. Shipped (v0.30.0, PR feat: add HTML output mode for /ba:plan and /ba:brainstorm #42)./ba:review-planparity with/ba:review: dropped external discovery; ported the judged selection ledger (re-keyed to plan sections /### U<n>/ keyedAC<n>), per-finding confidence + soft gate (Must-Address ≥50, Consider ≥75) + Suppressed bucket, and theparse→validate→group→merge→gate→renderpipeline. The inline-vs-lean fork resolved to hybrid: a self-suppressing section-scoring auto-score runs at the end of/ba:plan(Step 7) via--auto+ an[AUTO-SCORE: …]verdict sentinel, while the standalone command stays lean. Shipped (v0.29.0).agents/namespace: 17 agents moved toagents/flat, dispatch qualified todev-workflow:<name>across all command files. Shipped (v0.28.0).plan_schema: 2hard cutover + U-ID/derive-statehybrid resume (single convention owner inexecute.md, cited by plan/propose/handoff) + deviations viaDeviation (U<n>):trailers rolled up by/ba:propose+ Step 1.5 retired + [roadmap] Reconcile Behaviors-to-Test vs Acceptance Criteria in plans #35's remainder folded in. Unblocks [roadmap] HTML output mode for plans (executable, agent-consumable) #33.## Acceptance Criteria+ per-unitTest scenarios:+ per-unitVerify:as sole done-authority —docs/brainstorms/2026-06-21-reconcile-acceptance-verification-schema-brainstorm.md); keyed-AC slice shipped (0.26.0), remainder shipped with [roadmap] Decouple plan-state from the plan file (stable U-IDs + code-derived progress) #31 in refactor: decouple /ba:execute state from the plan file into git #40 (0.27.0)./ba:slice+ the plan-LoC iteration gate removed. Shipped (convention-gate question split to [roadmap] Reconsider the mandatory convention-compliance gate in /ba:plan #38)./ba:plandefaults to decisions; literal code only under a**Code-shape decision:**label. Shipped (0.24.0)./ba:reviewown-MR resolution pipeline (route → walk → guard, items 5–7). Shipped./ba:reviewautomation items 1–4: Item 1 shipped, 2 & 3 deferred (research-backed), Item 4 declined. Downstream 5–7 → [roadmap] /ba:review own-MR resolution pipeline — route → walk → guard (items 5/6/7) #28 (shipped).🧭 Where to start — pick a lane
/ba-proposeinvocation annoyance) or [roadmap] review-plan's anchor grammar silently drops cross-unit findings #69 (/ba-review-plan's anchor grammar drops cross-unit findings). [roadmap] /ba:plan writes the plan to disk before the pre-write gate #65 shipped and closed (v0.40.1, PR fix(ba-plan): remove the write-early contradiction around the pre-write gate #74) — but note what it did not close: it fixed the producer side by rewording, and consumer-side hardening was scoped out, user-approved. Soba-execute's auto-detect of the most recentplan_schema: 2file indocs/plans/is untouched, and both [roadmap] ba-plan's description is a capability blurb, and it is now model-invocable #71's and [roadmap] /ba:plan writes the plan to disk before the pre-write gate #65's residual hazards still terminate thereba-proposeStep 5f — genuinely branch-conditional, so the slice-2 mechanism fits it as-is). [roadmap] Finish the prompt-surface shrink: propose.md 5f, and two targets blocked on always-reached design #81's other two need a design that restores conditionality without splitting a region across files/ba-plancarries no ticket binding and Step 4.6 forbids tracker callsNewly visible after #41 (2026-07-30), updated 2026-07-31: three items converged on how a plan gets selected and executed — #65 (a plan reaches disk ungated), #71 (
ba-planis now model-invocable, so a plan can be generated unbidden), #72 (ba-executehas no failure branch for an explicit path that does not exist, adjacent to the auto-detect it would otherwise fall through to). All three terminate at the same mechanism:ba-executeauto-detects the most recentplan_schema: 2file indocs/plans/.#71 shipped without touching that mechanism (consumer-side hardening was scoped out, user-approved), so the convergence is unchanged by it — the question of whether these are three tickets or one is still open, now over #65 + #72 + #71's residual. Note the residual needs a joint call with the shipped plan-gate work (#65 / PR #74 — its reasoning is recorded in the commit message and the issue's closing comment; the brainstorm artifact was deliberately deleted before merge, so do not look for it under
docs/brainstorms/). #65 declines consumer-side guards on reasoning that does not cover #71's case: "if the ordering invariant holds, no ungated plan exists to detect" is silent on a spuriously triggeredba-plan, which produces a fully gated, well-formed plan. Both threads decline the guard by pointing at the other's threat model, and now that #65 has shipped without it, the union still leaves it open — with #72 as the third arm.Labels:
ready·deferred·declined·needs-brainstorm, pluscluster:autonomy | polish | review-quality | infra | compound | model-fit | research. Filter the issue list by these to slice this map.