Skip to content

feat: lean-loop — closeout collapse, triage slimming, ac-convention split, audit scope + brace-glob fixes, standard eval arm - #15

Merged
stid merged 14 commits into
mainfrom
feat/lean-loop
Aug 30, 2026
Merged

stid merged 14 commits into
mainfrom
feat/lean-loop

Conversation

@stid

@stid stid commented Aug 30, 2026

Copy link
Copy Markdown
Owner

What

Acts on the three-reviewer over-engineering audit of LCD (two independent Opus 5 reviewers + a Fable fork, cross-examined to consensus; harness work-item lean-loop). The audit's verdict: the architecture is sound, but weight concentrated at the work-item finish line and on triage's hot path, plus two verified defects and one missing benchmark arm.

The five changes

  1. Closeout collapse (AC-1) — closeout is now ONE scripted action: the lcd-triage-log.sh closeout append, with the opt-in evaluator dispatch folded in before it and the opt-in living-spec fold after it (D-022 ordering preserved). --iters becomes optional; --lane/--audit/--reroutes/--interventions stay mandatory. Both closeout line shapes validate; existing logs are never rewritten; /lcd:tidy reads both.
  2. Triage progressive disclosure (AC-2) — skills/triage/SKILL.md slimmed 1,931 → 935 words on the every-item path: lane bodies → references/lanes.md (read only for the routed lane), re-routing → references/rerouting.md, worked-examples table dropped, soft-proxy rationale deduplicated to a pointer at rules/lcd.md.
  3. ac-convention split (AC-3) — the auto-loading rule (1,044 → 659 words) keeps the format contract, surface vocabulary, token rules and linkbacks; the EVAL must-not essay moved to /lcd:specify and the worked examples to /lcd:test-gen.
  4. Audit test-scope (AC-4) — plans may declare **Test scope:**; the audit's AC-N (SURFACE) test grep is then confined to those paths, so a stale literal left by another work-item (the recorded T1 false-positive) can never produce an OK row. Declared-but-missing scope is a miss, never a fallback; scope-less plans keep legacy behavior.
  5. Boundary brace-glob fix (AC-5) — {a,b} EDIT BOUNDARY entries are brace-expanded before the case match (lcd_expand_braces), closing the silent-denial hole open since 0.15.1. Original entry kept in the deny reason.

Plus: the missing benchmark arm (AC-6)

evals/run-eval.sh --triage-routed — a frozen prompt (feature-prompt-standard.md, feature paragraph identical to the Deep arm's) that routes through lcd:triage and never names an expected lane, with a lane-agnostic EVAL-DONE finish line. The T1 campaign priced only the mandated-Deep arm; this arm measures what triage actually picks and what that lane costs. Grader and golden dataset untouched.

Tests

TDD throughout: tests/test-lean-loop-fixes.sh (new; carries the AC-1/4/5 fixtures, red-first) + extended tests/test-eval-runner.sh. Suite 13/13 green.

🤖 Generated with Claude Code

https://claude.ai/code/session_01H2nUKdedKjWZLeS3hpFJXk

stid and others added 14 commits August 30, 2026 09:17
…erences/, worked-examples table dropped (AC-2, lean-loop)
… in lcd rule, Test scope in plan template (lean-loop)
… (audit binding)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01H2nUKdedKjWZLeS3hpFJXk
…cost, quality parity (69-71/75)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01H2nUKdedKjWZLeS3hpFJXk
…d prompt (evaluator nit)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01H2nUKdedKjWZLeS3hpFJXk
@stid
stid merged commit cf5a1a1 into main Aug 30, 2026
3 checks passed
@stid
stid deleted the feat/lean-loop branch August 30, 2026 17:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant