
bmad-document-project
BROWNFIELD planning input. Scans an existing codebase READ-ONLY and writes project-documentation.md — ground truth for stack, structure, key flows, conventions, and integration points — so downstream BMAD planning skills start from reality. Does NOT modify code; produces only the doc artifact. Use when the user says: "document this codebase", "document the project", "document my app", "scan the existing code", "brownfield planning", "we have existing code, start planning", "map what's already built", "document current state", "capture the current architecture", "understand the existing system before planning", "write project-documentation.md", or before a PRD or architecture doc when the user already has code written. Three intents: Create (initial scan), Update (re-scan changed areas), Validate (check completeness). Plans only — reads code but never writes it, runs no tests, no linters, no build tools, no application code.
- Installs
- 96
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/aj-geddes/claude-code-bmad-skills --skill bmad-document-project- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads bmad-document-project automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
BMAD Document Project
BROWNFIELD entry point. When a project already has code, planning skills need
ground truth — not guesses about the stack or conventions. This skill performs a
systematic, READ-ONLY codebase scan and emits project-documentation.md, the
authoritative current-state snapshot that every downstream BMAD planning skill loads.
No code is written, modified, or executed. Allowed tools are Read, Glob, Grep, Write (for the output document only), and TodoWrite (to track scan progress).
Output
bmad-output/project-documentation.md
(or the user-configured output folder — honor it)
Load bmad-output/project-context.md if it exists; merge any constraints already
recorded there rather than rediscovering them from scratch.
Three Intents
Ask which intent applies if ambiguous; never silently regenerate an existing document.
Create — initial scan
Use TodoWrite to track the six scan passes below. Complete every pass before writing the final document.
Pass 1 — Repository skeleton
Glob: **/* (depth ≤ 3, exclude node_modules, .git, dist, build, __pycache__, .venv)
Glob: *.md, *.txt, *.rst at root and docs/
Capture: directory tree shape, presence of monorepo markers (packages/,
apps/, libs/), top-level config files, documentation roots.
Pass 2 — Stack and toolchain
Read whichever of these exist (don't fail on missing files):
| File | What to extract |
|---|---|
package.json / package-lock.json | runtime + dev deps, scripts |
pyproject.toml / requirements*.txt / Pipfile | Python stack |
go.mod | Go module + dependencies |
Cargo.toml | Rust crate |
pom.xml / build.gradle | JVM stack |
Gemfile | Ruby stack |
composer.json | PHP stack |
*.csproj / *.sln | .NET stack |
Dockerfile / docker-compose*.yml | container strategy |
.github/workflows/*.yml / *.gitlab-ci.yml / Jenkinsfile | CI/CD chain |
*.tf / *.bicep / *.yaml (in infra/) | IaC / cloud provider |
Record: primary language, frameworks, major libraries, runtime version pins, test frameworks (note them — do NOT run them), build tool, package manager.
Pass 3 — Entry points and key flows
Grep: "main\|entrypoint\|app\.listen\|createServer\|handler\|router\|routes"
Grep: "export default\|module\.exports\|@app\.route\|@Controller\|@RestController"
Read the top-level entry files surfaced (max 5–8 files; skim, don't exhaustively read).
Capture: how the app starts, primary routing layer, authentication/middleware chain (names only), background workers or queues detected.
Pass 4 — Module / domain structure
Read directory names and index.* / __init__.* files one level down from src/,
app/, lib/, or the equivalent.
Glob: src/**/index.{ts,js,py,go,rb}
Glob: app/**/__init__.py
Capture: module names and inferred responsibility, layer boundaries (controllers / services / repositories / models / utils), shared utilities.
Pass 5 — Conventions and patterns
Sample 3–5 representative files per layer (prefer recently modified if discernible from file names / path depth):
Grep: "class \|interface \|type \|enum " — naming style
Grep: "async \|await \|Promise\|goroutine\|concurrent" — concurrency pattern
Grep: "import \|require\|from " — module resolution style
Grep: "console\.log\|logger\.\|log\." — logging approach
Grep: "\.env\|process\.env\|os\.environ\|config\." — config/secrets pattern
Capture: naming conventions (casing style for files, classes, functions), error handling style, logging approach, config/secrets management, test file location convention (name only — no execution).
Pass 6 — Integration points
Grep: "http[s]\?://\|fetch(\|axios\.\|requests\.\|http\.Get\|RestTemplate"
Grep: "database\|db\.\|pool\.\|prisma\.\|mongoose\.\|sqlx\.\|gorm\."
Grep: "redis\|kafka\|rabbitmq\|sqs\|pubsub\|queue\|event"
Grep: "s3\.\|storage\.\|blob\.\|bucket"
Capture: external HTTP APIs called (domains/service names, not secrets), database type and ORM/driver, message queues or event buses, object storage, third-party services (payment, email, auth providers — names only).
Write the document
Fill ${CLAUDE_PLUGIN_ROOT}/skills/bmad-document-project/templates/project-documentation.template.md
→ bmad-output/project-documentation.md.
Use the Write tool. Leave sections with a <!-- not detected --> comment rather
than inventing content. Accuracy over completeness.
Update — re-scan changed areas
- Read existing
project-documentation.md. - Ask the user which areas changed (new module? new dependency? refactor?).
- Re-run only the relevant passes above for those areas.
- Edit the document surgically with precise rewrites of changed sections.
- Append a dated update note at the bottom of the document.
Do NOT regenerate the full document from scratch if only part has changed.
Validate — check completeness
Read the existing project-documentation.md and verify:
- All six scan areas have content (not blank or "not detected" for everything)
- Stack section names the primary language, framework, and major deps
- Entry points section names at least one bootstrap/start file
- Module structure lists recognizable domain names
- Conventions covers naming style and error handling
- Integration points lists external dependencies (or explicitly states "none")
- No fabricated file paths (cross-check one or two with Glob)
Report a pass/fail checklist. Offer to fill gaps rather than silently editing.
Scope Boundary
This skill is READ-ONLY except for its single output document. It:
- Does NOT modify any source file.
- Does NOT run tests, build scripts, linters, or coverage tools.
- Does NOT generate application code, migration files, or fixtures.
- Does NOT implement features or review diffs.
If a scan reveals something worth fixing, record it as a planning note in the document — do not fix it.
Handoff
Once project-documentation.md is written, it becomes the brownfield input for:
- bmad-init — seed
project-context.mdwith the detected stack and constraints. - bmad-prd — ground truth for existing capabilities and integration constraints.
- bmad-architecture — baseline architecture to evolve rather than design from scratch.
- bmad-tech-spec (Quick Flow) — concrete starting point for a focused spec.
State the recommended next step when the document is ready.
Persona Note
This analysis role aligns with Mary (Business Analyst) in the BMAD Method — start with what exists before prescribing what should change. The document is her field notes: precise, sourced, free of conjecture.
Part of the BMAD Planning & Orchestrator plugin — a Claude Code harness for the BMAD Method by the BMAD Code Organization (https://github.com/bmad-code-org/BMAD-METHOD). Implements the spirit of
bmad-document-project. All methodology credit belongs to the BMAD Code Organization.
FAQ
What does the bmad-document-project skill do?
BROWNFIELD planning input. Scans an existing codebase READ-ONLY and writes project-documentation.md — ground truth for stack, structure, key flows, conventions, and integration points — so downstream BMAD planning skills start from reality. Does NOT modify code; produces only the doc artifact. Use when the user says: "document this codebase", "document the project", "document my app", "scan the existing code", "brownfield planning", "we have existing code, start planning", "map what's already built", "document current state", "capture the current architecture", "understand the existing system before planning", "write project-documentation.md", or before a PRD or architecture doc when the user already has code written. Three intents: Create (initial scan), Update (re-scan changed areas), Validate (check completeness). Plans only — reads code but never writes it, runs no tests, no linters, no build tools, no application code.
How do I install bmad-document-project?
Run npx skills add https://github.com/aj-geddes/claude-code-bmad-skills --skill bmad-document-project in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/bmad-document-project/ (personal) or .claude/skills/bmad-document-project/ (project).
Which AI agents can use bmad-document-project?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is bmad-document-project safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains bmad-document-project?
It is published by aj-geddes in aj-geddes/claude-code-bmad-skills. It has 96 recorded installs.
More from aj-geddes/claude-code-bmad-skills
business-analyst
aj-geddes/claude-code-bmad-skills
Product discovery and requirements analysis specialist. Conducts stakeholder interviews, market research, problem discovery, and creates product briefs. Use for product brief, brainstorm, research, discovery, requirements gathering, problem analysis, user needs, competitive analysis, and setting foundation before product planning. Hands off to product manager when analysis complete.
product-manager
aj-geddes/claude-code-bmad-skills
Product requirements and planning specialist. Creates PRDs and tech specs with functional/non-functional requirements, prioritizes features using MoSCoW/RICE frameworks, breaks down epics into user stories, and ensures requirements are testable and traceable. Use for PRD creation, requirements definition, feature prioritization, tech specs, epics, user stories, and acceptance criteria.
system-architect
aj-geddes/claude-code-bmad-skills
Designs system architecture, selects tech stacks, defines components and interfaces, addresses non-functional requirements. Trigger words - architecture, system design, tech stack, components, scalability, security, API design, data model, NFR, patterns, microservices, monolith
ux-designer
aj-geddes/claude-code-bmad-skills
Designs user experiences, creates wireframes, defines user flows, ensures accessibility. Trigger keywords - UX design, wireframe, user flow, accessibility, WCAG, mobile-first, responsive, UI design, user journey, interface design, user experience, design system, component design, interaction design
creative-intelligence
aj-geddes/claude-code-bmad-skills
Facilitates structured brainstorming sessions, conducts comprehensive research, and generates creative solutions using proven frameworks. Trigger keywords - brainstorm, ideate, research, SCAMPER, SWOT, mind map, creative, explore ideas, market research, competitive analysis, innovation, problem solving, feature generation
scrum master
aj-geddes/claude-code-bmad-skills
Sprint planning and agile workflow specialist. Breaks epics into user stories, estimates complexity using story points, plans sprint iterations, and tracks velocity. Trigger keywords - sprint planning, user story, story points, velocity, backlog, sprint, epic breakdown, estimation, burndown, agile planning.
Popular code quality & workflow skills
grill-me
mattpocock/skills
A relentless interview to sharpen a plan or design.
improve-codebase-architecture
mattpocock/skills
Scan a codebase for deepening opportunities, present them as a visual HTML report, then grill through whichever one you pick.
handoff
mattpocock/skills
Compact the current conversation into a handoff document for another agent to pick up.
domain-modeling
mattpocock/skills
Build and sharpen a project's domain model. Use when discussing codebase terminology, writing or editing a GLOSSARY.md, or recording or editing an ADR.
codebase-design
mattpocock/skills
Shared vocabulary for designing deep modules. Use when the user wants to design or improve a module's interface, find deepening opportunities, decide where a seam goes, make code more testable or AI-navigable, or when another skill needs the deep-module vocabulary.
diagnosing-bugs
mattpocock/skills
Diagnosis loop for hard bugs and performance regressions. Use when the user says "diagnose"/"debug this", or reports something broken/throwing/failing/slow.