8.8 KiB
Repository Structure Review: Enhancements for Real-World Coding Projects
After a thorough review of the entire repo, here are the structural issues and enhancement opportunities, organized by impact level.
1. CRITICAL: Dual Module Location Creates Broken References RESOLVED
Status: Fixed.
The repo had two overlapping locations for BMM content (src/bmm/ and src/modules/bmm/), causing 6 broken file references across 2 agent files. Agents referenced workflows that only existed in src/modules/bmm/, so the SM and UAT Validator agents would fail at runtime.
What was done:
- Moved
epic-execute/,epic-chain/, anduat-validate/fromsrc/modules/bmm/intosrc/bmm/workflows/(their correct locations) - Created
src/bmm/workflows/5-validation/for the UAT validation phase - Fixed
.bmad/→_bmad/path inconsistencies in the moved epic-chain and epic-execute files - Removed the
uat-reportmenu entry fromuat-validator.agent.yaml(workflow never existed anywhere) - Removed the
uat-automation-patternsknowledge reference fromuat-validator.agent.yaml(data file never existed) - Deleted the now-empty
src/modules/bmm/directory - All tests pass (schema validation, file refs, installation components, lint, markdown lint, formatting)
2. HIGH: No Guardrail for Broken File References in CI RESOLVED
Status: Fixed.
The repo already had a comprehensive file reference validator (tools/validate-file-refs.js) that catches broken references, but it ran in warning mode (exit 0) so issues were never blocking. There were also 6 pre-existing broken references preventing strict mode from being enabled.
What was done:
- Fixed 6 broken file references across 3 workflow files:
create-architecture/workflow.md— wrong directory name (architecture→create-architecture)create-story/checklist.md— wrong filename (validate-workflow.xml→workflow.xml)document-project/instructions.md— removed 3 references to non-existentworkflow-statusworkflow
- Switched
validate:refsto strict mode (--strictflag) so broken references now fail with exit code 1 - Added
validate:refsto thenpm testscript chain, so it runs in both pre-commit hooks and CI - CI workflow (
.github/workflows/quality.yaml) already ranvalidate:refs— the--strictflag now makes it a blocking check - All 471 file references across 242 source files now validate cleanly
3. HIGH: project-context.md Is a Hidden Prerequisite RESOLVED
project-context.md Is a Hidden PrerequisiteStatus: Fixed.
project-context.md is now surfaced as a recommended step across all user-facing documentation:
- README.md — Added a tip after Quick Flow's 3-command list for existing codebases, and inserted
/generate-project-contextas step 6 in the Full Planning Path before the build cycle - Getting Started tutorial — Added a "Project Context (Recommended for Existing Codebases)" subsection between Phase 3 and the build step, with Analyst agent instructions. Also added
generate-project-contextto the Quick Reference table - Established Projects guide — Inserted a new Step 3: "Generate Project Context" explaining both
generate-project-context(lean rules) anddocument-project(comprehensive docs) options - Workflow Map — Replaced the dense Context Management paragraph with a scannable "Creating Project Context" sub-heading and a comparison table of both workflows
4. HIGH: Artifact Storage Strategy Is Confusing RESOLVED
Status: Fixed.
Two sub-problems were addressed:
A) Orphaned sprint_artifacts variable (code fix):
sprint_artifactswas referenced inepic-chain/workflow.yaml,uat-validate/workflow.yaml, and 3 supporting markdown files but was never defined in anymodule.yaml— causing those workflows to break at runtime- All references replaced with
implementation_artifacts, which is properly defined inbmm/module.yamland serves the same purpose
B) Documentation gap (folder strategy):
- Getting Started tutorial — Expanded the installation section to explain all three output areas (
_bmad/,_bmad-output/,docs/), their purposes, and version control strategy - Workflow Map — Added an "Artifact Locations" reference table showing default paths, contents, and version control guidance for each folder category
Remaining (out of scope): The epic-execute/ workflow has hardcoded docs/ paths in its own config system (default-config.yaml) rather than using module variables — this is a separate issue
5. HIGH: Inconsistent Workflow File Format
Workflows use two different formats with no documented rationale:
| Format | Examples |
|---|---|
workflow.yaml (structured) |
dev-story, code-review, sprint-planning, correct-course |
workflow.md (markdown) |
quick-spec, quick-dev, create-architecture, create-prd |
| Custom names | workflow-create-prd.md, workflow-validate-prd.md |
Some workflows have both a workflow.yaml and a separate instructions.md, while others put everything in a single workflow.md.
Impact: IDE integrations, the manifest generator, and agent command generators all need to handle multiple formats. Contributors don't know which format to use when adding workflows.
Recommendation: Document the rationale (e.g., .yaml for machine-parseable configs with input_file_patterns, .md for pure instructional workflows). Consider standardizing on .yaml as the entry point with .md for instructions only.
6. MEDIUM: Missing Data Files Referenced by Agents RESOLVED
Status: Fixed as part of item #1. The uat-automation-patterns.yaml reference and the uat-report menu entry were removed from uat-validator.agent.yaml since neither resource existed anywhere in the repo.
7. MEDIUM: No Example Project or Post-Install Scaffold PARTIALLY RESOLVED
Status: Documentation improvements applied. Installer code enhancements remain as a future improvement.
What was done:
- README.md — Improved the post-install section to explain what folders were created (
_bmad/,_bmad-output/) and direct users to/bmad-help - Getting Started tutorial — Fixed the project folder tree to show the actual subfolder structure (
planning-artifacts/,implementation-artifacts/,docs/) instead of a flat layout. Added a "How do I verify my installation?" FAQ entry
Remaining (future enhancements):
- Generate a
_bmad-output/GETTING-STARTED.mdat install time with module-specific next steps - Enhance installer
renderInstallSummary()with module-aware guidance - Add sample PRD, architecture, and project-context outputs to the docs site
- Enhance
bmad statusto show project phase and recommend next workflow
8. MEDIUM: Test Suite Doesn't Use a Standard Test Runner
Tests in test/ use raw node:assert and node:test with custom scripts rather than a standard test framework. While Jest is in devDependencies, the actual tests don't use it. The test runner is bare node test/test-agent-schema.js.
Impact for contributors: No test watch mode, no standard patterns for adding tests, no IDE test integration. The Jest dependency appears unused.
Recommendation: Either migrate to Jest (since it's already a dependency) or remove Jest and document the node:test approach. Either way, add test watch capabilities for contributor DX.
9. MEDIUM: src/utility/agent-components/ Is Undocumented
The src/utility/ directory contains shared agent components but isn't mentioned in the README, CLAUDE.md, or CONTRIBUTING.md. Its relationship to the module system is unclear.
Recommendation: Document this directory's purpose and how components are shared across modules.
10. LOW: CONTRIBUTING.md References Non-Existent Scripts
The contribution workflow likely references npm run validate:refs which doesn't exist as a standalone script in package.json. The actual ref validation is test:refs (which runs test-file-refs-csv.js).
Recommendation: Audit CONTRIBUTING.md to ensure all referenced commands exist.
11. LOW: Workflow Phase Numbering Gap RESOLVED
Status: Fixed as part of item #1. Phase 5 (5-validation/uat-validate/) has been moved into src/bmm/workflows/, completing the phase 1-5 progression in the main module.
Summary: Top 5 Actionable Improvements
| Priority | Enhancement | User Impact |
|---|---|---|
src/bmm/ and src/modules/bmm/ |
RESOLVED | |
| RESOLVED | ||
project-context.md in onboarding flow |
RESOLVED | |
| RESOLVED | ||
| PARTIALLY RESOLVED (docs improved; installer enhancements remain) |