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
#443 was filed on 2026-08-03 and its file:line cites were taken against the tree of that day. Almost none of them still land on what they name, and one count contradicts the issue's own removal list a few lines below it. #443 is the design-of-record for shape (1) of the repo_root != project work, so whoever implements it will resolve these cites first — and a stale cite that lands on real code is the failure mode conventions.md calls out, because it survives a spot-check.
Resolved by symbol against main @ 1a3d358b.
"all five of its call sites" enumerates a different five
The body says landing #443 deletes bmadconfig.worktree_isolation_conflict "and all five of its call sites", then names them as _reject_isolation_conflict at cmd_run/cmd_sweep/_resume_paused_run, the RuntimeError in the sweep factory, and the cmd_validate finding.
The actual five callers are cli.py:197 (inside _reject_isolation_conflict itself), cli.py:369 (cmd_validate), cli.py:1081 (_warn_preflight_would_abort), cli.py:2185 (the sweep factory), and tui/app.py:222 (_guarded). The parenthetical counts _reject_isolation_conflict's three callers (cli.py:1843, :2244, :2414) as three sites and omits _warn_preflight_would_abort and the TUI — both of which get their own removal bullets immediately below. This is the one genuinely miscounted number in the body.
"probed under project" is imprecise. The body says skill trees and _bmad/custom/ overrides are "probed under project" by missing_base_skills / resolve_review_layers. Those functions take whichever root the caller passes: worktree_flow.py:98 and :111 call resolve_review_layers(repo_root, tree), and base_skills_seed_incomplete(worktree, repo_root, trees) probes repo_root. Only the preflight is project-rooted. The current wording reads as though the functions are inherently project-rooted.
"Coverage gap to close" was narrowed by PR fix(verify): run review-gate commands in repo_root; spare an empty-proof park #742. It says the refusal's tests "construct the divergent pair but stop at the refusal". tests/test_verify.py:2692 (test_verify_review_gates_run_commands_in_repo_root) and the rows after it now go past it, built with dataclasses.replace(project, repo_root=…) — the house idiom an implementer of shape (1) would reuse. The provisioning gap the section describes is still real; the sentence is just no longer the whole picture.
Suggested fix
Re-resolve every cite by symbol and correct the five-call-sites parenthetical. Related to #551, which is blocked behind #443 and quotes some of the same cites in its answer.
#443 was filed on 2026-08-03 and its
file:linecites were taken against the tree of that day. Almost none of them still land on what they name, and one count contradicts the issue's own removal list a few lines below it. #443 is the design-of-record for shape (1) of therepo_root != projectwork, so whoever implements it will resolve these cites first — and a stale cite that lands on real code is the failure modeconventions.mdcalls out, because it survives a spot-check.Resolved by symbol against
main@1a3d358b."all five of its call sites" enumerates a different five
The body says landing #443 deletes
bmadconfig.worktree_isolation_conflict"and all five of its call sites", then names them as_reject_isolation_conflictatcmd_run/cmd_sweep/_resume_paused_run, theRuntimeErrorin the sweep factory, and thecmd_validatefinding.The actual five callers are
cli.py:197(inside_reject_isolation_conflictitself),cli.py:369(cmd_validate),cli.py:1081(_warn_preflight_would_abort),cli.py:2185(the sweepfactory), andtui/app.py:222(_guarded). The parenthetical counts_reject_isolation_conflict's three callers (cli.py:1843,:2244,:2414) as three sites and omits_warn_preflight_would_abortand the TUI — both of which get their own removal bullets immediately below. This is the one genuinely miscounted number in the body.Stale cites
cli.cmd_validate'sverify.worktree_clean(project)—cli.py:268cli.py:423(def:316);cli.py:268is an unrelatedresolve_profiles/ProfileErrordocstringworktree_flow.py389, 613, 730merge_local:1852,gc_run_worktrees:2251,discard_worktree:2266sweep.py:666discard_worktree:847,worktree_clean:882and:1426recovery_flow.py:172:828cli.pyclean-tree gates — 1023, 1261:1860,:2247_reconcile_stale— 179:301, calls:1867and:2254--reverify— 1813, 1855_reverifydef:2927, calls:3026and:3068verify.commit_paths(paths.repo_root, …)atcli.py:3211, in_land_confirmation(def:3161)cmd_clean— 2385:3720load_paths' config requirement —bmadconfig.py:72-74:188-190;:72-74is insideworktree_isolation_conflict's docstringProjectPaths.rebased—bmadconfig.py:43-63:45-65worktree_flow.py:142-143relay = repo_root / HOOK_SCRIPT_RELat:818, inprovision_worktree(def:721)_bmad/custom/copies —worktree_flow.py:238-245,262-266_seed_bmad_tree:373,base_skills_seed_incomplete:489,_worktree_skill_copy_candidates:96seed_files/seed_globs—worktree_flow.py:196-200:848and:920Two content claims that also drifted
project" is imprecise. The body says skill trees and_bmad/custom/overrides are "probed underproject" bymissing_base_skills/resolve_review_layers. Those functions take whichever root the caller passes:worktree_flow.py:98and:111callresolve_review_layers(repo_root, tree), andbase_skills_seed_incomplete(worktree, repo_root, trees)probesrepo_root. Only the preflight is project-rooted. The current wording reads as though the functions are inherently project-rooted.tests/test_verify.py:2692(test_verify_review_gates_run_commands_in_repo_root) and the rows after it now go past it, built withdataclasses.replace(project, repo_root=…)— the house idiom an implementer of shape (1) would reuse. The provisioning gap the section describes is still real; the sentence is just no longer the whole picture.Suggested fix
Re-resolve every cite by symbol and correct the five-call-sites parenthetical. Related to #551, which is blocked behind #443 and quotes some of the same cites in its answer.