3.1 KiB
CLAUDE.md
This file provides guidance to Claude Code when working in this repository.
Project Overview
BMad Method (Build More Architect Dreams) is an AI-driven agile development framework. It provides specialized agents, guided workflows, and structured processes defined in YAML and Markdown. The CLI installer (bmad-method) sets up these components in user projects for use with AI IDEs.
This is a content/configuration framework, not a traditional application. The codebase is primarily YAML agent definitions, Markdown workflow steps, and JS tooling for the CLI installer and validation.
Common Commands
Run all checks (equivalent to CI)
npm test
This runs, in order: schema tests, file ref tests, installation tests, schema validation, ESLint, markdownlint, and Prettier checks.
Individual checks
npm run test:schemas # Agent schema validation tests
npm run test:refs # CSV/file reference tests
npm run test:install # CLI installation component tests
npm run validate:schemas # YAML schema validation
npm run validate:refs # Strict file reference validation
npm run lint # ESLint (JS + YAML)
npm run lint:fix # ESLint with auto-fix
npm run lint:md # Markdown linting
npm run format:check # Prettier check
npm run format:fix # Prettier auto-format
Documentation site
npm run docs:dev # Local dev server
npm run docs:build # Build docs site
Architecture
src/core/- Core BMad framework (master agent, core tasks/workflows)src/bmm/- BMad Method Module: 10+ specialized agents (dev, pm, architect, qa, ux, scrum master, etc.), 34+ workflows, team configssrc/utility/- Reusable agent component templatestools/- CLI installer (tools/cli/), schema validators, build scriptstest/- Test fixtures and integration testswebsite/- Astro/Starlight documentation sitedocs/- Documentation source (Markdown)
Key Conventions
- YAML over YML: Always use
.yamlextension, never.yml - YAML quoting: Prefer double quotes in YAML files
- Print width: 140 characters (Prettier config)
- Indent: 2 spaces
- Line endings: LF
- Node version: 22 (see
.nvmrc), minimum 20.0.0 - Module system: Mixed ESM/CJS in tooling JS files
Commit Message Prefixes
Use conventional commit prefixes: feat:, fix:, docs:, refactor:, test:, chore:
Pre-commit Hooks
Husky + lint-staged runs on commit:
- JS files: ESLint fix + Prettier
- YAML files: ESLint fix + Prettier
- JSON files: Prettier
- Markdown files: markdownlint
Important Notes
- Agent YAML files must conform to the schema validated by
npm run validate:schemas - File references in CSV files are validated by
npm run validate:refs- keep them in sync - PR target is
main(trunk-based development) - PRs should be 200-400 lines (max 800 excluding generated files)
- The
website/directory is excluded from linting - Test fixtures in
test/fixtures/include intentionally invalid files - don't "fix" them