| name | doc-brd |
| description | Create a Business Requirements Document (BRD) - Layer 1 of the SDD flow, defining business needs, objectives, and success criteria. Use when starting a new project or feature. Single-document authoring primitive; for end-to-end or batch generation the autopilot (`doc-brd-autopilot`) drives this skill. |
| metadata | {"tags":["sdd-workflow","layer-1-artifact"],"custom_fields":{"layer":1,"artifact_type":"BRD","skill_category":"core-workflow","upstream_artifacts":[],"downstream_artifacts":["PRD","EARS","BDD","ADR","SPEC","TDD","IPLAN"],"version":"0.24.0","framework_spec_version":"0.40.0","last_updated":"2026-05-23","adapts":["section_toggles","glossary","review_mode"]}} |
doc-brd
Purpose
Create a Business Requirements Document (BRD) — Layer 1 of the SDD flow.
A BRD captures business objectives, stakeholders, scope, and success criteria
in business language, before any product or technical detail.
Layer: 1 (entry point, no upstream).
Downstream: PRD → EARS → BDD → ADR → SPEC → TDD → IPLAN → Code.
One BRD = one MVP iteration (5–15 focused requirements). New features get a
new BRD; link cycles with @depends: BRD-NN.
When to Use
Use doc-brd when:
- Starting a new project or feature and defining business requirements.
- Documenting strategic alignment, market context, and success criteria.
- Translating an implementation plan back into business-language requirements.
For end-to-end generation from reference docs, a prompt, or an IPLAN, use
../doc-brd-autopilot/SKILL.md. For a new project skeleton, run
../project-init/SKILL.md first.
Prerequisites
BRD is the entry point, so there are no upstream artifacts to verify. Before
writing, read:
- Template (source of truth):
${CLAUDE_PLUGIN_ROOT}/framework/layers/01_BRD/BRD-TEMPLATE.yaml
- Layer README:
${CLAUDE_PLUGIN_ROOT}/framework/layers/01_BRD/README.md
- ID & tag standards:
${CLAUDE_PLUGIN_ROOT}/framework/governance/ID_NAMING_STANDARDS.md
- Authoring style:
${CLAUDE_PLUGIN_ROOT}/framework/governance/AUTHORING_STYLE.md
Confirm no ID collision: ls docs/01_BRD/. Never invent placeholders like
BRD-XXX or reference non-existent documents.
Layer Guidance
Platform vs Feature BRD (decide first)
| Signal | Type |
|---|
| Defines infrastructure, technology stack, or cross-cutting concerns | Platform |
| Other BRDs will depend on its architectural choices | Platform |
| Describes one user-facing workflow / feature | Feature |
| Builds on capabilities an existing Platform BRD established | Feature |
- Platform BRD — file
BRD-NN_platform_{slug}; ADRs are created before
the PRD to validate architectural choices; §8 (Architecture Decision Topics)
is populated with the Selected categories that downstream BRDs will depend on.
- Feature BRD — file
BRD-NN_{feature_slug}; standard layer flow
(BRD → PRD → EARS → BDD → ADR); §8 references the Platform BRD's adopted
topics rather than introducing new architectural decisions.
Required structure (16 sections)
document_control is Section 1 (project name, version, date YYYY-MM-DD,
owner, prepared-by, status, revision-history table). Then:
- Executive Summary (OPTIONAL — derived; toggled by
section_toggles) ·
- Introduction · 4. Business Objectives · 5. Project Scope · 6. Stakeholders ·
- Functional Requirements · 8. Architecture Decision Topics (
adr_topics) ·
- Quality Expectations · 10. Constraints and Assumptions ·
- Acceptance Criteria and Success Validation · 12. Business Risk Management ·
- Approval · 14. Traceability · 15. Glossary ·
- Seed Disposition (
seed_disposition — OPTIONAL, _required: false; the
seed→SDD absorption ledger, GD-08 / SEED_CONTRACT.md).
The template additionally defines two structural blocks alongside the numbered
sections: a Diagrams Registry (diagrams:) and a Lifecycle Reference
appendix (appendix:) — see those template keys for the required shape. Section
numbers and section identifiers come from the template's own numbering and
top-level YAML keys; the template is the source of truth, and this skill's
list is a navigation aid, not a parallel definition.
See BRD-TEMPLATE.yaml for per-section content and cross_section_rules.
Section 8 — Architecture Decision Topics (mandatory)
Identify architectural topics needing decisions, with cost-focused,
alternatives-based analysis, across the 7 categories. Do not reference ADR
numbers — ADRs do not exist yet.
| # | Category | When N/A |
|---|
| 1 | Infrastructure | Pure data/analytics project |
| 2 | Data Architecture | No persistent data |
| 3 | Integration | Standalone system |
| 4 | Security | Internal tool, no sensitive data |
| 5 | Observability | MVP/prototype only |
| 6 | AI/ML | No AI/ML components |
| 7 | Technology Selection | Using an existing stack |
Each Selected topic carries a BRD.NN.08.xxxx element ID and includes a
status, business driver, business constraints, an Alternatives Overview
table (with cost estimates), a Cloud Provider Comparison (GCP/Azure/AWS), a
recommended selection, and the PRD requirements it implies. Layer separation:
BRD §8 = what & why & how much; PRD = how to evaluate; ADR = the decision.
Element IDs and tags
- Element IDs:
BRD.{doc_id}.{section_id}.{hash}. Do not compute the hash in this prompt — call the generator: python -m sdd_doc_lint.rehash --compute --doc-id NN --section-id SS --title T --description D (--length 8 on collision). Authority: framework/governance/ID_NAMING_STANDARDS.md; never restate the algorithm here.
- Layer 1 carries no
@ upstream tags; downstream tags it (@brd: BRD.01.06.a7f3).
- Removed patterns:
AC-XXX, FR-XXX, BO-XXX, BC-XXX, legacy 3-segment BRD.NN.xxxx.
Upstream source configuration
Most BRDs are authored from stakeholder input — keep the default
upstream_mode: "none". Only when content derives from docs/00_REF/ docs set
upstream_mode: "ref" and list upstream_ref_path (relative to the BRD file).
Creation Process
- Determine type — Platform vs Feature (table above).
- Reserve ID — next free
BRD-NN (two digits, no leading zero beyond two:
BRD-01, BRD-99, BRD-102).
Per-layer independence (CLEANUP-PR-F item 18): pick the next-free
number in YOUR layer's index — the upstream's number is NOT your number
(doc numbers are per-layer sequential and independent; see
framework/governance/ID_NAMING_STANDARDS.md §Cross-layer cardinality).
- Create the nested folder — every BRD lives in
docs/01_BRD/BRD-NN_{slug}/
regardless of size. Monolithic: BRD-NN_{slug}.md inside it; section-based
(>25 KB): BRD-NN.S_{section}.md + index from
${CLAUDE_PLUGIN_ROOT}/framework/layers/01_BRD/BRD-00_index.TEMPLATE.md.
- Document Control (Section 1) first, then complete the 14 remaining
required sections + the diagrams registry + appendix per template; toggle §2
(Executive Summary) per
section_toggles.
- Fill §8 (Architecture Decision Topics) across the 7 categories.
- Configure upstream mode (
none default; ref if from docs/00_REF/).
- Update the BRD index
docs/01_BRD/BRD-00_index.md in the same change.
- Validate (below) and commit the BRD and index together.
Draft mode (saga-driven)
When invoked via the saga-driven autopilot subprocess pattern (per
${CLAUDE_PLUGIN_ROOT}/framework/governance/REVIEW_SAGA.md and the
saga loop in ../doc-brd-autopilot/SKILL.md), this skill is the entry
point for the draft phase of the create→review→revise loop. The
invocation looks like:
claude --plugin-dir "$PLUGIN_DIR" -p \
"/aidoc-flow:doc-brd Draft BRD-<id> at <path>; use BRD-TEMPLATE.yaml + the source input at <seed-path>. Write to docs/01_BRD/BRD-<id>_<slug>/."
Because claude -p has no subagent_type CLI parameter, the
persona binding (business_analyst lens → requirements-analyst
agent per ${CLAUDE_PLUGIN_ROOT}/framework/governance/REVIEW_CREWS.yaml
plus the lens-to-agent table in ../review-team/SKILL.md) moves
INTO this SKILL's prompt. When the invocation brief contains the word
Draft (case-insensitive) — indicating a saga-driven draft phase —
dispatch the author this way:
- Dispatch ONE
Task subagent with subagent_type=requirements-analyst,
acting as the business_analyst lens (BRD author per
REVIEW_CREWS.yaml's BRD crew).
- Brief: the BRD-TEMPLATE.yaml + the source input (REF / prompt /
IPLAN seed file at the path passed in) + this SKILL's
## Creation Process (above) as authoring rules.
- The subagent writes the BRD to the nested folder
docs/01_BRD/BRD-<id>_<slug>/ per the standard layout.
- After the subagent returns, write the saga.json transition
recording the draft completion: append
{"ts": "<now>", "from": "FANOUT_STARTED", "to": "BRANCH_COMPLETED", "scope": "branch:business_analyst"} to transitions[] if a saga.json
exists at .aidoc/review/01_BRD/<BRD-id>/saga.json. (If no
saga.json exists, this is a standalone invocation — skip the saga
write per REVIEW_SAGA.md §"FRAMEWORK_SPEC_VERSION semantics"
declaration-vs-implementation rule.)
When invoked outside the saga loop (a user runs /aidoc-flow:doc-brd
directly to author a BRD), follow the ## Creation Process above
without dispatching the Task subagent (the user is the author in
that case). The two modes coexist; the trigger is the presence of
Draft in the brief AND an existing <path> argument.
Validation
Validator framing (review_mode-aware). The structural checks below are the deterministic floor and run in every mode. In team mode the content-quality review is performed by ../doc-brd-audit/SKILL.md fanning out the BRD crew (architect/business_analyst/auditor/chaos_engineer/security_engineer); in single_pass mode the audit applies every lens in one pass. Either way this skill (the author) does not score the artifact — it produces it.
This skill is the validator (no runtime code). Apply against ${CLAUDE_PLUGIN_ROOT}/framework/layers/01_BRD/README.md and ${CLAUDE_PLUGIN_ROOT}/framework/governance/ID_NAMING_STANDARDS.md.
Error codes (all severity error): XDOC-006 tag format invalid · XDOC-008 broken internal link · XDOC-009 missing traceability section.
Quality gate (blocking): PRD-Ready score ≥ 90/100 before moving on.
BRD-REF documents (via ../doc-ref/SKILL.md) are free-format references
— exempt from ready-scores, cumulative tags, and quality gates.
Next Skill
../doc-prd/SKILL.md — the PRD references this BRD (@brd: BRD.NN.SS.xxxx),
defines product features and KPIs, and inherits the §8 architecture topics.
Adaptation
Read .aidoc/profile.yaml; honor only this skill's knobs
(section_toggles, glossary). Ignore unknown keys; absent a profile, use
framework defaults. Authority:
${CLAUDE_PLUGIN_ROOT}/framework/governance/ADAPTATION.md.
Related Resources
- Template / authoring rules:
${CLAUDE_PLUGIN_ROOT}/framework/layers/01_BRD/BRD-TEMPLATE.yaml
- Layer README:
${CLAUDE_PLUGIN_ROOT}/framework/layers/01_BRD/README.md
- Index template:
${CLAUDE_PLUGIN_ROOT}/framework/layers/01_BRD/BRD-00_index.TEMPLATE.md
- ID & tag standards:
${CLAUDE_PLUGIN_ROOT}/framework/governance/ID_NAMING_STANDARDS.md
- Quality gate:
../doc-brd-audit/SKILL.md · Fixes: ../doc-brd-fixer/SKILL.md
- Generation pipeline:
../doc-brd-autopilot/SKILL.md
Quick Reference
| |
|---|
| Purpose | Define business needs and objectives |
| Layer | 1 (entry point) |
| Upstream tags | None |
| Key decision | Platform vs Feature |
| Must include | §1 Document Control, §3–§15 required sections, §8 (7 categories), diagrams registry, appendix |
| Next | doc-prd |