14 KiB
		
	
	
	
	
	
	
	
			
		
		
	
	Document Project Workflow
Version: 1.2.0 Module: BMM (BMAD Method Module) Type: Action Workflow (Documentation Generator)
Purpose
Analyzes and documents brownfield projects by scanning codebase, architecture, and patterns to create comprehensive reference documentation for AI-assisted development. Generates a master index and multiple documentation files tailored to project structure and type.
NEW in v1.2.0: Context-safe architecture with scan levels, resumability, and write-as-you-go pattern to prevent context exhaustion.
Key Features
- Multi-Project Type Support: Handles web, backend, mobile, CLI, game, embedded, data, infra, library, desktop, and extension projects
 - Multi-Part Detection: Automatically detects and documents projects with separate client/server or multiple services
 - Three Scan Levels (NEW v1.2.0): Quick (2-5 min), Deep (10-30 min), Exhaustive (30-120 min)
 - Resumability (NEW v1.2.0): Interrupt and resume workflows without losing progress
 - Write-as-you-go (NEW v1.2.0): Documents written immediately to prevent context exhaustion
 - Intelligent Batching (NEW v1.2.0): Subfolder-based processing for deep/exhaustive scans
 - Data-Driven Analysis: Uses CSV-based project type detection and documentation requirements
 - Comprehensive Scanning: Analyzes APIs, data models, UI components, configuration, security patterns, and more
 - Architecture Matching: Matches projects to 170+ architecture templates from the solutioning registry
 - Brownfield PRD Ready: Generates documentation specifically designed for AI agents planning new features
 
How to Invoke
workflow document-project
Or from BMAD CLI:
/bmad:bmm:workflows:document-project
Scan Levels (NEW in v1.2.0)
Choose the right scan depth for your needs:
1. Quick Scan (Default)
Duration: 2-5 minutes What it does: Pattern-based analysis without reading source files Reads: Config files, package manifests, directory structure, README Use when:
- You need a fast project overview
 - Initial understanding of project structure
 - Planning next steps before deeper analysis
 
Does NOT read: Source code files (_.js, _.ts, _.py, _.go, etc.)
2. Deep Scan
Duration: 10-30 minutes What it does: Reads files in critical directories based on project type Reads: Files in critical paths defined by documentation requirements Use when:
- Creating comprehensive documentation for brownfield PRD
 - Need detailed analysis of key areas
 - Want balance between depth and speed
 
Example: For a web app, reads controllers/, models/, components/, but not every utility file
3. Exhaustive Scan
Duration: 30-120 minutes What it does: Reads ALL source files in project Reads: Every source file (excludes node_modules, dist, build, .git) Use when:
- Complete project analysis needed
 - Migration planning requires full understanding
 - Detailed audit of entire codebase
 - Deep technical debt assessment
 
Note: Deep-dive mode ALWAYS uses exhaustive scan (no choice)
Resumability (NEW in v1.2.0)
The workflow can be interrupted and resumed without losing progress:
- State Tracking: Progress saved in 
project-scan-report.json - Auto-Detection: Workflow detects incomplete runs (<24 hours old)
 - Resume Prompt: Choose to resume or start fresh
 - Step-by-Step: Resume from exact step where interrupted
 - Archiving: Old state files automatically archived
 
Example Resume Flow:
> workflow document-project
I found an in-progress workflow state from 2025-10-11 14:32:15.
Current Progress:
- Mode: initial_scan
- Scan Level: deep
- Completed Steps: 5/12
- Last Step: step_5
Would you like to:
1. Resume from where we left off - Continue from step 6
2. Start fresh - Archive old state and begin new scan
3. Cancel - Exit without changes
Your choice [1/2/3]:
What It Does
Step-by-Step Process
- Detects Project Structure - Identifies if project is single-part or multi-part (client/server/etc.)
 - Classifies Project Type - Matches against 12 project types (web, backend, mobile, etc.)
 - Discovers Documentation - Finds existing README, CONTRIBUTING, ARCHITECTURE files
 - Analyzes Tech Stack - Parses package files, identifies frameworks, versions, dependencies
 - Conditional Scanning - Performs targeted analysis based on project type requirements:
- API routes and endpoints
 - Database models and schemas
 - State management patterns
 - UI component libraries
 - Configuration and security
 - CI/CD and deployment configs
 
 - Generates Source Tree - Creates annotated directory structure with critical paths
 - Extracts Dev Instructions - Documents setup, build, run, and test commands
 - Creates Architecture Docs - Generates detailed architecture using matched templates
 - Builds Master Index - Creates comprehensive index.md as primary AI retrieval source
 - Validates Output - Runs 140+ point checklist to ensure completeness
 
Output Files
Single-Part Projects:
index.md- Master indexproject-overview.md- Executive summaryarchitecture.md- Detailed architecturesource-tree-analysis.md- Annotated directory treecomponent-inventory.md- Component catalog (if applicable)development-guide.md- Local dev instructionsapi-contracts.md- API documentation (if applicable)data-models.md- Database schema (if applicable)deployment-guide.md- Deployment process (optional)contribution-guide.md- Contributing guidelines (optional)project-scan-report.json- State file for resumability (NEW v1.2.0)
Multi-Part Projects (e.g., client + server):
index.md- Master index with part navigationproject-overview.md- Multi-part summaryarchitecture-{part_id}.md- Per-part architecture docssource-tree-analysis.md- Full tree with part annotationscomponent-inventory-{part_id}.md- Per-part componentsdevelopment-guide-{part_id}.md- Per-part dev guidesintegration-architecture.md- How parts communicateproject-parts.json- Machine-readable metadataproject-scan-report.json- State file for resumability (NEW v1.2.0)- Additional conditional files per part (API, data models, etc.)
 
Data Files
The workflow uses a single comprehensive CSV file:
documentation-requirements.csv - Complete project analysis guide
- Location: 
/bmad/bmm/workflows/document-project/documentation-requirements.csv - 12 project types (web, mobile, backend, cli, library, desktop, game, data, extension, infra, embedded)
 - 24 columns combining:
- Detection columns: 
project_type_id,key_file_patterns(identifies project type from codebase) - Requirement columns: 
requires_api_scan,requires_data_models,requires_ui_components, etc. - Pattern columns: 
critical_directories,test_file_patterns,config_patterns, etc. 
 - Detection columns: 
 - Self-contained: All project detection AND scanning requirements in one file
 - Architecture patterns inferred from tech stack (no external registry needed)
 
Use Cases
Primary Use Case: Brownfield PRD Creation
After running this workflow, use the generated index.md as input to brownfield PRD workflows:
User: "I want to add a new dashboard feature"
PRD Workflow: Loads docs/index.md
→ Understands existing architecture
→ Identifies reusable components
→ Plans integration with existing APIs
→ Creates contextual PRD with epics and stories
Other Use Cases
- Onboarding New Developers - Comprehensive project documentation
 - Architecture Review - Structured analysis of existing system
 - Technical Debt Assessment - Identify patterns and anti-patterns
 - Migration Planning - Understand current state before refactoring
 
Requirements
Recommended Inputs (Optional)
- Project root directory (defaults to current directory)
 - README.md or similar docs (auto-discovered if present)
 - User guidance on key areas to focus (workflow will ask)
 
Tools Used
- File system scanning (Glob, Read, Grep)
 - Code analysis
 - Git repository analysis (optional)
 
Configuration
Default Output Location
Files are saved to: {output_folder} (from config.yaml)
Default: /docs/ folder in project root
Customization
- Modify 
documentation-requirements.csvto adjust scanning patterns for project types - Add new project types to 
project-types.csv - Add new architecture templates to 
registry.csv 
Example: Multi-Part Web App
Input:
my-app/
├── client/     # React frontend
├── server/     # Express backend
└── README.md
Detection Result:
- Repository Type: Monorepo
 - Part 1: client (web/React)
 - Part 2: server (backend/Express)
 
Output (10+ files):
docs/
├── index.md
├── project-overview.md
├── architecture-client.md
├── architecture-server.md
├── source-tree-analysis.md
├── component-inventory-client.md
├── development-guide-client.md
├── development-guide-server.md
├── api-contracts-server.md
├── data-models-server.md
├── integration-architecture.md
└── project-parts.json
Example: Simple CLI Tool
Input:
hello-cli/
├── main.go
├── go.mod
└── README.md
Detection Result:
- Repository Type: Monolith
 - Part 1: main (cli/Go)
 
Output (4 files):
docs/
├── index.md
├── project-overview.md
├── architecture.md
└── source-tree-analysis.md
Deep-Dive Mode
What is Deep-Dive Mode?
When you run the workflow on a project that already has documentation, you'll be offered a choice:
- Rescan entire project - Update all documentation with latest changes
 - Deep-dive into specific area - Generate EXHAUSTIVE documentation for a particular feature/module/folder
 - Cancel - Keep existing documentation
 
Deep-dive mode performs comprehensive, file-by-file analysis of a specific area, reading EVERY file completely and documenting:
- All exports with complete signatures
 - All imports and dependencies
 - Dependency graphs and data flow
 - Code patterns and implementations
 - Testing coverage and strategies
 - Integration points
 - Reuse opportunities
 
When to Use Deep-Dive Mode
- Before implementing a feature - Deep-dive the area you'll be modifying
 - During architecture review - Deep-dive complex modules
 - For code understanding - Deep-dive unfamiliar parts of codebase
 - When creating PRDs - Deep-dive areas affected by new features
 
Deep-Dive Process
- Workflow detects existing 
index.md - Offers deep-dive option
 - Suggests areas based on project structure:
- API route groups
 - Feature modules
 - UI component areas
 - Services/business logic
 
 - You select area or specify custom path
 - Workflow reads EVERY file in that area
 - Generates 
deep-dive-{area-name}.mdwith complete analysis - Updates 
index.mdwith link to deep-dive doc - Offers to deep-dive another area or finish
 
Deep-Dive Output Example
docs/deep-dive-dashboard-feature.md:
- Complete file inventory (47 files analyzed)
 - Every export with signatures
 - Dependency graph
 - Data flow analysis
 - Integration points
 - Testing coverage
 - Related code references
 - Implementation guidance
 - ~3,000 LOC documented in detail
 
Incremental Deep-Diving
You can deep-dive multiple areas over time:
- First run: Scan entire project → generates index.md
 - Second run: Deep-dive dashboard feature
 - Third run: Deep-dive API layer
 - Fourth run: Deep-dive authentication system
 
All deep-dive docs are linked from the master index.
Validation
The workflow includes a comprehensive 160+ point checklist covering:
- Project detection accuracy
 - Technology stack completeness
 - Codebase scanning thoroughness
 - Architecture documentation quality
 - Multi-part handling (if applicable)
 - Brownfield PRD readiness
 - Deep-dive completeness (if applicable)
 
Next Steps After Completion
- Review 
docs/index.md- Your master documentation index - Validate - Check generated docs for accuracy
 - Use for PRD - Point brownfield PRD workflow to index.md
 - Maintain - Re-run workflow when architecture changes significantly
 
File Structure
document-project/
├── workflow.yaml                    # Workflow configuration
├── instructions.md                  # Step-by-step workflow logic
├── checklist.md                     # Validation criteria
├── documentation-requirements.csv   # Project type scanning patterns
├── templates/                       # Output templates
│   ├── index-template.md
│   ├── project-overview-template.md
│   └── source-tree-template.md
└── README.md                        # This file
Troubleshooting
Issue: Project type not detected correctly
- Solution: Workflow will ask for confirmation; manually select correct type
 
Issue: Missing critical information
- Solution: Provide additional context when prompted; re-run specific analysis steps
 
Issue: Multi-part detection missed a part
- Solution: When asked to confirm parts, specify the missing part and its path
 
Issue: Architecture template doesn't match well
- Solution: Check registry.csv; may need to add new template or adjust matching criteria
 
Architecture Improvements in v1.2.0
Context-Safe Design
The workflow now uses a write-as-you-go architecture:
- Documents written immediately to disk (not accumulated in memory)
 - Detailed findings purged after writing (only summaries kept)
 - State tracking enables resumption from any step
 - Batching strategy prevents context exhaustion on large projects
 
Batching Strategy
For deep/exhaustive scans:
- Process ONE subfolder at a time
 - Read files → Extract info → Write output → Validate → Purge context
 - Primary concern is file SIZE (not count)
 - Track batches in state file for resumability
 
State File Format
Optimized JSON (no pretty-printing):
{
  "workflow_version": "1.2.0",
  "timestamps": {...},
  "mode": "initial_scan",
  "scan_level": "deep",
  "completed_steps": [...],
  "current_step": "step_6",
  "findings": {"summary": "only"},
  "outputs_generated": [...],
  "resume_instructions": "..."
}