BMAD-METHOD/src/bmm-skills/3-solutioning/bmad-architecture/assets
Brian 242dc6ef75
bmad-architecture part 1: replace bmad-create-architecture with a lean spine skill (#2467)
* Rework solutioning architecture skill into bmad-architecture (spine)

- Rename canonical skill bmad-tech-plan -> bmad-architecture; output is ARCHITECTURE-SPINE.md
- Convert bmad-create-architecture to a deprecated husk forwarding to bmad-architecture (create intent); strip steps/data/template
- Finalize: spine is the default, then offers fuller renderings + a self-contained HTML view; doc_standards polish applies to prose docs only
- Reviewer Gate: add adversarial divergence-hunter, on by default at high/regulated/cross-team stakes
- Fix references in module-help.csv, bmad-prd, bmad-ux, bmad-agent-architect; reword help entry for when-to-offer
- bmad-spec: flag recognized-but-unaddressed domain implications as open_questions

* bmad-architecture: extract Finalize/reviewer-menu to references, add grade_spine script

- Move the Finalize sequence out of SKILL.md into references/finalize.md
- Make references/validate.md own the canonical reviewer menu and prompts
- Add scripts/grade_spine.py (+ tests) so validation grade is computed
  deterministically instead of derived by hand
- Tighten SKILL.md spine/memlog framing

* bmad-architecture: outcome-driven rewrite + spawned reviewer gate

Re-express SKILL.md as goals/outcomes rather than procedure: intent is read
from the input (raw idea, large doc, codebase, feature slice, existing spine)
instead of a Create/Update/Validate x mode matrix. Restore the counter-default
coaching invariants that over-compression had stripped — Guided is the default,
load-bearing calls are shown with alternatives and the user chooses, recommend a
known starter when the stack is open, investigate brownfield before deciding.

Adopt the bmad-prd/product-brief shape: a dedicated Reviewer Gate that always
spawns finalize_reviewers as parallel subagents against the spine (lint floor
first; ad-hoc lenses scaled to rigor/altitude/criticality), and a numbered
Finalize that calls it. Headless runs the full gate non-interactively.

Reframe the structural seed as the living source of truth for shape (code owns
detail; evolve on shape change; memlog keeps history). Fix template mermaid
(C4 -> flowchart, valid one-attr-per-line erDiagram). Ship two default
finalize_reviewers (currency/reality check, adversarial divergence hunter).
Remove grade_spine.py and the inlined discovery/inputs/validate/finalize refs.

* bmad-architecture: review fixes — shared memlog, epic altitude, lint hardening

Pre-PR review fixes for the new architecture-spine skill:

- Adopt the shared canonical memlog (#2462); drop the vendored copy and the
  status-flag lifecycle in favor of `event` entries
- Wire epic-altitude inheritance: parent-spine load+bind, Inherited Invariants
  template section, epic-scoped run folder, parent-contradiction lens; state
  that per-story detail is deferred to bmad-create-story
- Add the Update intent; honor a forwarded-activation handoff from the
  deprecated bmad-create-architecture shim
- Rename modes to Coaching path / Fast path (suite-consistent with prd/brief)
  and sequence the offer as an activation step
- Fix the brownfield project-context.md default path ({output_folder} no-op)
- lint_spine: line-exact frontmatter, fence-blanking (AD-in-fence + accurate
  line numbers), map-form key_deps, AD-0 fix; soften template-token severity;
  add 8 tests
- Carve the Reviewer Gate to references/ to stay under the SKILL.md token budget
- Template: entities-only ERD, scale-down guidance, softened seed framing;
  gitignore .memlog.md

* bmad-architecture: address PR review (augment + coderabbit)

- REF-03: use canonical "invoke the `skill` skill" language for all cross-skill
  references in SKILL.md (was "route to / offer / hand to / Next:")
- lint_spine: scan frontmatter for unfilled template tokens / TBD (paradigm,
  scope, date were uncatchable in the body-only pass)
- lint_spine: guard read_text() so a bad-encoding/unreadable spine returns error
  JSON and exit 0, honoring the documented contract
- reviewer-gate: resolve the "always run" vs "may skip" ambiguity — the gate
  scales/skips by stakes, but finalize_reviewers always run once it does
- tests: +3 (frontmatter token, frontmatter TBD, unreadable spine); use next()

* bmad-architecture: align finalize-reviewers wording + headless blocked output

- customize.toml: reword finalize_reviewers comment to match reviewer-gate.md —
  the gate is stakes-gated, but its reviewers always run once it does (coderabbit)
- headless.md: state explicitly that a blocked run omits spine/memlog/companions,
  matching the "omit keys for artifacts not produced" contract (coderabbit)

* bmad-architecture: ask deliverable purpose up front, offer presentable renderings, lead next-steps with bmad-spec
2026-06-14 15:42:37 -05:00
..
spine-template.md bmad-architecture part 1: replace bmad-create-architecture with a lean spine skill (#2467) 2026-06-14 15:42:37 -05:00