Repository navigation
v0.18.0 — lean-loop: closeout collapse, triage slimming, standard eval arm
The lean-loop release: a three-reviewer over-engineering audit of the methodology (run from
the dev harness; two independent Opus 5 reviewers plus a Fable fork, cross-examined to
consensus) found the weight concentrated at the loop's finish line and on triage's hot path.
This release removes it, and gives the benchmark the arm the audit said was missing.
Changed
- Closeout is ONE scripted action (
skills/triage/references/closeout.md): the single
lcd-triage-log.sh closeoutappend, with the opt-in evaluator dispatch folded in before it
and the opt-inlcd:reconcilefold after it — no longer a numbered multi-step contract.
--itersis now optional (--lane/--audit/--reroutes/--interventionsstay
mandatory); both closeout line shapes — with and withoutred-green iters— are valid, and
existing logs are never rewritten. - Triage skill slimmed ~1,930 → ~935 words on the every-item path: the three lane
execution bodies moved toskills/triage/references/lanes.md(read only for the routed
lane), the re-routing procedure toreferences/rerouting.md, the worked-examples table
dropped, and the file-count-soft-proxy rationale deduplicated to a pointer atrules/lcd.md. rules/ac-convention.mdslimmed to the format contract (~1,040 → ~660 words on the
auto-load path): the EVAL-coverage / must-not essay now lives in/lcd:specifyand the
worked AC examples in/lcd:test-gen— each at its point of use.
Added
evals/run-eval.sh --triage-routed— the median-lane benchmark arm the T1 campaign
lacked: a frozen prompt (evals/feature-prompt-standard.md, feature paragraph identical to
the Deep arm's) that routes throughlcd:triageinstead of mandating the Deep pipeline and
never names an expected lane; lane-agnosticEVAL-DONEfinish line. Contradicts
--baseline.- Plan
**Test scope:**declaration (template + audit): restricts the audit's
AC-N (SURFACE)test grep to the work-item's own test paths.
Fixed
bin/audit-crosspath.sh: stale foreign AC literals can no longer produce an OK row
when a test-scope is declared — the repo-wide first-match grep (the T1 audit's recorded
false-positive source) is now scoped, with a declared-but-missing scope counting as a miss,
never a fallback. Scope-less plans keep the legacy behavior.bin/lcd-boundary-check.sh:{a,b}boundary entries now match.casepatterns never
brace-expand, so a brace entry could match nothing and silently denied every edit under it
(open since 0.15.1); entries are now brace-expanded (lcd_expand_bracesin
bin/lcd-hooklib.sh) at match time, with the original entry kept in the deny reason.