BMAD Method Phase 03 · Solutioning Workflow 03·A
Architect · Winston

Architecture Spine

Intent-routed (create / update / validate) lean-spine model — fixes only the invariants a future builder can't read off compliant code, then produces ARCHITECTURE-SPINE.md as the single source of truth, backed by a breadth-coverage rubric and a Reviewer Gate.

Skill code
bmad-architecture v6.10.0
Input
SPEC.md / PRD / raw idea / existing codebase
Trigger
"create the architecture" / "create technical architecture" / "architecture spine"
Agent
Architect (Winston)
Phase
03 · A
Steps
8 · Coaching / Fast path
Output
ARCHITECTURE-SPINE.md · ADRs/*.md
Superseded
bmad-create-architecture — deprecated forwarding shim

What bmad-architecture

An intent-routed lean-spine model — Create, Update, or Validate — that fixes only the invariants a future builder can't read off compliant code, and produces ARCHITECTURE-SPINE.md as the single source of truth.

The bmad-architecture skill replaces the old fixed 11-step bmad-create-architecture flow (now a deprecated forwarding shim). Instead of marching through a fixed sequence of categories, it first detects which of three intents applies — Create a spine from scratch, Update an existing one, or Validate one without changing it — then routes into a Coaching path (open-ended elicitation, load-bearing calls shown not silently made) or a Fast path (draft the whole spine with [ASSUMPTION] tags for review).

Every decision, constraint, version, assumption, and open question is logged to an append-only .memlog.md as it's made — the run's working memory. ARCHITECTURE-SPINE.md is then distilled from that memlog: invariants first, seed kept minimal, every AD (architecture decision) carrying Binds/Prevents/Rule, and Deferred items naming what the spine deliberately does not decide. A breadth-coverage rubric plus a Reviewer Gate (deterministic lint + rubric walker + parallel subagent lenses) runs before the spine is marked final.

Skill ID
bmad-architecture — supersedes the deprecated bmad-create-architecture
Role
Architectural facilitator — coaches decisions out of the user rather than silently inventing them
Primary Output
ARCHITECTURE-SPINE.md — distilled from the memlog, not hand-edited directly
Secondary Outputs
ADRs/*.md (immutable, one file per major decision) · .memlog.md (append-only audit trail) · optional human-facing renderings
Session Resume
Detects an existing run folder under {workflow.spine_output_path} and offers to resume from its memlog instead of restarting
Activation Modes

Why The case for structured architecture

Without a shared architectural blueprint, AI agents make independent decisions — and those decisions conflict.

When multiple AI agents implement different parts of a system without a single reference document, the same concept gets named differently across modules, API response formats diverge, error handling strategies clash, and the project structure becomes inconsistent. The first agent calls a table users; the second calls it User; the third stores user IDs as userId in one service and user_id in another.

The architecture document prevents this by establishing decisions once, collaboratively, before implementation begins. Every downstream agent reads the same document and implements within the same constraints.

Problem
Naming Conflicts
Different agents choose different naming conventions — tables, endpoints, files, variables — creating an inconsistent codebase that breaks at integration.
Problem
Decision Drift
Without documented rationale, teams re-debate the same decisions 6 months later. ADRs record not just what was decided but why — and what alternatives were rejected.
Problem
Hidden Trade-offs
Technology choices have cascading implications. Choosing a monolith vs microservices affects deployment, scaling, testing strategy, and team structure — all downstream.
Solution
Single Source of Truth
The architecture document becomes the canonical reference. Any agent with a technical question consults it first. The answer is already there.
Solution
Consistent Implementation
Naming conventions, structure patterns, API formats, and error handling are defined once. All agents follow them exactly — the document enforces consistency, not hope.
Solution
Collaborative Discovery
The AI acts as facilitator, not oracle. User preferences, existing constraints, and team experience shape decisions — the document reflects reality, not assumptions.

Before Prerequisites & inputs

The input's shape decides the job — a SPEC.md + memlog is the richest, preferred start, but a raw idea, an existing codebase, or an existing spine to extend all route to a working session.

Job-shaped, not document-shaped. Unlike the old bmad-create-architecture flow, this skill does not hard-block on a missing PRD. If the real ask is requirements, UX, or an epic breakdown, Step 1 redirects to bmad-prd, bmad-ux, bmad-spec, or bmad-create-epics-and-stories instead.
Required & Optional Documents
Preferred
SPEC.md + memlog
The richest possible start — a distilled spec package with its own decision memlog. When present, the spine inherits its invariants directly instead of re-discovering them.
Optional · High Value
PRD.md + DESIGN.md/EXPERIENCE.md
Product Requirements Document and UX Specification — FRs, NFRs, constraints, personas, and frontend/design-system context. Still the most common greenfield input pair.
Optional · High Value
project-context.md
Existing technical conventions. For brownfield work, Step 3 investigates real code and this file to ratify existing conventions rather than invent new ones.
Optional
Research Documents
Market, Domain, or Technical Research outputs from the Research Trio. Provide competitive context, domain constraints, and technology landscape — sharpens decision rationale.
Optional
Existing Spine (Update / Validate)
If a run folder already exists under {workflow.spine_output_path}, Step 1 offers to resume from its memlog. Inheriting a parent spine (e.g. one epic of a feature spine) loads its ADs and paradigm as binding, read-only Inherited Invariants.
Skills & Knowledge Needed
Knowledge Areas For effective architecture decisions
Area Why It Matters Level Needed
System Design Ability to reason about components, boundaries, data flows, and integration points — the core of every architecture decision. Intermediate+
Technology Stack Familiarity with the relevant ecosystem (web, mobile, API, CLI). The skill researches versions, but you need to evaluate the options presented. Working knowledge
Security Basics Step 4 covers auth/security decisions. Understanding authentication patterns, data encryption, and API security helps validate AI proposals. Basic awareness
Infrastructure Deployment models (cloud, serverless, containers), CI/CD concepts, and environment configuration — covered in Step 4's infrastructure category. Basic awareness
ADR Format Architecture Decision Records (Nygard format) — the output format for major decisions. The AI generates these, but knowing the format helps review them. Awareness only

How The 8-step architecture workflow

Steps 1–2 route the run; steps 3–6 build the spine from the memlog outward; step 7 is a hard gate; step 8 closes and hands off. ARCHITECTURE-SPINE.md is written from the memlog — never hand-patched directly.

Session resume: If a session is interrupted, Step 1 detects an existing run folder under {workflow.spine_output_path} and offers to resume from its memlog instead of restarting. No decisions are lost between sessions.
01
Intent Routing
Detect Intent & Activation Mode
Create / Update / Validate — resolved from the conversation and input, not quizzed. Headless runs follow references/headless.md end to end; forwarded calls from the deprecated bmad-create-architecture shim honor pre-resolved fields verbatim.
  • Resolves customization, loads bmm/config.yaml, then detects one of three intents
  • If a run folder already exists under {workflow.spine_output_path}, offers to resume from its memlog instead of restarting
  • If the real ask is requirements, UX, a capability contract, or an epic breakdown, redirects to bmad-prd, bmad-ux, bmad-spec, or bmad-create-epics-and-stories instead
  • A single skill replacing three fixed flows must route correctly on the first turn — misrouting into Create when the user meant Validate wastes the whole session
02
Working Mode
Choose Coaching vs Fast Path
Coaching (default) — open-ended elicitation, load-bearing calls shown not silently made. Fast — draft the whole spine with [ASSUMPTION] tags for review.
  • Offered as an activation step, in the user's language, before any drafting
  • Coaching path pulls decisions out of the user with open-ended questions; Fast path infers and tags
  • Elicitation is the value the skill is coaching toward — silently drafting the whole spine defeats the purpose unless the user explicitly wants speed
  • Also asks, mandatory on both paths: is the spine the only deliverable, or does the user need a purpose-scoped human-facing artifact later at Finalize?
03
Input Assessment
Read the Input to Know the Job
Spec package, raw idea, sprawling doc to distill, existing codebase, one feature's slice, or an existing spine to extend/pressure-test — the input's shape decides the job.
  • A SPEC.md + memlog is the richest, preferred start
  • Brownfield work investigates real code and project-context.md to ratify existing conventions rather than invent new ones
  • The spine's altitude must mirror what it augments (initiative→features, feature→epics, epic→stories) and stay coherent with whatever level sits below it
  • Inheriting a parent spine (e.g. one epic of an existing feature spine): its ADs and paradigm load as binding, read-only Inherited Invariants — only the parent's Deferred items are this run's job
04
Paradigm & Seed
Establish Paradigm & Seed
Lead with a named design paradigm; recommend a verified current starter for greenfield; keep seed (stack, tree, data shape) minimal — only invariants are fixed.
  • One test decides what belongs in the spine: could two units built independently choose incompatibly, and is the call non-obvious and a real trade-off? If not, it's Deferred
  • Everything structural (the seed) is true at cold-start and owned by the code once it exists — over-fixing seed content invites drift between spine and reality
  • Verify any named technology's current version and fit on the web before binding it into the spine
05
Memlog
Log Decisions to the Memlog
Every decision, constraint, version, assumption, and open question lands as one append-only line in .memlog.md — the run's working memory, not the rendered spine.
  • Each surviving decision becomes an AD-n (stable ID, Binds / Prevents / Rule); a decision that lives only in a diagram is still logged
  • Distilling the spine from a living log — instead of hand-editing the artifact — lets Update runs amend a Rule in place and add the next AD-n without ever renumbering or reusing a retired ID
  • Writes go through the shared memlog.py init / append --type <decision|constraint|version|assumption|question|direction|event> script — never a hand-patch to the spine file
06
Distill
Distill the Spine
Write ARCHITECTURE-SPINE.md from the memlog — invariants first, seed minimal, every AD carrying Binds/Prevents/Rule, Deferred naming what it won't decide.
  • Sweeps the breadth the altitude owns — every structural dimension (including the operational/environmental envelope: deployment, infra, operations) is decided, deferred, or an open question
  • No placeholders; nothing invented to fill a gap — a whole dimension left silent is the failure mode this breadth-coverage rubric exists to catch
  • A subagent per load-bearing input reconciles the draft against its source and flags anything the AD structure quietly dropped, before the Reviewer Gate
07
Reviewer Gate
Reviewer Gate
Deterministic lint_spine.py pass + a good-spine rubric walker + every finalize_reviewers lens dispatched as parallel subagents against ARCHITECTURE-SPINE.md.
  • Deterministic lint catches structural violations (missing Binds/Prevents/Rule, orphaned AD references, malformed frontmatter) before any subjective review runs
  • The rubric walker checks breadth coverage against the altitude's structural dimensions
  • Parallel subagent lenses (security, scalability, simplicity, coherence with inherited invariants) surface findings concurrently rather than serially
  • Any critical issue resolved collaboratively before the spine is marked status: final
08
Handoff
Renderings, Close & Handoff
Optional human-facing artifact scoped to the up-front purpose; set status: final; recommend bmad-spec, then bmad-create-epics-and-stories or bmad-create-story.
  • Renderings (C4/ERD/sequence diagrams, a team walkthrough, a board vision doc) are generated only if Step 2's up-front purpose check asked for one
  • Marks the spine status: final and closes the memlog
  • Natural next step: 03·B Epics & Stories — stories are created after the spine so they reference specific binding decisions, not guesses
  • Offers to answer questions about the finalized spine

Toolkit Techniques & frameworks used

The architecture skill draws on industry-standard frameworks — each applied at the right step to produce decisions that are defensible, traceable, and actionable.

Decision & Documentation Frameworks ADR · C4 · 12-Factor

Architectural Decision Records (ADR) Nygard Format · one per AD-n in the memlog
ADR Field Purpose Example
Title Named decision, numbered for reference ADR-001: Use PostgreSQL for primary data store
Status Current state of the decision Proposed / Accepted / Superseded (with link)
Context The problem being solved, constraints forcing the decision Need ACID transactions + complex relational queries
Decision What was decided, stated concisely Use PostgreSQL as the primary database
Consequences Trade-offs accepted — both benefits and costs + ACID compliance + JSON support − requires migration tooling
Alternatives Options considered and why they were rejected MongoDB rejected: no ACID across documents for our transaction pattern
C4 Model Simon Brown · optional rendering at Step 8
Level Audience What It Shows
Context Diagram All stakeholders including non-technical System boundary + external actors (users, 3rd-party systems)
Container Diagram Engineers — highest daily value Major deployable units: web app, API, DB, queue, CDN — with data flows annotated
Component Diagram Engineers working on a specific container Major components within each container, their responsibilities and interfaces
Code Diagram Optional — only for critical paths Class/package level detail — generated from code tools, rarely hand-drawn
12-Factor App Principles Heroku · candidate invariants at Step 4 (Paradigm & Seed)
Factor Architectural Implication
I. Codebase One repo, many deploys — no per-environment code branches
II. Dependencies Explicitly declare, never assume — lockfiles required
III. Config Environment variables only — no config in code or repo
IV. Backing Services Treat DB, queues, caches as attached resources — swappable
V. Build/Release/Run Strict separation — builds are immutable artifacts
VI. Processes Stateless, share-nothing — state in backing services
X. Dev/Prod Parity Keep development, staging, production as similar as possible
XI. Logs Treat as event streams — no log files, stdout only

Consistency Pattern Categories Breadth-coverage Rubric

The breadth-coverage rubric (Step 6) sweeps every area where independently-built units could diverge and requires each to be decided, deferred, or logged as an open question — never left silent. The categories below are typical structural dimensions it checks:

Pattern Category Overview Step 6 · Distill the Spine
Category What It Governs Example Decisions
Naming Patterns Database, API, file, and code naming conventions table names: users (plural, snake_case) · columns: user_id · endpoints: /users
Structure Patterns Where things live in the project tree Tests co-located as *.test.ts · components by feature · shared utilities in lib/
Format Patterns API response shapes, data exchange formats Error response: {"error": {"code", "message"}} · dates: ISO 8601 · pagination: cursor-based
Communication Patterns Events, state management, async patterns Events: user.created (dot-notation) · state: immutable updates · actions: VERB_NOUN
Process Patterns Cross-cutting operational concerns Error recovery: retry with exponential backoff · loading: global + local states · validation: at boundary only

Validation & Quality Frameworks STRIDE · ATAM · FMEA

STRIDE — Security Threat Modeling Microsoft · candidate invariants at Step 4 (Paradigm & Seed)
Threat Description Architectural Response
Spoofing Impersonating another user or system Strong authentication (MFA, signed tokens, certificate pinning)
Tampering Modifying data or code in transit or at rest Checksums, HTTPS, signed payloads, data validation at boundaries
Repudiation Denying actions were taken Audit logs, immutable event stores, signed requests
Info Disclosure Exposing data to unauthorized parties Encryption at rest + in transit, field-level ACLs, PII masking in logs
DoS Making the service unavailable Rate limiting, circuit breakers, auto-scaling policies
Elevation of Privilege Gaining unauthorized access Principle of least privilege, role-based access control, zero-trust patterns
ATAM — Architecture Tradeoff Analysis Method SEI · Step 7 Reviewer Gate
ATAM Concept How Applied in Step 7
Quality Attributes NFRs mapped to quality attribute scenarios: performance, availability, security, modifiability, testability
Architecture Drivers The highest-impact NFRs surfaced while reading the input (Step 3) that have highest architectural impact — the 'north star' for all decisions
Sensitivity Points Decisions that significantly affect one or more quality attributes — documented in validation results
Trade-off Points Decisions that affect multiple quality attributes in conflicting ways — explicitly acknowledged in ADRs
Risk Identification Potential failure points in the architecture — fed into FMEA analysis
FMEA — Failure Mode and Effects Analysis Step 7 Reviewer Gate — risk lens
FMEA Step Purpose Output
Failure Mode What could go wrong in the architecture Ranked list of failure scenarios per component
Effect What happens to the system when this fails Impact classification: critical / major / minor
Cause Why this failure could occur Root cause per failure mode
Mitigation Architectural decision that reduces risk Circuit breakers, redundancy, graceful degradation patterns

Coaching / Fast Path & Optional Enhancers memlog-gated, not menu-gated

Unlike the old per-step [A] / [P] / [C] menu, the gate is the memlog itself: nothing reaches ARCHITECTURE-SPINE.md until it's an append-only line in .memlog.md, written via memlog.py append. Advanced elicitation and party mode remain available as optional enhancers on either path.

Enhancer
bmad-advanced-elicitation
Optional at any point on the Coaching path. Stress-tests a candidate decision, explores unconventional approaches, surfaces hidden assumptions before it's logged.
  • Returns enhanced insights for the decision in play
  • User accepts or rejects before it becomes an AD-n
  • Does not itself write to the memlog
Enhancer
bmad-party-mode
Summons multiple agent perspectives to evaluate a trade-off from different angles (performance advocate, security specialist, simplicity advocate, scalability engineer).
  • Collaborative discussion of the current decision
  • User accepts or rejects the resulting proposal
  • Accepted outcome is logged as a normal AD-n
memlog.py append
Commit a Decision
Appends one line — decision, constraint, version, assumption, question, direction, or event — to .memlog.md.
  • Only way a decision survives into the spine
  • Never a hand-patch to ARCHITECTURE-SPINE.md
  • Step 6 distills the spine from the accumulated log
The memlog is load-bearing: the skill is explicitly forbidden from hand-editing ARCHITECTURE-SPINE.md directly. Every AD-n keeps a stable ID for the life of the spine — Update runs amend a Rule in place or add the next AD-n, never renumbering or reusing a retired ID.

Applied Toolkit Skills, frameworks & outputs

Core Skill
bmad-architecture
Main workflow skill — intent-routed (create/update/validate) across 8 steps. Supersedes the deprecated bmad-create-architecture fixed 11-step flow.
Supporting Skill
bmad-mermaid-generate
Generates text-based diagrams: C4 Context, C4 Container, ERD, sequence diagrams. Shared with UX agent (Sally). Used to visualize architecture decisions.
Enhancement Skill
bmad-advanced-elicitation
Optional at each step via [A] menu. Stress-tests assumptions, explores alternatives, validates against comparable systems and projects.
Enhancement Skill
bmad-party-mode
Multi-agent collaborative session via [P] menu. Multiple perspectives evaluate architectural trade-offs — performance vs simplicity vs security vs scalability.
Completion Skill
bmad-help
Auto-invoked at Step 8 completion. Provides status summary and next-step recommendations — naturally points to 03·B Epics & Stories.
Output
ARCHITECTURE-SPINE.md
Primary output — distilled from the memlog, not hand-edited. Contains: invariants, minimal seed, every AD (Binds/Prevents/ Rule), and Deferred items naming what it won't decide.
Output
ADRs/*.md
Immutable Architecture Decision Records — one file per major decision. Format: ADR-001-database.md, ADR-002-auth.md. Never edited; superseded by new ADRs.
Output
.memlog.md
Append-only audit trail of every decision, constraint, version, assumption, and open question. The spine is distilled from this log, not the other way around.
Output
project-context.md
The "constitution" for all downstream AI agents — tech stack summary, coding patterns, naming conventions, anti-patterns. Loaded as persistent context by all Phase 4 dev agents.
Frameworks Applied
  • C4 Model (Simon Brown) — context, container, component, code diagrams
  • ADR Format (Michael Nygard) — numbered, immutable architectural decision records
  • STRIDE (Microsoft) — threat modeling for security decision coverage
  • ATAM (SEI) — architecture tradeoff analysis and NFR validation
  • FMEA — failure mode identification and risk mitigation planning
  • 12-Factor App (Heroku) — deployment and configuration principles
  • Reference-class forecasting — estimates grounded in comparable past projects
  • Breadth-coverage Rubric — every structural dimension decided, deferred, or an open question, never silent
  • Reviewer Gate — deterministic lint + rubric walker + parallel subagent lenses before status: final