Compare commits
8 Commits
6da0b15f28
...
692e77b12e
| Author | SHA1 | Date |
|---|---|---|
|
|
692e77b12e | |
|
|
ac769b230f | |
|
|
9e7aeec385 | |
|
|
405fd93e50 | |
|
|
5f92146a29 | |
|
|
d2f15ef776 | |
|
|
a4ecc03dcc | |
|
|
d8a4f84b52 |
|
|
@ -7,7 +7,7 @@ name: Quality & Validation
|
|||
# - Schema validation (YAML structure)
|
||||
# - Agent schema tests (fixture-based validation)
|
||||
# - Installation component tests (compilation)
|
||||
# - Bundle validation (web bundle integrity)
|
||||
# Keep this workflow aligned with `npm run quality` in `package.json`.
|
||||
|
||||
"on":
|
||||
pull_request:
|
||||
|
|
|
|||
|
|
@ -0,0 +1,9 @@
|
|||
# BMAD-METHOD
|
||||
|
||||
Open source framework for structured, agent-assisted software delivery.
|
||||
|
||||
## Rules
|
||||
|
||||
- Use Conventional Commits for every commit.
|
||||
- Before pushing, run `npm ci && npm run quality` on `HEAD` in the exact checkout you are about to push.
|
||||
`quality` mirrors the checks in `.github/workflows/quality.yaml`.
|
||||
|
|
@ -58,6 +58,7 @@ Pick which AI tools you use:
|
|||
|
||||
- Claude Code
|
||||
- Cursor
|
||||
- Mistral Vibe
|
||||
- Others
|
||||
|
||||
Each tool has its own way of integrating skills. The installer creates tiny prompt files to activate workflows and agents — it just puts them where your tool expects to find them.
|
||||
|
|
@ -89,7 +90,10 @@ your-project/
|
|||
│ ├── bmad-help/
|
||||
│ ├── bmad-persona/
|
||||
│ └── ...
|
||||
└── .cursor/ # Cursor skills (if using Cursor)
|
||||
├── .cursor/ # Cursor skills (if using Cursor)
|
||||
│ └── skills/
|
||||
│ └── ...
|
||||
└── .vibe/ # Mistral Vibe skills (if using Mistral Vibe)
|
||||
└── skills/
|
||||
└── ...
|
||||
```
|
||||
|
|
|
|||
|
|
@ -61,6 +61,8 @@ Available tool IDs for the `--tools` flag:
|
|||
|
||||
**Preferred:** `claude-code`, `cursor`
|
||||
|
||||
**Other CLIs:** `mistral`, `gemini`, `codex`, `auggie`, `pi`
|
||||
|
||||
Run `npx bmad-method install` interactively once to see the full current list of supported tools, or check the [platform codes configuration](https://github.com/bmad-code-org/BMAD-METHOD/blob/main/tools/cli/installers/lib/ide/platform-codes.yaml).
|
||||
|
||||
## Installation Modes
|
||||
|
|
|
|||
|
|
@ -39,6 +39,7 @@
|
|||
"lint:fix": "eslint . --ext .js,.cjs,.mjs,.yaml --fix",
|
||||
"lint:md": "markdownlint-cli2 \"**/*.md\"",
|
||||
"prepare": "command -v husky >/dev/null 2>&1 && husky || exit 0",
|
||||
"quality": "npm run format:check && npm run lint && npm run lint:md && npm run docs:build && npm run validate:schemas && npm run test:schemas && npm run test:install && npm run validate:refs",
|
||||
"rebundle": "node tools/cli/bundlers/bundle-web.js rebundle",
|
||||
"test": "npm run test:schemas && npm run test:refs && npm run test:install && npm run validate:schemas && npm run lint && npm run lint:md && npm run format:check",
|
||||
"test:coverage": "c8 --reporter=text --reporter=html npm run test:schemas",
|
||||
|
|
|
|||
|
|
@ -21,9 +21,9 @@ agent:
|
|||
|
||||
menu:
|
||||
- trigger: CA or fuzzy match on create-architecture
|
||||
exec: "{project-root}/_bmad/bmm/workflows/3-solutioning/create-architecture/workflow.md"
|
||||
exec: "skill:bmad-create-architecture"
|
||||
description: "[CA] Create Architecture: Guided Workflow to document technical decisions to keep implementation on track"
|
||||
|
||||
- trigger: IR or fuzzy match on implementation-readiness
|
||||
exec: "{project-root}/_bmad/bmm/workflows/3-solutioning/check-implementation-readiness/workflow.md"
|
||||
exec: "skill:bmad-check-implementation-readiness"
|
||||
description: "[IR] Implementation Readiness: Ensure the PRD, UX, and Architecture and Epics and Stories List are all aligned"
|
||||
|
|
|
|||
|
|
@ -34,5 +34,5 @@ agent:
|
|||
description: "[DS] Dev Story: Write the next or specified stories tests and code."
|
||||
|
||||
- trigger: CR or fuzzy match on code-review
|
||||
exec: "{project-root}/_bmad/bmm/workflows/4-implementation/code-review/workflow.md"
|
||||
exec: "skill:bmad-code-review"
|
||||
description: "[CR] Code Review: Initiate a comprehensive code review across multiple quality facets. For best results, use a fresh context and a different quality LLM if available"
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ agent:
|
|||
description: "[CE] Create Epics and Stories: Create the Epics and Stories Listing, these are the specs that will drive development"
|
||||
|
||||
- trigger: IR or fuzzy match on implementation-readiness
|
||||
exec: "{project-root}/_bmad/bmm/workflows/3-solutioning/check-implementation-readiness/workflow.md"
|
||||
exec: "skill:bmad-check-implementation-readiness"
|
||||
description: "[IR] Implementation Readiness: Ensure the PRD, UX, and Architecture and Epics and Stories List are all aligned"
|
||||
|
||||
- trigger: CC or fuzzy match on correct-course
|
||||
|
|
|
|||
|
|
@ -32,5 +32,5 @@ agent:
|
|||
description: "[QQ] Quick Dev New (Preview): Unified quick flow — clarify intent, plan, implement, review, present (experimental)"
|
||||
|
||||
- trigger: CR or fuzzy match on code-review
|
||||
exec: "{project-root}/_bmad/bmm/workflows/4-implementation/code-review/workflow.md"
|
||||
exec: "skill:bmad-code-review"
|
||||
description: "[CR] Code Review: Initiate a comprehensive code review across multiple quality facets. For best results, use a fresh context and a different quality LLM if available"
|
||||
|
|
|
|||
|
|
@ -19,14 +19,14 @@ bmm,2-planning,Create PRD,CP,10,_bmad/bmm/workflows/2-plan-workflows/create-prd/
|
|||
bmm,2-planning,Validate PRD,VP,20,_bmad/bmm/workflows/2-plan-workflows/create-prd/workflow-validate-prd.md,bmad-bmm-validate-prd,false,pm,Validate Mode,"Validate PRD is comprehensive lean well organized and cohesive",planning_artifacts,"prd validation report",
|
||||
bmm,2-planning,Edit PRD,EP,25,_bmad/bmm/workflows/2-plan-workflows/create-prd/workflow-edit-prd.md,bmad-bmm-edit-prd,false,pm,Edit Mode,"Improve and enhance an existing PRD",planning_artifacts,"updated prd",
|
||||
bmm,2-planning,Create UX,CU,30,skill:bmad-create-ux-design,bmad-bmm-create-ux-design,false,ux-designer,Create Mode,"Guidance through realizing the plan for your UX, strongly recommended if a UI is a primary piece of the proposed project",planning_artifacts,"ux design",
|
||||
bmm,3-solutioning,Create Architecture,CA,10,_bmad/bmm/workflows/3-solutioning/create-architecture/workflow.md,bmad-bmm-create-architecture,true,architect,Create Mode,"Guided Workflow to document technical decisions",planning_artifacts,architecture,
|
||||
bmm,3-solutioning,Create Architecture,CA,10,skill:bmad-create-architecture,bmad-bmm-create-architecture,true,architect,Create Mode,"Guided Workflow to document technical decisions",planning_artifacts,architecture,
|
||||
bmm,3-solutioning,Create Epics and Stories,CE,30,_bmad/bmm/workflows/3-solutioning/create-epics-and-stories/workflow.md,bmad-bmm-create-epics-and-stories,true,pm,Create Mode,"Create the Epics and Stories Listing",planning_artifacts,"epics and stories",
|
||||
bmm,3-solutioning,Check Implementation Readiness,IR,70,_bmad/bmm/workflows/3-solutioning/check-implementation-readiness/workflow.md,bmad-bmm-check-implementation-readiness,true,architect,Validate Mode,"Ensure PRD UX Architecture and Epics Stories are aligned",planning_artifacts,"readiness report",
|
||||
bmm,3-solutioning,Check Implementation Readiness,IR,70,skill:bmad-check-implementation-readiness,bmad-bmm-check-implementation-readiness,true,architect,Validate Mode,"Ensure PRD UX Architecture and Epics Stories are aligned",planning_artifacts,"readiness report",
|
||||
bmm,4-implementation,Sprint Planning,SP,10,_bmad/bmm/workflows/4-implementation/sprint-planning/workflow.md,bmad-bmm-sprint-planning,true,sm,Create Mode,"Generate sprint plan for development tasks - this kicks off the implementation phase by producing a plan the implementation agents will follow in sequence for every story in the plan.",implementation_artifacts,"sprint status",
|
||||
bmm,4-implementation,Sprint Status,SS,20,_bmad/bmm/workflows/4-implementation/sprint-status/workflow.md,bmad-bmm-sprint-status,false,sm,Create Mode,"Anytime: Summarize sprint status and route to next workflow",,,
|
||||
bmm,4-implementation,Validate Story,VS,35,skill:bmad-create-story,bmad-bmm-create-story,false,sm,Validate Mode,"Validates story readiness and completeness before development work begins",implementation_artifacts,"story validation report",
|
||||
bmm,4-implementation,Create Story,CS,30,skill:bmad-create-story,bmad-bmm-create-story,true,sm,Create Mode,"Story cycle start: Prepare first found story in the sprint plan that is next, or if the command is run with a specific epic and story designation with context. Once complete, then VS then DS then CR then back to DS if needed or next CS or ER",implementation_artifacts,story,
|
||||
bmm,4-implementation,Dev Story,DS,40,skill:bmad-dev-story,bmad-bmm-dev-story,true,dev,Create Mode,"Story cycle: Execute story implementation tasks and tests then CR then back to DS if fixes needed",,,
|
||||
bmm,4-implementation,Code Review,CR,50,_bmad/bmm/workflows/4-implementation/code-review/workflow.md,bmad-bmm-code-review,false,dev,Create Mode,"Story cycle: If issues back to DS if approved then next CS or ER if epic complete",,,
|
||||
bmm,4-implementation,Code Review,CR,50,skill:bmad-code-review,bmad-bmm-code-review,false,dev,Create Mode,"Story cycle: If issues back to DS if approved then next CS or ER if epic complete",,,
|
||||
bmm,4-implementation,QA Automation Test,QA,45,_bmad/bmm/workflows/qa-generate-e2e-tests/workflow.md,bmad-bmm-qa-automate,false,qa,Create Mode,"Generate automated API and E2E tests for implemented code using the project's existing test framework (detects existing well known in use test frameworks). Use after implementation to add test coverage. NOT for code review or story validation - use CR for that.",implementation_artifacts,"test suite",
|
||||
bmm,4-implementation,Retrospective,ER,60,_bmad/bmm/workflows/4-implementation/retrospective/workflow.md,bmad-bmm-retrospective,false,sm,Create Mode,"Optional at epic end: Review completed work lessons learned and next epic or if major issues consider CC",implementation_artifacts,retrospective,
|
||||
|
|
|
|||
|
|
|
@ -0,0 +1,6 @@
|
|||
---
|
||||
name: bmad-check-implementation-readiness
|
||||
description: 'Validate PRD, UX, Architecture and Epics specs are complete. Use when the user says "check implementation readiness".'
|
||||
---
|
||||
|
||||
Follow the instructions in [workflow.md](workflow.md).
|
||||
|
|
@ -0,0 +1 @@
|
|||
type: skill
|
||||
|
|
@ -1,8 +1,3 @@
|
|||
---
|
||||
name: check-implementation-readiness
|
||||
description: 'Validate PRD, UX, Architecture and Epics specs are complete. Use when the user says "check implementation readiness".'
|
||||
---
|
||||
|
||||
# Implementation Readiness
|
||||
|
||||
**Goal:** Validate that PRD, Architecture, Epics and Stories are complete and aligned before Phase 4 implementation starts, with a focus on ensuring epics and stories are logical and have accounted for all requirements and planning.
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
---
|
||||
name: bmad-create-architecture
|
||||
description: 'Create architecture solution design decisions for AI agent consistency. Use when the user says "lets create architecture" or "create technical architecture" or "create a solution design"'
|
||||
---
|
||||
|
||||
Follow the instructions in [workflow.md](workflow.md).
|
||||
|
|
@ -0,0 +1 @@
|
|||
type: skill
|
||||
|
Can't render this file because it has a wrong number of fields in line 2.
|
|
|
@ -44,7 +44,7 @@ First, check if the output document already exists:
|
|||
|
||||
If the document exists and has frontmatter with `stepsCompleted`:
|
||||
|
||||
- **STOP here** and load `{project-root}/_bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-01b-continue.md` immediately
|
||||
- **STOP here** and load `./step-01b-continue.md` immediately
|
||||
- Do not proceed with any initialization tasks
|
||||
- Let step-01b handle the continuation logic
|
||||
|
||||
|
|
@ -148,6 +148,6 @@ Ready to begin architectural decision making. Do you have any other documents yo
|
|||
|
||||
## NEXT STEP:
|
||||
|
||||
After user selects [C] to continue, only after ensuring all the template output has been created, then load `{project-root}/_bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-02-context.md` to analyze the project context and begin architectural decision making.
|
||||
After user selects [C] to continue, only after ensuring all the template output has been created, then load `./step-02-context.md` to analyze the project context and begin architectural decision making.
|
||||
|
||||
Remember: Do NOT proceed to step-02 until user explicitly selects [C] from the menu and setup is confirmed!
|
||||
|
|
@ -85,7 +85,7 @@ Show the user their current progress:
|
|||
|
||||
- Identify the next step based on `stepsCompleted`
|
||||
- Load the appropriate step file to continue
|
||||
- Example: If `stepsCompleted: [1, 2, 3]`, load `{project-root}/_bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-04-decisions.md`
|
||||
- Example: If `stepsCompleted: [1, 2, 3]`, load `./step-04-decisions.md`
|
||||
|
||||
#### If 'C' (Continue to next logical step):
|
||||
|
||||
|
|
@ -103,7 +103,7 @@ Show the user their current progress:
|
|||
#### If 'X' (Start over):
|
||||
|
||||
- Confirm: "This will delete all existing architectural decisions. Are you sure? (y/n)"
|
||||
- If confirmed: Delete existing document and read fully and follow: `{project-root}/_bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-01-init.md`
|
||||
- If confirmed: Delete existing document and read fully and follow: `./step-01-init.md`
|
||||
- If not confirmed: Return to continuation menu
|
||||
|
||||
### 4. Navigate to Selected Step
|
||||
|
|
@ -162,12 +162,12 @@ After user makes choice:
|
|||
After user selects their continuation option, load the appropriate step file based on their choice. The step file will handle the detailed work from that point forward.
|
||||
|
||||
Valid step files to load:
|
||||
- `{project-root}/_bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-02-context.md`
|
||||
- `{project-root}/_bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-03-starter.md`
|
||||
- `{project-root}/_bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-04-decisions.md`
|
||||
- `{project-root}/_bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-05-patterns.md`
|
||||
- `{project-root}/_bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-06-structure.md`
|
||||
- `{project-root}/_bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-07-validation.md`
|
||||
- `{project-root}/_bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-08-complete.md`
|
||||
- `./step-02-context.md`
|
||||
- `./step-03-starter.md`
|
||||
- `./step-04-decisions.md`
|
||||
- `./step-05-patterns.md`
|
||||
- `./step-06-structure.md`
|
||||
- `./step-07-validation.md`
|
||||
- `./step-08-complete.md`
|
||||
|
||||
Remember: The goal is smooth, transparent resumption that respects the work already done while giving the user control over how to proceed.
|
||||
|
|
@ -188,7 +188,7 @@ Show the generated content and present choices:
|
|||
|
||||
- Append the final content to `{planning_artifacts}/architecture.md`
|
||||
- Update frontmatter: `stepsCompleted: [1, 2]`
|
||||
- Load `{project-root}/_bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-03-starter.md`
|
||||
- Load `./step-03-starter.md`
|
||||
|
||||
## APPEND TO DOCUMENT:
|
||||
|
||||
|
|
@ -219,6 +219,6 @@ When user selects 'C', append the content directly to the document using the str
|
|||
|
||||
## NEXT STEP:
|
||||
|
||||
After user selects 'C' and content is saved to document, load `{project-root}/_bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-03-starter.md` to evaluate starter template options.
|
||||
After user selects 'C' and content is saved to document, load `./step-03-starter.md` to evaluate starter template options.
|
||||
|
||||
Remember: Do NOT proceed to step-03 until user explicitly selects 'C' from the A/P/C menu and content is saved!
|
||||
|
|
@ -294,7 +294,7 @@ Show the generated content and present choices:
|
|||
|
||||
- Append the final content to `{planning_artifacts}/architecture.md`
|
||||
- Update frontmatter: `stepsCompleted: [1, 2, 3]`
|
||||
- Load `{project-root}/_bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-04-decisions.md`
|
||||
- Load `./step-04-decisions.md`
|
||||
|
||||
## APPEND TO DOCUMENT:
|
||||
|
||||
|
|
@ -324,6 +324,6 @@ When user selects 'C', append the content directly to the document using the str
|
|||
|
||||
## NEXT STEP:
|
||||
|
||||
After user selects 'C' and content is saved to document, load `{project-root}/_bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-04-decisions.md` to begin making specific architectural decisions.
|
||||
After user selects 'C' and content is saved to document, load `./step-04-decisions.md` to begin making specific architectural decisions.
|
||||
|
||||
Remember: Do NOT proceed to step-04 until user explicitly selects 'C' from the A/P/C menu and content is saved!
|
||||
|
|
@ -282,7 +282,7 @@ Show the generated decisions content and present choices:
|
|||
|
||||
- Append the final content to `{planning_artifacts}/architecture.md`
|
||||
- Update frontmatter: `stepsCompleted: [1, 2, 3, 4]`
|
||||
- Load `{project-root}/_bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-05-patterns.md`
|
||||
- Load `./step-05-patterns.md`
|
||||
|
||||
## APPEND TO DOCUMENT:
|
||||
|
||||
|
|
@ -313,6 +313,6 @@ When user selects 'C', append the content directly to the document using the str
|
|||
|
||||
## NEXT STEP:
|
||||
|
||||
After user selects 'C' and content is saved to document, load `{project-root}/_bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-05-patterns.md` to define implementation patterns that ensure consistency across AI agents.
|
||||
After user selects 'C' and content is saved to document, load `./step-05-patterns.md` to define implementation patterns that ensure consistency across AI agents.
|
||||
|
||||
Remember: Do NOT proceed to step-05 until user explicitly selects 'C' from the A/P/C menu and content is saved!
|
||||
|
|
@ -323,7 +323,7 @@ Show the generated patterns content and present choices:
|
|||
|
||||
- Append the final content to `{planning_artifacts}/architecture.md`
|
||||
- Update frontmatter: `stepsCompleted: [1, 2, 3, 4, 5]`
|
||||
- Load `{project-root}/_bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-06-structure.md`
|
||||
- Load `./step-06-structure.md`
|
||||
|
||||
## APPEND TO DOCUMENT:
|
||||
|
||||
|
|
@ -354,6 +354,6 @@ When user selects 'C', append the content directly to the document using the str
|
|||
|
||||
## NEXT STEP:
|
||||
|
||||
After user selects 'C' and content is saved to document, load `{project-root}/_bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-06-structure.md` to define the complete project structure.
|
||||
After user selects 'C' and content is saved to document, load `./step-06-structure.md` to define the complete project structure.
|
||||
|
||||
Remember: Do NOT proceed to step-06 until user explicitly selects 'C' from the A/P/C menu and content is saved!
|
||||
|
|
@ -343,7 +343,7 @@ Show the generated project structure content and present choices:
|
|||
|
||||
- Append the final content to `{planning_artifacts}/architecture.md`
|
||||
- Update frontmatter: `stepsCompleted: [1, 2, 3, 4, 5, 6]`
|
||||
- Load `{project-root}/_bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-07-validation.md`
|
||||
- Load `./step-07-validation.md`
|
||||
|
||||
## APPEND TO DOCUMENT:
|
||||
|
||||
|
|
@ -374,6 +374,6 @@ When user selects 'C', append the content directly to the document using the str
|
|||
|
||||
## NEXT STEP:
|
||||
|
||||
After user selects 'C' and content is saved to document, load `{project-root}/_bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-07-validation.md` to validate architectural coherence and completeness.
|
||||
After user selects 'C' and content is saved to document, load `./step-07-validation.md` to validate architectural coherence and completeness.
|
||||
|
||||
Remember: Do NOT proceed to step-07 until user explicitly selects 'C' from the A/P/C menu and content is saved!
|
||||
|
|
@ -323,7 +323,7 @@ Show the validation results and present choices:
|
|||
|
||||
- Append the final content to `{planning_artifacts}/architecture.md`
|
||||
- Update frontmatter: `stepsCompleted: [1, 2, 3, 4, 5, 6, 7]`
|
||||
- Load `{project-root}/_bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-08-complete.md`
|
||||
- Load `./step-08-complete.md`
|
||||
|
||||
## APPEND TO DOCUMENT:
|
||||
|
||||
|
|
@ -354,6 +354,6 @@ When user selects 'C', append the content directly to the document using the str
|
|||
|
||||
## NEXT STEP:
|
||||
|
||||
After user selects 'C' and content is saved to document, load `{project-root}/_bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-08-complete.md` to complete the workflow and provide implementation guidance.
|
||||
After user selects 'C' and content is saved to document, load `./step-08-complete.md` to complete the workflow and provide implementation guidance.
|
||||
|
||||
Remember: Do NOT proceed to step-08 until user explicitly selects 'C' from the A/P/C menu and content is saved!
|
||||
|
|
@ -1,8 +1,3 @@
|
|||
---
|
||||
name: create-architecture
|
||||
description: 'Create architecture solution design decisions for AI agent consistency. Use when the user says "lets create architecture" or "create technical architecture" or "create a solution design"'
|
||||
---
|
||||
|
||||
# Architecture Workflow
|
||||
|
||||
**Goal:** Create comprehensive architecture decisions through collaborative step-by-step discovery that ensures AI agents implement consistently.
|
||||
|
|
@ -36,7 +31,7 @@ Load config from `{project-root}/_bmad/bmm/config.yaml` and resolve:
|
|||
|
||||
### Paths
|
||||
|
||||
- `installed_path` = `{project-root}/_bmad/bmm/workflows/3-solutioning/create-architecture`
|
||||
- `installed_path` = `.`
|
||||
- `template_path` = `{installed_path}/architecture-decision-template.md`
|
||||
- `data_files_path` = `{installed_path}/data/`
|
||||
|
||||
|
|
@ -44,6 +39,6 @@ Load config from `{project-root}/_bmad/bmm/config.yaml` and resolve:
|
|||
|
||||
## EXECUTION
|
||||
|
||||
Read fully and follow: `{project-root}/_bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-01-init.md` to begin the workflow.
|
||||
Read fully and follow: `./steps/step-01-init.md` to begin the workflow.
|
||||
|
||||
**Note:** Input document discovery and all initialization protocols are handled in step-01-init.md.
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
canonicalId: bmad-check-implementation-readiness
|
||||
type: workflow
|
||||
description: "Validate PRD, UX, Architecture and Epics specs are complete"
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
canonicalId: bmad-create-architecture
|
||||
type: workflow
|
||||
description: "Create architecture solution design decisions for AI agent consistency"
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
---
|
||||
name: bmad-code-review
|
||||
description: 'Perform adversarial code review finding specific issues. Use when the user says "run code review" or "review this code"'
|
||||
---
|
||||
|
||||
Follow the instructions in [workflow.md](workflow.md).
|
||||
|
|
@ -0,0 +1 @@
|
|||
type: skill
|
||||
|
|
@ -1,8 +1,3 @@
|
|||
---
|
||||
name: code-review
|
||||
description: 'Perform adversarial code review finding specific issues. Use when the user says "run code review" or "review this code"'
|
||||
---
|
||||
|
||||
# Code Review Workflow
|
||||
|
||||
**Goal:** Perform adversarial code review finding specific issues.
|
||||
|
|
@ -35,7 +30,7 @@ Load config from `{project-root}/_bmad/bmm/config.yaml` and resolve:
|
|||
|
||||
### Paths
|
||||
|
||||
- `installed_path` = `{project-root}/_bmad/bmm/workflows/4-implementation/code-review`
|
||||
- `installed_path` = `.`
|
||||
- `sprint_status` = `{implementation_artifacts}/sprint-status.yaml`
|
||||
- `validation` = `{installed_path}/checklist.md`
|
||||
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
canonicalId: bmad-code-review
|
||||
type: workflow
|
||||
description: "Perform adversarial code review finding specific issues"
|
||||
|
|
@ -1645,9 +1645,99 @@ async function runTests() {
|
|||
console.log('');
|
||||
|
||||
// ============================================================
|
||||
// Suite 29: Unified Skill Scanner — collectSkills
|
||||
// Suite 29: Mistral Vibe CLI Native Skills
|
||||
// ============================================================
|
||||
console.log(`${colors.yellow}Test Suite 29: Unified Skill Scanner${colors.reset}\n`);
|
||||
console.log(`${colors.yellow}Test Suite 29: Mistral Vibe CLI Native Skills${colors.reset}\n`);
|
||||
|
||||
let tempProjectDir29;
|
||||
let installedBmadDir29;
|
||||
try {
|
||||
clearCache();
|
||||
const platformCodes29 = await loadPlatformCodes();
|
||||
const mistralInstaller = platformCodes29.platforms.mistral?.installer;
|
||||
|
||||
assert(mistralInstaller?.target_dir === '.vibe/skills', 'Mistral Vibe target_dir uses native skills path');
|
||||
assert(mistralInstaller?.skill_format === true, 'Mistral Vibe installer enables native skill output');
|
||||
assert(mistralInstaller?.template_type === 'default', 'Mistral Vibe installer uses default skill template');
|
||||
|
||||
tempProjectDir29 = await fs.mkdtemp(path.join(os.tmpdir(), 'bmad-mistral-test-'));
|
||||
installedBmadDir29 = await createTestBmadFixture();
|
||||
|
||||
const ideManager29 = new IdeManager();
|
||||
await ideManager29.ensureInitialized();
|
||||
|
||||
// Verify Mistral Vibe is selectable in available IDEs list
|
||||
const availableIdes29 = ideManager29.getAvailableIdes();
|
||||
assert(
|
||||
availableIdes29.some((ide) => ide.value === 'mistral'),
|
||||
'Mistral Vibe appears in available IDEs list',
|
||||
);
|
||||
|
||||
// Verify Mistral Vibe is NOT detected before install
|
||||
const detectedBefore29 = await ideManager29.detectInstalledIdes(tempProjectDir29);
|
||||
assert(!detectedBefore29.includes('mistral'), 'Mistral Vibe is not detected before install');
|
||||
|
||||
const result29 = await ideManager29.setup('mistral', tempProjectDir29, installedBmadDir29, {
|
||||
silent: true,
|
||||
selectedModules: ['bmm'],
|
||||
});
|
||||
|
||||
assert(result29.success === true, 'Mistral Vibe setup succeeds against temp project');
|
||||
|
||||
// Verify Mistral Vibe IS detected after install
|
||||
const detectedAfter29 = await ideManager29.detectInstalledIdes(tempProjectDir29);
|
||||
assert(detectedAfter29.includes('mistral'), 'Mistral Vibe is detected after install');
|
||||
|
||||
const skillFile29 = path.join(tempProjectDir29, '.vibe', 'skills', 'bmad-master', 'SKILL.md');
|
||||
assert(await fs.pathExists(skillFile29), 'Mistral Vibe install writes SKILL.md directory output');
|
||||
|
||||
// Parse YAML frontmatter between --- markers
|
||||
const skillContent29 = await fs.readFile(skillFile29, 'utf8');
|
||||
const fmMatch29 = skillContent29.match(/^---\n([\s\S]*?)\n---\n?([\s\S]*)$/);
|
||||
assert(fmMatch29, 'Mistral Vibe SKILL.md contains valid frontmatter delimiters');
|
||||
|
||||
const frontmatter29 = fmMatch29[1];
|
||||
const body29 = fmMatch29[2];
|
||||
|
||||
// Verify name in frontmatter matches directory name
|
||||
const fmName29 = frontmatter29.match(/^name:\s*(.+)$/m);
|
||||
assert(fmName29 && fmName29[1].trim() === 'bmad-master', 'Mistral Vibe skill name frontmatter matches directory name exactly');
|
||||
|
||||
// Verify description exists and is non-empty
|
||||
const fmDesc29 = frontmatter29.match(/^description:\s*(.+)$/m);
|
||||
assert(fmDesc29 && fmDesc29[1].trim().length > 0, 'Mistral Vibe skill description frontmatter is present and non-empty');
|
||||
|
||||
// Verify frontmatter contains only name and description keys
|
||||
const fmKeys29 = [...frontmatter29.matchAll(/^([a-zA-Z0-9_-]+):/gm)].map((m) => m[1]);
|
||||
assert(
|
||||
fmKeys29.length === 2 && fmKeys29.includes('name') && fmKeys29.includes('description'),
|
||||
'Mistral Vibe skill frontmatter contains only name and description keys',
|
||||
);
|
||||
|
||||
// Verify body content is non-empty and contains expected activation instructions
|
||||
assert(body29.trim().length > 0, 'Mistral Vibe skill body content is non-empty');
|
||||
assert(body29.includes('agent-activation'), 'Mistral Vibe skill body contains expected agent activation instructions');
|
||||
|
||||
// Reinstall/upgrade: run setup again over existing output
|
||||
const result29b = await ideManager29.setup('mistral', tempProjectDir29, installedBmadDir29, {
|
||||
silent: true,
|
||||
selectedModules: ['bmm'],
|
||||
});
|
||||
assert(result29b.success === true, 'Mistral Vibe reinstall/upgrade succeeds over existing skills');
|
||||
assert(await fs.pathExists(skillFile29), 'Mistral Vibe reinstall preserves SKILL.md output');
|
||||
} catch (error) {
|
||||
assert(false, 'Mistral Vibe native skills test succeeds', error.message);
|
||||
} finally {
|
||||
if (tempProjectDir29) await fs.remove(tempProjectDir29).catch(() => {});
|
||||
if (installedBmadDir29) await fs.remove(installedBmadDir29).catch(() => {});
|
||||
}
|
||||
|
||||
console.log('');
|
||||
|
||||
// ============================================================
|
||||
// Suite 30: Unified Skill Scanner — collectSkills
|
||||
// ============================================================
|
||||
console.log(`${colors.yellow}Test Suite 30: Unified Skill Scanner${colors.reset}\n`);
|
||||
|
||||
let tempFixture29;
|
||||
try {
|
||||
|
|
@ -1758,9 +1848,9 @@ async function runTests() {
|
|||
console.log('');
|
||||
|
||||
// ============================================================
|
||||
// Suite 30: parseSkillMd validation (negative cases)
|
||||
// Suite 31: parseSkillMd validation (negative cases)
|
||||
// ============================================================
|
||||
console.log(`${colors.yellow}Test Suite 30: parseSkillMd Validation${colors.reset}\n`);
|
||||
console.log(`${colors.yellow}Test Suite 31: parseSkillMd Validation${colors.reset}\n`);
|
||||
|
||||
let tempFixture30;
|
||||
try {
|
||||
|
|
|
|||
|
|
@ -176,6 +176,16 @@ platforms:
|
|||
template_type: kiro
|
||||
skill_format: true
|
||||
|
||||
mistral:
|
||||
name: "Mistral Vibe"
|
||||
preferred: false
|
||||
category: cli
|
||||
description: "Mistral's AI coding CLI"
|
||||
installer:
|
||||
target_dir: .vibe/skills
|
||||
template_type: default
|
||||
skill_format: true
|
||||
|
||||
opencode:
|
||||
name: "OpenCode"
|
||||
preferred: false
|
||||
|
|
|
|||
Loading…
Reference in New Issue