Skip to content

Document Structure ​

Every BSpec document follows a consistent structure that makes it both human-readable and machine-parseable.

File Format ​

BSpec documents are written in Markdown with YAML frontmatter:

markdown
---
# YAML metadata here
---

# Markdown content here

Complete Document Template ​

yaml
---
# ============================================================================
# CORE IDENTITY
# ============================================================================
id: {TYPE}-{kebab-case-identifier}
type: {TYPE}
title: "{Document Title}"
status: Draft|Review|Approved|Active|Deprecated
version: 1.0.0

# ============================================================================
# OWNERSHIP & STAKEHOLDERS
# ============================================================================
owner: {owner-name}
stakeholders: [stakeholder-1, stakeholder-2]

# ============================================================================
# BUSINESS CONTEXT
# ============================================================================
domain: {domain-name}
priority: Critical|High|Medium|Low
scope: {scope-description}
horizon: tactical|strategic|operational
visibility: public|internal|confidential

# ============================================================================
# RELATIONSHIPS (Creates Knowledge Graph)
# ============================================================================
depends_on: [document-ids-this-depends-on]
enables: [document-ids-this-enables]
conflicts_with: [document-ids-that-conflict]
related_to: [related-document-ids]

# ============================================================================
# SUCCESS & VALIDATION
# ============================================================================
success_criteria:
  - "Measurable success criterion 1"
  - "Measurable success criterion 2"

assumptions:
  - "Key assumption 1"
  - "Key assumption 2"

constraints: [constraint-1, constraint-2]

# ============================================================================
# METADATA
# ============================================================================
standards: [relevant-standards]
review_cycle: weekly|monthly|quarterly|annually
tags: [tag1, tag2]

# ============================================================================
# TYPE-SPECIFIC FIELDS
# ============================================================================
# Each document type has its own specific fields here
# See individual document type specifications
---

# {Document Title}

## Executive Summary

Brief overview of the document purpose and key points.

## Main Content

Document content in Markdown format with:
- Headings
- Lists
- Tables
- Code blocks
- Links

## Appendices

Additional supporting information.

Required Fields ​

All documents must have:

  • id - Unique identifier in format {TYPE}-{identifier}
  • type - Three-letter document type code (e.g., VSN, STR, MSN)
  • title - Human-readable title
  • status - Current document status
  • version - Semantic version number
  • owner - Person or team responsible
  • domain - Business domain the document belongs to

Optional Fields ​

Documents may include:

  • stakeholders - People or teams who are stakeholders
  • priority - Business priority level
  • scope - What the document covers
  • horizon - Time horizon (tactical/strategic/operational)
  • visibility - Who can access this document
  • success_criteria - How to measure success
  • assumptions - Key assumptions made
  • constraints - Limiting factors
  • standards - Standards this conforms to
  • review_cycle - How often to review
  • tags - Classification tags

Relationship Fields ​

These fields create the business knowledge graph:

depends_on ​

Documents this document requires to be meaningful.

yaml
depends_on:
  - VSN-product-2025  # Needs vision
  - STR-growth-2025   # Needs strategy

enables ​

Documents that this document makes possible.

yaml
enables:
  - PRD-feature-a     # Enables product requirements
  - BRD-integration-b # Enables business requirements

conflicts_with ​

Mutually exclusive documents.

yaml
conflicts_with:
  - STR-alternative-approach  # Can't coexist with alternative

Related but not dependent documents.

yaml
related_to:
  - MKT-analysis-q4  # Related market analysis
  - CMP-landscape    # Related competitive info

Status Values ​

Documents progress through these statuses:

  • Draft - Initial creation, work in progress
  • Review - Ready for stakeholder review
  • Approved - Approved but not yet active
  • Active - Currently in effect
  • Deprecated - No longer valid, kept for reference

Version Format ​

Use semantic versioning: MAJOR.MINOR.PATCH

  • MAJOR - Breaking changes (1.0.0 → 2.0.0)
  • MINOR - New features, backward compatible (1.0.0 → 1.1.0)
  • PATCH - Bug fixes, minor updates (1.0.0 → 1.0.1)

Document Type Codes ​

All 82 BSpec document types use three-letter codes:

Strategic Foundation (8) ​

VSN, STR, MSN, VAL, OBJ, PUR, THY, MOT

Market Environment (10) ​

MKT, SEG, CMP, ECO, TRN, REG, OPP, POS, THR, MAC

Customer Value (13) ​

CUS, PER, USE, STO, PAI, FEE, CJM, SUR, JTB, CIN, EMP, GAI, BEH

Product & Service (10) ​

PRD, FEA, SVC, REQ, QUA, UXD, ROD, INT, SUP, PSP

Business Model (9) ​

REV, PRI, CST, VST, CHN, KPT, KRS, KAC, CUS

Operations & Execution (12) ​

OPS, PRO, WFL, ORG, TEA, ROL, POL, VND, SKI, CAP, SLA, FAC

Technology & Data (8) ​

SYS, API, DAT, ARC, DEV, INF, SEC, ANA

Financial & Investment (10) ​

FIN, BUD, FOR, FND, INV, VLU, MET, REP, TAX, AUD

Risk & Governance (8) ​

RSK, GOV, COM, INS, INC, CTL, LEG, ETH

Growth & Innovation (7) ​

INN, EXP, RND, FUT, LEA, ADT, IGN

Learning & Decisions (6) ​

DEC, KNO, LRN, HYP, RET, WIS

Brand & Marketing (12) ​

BRD, MSG, CNT, CAM, SOC, SEO, MCH, BPO, IFL, TON, VID, PRF

File Naming Convention ​

Files should be named: {TYPE}-{identifier}.md

Examples:

  • VSN-product-2025.md
  • STR-growth-strategy.md
  • MSN-company-mission.md
  • BRD-feature-x-requirements.md

Best Practices ​

  1. One Concern Per Document: Each document should cover exactly one topic
  2. Clear IDs: Use descriptive, human-readable identifiers
  3. Explicit Relationships: Always declare dependencies and enablements
  4. Meaningful Status: Keep status current and accurate
  5. Version Everything: Increment version with every meaningful change
  6. Measure Success: Include concrete success criteria
  7. Regular Reviews: Set appropriate review cycles
  8. Rich Context: Provide enough context for the document to stand alone

Validation ​

Documents can be validated using:

  • CLI: bspec validate docs/
  • TypeScript SDK: validate(document)
  • Python SDK: document.validate()
  • Go SDK: doc.Validate()

Examples ​

See the document types for specific examples of each type.

Next Steps ​

Released under the MIT License.