Phase 3 previously said only "smallest possible reproducer" — a
passive property an agent can satisfy by name while still asserting
against the full reproducing fixture. Sharpen it into an explicit
two-step discipline: minimize the trigger (delta-reduce until one
more cut makes the symptom vanish) and make the fixture autonomous
(inline input, no shared fixtures/DB seeds/clocks/server boots
unless the bug is genuinely at that integration boundary).
- Iron Law gains: an un-minimized repro is not a RED test
- Phase 3 rewritten with explicit Minimize + Autonomous steps
- 3 rationalization rows + 4 red flags for the "full fixture
reproduces deterministically, ship it" failure mode
- SKILL.md overview/handoff mirrored at orchestrator altitude
Baseline (writing-skills RED-first): 6 subagent runs showed the old
wording usually steered right but relied on agent instinct; GREEN:
2 runs under the targeted full-fixture pressure now reduce to the
minimal trigger and cite the contract verbatim.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Second skill migrated using the boss pattern. Purely a discipline
skill (RED-first bug fixing); no AILang-specific contracts.
Vocabulary substitutions:
- AILang → "this project" / "the project"
- "ailang-debugger" / "ailang-bencher" / "ailang-architect"
→ "debugger" / "bencher" / "architect" (ailang- prefix dropped)
- "Boss" → "orchestrator"
AILang-specific bits replaced with profile slots:
- `cargo build` / `cargo test` → `commands.build` / `commands.test`
- `ail emit-ir`, `ail run`, `ail build` → "the project's run command"
(generic — these were AILang CLI specifics)
- `crates/ail/tests/e2e.rs` hardcoded test path → "the testing
location idiomatic for this project"
- `design/INDEX.md` → `paths.design_ledger` (optional; if the
project does not have one configured, that step short-circuits)
Universal substance preserved verbatim:
- Iron Law (3 lines)
- Four phases + Phase 4.5 (the three-failures-means-architecture
rule)
- Status protocol (DONE / DONE_WITH_CONCERNS / NEEDS_CONTEXT /
BLOCKED)
- All 7 Common Rationalisations rows
- All 8 Red Flags bullets
Dropped from original:
- "former CLAUDE.md 'Bug fixes — TDD, always' section before the
2026-05-09 skill-system migration" — AILang history, not
load-bearing for the discipline
- "for the AILang project at /home/brummel/dev/ailang" — AILang
identity, replaced with generic "this project"
Cross-refs (post-flatten):
- `../implement/SKILL.md` for the GREEN handoff target
- `agents/debugger.md` from the skill body