Skip to content

[roadmap] Finish the prompt-surface shrink: propose.md 5f, and two targets blocked on always-reached design #81

Description

@azevedo

Carries the unfinished scope of #59, which closed after slices 1 and 2 shipped. Three targets remain, and two of them are blocked on a design problem, not on effort.

Blocked on design — both are reached on every run

Slice 2 established the mechanism (skill-local reference, bare-relative citation, load site gated on a flag) and proved it at runtime. It does not help these two, because relocating an always-reached block makes the body heavier: shrunken body, plus the whole file, plus load overhead.

  • ba-review Step 5 resolvers (~308 ln today, was ~290 when [roadmap] Shrink the always-resident prompt surface in review.md and propose.md #59 was filed). ## Step 5: Resolution is reached on every run past the NO_CHANGES exit. Restoring conditionality means splitting by branch, which the slice-2 brainstorm's locked design forbids ("moves whole — never split"), and which duplicates the ~51-line post-apply guard reachable from both. Two further findings from slice-2 planning: option labels and their routed action text share a line, so this is a rewrite, not a relocation; and there are six menu families in the range, not five.
  • ba-plan's detail-level templates (~150 ln). Same defect: Step 4 is reached on every run. The slice-2 brainstorm rejected one design partly because it made these an always-fired read; the adopted design has the identical property here.

Revisit trigger: when a design exists that restores conditionality without splitting a region across files — i.e. when either target's always-reached branch point can move above the extraction boundary, the way --persist's PERSIST=false gate already sits above its load site. Until then, extracting either is a measured regression, not a shrink.

Not blocked — just never started

  • ba-propose Step 5f (~150 ln, reachable only on commit_push_create) and the Step 3 composition spec (~170 ln). 5f is genuinely branch-conditional, so it is the one remaining target the slice-2 mechanism fits as-is. It was excluded from slice 2 on scope, not on the always-reached test. This is the pick-up-now item.

What slice 2 measured, which should temper the expected win

Extraction is not free, and #59's framing assumed it was. Slice 2's final numbers, across session types:

session type vs pre-slice
/ba-review run −544 est tok
any other session +29 est tok
--persist run +1536 est tok

The first version of that slice was a net regression: the convention bullet it needed loads in every session, and no acceptance criterion looked there. It only became net-positive after moving the rationale to a load-on-demand doc.

Carry that lesson into any further extraction here: measure the resident surface the change touches, not the one file it edits. An acceptance criterion of the form "file X shrank" can pass while the repo gets heavier.

Metadata

Metadata

Assignees

No one assigned

    Labels

    cluster:infraPlugin plumbing / namespacingneeds-brainstormIdea not yet shaped into a plan

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions