AI Development Methodology

E06 — BMAD v6 landscape pass — Archive

Completed items in this epic. All five shipped together in v1.25.0 (2026-08-14).

Lifecycle note (honest record): this epic went planned → done without an active period. The items were chartered and executed in the same session, at the maintainer’s explicit direction (“proceed with integrating the good things into our solution”). That direction is what satisfies the charter’s T2 / maintainer-authored tier requirement — the changes were human-directed, not loop-initiated. The compressed lifecycle is recorded rather than back-filled: the WIP cap was never consumed because the epic never sat in active.

Shared verification (all five items): cross-AI findings-verification in a fresh session on a different model than the authoring session, run against the full diff with each item’s Done means: as the checklist. Result: 16 PASS / 2 FAIL on first pass; both failures (BL-0016 marker-not-in-templates, BL-0019 budget misattribution) were fixed, along with every MAJOR and MINOR quality finding, before merge. Anchor integrity verified programmatically across all new intra-repo links; 04_backlog_items.md confirmed at 1,018 lines, under the 1,050-line soft cap.


BL-0015 — Spec-as-sole-context handoff (Code Map) for M/L items

Field Value
Epic E06-bmad-v6-landscape-pass
Pillar P9
Priority P1
Effort M
Status done
Test pass — cross-AI findings-verification, fresh session + different model (v1.25.0 diff)
Deps —
Lock —

Why / Description: An item’s body recorded what to do, but the codebase knowledge gathered while planning it lived only in the planning session’s conversation — so it died on handoff, compaction, or a fresh session. Adopted the convention that for M/L-effort items, planning drains its investigation into the item body as a Code Map (files to touch with their roles, existing utilities to reuse, constraints and gotchas), written so a cold session can implement from the item alone, with no conversational context restated at dispatch.

Done means:

Files (actual):

Resolution: Shipped in v1.25.0. Two review findings folded in: the doc’s own worked example (BL-0428, Effort M) still carried a bare Files (probable) list and was upgraded to a Code Map so the doc follows its own rule; and the dispatch rule gained a carve-out for subagents given a slice of an item, which the untouched 05 delegation guidance still models. Deferred sibling: BL-0022 (per-epic context digest).


BL-0016 — Frozen-intent convention for approved goals / exit criteria

Field Value
Epic E06-bmad-v6-landscape-pass
Pillar P9
Priority P1
Effort S
Status done
Test pass — cross-AI findings-verification, fresh session + different model (v1.25.0 diff)
Deps —
Lock —

Why / Description: Nothing stopped an agent mid-task from “helpfully” rewording an item’s goal or Done means: to match what it actually built — drift that is invisible because the diff looks like editing, not scope change. Adopted a frozen-intent convention: once a human approves an item’s goal + acceptance criteria (or an epic charter’s exit criteria), that region is human-owned; if execution reveals it’s wrong, the move is halt and renegotiate, never silent amendment.

Done means:

Files (actual):

Resolution: Shipped in v1.25.0. This item failed its first cross-AI pass on two counts, both fixed before merge. (1) The marker was specified as a badge placed “directly above” the frozen region — but the frozen sections (Why / Description: and Done means:) are non-contiguous, separated by Approach:, so one badge could not fence them; the marker now sits once below the frontmatter table and names the sections it covers. (2) The rule covered epic charters but 03_epics.md was untouched and no skeleton carried the marker; both now do. A third finding moved the section from Principle 3 to Principle 4, where the “goal holds still while you work toward it” logic actually lives.


BL-0017 — Failure-layer triage for review findings

Field Value
Epic E06-bmad-v6-landscape-pass
Pillar P9
Priority P1
Effort M
Status done
Test pass — cross-AI findings-verification, fresh session + different model (v1.25.0 diff)
Deps —
Lock —

Why / Description: The v1.22 two-stage review ordered review passes but every finding still landed in one pile labeled “fix it.” Adopted failure-layer triage: classify each finding by the layer the defect entered (intent / plan / code / out-of-scope / invalid) and route the fix to that layer, processed in cascade order so an upper-layer finding cancels the code-level findings below it. Names the anti-pattern never patch code to compensate for a wrong plan.

Done means:

Files (actual):

Resolution: Shipped in v1.25.0. Review surfaced a structural gap: the Intent bucket had no producing stage — stage 1 asked only “does the change satisfy the criteria?”, which can never yield an Intent-layer finding. Stage 1 now also asks “are the criteria themselves right?” The escape hatch was also reconciled with v1.24.0’s attempt cap (merged from main mid-flight): that cap bounds retrying a fix that keeps failing, this bounds re-deriving from a definition that keeps proving wrong.


BL-0018 — Verification-gap review lens + test-actually-ran audit

Field Value
Epic E06-bmad-v6-landscape-pass
Pillar P9
Priority P1
Effort S
Status done
Test pass — cross-AI findings-verification, fresh session + different model (v1.25.0 diff)
Deps —
Lock —

Why / Description: The cheating-agent defenses audited test quality but not coverage of the change or whether the tests actually executed. Added three rules: the verification-gap lens (“if this behavior broke, would any test fail?”, output = untested behavior changes, not bugs); a test that exists but was skipped or filtered counts as missing; and never edit the expectation to match the code.

Done means:

Files (actual):

Resolution: Shipped in v1.25.0. Review caught the new text weakening an existing rule: Gate 2 already said absolutely that “skipped tests … are not ‘passing’”, while the new lens allowed a gap to be closed with “a documented reason it can’t have one” — transitively permitting a skipped test through the gate. The exception now routes to the already-sanctioned manual-verified + regression-needed path instead. A duplication finding also trimmed the rule from three full statements across two docs down to one canonical statement plus a linked practical elaboration.


BL-0019 — Size budgets for context artifacts

Field Value
Epic E06-bmad-v6-landscape-pass
Pillar P9
Priority P2
Effort S
Status done
Test pass — cross-AI findings-verification, fresh session + different model (v1.25.0 diff)
Deps —
Lock —

Why / Description: Only one artifact was capped (the instruction file); item bodies, epic charters, and memory entries had no size guidance, and oversized ones silently degrade every agent that loads them. Published size targets with a defined “too big ⇒” response for each, framed as a context artifact is a liability that must earn its length.

Done means:

Files (actual):

Resolution: Shipped in v1.25.0. Failed its first cross-AI pass on the single-sourcing criterion: the table asserted an instruction-file cap of “~300 max” and attributed it to 08, but 08 says “a few hundred lines” and illustrates with 200 — the 300 actually came from templates/CLAUDE.md. Both 08-owned rows now carry links instead of numbers, with an explicit note that a second copy would drift. A second finding promoted the section from a ### under “Body sections” to a top-level ##, since three of its four rows describe artifacts owned by 03 and 08 rather than item bodies.


BL-0021 — Derivable-from-source admission test for memory and instruction entries

Field Value
Epic E06-bmad-v6-landscape-pass
Pillar P9
Priority P2
Effort S
Status done
Test pass — repo-wide consistency check; no conflict with the v1.20 archival lifecycle it complements
Deps —
Lock —

Why / Description: 08’s “do not save” list already ruled out “patterns derivable from reading the current code,” but only as one bullet among seven, with no general criterion behind it. Promoted the bullet into an explicit admission test: if a contributor can learn it by reading the repo right now, it is read live and never written down; only intent, rationale, policy, and observed pitfalls earn a line. Paired with the audit rule that a consolidation pass ends smaller or equal, never larger, and with the asymmetry that keeps it honest — a rule that is working erases its own evidence, so low reference frequency is never grounds for retirement.

Done means:

Files (actual):

Resolution: Promoted from FUTURE.md at maintainer direction and shipped in v1.26.0, after E06 had already closed — recorded here rather than by re-opening the epic, since the charter’s exit criteria (BL-0015…BL-0019) were genuinely met at closure and back-dating them would falsify the record. E06’s item count reflects six archived items against five chartered; the four remaining Tier-2 deferrals stay in FUTURE.md.