Compare commits

...

10 Commits

Author SHA1 Message Date
Alex Verkhovsky e70c09c1c1 fix: resolve broken file references in quick-dev-new-preview workflow
- Fix step-02-plan.md templateFile path (./tech-spec-template.md → ../tech-spec-template.md)
- Teach validate-file-refs.js to skip skill: prefixed references in CSV

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 01:21:47 -07:00
Alex Verkhovsky d6251a6661 fix: reset skills array between runs and allow skill-only targets
- Reset this.skills and this.files in ManifestGenerator to prevent stale
  data when instance is reused across multiple manifest runs
- Allow targets with empty artifact_types to still install verbatim
  skills by checking skill_format before short-circuiting

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 01:09:03 -07:00
Alex Verkhovsky 6aa67d732d test: add install_to_bmad design contract tests
Unit tests against getInstallToBmad and loadSkillManifest that nail
down the 4 core design decisions for the install_to_bmad flag.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 00:22:12 -07:00
Alex Verkhovsky ad4e813470 feat(skills): add install_to_bmad flag and skill: help catalog reference
Add install_to_bmad flag to skill manifests (default true) enabling
skills to opt out of _bmad/ copy while retaining .claude/skills/
installation. Support skill:<canonicalId> references in module-help.csv
workflow-file column. Fix stale quick-dev-new-preview directory
references in agent YAML and help catalog.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 00:22:12 -07:00
Alex Verkhovsky cc140057ad refactor: replace {installed_path} with relative paths in quick-dev skill
Skills resolve paths relative to the skill root directory per the
open agent standard, so the installed_path variable is unnecessary.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 00:22:12 -07:00
Alex Verkhovsky 6da9e55ce5 feat(skills): add type:skill manifest for verbatim skill directory copying
Introduce `type: skill` in bmad-skill-manifest.yaml to signal the
installer to copy entire skill directories verbatim into IDE skill
directories, replacing the launcher-based approach.

Changes:
- skill-manifest.js: fix single-entry detection for type-only manifests,
  add getArtifactType export
- manifest-generator.js: collect type:skill entries separately, write
  skill-manifest.csv, derive canonicalId from directory name
- _config-driven.js: add installVerbatimSkills with YAML-safe SKILL.md
  generation, stale file cleanup, and warning on parse failures
- Rename quick-dev-new-preview to bmad-quick-dev-new-preview so
  directory name is the canonical ID
- Update workflow.md installed_path to reference IDE skill base directory

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 00:22:12 -07:00
Gani Mohamed Parakadhullah 8e5898e862
feat: add pi coding agent as supported platform (#1854)
* feat: add pi coding agent as supported platform

Add pi (provider-agnostic terminal-native AI coding agent) to
platform-codes.yaml with native skills format output to .pi/skills/.

Pi follows the open Agent Skills specification and uses the same
subdirectory/SKILL.md structure that BMAD already generates for
other platforms.

Fixes #1853

* fix: address PR review comments for Pi test suite

- Assert template_type === 'default' to pin config contract
- Verify Pi appears in getAvailableIdes() list
- Test detect() returns false before install, true after
- Parse frontmatter between --- delimiters instead of regex on full file
- Assert description is present and non-empty
- Assert frontmatter contains only name and description keys
- Validate body content is non-empty with expected activation instructions
- Add reinstall/upgrade coverage (rerun setup over existing output)
- Move temp directory cleanup to finally block
2026-03-08 00:51:26 -06:00
Alex Verkhovsky 44ba15f9a1
feat: add skill manifest for advanced-elicitation workflow (#1840)
* feat: add skill manifest for advanced-elicitation workflow

Register advanced-elicitation as an invocable skill so it can be
triggered as a standalone slash command, matching the pattern used
by party-mode and brainstorming.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* refactor: convert advanced-elicitation from XML to markdown workflow

The installer only discovers workflow.yaml and workflow.md files,
so workflow.xml was never registered. Convert to workflow.md with
YAML frontmatter while preserving all elicitation logic verbatim.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: update all references from workflow.xml to workflow.md

Update 67 references across 50 files to point to the new markdown
workflow. Also fix incorrect methods.csv filename and bare
advanced-elicitation.xml reference in generate-project-context.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Brian <bmadcode@gmail.com>
2026-03-07 18:51:05 -07:00
Alex Verkhovsky db8f856fce
docs: update terminology from commands to skills across all documentation (#1850)
Align documentation with the skills-based architecture migration by
replacing references to "commands", "slash commands", and legacy command
names with the new "skills" terminology and skill names.
2026-03-07 16:14:25 -07:00
Alex Verkhovsky ec973ebcf3
refactor: convert workflow.yaml to workflow.md (steps 1-3) (#1842)
* refactor(sprint-status): convert workflow.yaml + instructions.md to single workflow.md

Merge workflow config and instruction content into a unified workflow.md
with YAML frontmatter, following the established convention for converted
workflows. Update module-help.csv reference accordingly.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix(sprint-status): restore no-time-estimates rule dropped during conversion

The <critical> preamble removal incorrectly classified this behavioral
rule as boilerplate. It is an actual output constraint.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* test: add comprehensive workflow conversion test results

- 14 test fixtures covering data and validate modes
- Tested across Opus, Sonnet, and Haiku models
- OLD format (yaml+md) vs NEW format (workflow.md)
- Confirms zero regressions in conversion
- Includes reproduction instructions for future sessions

* fix(sprint-status): consolidate no-time-estimates into role line

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* refactor(qa-generate-e2e-tests): convert workflow.yaml + instructions.md to single workflow.md

Task 2 of yaml-to-md conversion plan. Merges config variables into
INITIALIZATION section, inlines instructions into EXECUTION section.
Drops non-consumed yaml keys (required_tools, tags, execution_hints).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* refactor(retrospective): convert workflow.yaml + instructions.md to single workflow.md

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: update workflow.yaml references to workflow.md for converted workflows

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* chore: remove test results file from version control

SPRINT_STATUS_CONVERSION_TEST_RESULTS.md contains hardcoded local
filesystem paths and is a session-specific test artifact. Added to
.bare/info/exclude to keep it ignored across all worktrees.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 16:11:34 -07:00
98 changed files with 1080 additions and 592 deletions

View File

@ -59,13 +59,13 @@ Critical warnings only — data loss, security issues
| 2 | Planning | Requirements — PRD or tech-spec *(required)* | | 2 | Planning | Requirements — PRD or tech-spec *(required)* |
``` ```
**Commands:** **Skills:**
```md ```md
| Command | Agent | Purpose | | Skill | Agent | Purpose |
| ------------ | ------- | ------------------------------------ | | ------------ | ------- | ------------------------------------ |
| `brainstorm` | Analyst | Brainstorm a new project | | `bmad-brainstorming` | Analyst | Brainstorm a new project |
| `prd` | PM | Create Product Requirements Document | | `bmad-create-prd` | PM | Create Product Requirements Document |
``` ```
## Folder Structure Blocks ## Folder Structure Blocks
@ -99,7 +99,7 @@ your-project/
9. Step 2: [Second Major Task] 9. Step 2: [Second Major Task]
10. Step 3: [Third Major Task] 10. Step 3: [Third Major Task]
11. What You've Accomplished (summary + folder structure) 11. What You've Accomplished (summary + folder structure)
12. Quick Reference (commands table) 12. Quick Reference (skills table)
13. Common Questions (FAQ format) 13. Common Questions (FAQ format)
14. Getting Help (community links) 14. Getting Help (community links)
15. Key Takeaways (tip admonition) 15. Key Takeaways (tip admonition)
@ -111,7 +111,7 @@ your-project/
- [ ] "What You'll Learn" section present - [ ] "What You'll Learn" section present
- [ ] Prerequisites in admonition - [ ] Prerequisites in admonition
- [ ] Quick Path TL;DR admonition at top - [ ] Quick Path TL;DR admonition at top
- [ ] Tables for phases, commands, agents - [ ] Tables for phases, skills, agents
- [ ] "What You've Accomplished" section present - [ ] "What You've Accomplished" section present
- [ ] Quick Reference table present - [ ] Quick Reference table present
- [ ] Common Questions section present - [ ] Common Questions section present
@ -243,7 +243,7 @@ your-project/
1. Title + Hook 1. Title + Hook
2. Items (## for each item) 2. Items (## for each item)
- Brief description (one sentence) - Brief description (one sentence)
- **Commands:** or **Key Info:** as flat list - **Skills:** or **Key Info:** as flat list
3. Universal/Shared (## section) (optional) 3. Universal/Shared (## section) (optional)
``` ```
@ -252,7 +252,7 @@ your-project/
```text ```text
1. Title + Hook (one sentence purpose) 1. Title + Hook (one sentence purpose)
2. Quick Facts (optional note admonition) 2. Quick Facts (optional note admonition)
- Module, Command, Input, Output as list - Module, Skill, Input, Output as list
3. Purpose/Overview (## section) 3. Purpose/Overview (## section)
4. How to Invoke (code block) 4. How to Invoke (code block)
5. Key Sections (## for each aspect) 5. Key Sections (## for each aspect)
@ -280,7 +280,7 @@ your-project/
- Diagram or table showing organization - Diagram or table showing organization
3. Major Sections (## for each phase/category) 3. Major Sections (## for each phase/category)
- Items (### for each item) - Items (### for each item)
- Standardized fields: Command, Agent, Input, Output, Description - Standardized fields: Skill, Agent, Input, Output, Description
4. Next Steps (optional) 4. Next Steps (optional)
``` ```
@ -353,7 +353,7 @@ Only for BMad Method and Enterprise tracks. Quick Flow skips to implementation.
### Can I change my plan later? ### Can I change my plan later?
Yes. The SM agent has a `correct-course` workflow for handling scope changes. Yes. The SM agent has a `bmad-correct-course` workflow for handling scope changes.
**Have a question not answered here?** [Open an issue](...) or ask in [Discord](...). **Have a question not answered here?** [Open an issue](...) or ask in [Discord](...).
``` ```

View File

@ -9,7 +9,7 @@ Unlock your creativity through guided exploration.
## What is Brainstorming? ## What is Brainstorming?
Run `brainstorming` and you've got a creative facilitator pulling ideas out of you - not generating them for you. The AI acts as coach and guide, using proven techniques to create conditions where your best thinking emerges. Run `bmad-brainstorming` and you've got a creative facilitator pulling ideas out of you - not generating them for you. The AI acts as coach and guide, using proven techniques to create conditions where your best thinking emerges.
**Good for:** **Good for:**

View File

@ -9,7 +9,7 @@ Get all your AI agents in one conversation.
## What is Party Mode? ## What is Party Mode?
Run `party-mode` and you've got your whole AI team in one room - PM, Architect, Dev, UX Designer, whoever you need. BMad Master orchestrates, picking relevant agents per message. Agents respond in character, agree, disagree, and build on each other's ideas. Run `bmad-party-mode` and you've got your whole AI team in one room - PM, Architect, Dev, UX Designer, whoever you need. BMad Master orchestrates, picking relevant agents per message. Agents respond in character, agree, disagree, and build on each other's ideas.
The conversation continues as long as you want. Ask follow-ups, push back on answers, redirect the discussion - it's a real back-and-forth with your agents until you're done. The conversation continues as long as you want. Ask follow-ups, push back on answers, redirect the discussion - it's a real back-and-forth with your agents until you're done.

View File

@ -108,5 +108,5 @@ Common decisions that prevent conflicts:
- Document decisions that cross epic boundaries - Document decisions that cross epic boundaries
- Focus on conflict-prone areas - Focus on conflict-prone areas
- Update architecture as you learn - Update architecture as you learn
- Use `correct-course` for significant changes - Use `bmad-correct-course` for significant changes
::: :::

View File

@ -21,12 +21,12 @@ The `project-context.md` file solves this by documenting what agents need to kno
Every implementation workflow automatically loads `project-context.md` if it exists. The architect workflow also loads it to respect your technical preferences when designing the architecture. Every implementation workflow automatically loads `project-context.md` if it exists. The architect workflow also loads it to respect your technical preferences when designing the architecture.
**Loaded by these workflows:** **Loaded by these workflows:**
- `create-architecture` — respects technical preferences during solutioning - `bmad-create-architecture` — respects technical preferences during solutioning
- `create-story` — informs story creation with project patterns - `bmad-create-story` — informs story creation with project patterns
- `dev-story` — guides implementation decisions - `bmad-dev-story` — guides implementation decisions
- `code-review` — validates against project standards - `bmad-code-review` — validates against project standards
- `quick-dev` — applies patterns when implementing tech-specs - `bmad-quick-dev` — applies patterns when implementing tech-specs
- `sprint-planning`, `retrospective`, `correct-course` — provides project-wide context - `bmad-sprint-planning`, `bmad-retrospective`, `bmad-correct-course` — provides project-wide context
## When to Create It ## When to Create It
@ -34,10 +34,10 @@ The `project-context.md` file is useful at any stage of a project:
| Scenario | When to Create | Purpose | | Scenario | When to Create | Purpose |
|----------|----------------|---------| |----------|----------------|---------|
| **New project, before architecture** | Manually, before `create-architecture` | Document your technical preferences so the architect respects them | | **New project, before architecture** | Manually, before `bmad-create-architecture` | Document your technical preferences so the architect respects them |
| **New project, after architecture** | Via `generate-project-context` or manually | Capture architecture decisions for implementation agents | | **New project, after architecture** | Via `bmad-generate-project-context` or manually | Capture architecture decisions for implementation agents |
| **Existing project** | Via `generate-project-context` | Discover existing patterns so agents follow established conventions | | **Existing project** | Via `bmad-generate-project-context` | Discover existing patterns so agents follow established conventions |
| **Quick Flow project** | Before or during `quick-dev` | Ensure quick implementation respects your patterns | | **Quick Flow project** | Before or during `bmad-quick-dev` | Ensure quick implementation respects your patterns |
:::tip[Recommended] :::tip[Recommended]
For new projects, create it manually before architecture if you have strong technical preferences. Otherwise, generate it after architecture to capture those decisions. For new projects, create it manually before architecture if you have strong technical preferences. Otherwise, generate it after architecture to capture those decisions.
@ -107,20 +107,20 @@ Edit it with your technology stack and implementation rules. The architect and i
### Generate After Architecture ### Generate After Architecture
Run the `generate-project-context` workflow after completing your architecture: Run the `bmad-generate-project-context` workflow after completing your architecture:
```bash ```bash
/bmad-bmm-generate-project-context bmad-generate-project-context
``` ```
This scans your architecture document and project files to generate a context file capturing the decisions made. This scans your architecture document and project files to generate a context file capturing the decisions made.
### Generate for Existing Projects ### Generate for Existing Projects
For existing projects, run `generate-project-context` to discover existing patterns: For existing projects, run `bmad-generate-project-context` to discover existing patterns:
```bash ```bash
/bmad-bmm-generate-project-context bmad-generate-project-context
``` ```
The workflow analyzes your codebase to identify conventions, then generates a context file you can review and refine. The workflow analyzes your codebase to identify conventions, then generates a context file you can review and refine.
@ -150,7 +150,7 @@ The `project-context.md` file is a living document. Update it when:
- Patterns evolve during implementation - Patterns evolve during implementation
- You identify gaps from agent behavior - You identify gaps from agent behavior
You can edit it manually at any time, or re-run `generate-project-context` to update it after significant changes. You can edit it manually at any time, or re-run `bmad-generate-project-context` to update it after significant changes.
:::note[File Location] :::note[File Location]
The default location is `_bmad-output/project-context.md`. Workflows search for it there, and also check `**/project-context.md` anywhere in your project. The default location is `_bmad-output/project-context.md`. Workflows search for it there, and also check `**/project-context.md` anywhere in your project.

View File

@ -5,7 +5,7 @@ sidebar:
order: 1 order: 1
--- ---
Skip the ceremony. Quick Flow takes you from idea to working code in two commands - no Product Brief, no PRD, no Architecture doc. Skip the ceremony. Quick Flow takes you from idea to working code in two skills - no Product Brief, no PRD, no Architecture doc.
## When to Use It ## When to Use It
@ -23,16 +23,16 @@ Skip the ceremony. Quick Flow takes you from idea to working code in two command
- Anything where requirements are unclear or contested - Anything where requirements are unclear or contested
:::caution[Scope Creep] :::caution[Scope Creep]
If you start a Quick Flow and realize the scope is bigger than expected, `quick-dev` will detect this and offer to escalate. You can switch to a full PRD workflow at any point without losing your work. If you start a Quick Flow and realize the scope is bigger than expected, `bmad-quick-dev` will detect this and offer to escalate. You can switch to a full PRD workflow at any point without losing your work.
::: :::
## How It Works ## How It Works
Quick Flow has two commands, each backed by a structured workflow. You can run them together or independently. Quick Flow has two skills, each backed by a structured workflow. You can run them together or independently.
### quick-spec: Plan ### quick-spec: Plan
Run `quick-spec` and Barry (the Quick Flow agent) walks you through a conversational discovery process: Run `bmad-quick-spec` and Barry (the Quick Flow agent) walks you through a conversational discovery process:
1. **Understand** - You describe what you want to build. Barry scans the codebase to ask informed questions, then captures a problem statement, solution approach, and scope boundaries. 1. **Understand** - You describe what you want to build. Barry scans the codebase to ask informed questions, then captures a problem statement, solution approach, and scope boundaries.
2. **Investigate** - Barry reads relevant files, maps code patterns, identifies files to modify, and documents the technical context. 2. **Investigate** - Barry reads relevant files, maps code patterns, identifies files to modify, and documents the technical context.
@ -43,15 +43,15 @@ The output is a `tech-spec-{slug}.md` file saved to your project's implementatio
### quick-dev: Build ### quick-dev: Build
Run `quick-dev` and Barry implements the work. It operates in two modes: Run `bmad-quick-dev` and Barry implements the work. It operates in two modes:
- **Tech-spec mode** - Point it at a spec file (`quick-dev tech-spec-auth.md`) and it executes every task in order, writes tests, and verifies acceptance criteria. - **Tech-spec mode** - Point it at a spec file (`quick-dev tech-spec-auth.md`) and it executes every task in order, writes tests, and verifies acceptance criteria.
- **Direct mode** - Give it instructions directly (`quick-dev "refactor the auth middleware"`) and it gathers context, builds a mental plan, and executes. - **Direct mode** - Give it instructions directly (`quick-dev "refactor the auth middleware"`) and it gathers context, builds a mental plan, and executes.
After implementation, `quick-dev` runs a self-check audit against all tasks and acceptance criteria, then triggers an adversarial code review of the diff. Findings are presented for you to resolve before wrapping up. After implementation, `bmad-quick-dev` runs a self-check audit against all tasks and acceptance criteria, then triggers an adversarial code review of the diff. Findings are presented for you to resolve before wrapping up.
:::tip[Fresh Context] :::tip[Fresh Context]
For best results, run `quick-dev` in a new conversation after finishing `quick-spec`. This gives the implementation agent clean context focused solely on building. For best results, run `bmad-quick-dev` in a new conversation after finishing `bmad-quick-spec`. This gives the implementation agent clean context focused solely on building.
::: :::
## What Quick Flow Skips ## What Quick Flow Skips
@ -65,9 +65,9 @@ The full BMad Method produces a Product Brief, PRD, Architecture doc, and Epic/S
## Escalating to Full BMad Method ## Escalating to Full BMad Method
Quick Flow includes built-in guardrails for scope detection. When you run `quick-dev` with a direct request, it evaluates signals like multi-component mentions, system-level language, and uncertainty about approach. If it detects the work is bigger than a quick flow: Quick Flow includes built-in guardrails for scope detection. When you run `bmad-quick-dev` with a direct request, it evaluates signals like multi-component mentions, system-level language, and uncertainty about approach. If it detects the work is bigger than a quick flow:
- **Light escalation** - Recommends running `quick-spec` first to create a plan - **Light escalation** - Recommends running `bmad-quick-spec` first to create a plan
- **Heavy escalation** - Recommends switching to the full BMad Method PRD process - **Heavy escalation** - Recommends switching to the full BMad Method PRD process
You can also escalate manually at any time. Your tech-spec work carries forward - it becomes input for the broader planning process rather than being discarded. You can also escalate manually at any time. Your tech-spec work carries forward - it becomes input for the broader planning process rather than being discarded.

View File

@ -32,7 +32,7 @@ Generate `project-context.md` to capture your existing codebase patterns and con
Run the generate project context workflow: Run the generate project context workflow:
```bash ```bash
/bmad-bmm-generate-project-context bmad-generate-project-context
``` ```
This scans your codebase to identify: This scans your codebase to identify:
@ -55,22 +55,22 @@ Your `docs/` folder should contain succinct, well-organized documentation that a
- Architecture - Architecture
- Any other relevant project information - Any other relevant project information
For complex projects, consider using the `document-project` workflow. It offers runtime variants that will scan your entire project and document its actual current state. For complex projects, consider using the `bmad-document-project` workflow. It offers runtime variants that will scan your entire project and document its actual current state.
## Step 3: Get Help ## Step 3: Get Help
### BMad-Help: Your Starting Point ### BMad-Help: Your Starting Point
**Run `/bmad-help` anytime you're unsure what to do next.** This intelligent guide: **Run `bmad-help` anytime you're unsure what to do next.** This intelligent guide:
- Inspects your project to see what's already been done - Inspects your project to see what's already been done
- Shows options based on your installed modules - Shows options based on your installed modules
- Understands natural language queries - Understands natural language queries
``` ```
/bmad-help I have an existing Rails app, where should I start? bmad-help I have an existing Rails app, where should I start?
/bmad-help What's the difference between quick-flow and full method? bmad-help What's the difference between quick-flow and full method?
/bmad-help Show me what workflows are available bmad-help Show me what workflows are available
``` ```
BMad-Help also **automatically runs at the end of every workflow**, providing clear guidance on exactly what to do next. BMad-Help also **automatically runs at the end of every workflow**, providing clear guidance on exactly what to do next.
@ -81,7 +81,7 @@ You have two primary options depending on the scope of changes:
| Scope | Recommended Approach | | Scope | Recommended Approach |
| ------------------------------ | ----------------------------------------------------------------------------------------------------------------------------- | | ------------------------------ | ----------------------------------------------------------------------------------------------------------------------------- |
| **Small updates or additions** | Use `quick-flow-solo-dev` to create a tech-spec and implement the change. The full four-phase BMad Method is likely overkill. | | **Small updates or additions** | Use `bmad-quick-flow-solo-dev` to create a tech-spec and implement the change. The full four-phase BMad Method is likely overkill. |
| **Major changes or additions** | Start with the BMad Method, applying as much or as little rigor as needed. | | **Major changes or additions** | Start with the BMad Method, applying as much or as little rigor as needed. |
### During PRD Creation ### During PRD Creation

View File

@ -18,7 +18,7 @@ BMad-Help is more than a lookup tool — it:
### How to Use BMad-Help ### How to Use BMad-Help
Run it with just the slash command: Run it with just the skill name:
``` ```
/bmad-help /bmad-help
@ -81,7 +81,7 @@ https://bmad-code-org.github.io/BMAD-METHOD/llms-full.txt
:::note[Example] :::note[Example]
**Q:** "Tell me the fastest way to build something with BMad" **Q:** "Tell me the fastest way to build something with BMad"
**A:** Use Quick Flow: Run `quick-spec` to write a technical specification, then `quick-dev` to implement it—skipping the full planning phases. **A:** Use Quick Flow: Run `bmad-quick-spec` to write a technical specification, then `bmad-quick-dev` to implement it—skipping the full planning phases.
::: :::
## What You Get ## What You Get

View File

@ -51,7 +51,11 @@ Pick which AI tools you use:
- Cursor - Cursor
- Others - Others
Each tool has its own way of integrating commands. The installer creates tiny prompt files to activate workflows and agents — it just puts them where your tool expects to find them. 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.
:::note[Enabling Skills]
Some platforms require skills to be explicitly enabled in settings before they appear. If you install BMad and don't see the skills, check your platform's settings or ask your AI assistant how to enable skills.
:::
### 4. Choose Modules ### 4. Choose Modules
@ -71,13 +75,19 @@ your-project/
│ ├── core/ # Required core module │ ├── core/ # Required core module
│ └── ... │ └── ...
├── _bmad-output/ # Generated artifacts ├── _bmad-output/ # Generated artifacts
├── .claude/ # Claude Code commands (if using Claude Code) ├── .claude/ # Claude Code skills (if using Claude Code)
└── .kiro/ # Kiro steering files (if using Kiro) │ └── skills/
│ ├── bmad-help/
│ ├── bmad-persona/
│ └── ...
└── .cursor/ # Cursor skills (if using Cursor)
└── skills/
└── ...
``` ```
## Verify Installation ## Verify Installation
Run `/bmad-help` to verify everything works and see what to do next. Run `bmad-help` to verify everything works and see what to do next.
**BMad-Help is your intelligent guide** that will: **BMad-Help is your intelligent guide** that will:
- Confirm your installation is working - Confirm your installation is working
@ -86,8 +96,8 @@ Run `/bmad-help` to verify everything works and see what to do next.
You can also ask it questions: You can also ask it questions:
``` ```
/bmad-help I just installed, what should I do first? bmad-help I just installed, what should I do first?
/bmad-help What are my options for a SaaS project? bmad-help What are my options for a SaaS project?
``` ```
## Troubleshooting ## Troubleshooting

View File

@ -77,7 +77,7 @@ sections_completed: ['technology_stack', 'critical_rules']
Run the workflow in a fresh chat: Run the workflow in a fresh chat:
```bash ```bash
/bmad-bmm-generate-project-context bmad-generate-project-context
``` ```
The workflow scans your architecture document and project files to generate a context file capturing the decisions made. The workflow scans your architecture document and project files to generate a context file capturing the decisions made.
@ -87,7 +87,7 @@ The workflow scans your architecture document and project files to generate a co
For existing projects, run: For existing projects, run:
```bash ```bash
/bmad-bmm-generate-project-context bmad-generate-project-context
``` ```
The workflow analyzes your codebase to identify conventions, then generates a context file you can review and refine. The workflow analyzes your codebase to identify conventions, then generates a context file you can review and refine.

View File

@ -30,18 +30,18 @@ If you are unsure, start with the DEV agent. You can always escalate to Quick Fl
## Steps ## Steps
### 1. Load the DEV Agent ### 1. Invoke the DEV Agent
Start a **fresh chat** in your AI IDE and load the DEV agent with its slash command: Start a **fresh chat** in your AI IDE and invoke the DEV agent skill:
```text ```text
/bmad-agent-bmm-dev bmad-dev
``` ```
This loads the agent's persona and capabilities into the session. If you decide you need Quick Flow instead, load the **Quick Flow Solo Dev** agent in a fresh chat: This loads the agent's persona and capabilities into the session. If you decide you need Quick Flow instead, invoke the **Quick Flow Solo Dev** agent skill in a fresh chat:
```text ```text
/bmad-agent-bmm-quick-flow-solo-dev bmad-quick-flow-solo-dev
``` ```
Once the Solo Dev agent is loaded, describe your change and ask it to create a **quick-spec**. The agent drafts a lightweight spec capturing what you want to change and how. After you approve the quick-spec, tell the agent to start the **Quick Flow dev cycle** -- it will implement the change, run tests, and perform a self-review, all guided by the spec you just approved. Once the Solo Dev agent is loaded, describe your change and ask it to create a **quick-spec**. The agent drafts a lightweight spec capturing what you want to change and how. After you approve the quick-spec, tell the agent to start the **Quick Flow dev cycle** -- it will implement the change, run tests, and perform a self-review, all guided by the spec you just approved.

View File

@ -5,7 +5,7 @@ sidebar:
order: 8 order: 8
--- ---
Use the `shard-doc` tool if you need to split large markdown files into smaller, organized files for better context management. Use the `bmad-shard-doc` tool if you need to split large markdown files into smaller, organized files for better context management.
:::caution[Deprecated] :::caution[Deprecated]
This is no longer recommended, and soon with updated workflows and most major LLMs and tools supporting subprocesses this will be unnecessary. This is no longer recommended, and soon with updated workflows and most major LLMs and tools supporting subprocesses this will be unnecessary.

View File

@ -33,12 +33,15 @@ When v4 is detected, you can:
If you named your bmad method folder something else - you will need to manually remove the folder yourself. If you named your bmad method folder something else - you will need to manually remove the folder yourself.
### 3. Clean Up IDE Commands ### 3. Clean Up IDE Skills
Manually remove legacy v4 IDE commands - for example if you have claude, look for any nested folders that start with bmad and remove them: Manually remove legacy v4 IDE commands/skills - for example if you have Claude Code, look for any nested folders that start with bmad and remove them:
- `.claude/commands/BMad/agents` - `.claude/commands/`
- `.claude/commands/BMad/tasks`
The new v6 skills are installed to:
- `.claude/skills/`
### 4. Migrate Planning Artifacts ### 4. Migrate Planning Artifacts
@ -58,7 +61,7 @@ If you have stories created or implemented:
1. Complete the v6 installation 1. Complete the v6 installation
2. Place `epics.md` or `epics/epic*.md` in `_bmad-output/planning-artifacts/` 2. Place `epics.md` or `epics/epic*.md` in `_bmad-output/planning-artifacts/`
3. Run the Scrum Master's `sprint-planning` workflow 3. Run the Scrum Master's `bmad-sprint-planning` workflow
4. Tell the SM which epics/stories are already complete 4. Tell the SM which epics/stories are already complete
## What You Get ## What You Get

View File

@ -19,7 +19,7 @@ The fastest way to understand BMad is to try it.
- **[Workflow Map](./reference/workflow-map.md)** — Visual overview of BMM phases, workflows, and context management - **[Workflow Map](./reference/workflow-map.md)** — Visual overview of BMM phases, workflows, and context management
:::tip[Just Want to Dive In?] :::tip[Just Want to Dive In?]
Install BMad and run `/bmad-help` — it will guide you through everything based on your project and installed modules. Install BMad and use the `bmad-help` skill — it will guide you through everything based on your project and installed modules.
::: :::
## How to Use These Docs ## How to Use These Docs

View File

@ -1,28 +1,28 @@
--- ---
title: Agents title: Agents
description: Default BMM agents with their menu triggers and primary workflows description: Default BMM agents with their skill IDs, menu triggers, and primary workflows
sidebar: sidebar:
order: 2 order: 2
--- ---
## Default Agents ## Default Agents
This page lists the default BMM (Agile suite) agents that install with BMad Method, along with their menu triggers and primary workflows. This page lists the default BMM (Agile suite) agents that install with BMad Method, along with their skill IDs, menu triggers, and primary workflows. Each agent is invoked as a skill.
## Notes ## Notes
- Each agent is available as a skill, generated by the installer. The skill ID (e.g., `bmad-dev`) is used to invoke the agent.
- Triggers are the short menu codes (e.g., `CP`) and fuzzy matches shown in each agent menu. - Triggers are the short menu codes (e.g., `CP`) and fuzzy matches shown in each agent menu.
- Slash commands are generated separately. See [Commands](./commands.md) for the slash command list and where they are defined.
- QA (Quinn) is the lightweight test automation agent in BMM. The full Test Architect (TEA) lives in its own module. - QA (Quinn) is the lightweight test automation agent in BMM. The full Test Architect (TEA) lives in its own module.
| Agent | Triggers | Primary workflows | | Agent | Skill ID | Triggers | Primary workflows |
| --------------------------- | ---------------------------------- | --------------------------------------------------------------------------------------------------- | | --------------------------- | -------------------- | ---------------------------------- | --------------------------------------------------------------------------------------------------- |
| Analyst (Mary) | `BP`, `RS`, `CB`, `DP` | Brainstorm Project, Research, Create Brief, Document Project | | Analyst (Mary) | `bmad-analyst` | `BP`, `RS`, `CB`, `DP` | Brainstorm Project, Research, Create Brief, Document Project |
| Product Manager (John) | `CP`, `VP`, `EP`, `CE`, `IR`, `CC` | Create/Validate/Edit PRD, Create Epics and Stories, Implementation Readiness, Correct Course | | Product Manager (John) | `bmad-pm` | `CP`, `VP`, `EP`, `CE`, `IR`, `CC` | Create/Validate/Edit PRD, Create Epics and Stories, Implementation Readiness, Correct Course |
| Architect (Winston) | `CA`, `IR` | Create Architecture, Implementation Readiness | | Architect (Winston) | `bmad-architect` | `CA`, `IR` | Create Architecture, Implementation Readiness |
| Scrum Master (Bob) | `SP`, `CS`, `ER`, `CC` | Sprint Planning, Create Story, Epic Retrospective, Correct Course | | Scrum Master (Bob) | `bmad-sm` | `SP`, `CS`, `ER`, `CC` | Sprint Planning, Create Story, Epic Retrospective, Correct Course |
| Developer (Amelia) | `DS`, `CR` | Dev Story, Code Review | | Developer (Amelia) | `bmad-dev` | `DS`, `CR` | Dev Story, Code Review |
| QA Engineer (Quinn) | `QA` | Automate (generate tests for existing features) | | QA Engineer (Quinn) | `bmad-qa` | `QA` | Automate (generate tests for existing features) |
| Quick Flow Solo Dev (Barry) | `QS`, `QD`, `CR` | Quick Spec, Quick Dev, Code Review | | Quick Flow Solo Dev (Barry) | `bmad-master` | `QS`, `QD`, `CR` | Quick Spec, Quick Dev, Code Review |
| UX Designer (Sally) | `CU` | Create UX Design | | UX Designer (Sally) | `bmad-ux-designer` | `CU` | Create UX Design |
| Technical Writer (Paige) | `DP`, `WD`, `US`, `MG`, `VD`, `EC` | Document Project, Write Document, Update Standards, Mermaid Generate, Validate Doc, Explain Concept | | Technical Writer (Paige) | `bmad-tech-writer` | `DP`, `WD`, `US`, `MG`, `VD`, `EC` | Document Project, Write Document, Update Standards, Mermaid Generate, Validate Doc, Explain Concept |

View File

@ -1,111 +1,113 @@
--- ---
title: Commands title: Skills
description: Reference for BMad slash commands — what they are, how they work, and where to find them. description: Reference for BMad skills — what they are, how they work, and where to find them.
sidebar: sidebar:
order: 3 order: 3
--- ---
Slash commands are pre-built prompts that load agents, run workflows, or execute tasks inside your IDE. The BMad installer generates them from your installed modules at install time. If you later add, remove, or change modules, re-run the installer to keep commands in sync (see [Troubleshooting](#troubleshooting)). Skills are pre-built prompts that load agents, run workflows, or execute tasks inside your IDE. The BMad installer generates them from your installed modules at install time. If you later add, remove, or change modules, re-run the installer to keep skills in sync (see [Troubleshooting](#troubleshooting)).
## Commands vs. Agent Menu Triggers ## Skills vs. Agent Menu Triggers
BMad offers two ways to start work, and they serve different purposes. BMad offers two ways to start work, and they serve different purposes.
| Mechanism | How you invoke it | What happens | | Mechanism | How you invoke it | What happens |
| --- | --- | --- | | --- | --- | --- |
| **Slash command** | Type `/bmad-...` in your IDE | Directly loads an agent, runs a workflow, or executes a task | | **Skill** | Type the skill name (e.g. `bmad-help`) in your IDE | Directly loads an agent, runs a workflow, or executes a task |
| **Agent menu trigger** | Load an agent first, then type a short code (e.g. `DS`) | The agent interprets the code and starts the matching workflow while staying in character | | **Agent menu trigger** | Load an agent first, then type a short code (e.g. `DS`) | The agent interprets the code and starts the matching workflow while staying in character |
Agent menu triggers require an active agent session. Use slash commands when you know which workflow you want. Use triggers when you are already working with an agent and want to switch tasks without leaving the conversation. Agent menu triggers require an active agent session. Use skills when you know which workflow you want. Use triggers when you are already working with an agent and want to switch tasks without leaving the conversation.
## How Commands Are Generated ## How Skills Are Generated
When you run `npx bmad-method install`, the installer reads the manifests for every selected module and writes one command file per agent, workflow, task, and tool. Each file is a short markdown prompt that instructs the AI to load the corresponding source file and follow its instructions. When you run `npx bmad-method install`, the installer reads the manifests for every selected module and writes one skill per agent, workflow, task, and tool. Each skill is a directory containing a `SKILL.md` file that instructs the AI to load the corresponding source file and follow its instructions.
The installer uses templates for each command type: The installer uses templates for each skill type:
| Command type | What the generated file does | | Skill type | What the generated file does |
| --- | --- | | --- | --- |
| **Agent launcher** | Loads the agent persona file, activates its menu, and stays in character | | **Agent launcher** | Loads the agent persona file, activates its menu, and stays in character |
| **Workflow command** | Loads the workflow engine (`workflow.xml`) and passes the workflow config | | **Workflow skill** | Loads the workflow engine (`workflow.xml`) and passes the workflow config |
| **Task command** | Loads a standalone task file and follows its instructions | | **Task skill** | Loads a standalone task file and follows its instructions |
| **Tool command** | Loads a standalone tool file and follows its instructions | | **Tool skill** | Loads a standalone tool file and follows its instructions |
:::note[Re-running the installer] :::note[Re-running the installer]
If you add or remove modules, run the installer again. It regenerates all command files to match your current module selection. If you add or remove modules, run the installer again. It regenerates all skill files to match your current module selection.
::: :::
## Where Command Files Live ## Where Skill Files Live
The installer writes command files into an IDE-specific directory inside your project. The exact path depends on which IDE you selected during installation. The installer writes skill files into an IDE-specific directory inside your project. The exact path depends on which IDE you selected during installation.
| IDE / CLI | Command directory | | IDE / CLI | Skills directory |
| --- | --- | | --- | --- |
| Claude Code | `.claude/commands/` | | Claude Code | `.claude/skills/` |
| Cursor | `.cursor/commands/` | | Cursor | `.cursor/skills/` |
| Windsurf | `.windsurf/workflows/` | | Windsurf | `.windsurf/skills/` |
| Other IDEs | See the installer output for the target path | | Other IDEs | See the installer output for the target path |
All IDEs receive a flat set of command files in their command directory. For example, a Claude Code installation looks like: Each skill is a directory containing a `SKILL.md` file. For example, a Claude Code installation looks like:
```text ```text
.claude/commands/ .claude/skills/
├── bmad-agent-bmm-dev.md ├── bmad-help/
├── bmad-agent-bmm-pm.md │ └── SKILL.md
├── bmad-bmm-create-prd.md ├── bmad-create-prd/
├── bmad-editorial-review-prose.md │ └── SKILL.md
├── bmad-help.md ├── bmad-dev/
│ └── SKILL.md
└── ... └── ...
``` ```
The filename determines the slash command name in your IDE. For example, the file `bmad-agent-bmm-dev.md` registers the command `/bmad-agent-bmm-dev`. The directory name determines the skill name in your IDE. For example, the directory `bmad-dev/` registers the skill `bmad-dev`.
## How to Discover Your Commands ## How to Discover Your Skills
Type `/bmad` in your IDE and use autocomplete to browse available commands. Type the skill name in your IDE to invoke it. Some platforms require you to enable skills in settings before they appear.
Run `/bmad-help` for context-aware guidance on your next step. Run `bmad-help` for context-aware guidance on your next step.
:::tip[Quick discovery] :::tip[Quick discovery]
The generated command folders in your project are the canonical list. Open them in your file explorer to see every command with its description. The generated skill directories in your project are the canonical list. Open them in your file explorer to see every skill with its description.
::: :::
## Command Categories ## Skill Categories
### Agent Commands ### Agent Skills
Agent commands load a specialized AI persona with a defined role, communication style, and menu of workflows. Once loaded, the agent stays in character and responds to menu triggers. Agent skills load a specialized AI persona with a defined role, communication style, and menu of workflows. Once loaded, the agent stays in character and responds to menu triggers.
| Example command | Agent | Role | | Example skill | Agent | Role |
| --- | --- | --- | | --- | --- | --- |
| `/bmad-agent-bmm-dev` | Amelia (Developer) | Implements stories with strict adherence to specs | | `bmad-dev` | Amelia (Developer) | Implements stories with strict adherence to specs |
| `/bmad-agent-bmm-pm` | John (Product Manager) | Creates and validates PRDs | | `bmad-pm` | John (Product Manager) | Creates and validates PRDs |
| `/bmad-agent-bmm-architect` | Winston (Architect) | Designs system architecture | | `bmad-architect` | Winston (Architect) | Designs system architecture |
| `/bmad-agent-bmm-sm` | Bob (Scrum Master) | Manages sprints and stories | | `bmad-sm` | Bob (Scrum Master) | Manages sprints and stories |
See [Agents](./agents.md) for the full list of default agents and their triggers. See [Agents](./agents.md) for the full list of default agents and their triggers.
### Workflow Commands ### Workflow Skills
Workflow commands run a structured, multi-step process without loading an agent persona first. They load the workflow engine and pass a specific workflow configuration. Workflow skills run a structured, multi-step process without loading an agent persona first. They load the workflow engine and pass a specific workflow configuration.
| Example command | Purpose | | Example skill | Purpose |
| --- | --- | | --- | --- |
| `/bmad-bmm-create-prd` | Create a Product Requirements Document | | `bmad-create-prd` | Create a Product Requirements Document |
| `/bmad-bmm-create-architecture` | Design system architecture | | `bmad-create-architecture` | Design system architecture |
| `/bmad-bmm-dev-story` | Implement a story | | `bmad-create-epics-and-stories` | Create epics and stories |
| `/bmad-bmm-code-review` | Run a code review | | `bmad-dev-story` | Implement a story |
| `/bmad-bmm-quick-spec` | Define an ad-hoc change (Quick Flow) | | `bmad-code-review` | Run a code review |
| `bmad-quick-spec` | Define an ad-hoc change (Quick Flow) |
See [Workflow Map](./workflow-map.md) for the complete workflow reference organized by phase. See [Workflow Map](./workflow-map.md) for the complete workflow reference organized by phase.
### Task and Tool Commands ### Task and Tool Skills
Tasks and tools are standalone operations that do not require an agent or workflow context. Tasks and tools are standalone operations that do not require an agent or workflow context.
#### BMad-Help: Your Intelligent Guide #### BMad-Help: Your Intelligent Guide
**`/bmad-help`** is your primary interface for discovering what to do next. It's not just a lookup tool — it's an intelligent assistant that: **`bmad-help`** is your primary interface for discovering what to do next. It's not just a lookup tool — it's an intelligent assistant that:
- **Inspects your project** to see what's already been done - **Inspects your project** to see what's already been done
- **Understands natural language queries** — ask questions in plain English - **Understands natural language queries** — ask questions in plain English
@ -116,36 +118,28 @@ Tasks and tools are standalone operations that do not require an agent or workfl
**Examples:** **Examples:**
``` ```
/bmad-help bmad-help
/bmad-help I have a SaaS idea and know all the features. Where do I start? bmad-help I have a SaaS idea and know all the features. Where do I start?
/bmad-help What are my options for UX design? bmad-help What are my options for UX design?
/bmad-help I'm stuck on the PRD workflow bmad-help I'm stuck on the PRD workflow
``` ```
#### Other Tasks and Tools #### Other Tasks and Tools
| Example command | Purpose | | Example skill | Purpose |
| --- | --- | | --- | --- |
| `/bmad-shard-doc` | Split a large markdown file into smaller sections | | `bmad-shard-doc` | Split a large markdown file into smaller sections |
| `/bmad-index-docs` | Index project documentation | | `bmad-index-docs` | Index project documentation |
| `/bmad-editorial-review-prose` | Review document prose quality | | `bmad-editorial-review-prose` | Review document prose quality |
## Naming Convention ## Naming Convention
Command names follow a predictable pattern. All skills use the `bmad-` prefix followed by a descriptive name (e.g., `bmad-dev`, `bmad-create-prd`, `bmad-help`). See [Modules](./modules.md) for available modules.
| Pattern | Meaning | Example |
| --- | --- | --- |
| `bmad-agent-<module>-<name>` | Agent launcher | `bmad-agent-bmm-dev` |
| `bmad-<module>-<workflow>` | Workflow command | `bmad-bmm-create-prd` |
| `bmad-<name>` | Core task or tool | `bmad-help` |
Module codes: `bmm` (Agile suite), `bmb` (Builder), `tea` (Test Architect), `cis` (Creative Intelligence), `gds` (Game Dev Studio). See [Modules](./modules.md) for descriptions.
## Troubleshooting ## Troubleshooting
**Commands not appearing after install.** Restart your IDE or reload the window. Some IDEs cache the command list and require a refresh to pick up new files. **Skills not appearing after install.** Some platforms require skills to be explicitly enabled in settings. Check your IDE's documentation or ask your AI assistant how to enable skills. You may also need to restart your IDE or reload the window.
**Expected commands are missing.** The installer only generates commands for modules you selected. Run `npx bmad-method install` again and verify your module selection. Check that the command files exist in the expected directory. **Expected skills are missing.** The installer only generates skills for modules you selected. Run `npx bmad-method install` again and verify your module selection. Check that the skill files exist in the expected directory.
**Commands from a removed module still appear.** The installer does not delete old command files automatically. Remove the stale files from your IDE's command directory, or delete the entire command directory and re-run the installer for a clean set. **Skills from a removed module still appear.** The installer does not delete old skill files automatically. Remove the stale directories from your IDE's skills directory, or delete the entire skills directory and re-run the installer for a clean set.

View File

@ -26,7 +26,7 @@ Most projects should start with Quinn. If you later need test strategy, quality
Quinn is the built-in QA agent in the BMM (Agile suite) module. It generates working tests quickly using your project's existing test framework -- no configuration or additional installation required. Quinn is the built-in QA agent in the BMM (Agile suite) module. It generates working tests quickly using your project's existing test framework -- no configuration or additional installation required.
**Trigger:** `QA` or `bmad-bmm-qa-automate` **Trigger:** `QA` or `bmad-qa-generate-e2e-tests`
### What Quinn Does ### What Quinn Does

View File

@ -9,9 +9,9 @@ The BMad Method (BMM) is a module in the BMad Ecosystem, targeted at following t
The rationale and concepts come from agile methodologies that have been used across the industry with great success as a mental framework. The rationale and concepts come from agile methodologies that have been used across the industry with great success as a mental framework.
If at any time you are unsure what to do, the `/bmad-help` command will help you stay on track or know what to do next. You can always refer to this for reference also - but /bmad-help is fully interactive and much quicker if you have already installed the BMad Method. Additionally, if you are using different modules that have extended the BMad Method or added other complementary non-extension modules - the /bmad-help evolves to know all that is available to give you the best in-the-moment advice. If at any time you are unsure what to do, the `bmad-help` skill will help you stay on track or know what to do next. You can always refer to this for reference also - but `bmad-help` is fully interactive and much quicker if you have already installed the BMad Method. Additionally, if you are using different modules that have extended the BMad Method or added other complementary non-extension modules - `bmad-help` evolves to know all that is available to give you the best in-the-moment advice.
Final important note: Every workflow below can be run directly with your tool of choice via slash command or by loading an agent first and using the entry from the agents menu. Final important note: Every workflow below can be run directly with your tool of choice via skill or by loading an agent first and using the entry from the agents menu.
<iframe src="/workflow-map-diagram.html" title="BMad Method Workflow Map Diagram" width="100%" height="100%" style="border-radius: 8px; border: 1px solid #334155; min-height: 900px;"></iframe> <iframe src="/workflow-map-diagram.html" title="BMad Method Workflow Map Diagram" width="100%" height="100%" style="border-radius: 8px; border: 1px solid #334155; min-height: 900px;"></iframe>
@ -26,8 +26,8 @@ Explore the problem space and validate ideas before committing to planning.
| Workflow | Purpose | Produces | | Workflow | Purpose | Produces |
| ------------------------------- | -------------------------------------------------------------------------- | ------------------------- | | ------------------------------- | -------------------------------------------------------------------------- | ------------------------- |
| `bmad-brainstorming` | Brainstorm Project Ideas with guided facilitation of a brainstorming coach | `brainstorming-report.md` | | `bmad-brainstorming` | Brainstorm Project Ideas with guided facilitation of a brainstorming coach | `brainstorming-report.md` |
| `bmad-bmm-research` | Validate market, technical, or domain assumptions | Research findings | | `bmad-domain-research`, `bmad-market-research`, `bmad-technical-research` | Validate market, technical, or domain assumptions | Research findings |
| `bmad-bmm-create-product-brief` | Capture strategic vision | `product-brief.md` | | `bmad-create-product-brief` | Capture strategic vision | `product-brief.md` |
## Phase 2: Planning ## Phase 2: Planning
@ -35,8 +35,8 @@ Define what to build and for whom.
| Workflow | Purpose | Produces | | Workflow | Purpose | Produces |
| --------------------------- | ---------------------------------------- | ------------ | | --------------------------- | ---------------------------------------- | ------------ |
| `bmad-bmm-create-prd` | Define requirements (FRs/NFRs) | `PRD.md` | | `bmad-create-prd` | Define requirements (FRs/NFRs) | `PRD.md` |
| `bmad-bmm-create-ux-design` | Design user experience (when UX matters) | `ux-spec.md` | | `bmad-create-ux-design` | Design user experience (when UX matters) | `ux-spec.md` |
## Phase 3: Solutioning ## Phase 3: Solutioning
@ -44,9 +44,9 @@ Decide how to build it and break work into stories.
| Workflow | Purpose | Produces | | Workflow | Purpose | Produces |
| ----------------------------------------- | ------------------------------------------ | --------------------------- | | ----------------------------------------- | ------------------------------------------ | --------------------------- |
| `bmad-bmm-create-architecture` | Make technical decisions explicit | `architecture.md` with ADRs | | `bmad-create-architecture` | Make technical decisions explicit | `architecture.md` with ADRs |
| `bmad-bmm-create-epics-and-stories` | Break requirements into implementable work | Epic files with stories | | `bmad-create-epics-and-stories` | Break requirements into implementable work | Epic files with stories |
| `bmad-bmm-check-implementation-readiness` | Gate check before implementation | PASS/CONCERNS/FAIL decision | | `bmad-check-implementation-readiness` | Gate check before implementation | PASS/CONCERNS/FAIL decision |
## Phase 4: Implementation ## Phase 4: Implementation
@ -54,13 +54,13 @@ Build it, one story at a time. Coming soon, full phase 4 automation!
| Workflow | Purpose | Produces | | Workflow | Purpose | Produces |
| -------------------------- | ------------------------------------------------------------------------ | -------------------------------- | | -------------------------- | ------------------------------------------------------------------------ | -------------------------------- |
| `bmad-bmm-sprint-planning` | Initialize tracking (once per project to sequence the dev cycle) | `sprint-status.yaml` | | `bmad-sprint-planning` | Initialize tracking (once per project to sequence the dev cycle) | `sprint-status.yaml` |
| `bmad-bmm-create-story` | Prepare next story for implementation | `story-[slug].md` | | `bmad-create-story` | Prepare next story for implementation | `story-[slug].md` |
| `bmad-bmm-dev-story` | Implement the story | Working code + tests | | `bmad-dev-story` | Implement the story | Working code + tests |
| `bmad-bmm-code-review` | Validate implementation quality | Approved or changes requested | | `bmad-code-review` | Validate implementation quality | Approved or changes requested |
| `bmad-bmm-correct-course` | Handle significant mid-sprint changes | Updated plan or re-routing | | `bmad-correct-course` | Handle significant mid-sprint changes | Updated plan or re-routing |
| `bmad-bmm-automate` | Generate tests for existing features - Use after a full epic is complete | End to End UI Focused Test suite | | `bmad-sprint-status` | Track sprint progress and story status | Sprint status update |
| `bmad-bmm-retrospective` | Review after epic completion | Lessons learned | | `bmad-retrospective` | Review after epic completion | Lessons learned |
## Quick Flow (Parallel Track) ## Quick Flow (Parallel Track)
@ -68,8 +68,8 @@ Skip phases 1-3 for small, well-understood work.
| Workflow | Purpose | Produces | | Workflow | Purpose | Produces |
| --------------------- | ------------------------------------------ | --------------------------------------------- | | --------------------- | ------------------------------------------ | --------------------------------------------- |
| `bmad-bmm-quick-spec` | Define an ad-hoc change | `tech-spec.md` (story file for small changes) | | `bmad-quick-spec` | Define an ad-hoc change | `tech-spec.md` (story file for small changes) |
| `bmad-bmm-quick-dev` | Implement from spec or direct instructions | Working code + tests | | `bmad-quick-dev` | Implement from spec or direct instructions | Working code + tests |
## Context Management ## Context Management
@ -84,6 +84,6 @@ Create `project-context.md` to ensure AI agents follow your project's rules and
**How to create it:** **How to create it:**
- **Manually** — Create `_bmad-output/project-context.md` with your technology stack and implementation rules - **Manually** — Create `_bmad-output/project-context.md` with your technology stack and implementation rules
- **Generate it** — Run `/bmad-bmm-generate-project-context` to auto-generate from your architecture or codebase - **Generate it** — Run `bmad-generate-project-context` to auto-generate from your architecture or codebase
[**Learn more about project-context.md**](../explanation/project-context.md) [**Learn more about project-context.md**](../explanation/project-context.md)

View File

@ -37,16 +37,16 @@ Build software faster using AI-powered workflows with specialized agents that gu
### How to Use BMad-Help ### How to Use BMad-Help
Run it in your AI IDE with just the slash command: Run it in your AI IDE by invoking the skill:
``` ```
/bmad-help bmad-help
``` ```
Or combine it with a question for context-aware guidance: Or combine it with a question for context-aware guidance:
``` ```
/bmad-help I have an idea for a SaaS product, I already know all the features I want. where do I get started? bmad-help I have an idea for a SaaS product, I already know all the features I want. where do I get started?
``` ```
BMad-Help will respond with: BMad-Help will respond with:
@ -112,7 +112,7 @@ BMad-Help will detect what you've completed and recommend exactly what to do nex
::: :::
:::note[How to Load Agents and Run Workflows] :::note[How to Load Agents and Run Workflows]
Each workflow has a **slash command** you run in your IDE (e.g., `/bmad-bmm-create-prd`). Running a workflow command automatically loads the appropriate agent — you don't need to load agents separately. You can also load an agent directly for general conversation (e.g., `/bmad-agent-bmm-pm` for the PM agent). Each workflow has a **skill** you invoke in your IDE (e.g., `/bmad-create-prd`). Running a workflow skill automatically loads the appropriate agent — you don't need to load agents separately. You can also invoke an agent directly for general conversation (e.g., `/bmad-pm` for the PM agent).
::: :::
:::caution[Fresh Chats] :::caution[Fresh Chats]
@ -126,35 +126,35 @@ Work through phases 1-3. **Use fresh chats for each workflow.**
:::tip[Project Context (Optional)] :::tip[Project Context (Optional)]
Before starting, consider creating `project-context.md` to document your technical preferences and implementation rules. This ensures all AI agents follow your conventions throughout the project. Before starting, consider creating `project-context.md` to document your technical preferences and implementation rules. This ensures all AI agents follow your conventions throughout the project.
Create it manually at `_bmad-output/project-context.md` or generate it after architecture using `/bmad-bmm-generate-project-context`. [Learn more](../explanation/project-context.md). Create it manually at `_bmad-output/project-context.md` or generate it after architecture using `/bmad-generate-project-context`. [Learn more](../explanation/project-context.md).
::: :::
### Phase 1: Analysis (Optional) ### Phase 1: Analysis (Optional)
All workflows in this phase are optional: All workflows in this phase are optional:
- **brainstorming** (`/bmad-brainstorming`) — Guided ideation - **brainstorming** (`/bmad-brainstorming`) — Guided ideation
- **research** (`/bmad-bmm-research`) — Market and technical research - **research** (`/bmad-research`) — Market and technical research
- **create-product-brief** (`/bmad-bmm-create-product-brief`) — Recommended foundation document - **create-product-brief** (`/bmad-create-product-brief`) — Recommended foundation document
### Phase 2: Planning (Required) ### Phase 2: Planning (Required)
**For BMad Method and Enterprise tracks:** **For BMad Method and Enterprise tracks:**
1. Load the **PM agent** (`/bmad-agent-bmm-pm`) in a new chat 1. Invoke the **PM agent** (`/bmad-pm`) in a new chat
2. Run the `prd` workflow (`/bmad-bmm-create-prd`) 2. Run the `bmad-create-prd` workflow (`/bmad-create-prd`)
3. Output: `PRD.md` 3. Output: `PRD.md`
**For Quick Flow track:** **For Quick Flow track:**
- Use the `quick-spec` workflow (`/bmad-bmm-quick-spec`) instead of PRD, then skip to implementation - Use the `bmad-quick-spec` workflow (`/bmad-quick-spec`) instead of PRD, then skip to implementation
:::note[UX Design (Optional)] :::note[UX Design (Optional)]
If your project has a user interface, load the **UX-Designer agent** (`/bmad-agent-bmm-ux-designer`) and run the UX design workflow (`/bmad-bmm-create-ux-design`) after creating your PRD. If your project has a user interface, invoke the **UX-Designer agent** (`/bmad-ux-designer`) and run the UX design workflow (`/bmad-create-ux-design`) after creating your PRD.
::: :::
### Phase 3: Solutioning (BMad Method/Enterprise) ### Phase 3: Solutioning (BMad Method/Enterprise)
**Create Architecture** **Create Architecture**
1. Load the **Architect agent** (`/bmad-agent-bmm-architect`) in a new chat 1. Invoke the **Architect agent** (`/bmad-architect`) in a new chat
2. Run `create-architecture` (`/bmad-bmm-create-architecture`) 2. Run `bmad-create-architecture` (`/bmad-create-architecture`)
3. Output: Architecture document with technical decisions 3. Output: Architecture document with technical decisions
**Create Epics and Stories** **Create Epics and Stories**
@ -163,13 +163,13 @@ If your project has a user interface, load the **UX-Designer agent** (`/bmad-age
Epics and stories are now created *after* architecture. This produces better quality stories because architecture decisions (database, API patterns, tech stack) directly affect how work should be broken down. Epics and stories are now created *after* architecture. This produces better quality stories because architecture decisions (database, API patterns, tech stack) directly affect how work should be broken down.
::: :::
1. Load the **PM agent** (`/bmad-agent-bmm-pm`) in a new chat 1. Invoke the **PM agent** (`/bmad-pm`) in a new chat
2. Run `create-epics-and-stories` (`/bmad-bmm-create-epics-and-stories`) 2. Run `bmad-create-epics-and-stories` (`/bmad-create-epics-and-stories`)
3. The workflow uses both PRD and Architecture to create technically-informed stories 3. The workflow uses both PRD and Architecture to create technically-informed stories
**Implementation Readiness Check** *(Highly Recommended)* **Implementation Readiness Check** *(Highly Recommended)*
1. Load the **Architect agent** (`/bmad-agent-bmm-architect`) in a new chat 1. Invoke the **Architect agent** (`/bmad-architect`) in a new chat
2. Run `check-implementation-readiness` (`/bmad-bmm-check-implementation-readiness`) 2. Run `bmad-check-implementation-readiness` (`/bmad-check-implementation-readiness`)
3. Validates cohesion across all planning documents 3. Validates cohesion across all planning documents
## Step 2: Build Your Project ## Step 2: Build Your Project
@ -178,7 +178,7 @@ Once planning is complete, move to implementation. **Each workflow should run in
### Initialize Sprint Planning ### Initialize Sprint Planning
Load the **SM agent** (`/bmad-agent-bmm-sm`) and run `sprint-planning` (`/bmad-bmm-sprint-planning`). This creates `sprint-status.yaml` to track all epics and stories. Invoke the **SM agent** (`/bmad-sm`) and run `bmad-sprint-planning` (`/bmad-sprint-planning`). This creates `sprint-status.yaml` to track all epics and stories.
### The Build Cycle ### The Build Cycle
@ -186,11 +186,11 @@ For each story, repeat this cycle with fresh chats:
| Step | Agent | Workflow | Command | Purpose | | Step | Agent | Workflow | Command | Purpose |
| ---- | ----- | -------------- | -------------------------- | ---------------------------------- | | ---- | ----- | -------------- | -------------------------- | ---------------------------------- |
| 1 | SM | `create-story` | `/bmad-bmm-create-story` | Create story file from epic | | 1 | SM | `bmad-create-story` | `/bmad-create-story` | Create story file from epic |
| 2 | DEV | `dev-story` | `/bmad-bmm-dev-story` | Implement the story | | 2 | DEV | `bmad-dev-story` | `/bmad-dev-story` | Implement the story |
| 3 | DEV | `code-review` | `/bmad-bmm-code-review` | Quality validation *(recommended)* | | 3 | DEV | `bmad-code-review` | `/bmad-code-review` | Quality validation *(recommended)* |
After completing all stories in an epic, load the **SM agent** (`/bmad-agent-bmm-sm`) and run `retrospective` (`/bmad-bmm-retrospective`). After completing all stories in an epic, invoke the **SM agent** (`/bmad-sm`) and run `bmad-retrospective` (`/bmad-retrospective`).
## What You've Accomplished ## What You've Accomplished
@ -221,16 +221,16 @@ your-project/
| Workflow | Command | Agent | Purpose | | Workflow | Command | Agent | Purpose |
| ------------------------------------- | ------------------------------------------ | --------- | ----------------------------------------------- | | ------------------------------------- | ------------------------------------------ | --------- | ----------------------------------------------- |
| **`help`** ⭐ | `/bmad-help` | Any | **Your intelligent guide — ask anything!** | | **`bmad-help`** ⭐ | `/bmad-help` | Any | **Your intelligent guide — ask anything!** |
| `prd` | `/bmad-bmm-create-prd` | PM | Create Product Requirements Document | | `bmad-create-prd` | `/bmad-create-prd` | PM | Create Product Requirements Document |
| `create-architecture` | `/bmad-bmm-create-architecture` | Architect | Create architecture document | | `bmad-create-architecture` | `/bmad-create-architecture` | Architect | Create architecture document |
| `generate-project-context` | `/bmad-bmm-generate-project-context` | Analyst | Create project context file | | `bmad-generate-project-context` | `/bmad-generate-project-context` | Analyst | Create project context file |
| `create-epics-and-stories` | `/bmad-bmm-create-epics-and-stories` | PM | Break down PRD into epics | | `bmad-create-epics-and-stories` | `/bmad-create-epics-and-stories` | PM | Break down PRD into epics |
| `check-implementation-readiness` | `/bmad-bmm-check-implementation-readiness` | Architect | Validate planning cohesion | | `bmad-check-implementation-readiness` | `/bmad-check-implementation-readiness` | Architect | Validate planning cohesion |
| `sprint-planning` | `/bmad-bmm-sprint-planning` | SM | Initialize sprint tracking | | `bmad-sprint-planning` | `/bmad-sprint-planning` | SM | Initialize sprint tracking |
| `create-story` | `/bmad-bmm-create-story` | SM | Create a story file | | `bmad-create-story` | `/bmad-create-story` | SM | Create a story file |
| `dev-story` | `/bmad-bmm-dev-story` | DEV | Implement a story | | `bmad-dev-story` | `/bmad-dev-story` | DEV | Implement a story |
| `code-review` | `/bmad-bmm-code-review` | DEV | Review implemented code | | `bmad-code-review` | `/bmad-code-review` | DEV | Review implemented code |
## Common Questions ## Common Questions
@ -238,10 +238,10 @@ your-project/
Only for BMad Method and Enterprise tracks. Quick Flow skips from tech-spec to implementation. Only for BMad Method and Enterprise tracks. Quick Flow skips from tech-spec to implementation.
**Can I change my plan later?** **Can I change my plan later?**
Yes. The SM agent has a `correct-course` workflow (`/bmad-bmm-correct-course`) for handling scope changes. Yes. The SM agent has a `bmad-correct-course` workflow (`/bmad-correct-course`) for handling scope changes.
**What if I want to brainstorm first?** **What if I want to brainstorm first?**
Load the Analyst agent (`/bmad-agent-bmm-analyst`) and run `brainstorming` (`/bmad-brainstorming`) before starting your PRD. Invoke the Analyst agent (`/bmad-analyst`) and run `bmad-brainstorming` (`/bmad-brainstorming`) before starting your PRD.
**Do I need to follow a strict order?** **Do I need to follow a strict order?**
Not strictly. Once you learn the flow, you can run workflows directly using the Quick Reference above. Not strictly. Once you learn the flow, you can run workflows directly using the Quick Reference above.

View File

@ -29,7 +29,7 @@ agent:
menu: menu:
- trigger: QA or fuzzy match on qa-automate - trigger: QA or fuzzy match on qa-automate
workflow: "{project-root}/_bmad/bmm/workflows/qa-generate-e2e-tests/workflow.yaml" workflow: "{project-root}/_bmad/bmm/workflows/qa-generate-e2e-tests/workflow.md"
description: "[QA] Automate - Generate tests for existing features (simplified)" description: "[QA] Automate - Generate tests for existing features (simplified)"
prompts: prompts:

View File

@ -27,8 +27,8 @@ agent:
exec: "{project-root}/_bmad/bmm/workflows/bmad-quick-flow/quick-dev/workflow.md" exec: "{project-root}/_bmad/bmm/workflows/bmad-quick-flow/quick-dev/workflow.md"
description: "[QD] Quick-flow Develop: Implement a story tech spec end-to-end (Core of Quick Flow)" description: "[QD] Quick-flow Develop: Implement a story tech spec end-to-end (Core of Quick Flow)"
- trigger: QQ or fuzzy match on quick-dev-new-preview - trigger: QQ or fuzzy match on bmad-quick-dev-new-preview
exec: "{project-root}/_bmad/bmm/workflows/bmad-quick-flow/quick-dev-new-preview/workflow.md" exec: "{project-root}/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-dev-new-preview/workflow.md"
description: "[QQ] Quick Dev New (Preview): Unified quick flow — clarify intent, plan, implement, review, present (experimental)" description: "[QQ] Quick Dev New (Preview): Unified quick flow — clarify intent, plan, implement, review, present (experimental)"
- trigger: CR or fuzzy match on code-review - trigger: CR or fuzzy match on code-review

View File

@ -28,7 +28,7 @@ agent:
description: "[CS] Context Story: Prepare a story with all required context for implementation for the developer agent" description: "[CS] Context Story: Prepare a story with all required context for implementation for the developer agent"
- trigger: ER or fuzzy match on epic-retrospective - trigger: ER or fuzzy match on epic-retrospective
workflow: "{project-root}/_bmad/bmm/workflows/4-implementation/retrospective/workflow.yaml" workflow: "{project-root}/_bmad/bmm/workflows/4-implementation/retrospective/workflow.md"
data: "{project-root}/_bmad/_config/agent-manifest.csv" data: "{project-root}/_bmad/_config/agent-manifest.csv"
description: "[ER] Epic Retrospective: Party Mode review of all work completed across an epic." description: "[ER] Epic Retrospective: Party Mode review of all work completed across an epic."

View File

@ -3,7 +3,7 @@ bmm,anytime,Document Project,DP,,_bmad/bmm/workflows/document-project/workflow.y
bmm,anytime,Generate Project Context,GPC,,_bmad/bmm/workflows/generate-project-context/workflow.md,bmad-bmm-generate-project-context,false,analyst,Create Mode,"Scan existing codebase to generate a lean LLM-optimized project-context.md containing critical implementation rules patterns and conventions for AI agents. Essential for brownfield projects and quick-flow.",output_folder,"project context", bmm,anytime,Generate Project Context,GPC,,_bmad/bmm/workflows/generate-project-context/workflow.md,bmad-bmm-generate-project-context,false,analyst,Create Mode,"Scan existing codebase to generate a lean LLM-optimized project-context.md containing critical implementation rules patterns and conventions for AI agents. Essential for brownfield projects and quick-flow.",output_folder,"project context",
bmm,anytime,Quick Spec,QS,,_bmad/bmm/workflows/bmad-quick-flow/quick-spec/workflow.md,bmad-bmm-quick-spec,false,quick-flow-solo-dev,Create Mode,"Do not suggest for potentially very complex things unless requested or if the user complains that they do not want to follow the extensive planning of the bmad method. Quick one-off tasks small changes simple apps brownfield additions to well established patterns utilities without extensive planning",planning_artifacts,"tech spec", bmm,anytime,Quick Spec,QS,,_bmad/bmm/workflows/bmad-quick-flow/quick-spec/workflow.md,bmad-bmm-quick-spec,false,quick-flow-solo-dev,Create Mode,"Do not suggest for potentially very complex things unless requested or if the user complains that they do not want to follow the extensive planning of the bmad method. Quick one-off tasks small changes simple apps brownfield additions to well established patterns utilities without extensive planning",planning_artifacts,"tech spec",
bmm,anytime,Quick Dev,QD,,_bmad/bmm/workflows/bmad-quick-flow/quick-dev/workflow.md,bmad-bmm-quick-dev,false,quick-flow-solo-dev,Create Mode,"Quick one-off tasks small changes simple apps utilities without extensive planning - Do not suggest for potentially very complex things unless requested or if the user complains that they do not want to follow the extensive planning of the bmad method, unless the user is already working through the implementation phase and just requests a 1 off things not already in the plan",,, bmm,anytime,Quick Dev,QD,,_bmad/bmm/workflows/bmad-quick-flow/quick-dev/workflow.md,bmad-bmm-quick-dev,false,quick-flow-solo-dev,Create Mode,"Quick one-off tasks small changes simple apps utilities without extensive planning - Do not suggest for potentially very complex things unless requested or if the user complains that they do not want to follow the extensive planning of the bmad method, unless the user is already working through the implementation phase and just requests a 1 off things not already in the plan",,,
bmm,anytime,Quick Dev New Preview,QQ,,_bmad/bmm/workflows/bmad-quick-flow/quick-dev-new-preview/workflow.md,bmad-bmm-quick-dev-new-preview,false,quick-flow-solo-dev,Create Mode,"Unified quick flow (experimental): clarify intent plan implement review and present in a single workflow",implementation_artifacts,"tech spec implementation", bmm,anytime,Quick Dev New Preview,QQ,,skill:bmad-quick-dev-new-preview,bmad-bmm-quick-dev-new-preview,false,quick-flow-solo-dev,Create Mode,"Unified quick flow (experimental): clarify intent plan implement review and present in a single workflow",implementation_artifacts,"tech spec implementation",
bmm,anytime,Correct Course,CC,,_bmad/bmm/workflows/4-implementation/correct-course/workflow.yaml,bmad-bmm-correct-course,false,sm,Create Mode,"Anytime: Navigate significant changes. May recommend start over update PRD redo architecture sprint planning or correct epics and stories",planning_artifacts,"change proposal", bmm,anytime,Correct Course,CC,,_bmad/bmm/workflows/4-implementation/correct-course/workflow.yaml,bmad-bmm-correct-course,false,sm,Create Mode,"Anytime: Navigate significant changes. May recommend start over update PRD redo architecture sprint planning or correct epics and stories",planning_artifacts,"change proposal",
bmm,anytime,Write Document,WD,,_bmad/bmm/agents/tech-writer/tech-writer.agent.yaml,,false,tech-writer,,"Describe in detail what you want, and the agent will follow the documentation best practices defined in agent memory. Multi-turn conversation with subprocess for research/review.",project-knowledge,"document", bmm,anytime,Write Document,WD,,_bmad/bmm/agents/tech-writer/tech-writer.agent.yaml,,false,tech-writer,,"Describe in detail what you want, and the agent will follow the documentation best practices defined in agent memory. Multi-turn conversation with subprocess for research/review.",project-knowledge,"document",
bmm,anytime,Update Standards,US,,_bmad/bmm/agents/tech-writer/tech-writer.agent.yaml,,false,tech-writer,,"Update agent memory documentation-standards.md with your specific preferences if you discover missing document conventions.",_bmad/_memory/tech-writer-sidecar,"standards", bmm,anytime,Update Standards,US,,_bmad/bmm/agents/tech-writer/tech-writer.agent.yaml,,false,tech-writer,,"Update agent memory documentation-standards.md with your specific preferences if you discover missing document conventions.",_bmad/_memory/tech-writer-sidecar,"standards",
@ -23,10 +23,10 @@ bmm,3-solutioning,Create Architecture,CA,10,_bmad/bmm/workflows/3-solutioning/cr
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,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,_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,4-implementation,Sprint Planning,SP,10,_bmad/bmm/workflows/4-implementation/sprint-planning/workflow.yaml,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 Planning,SP,10,_bmad/bmm/workflows/4-implementation/sprint-planning/workflow.yaml,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.yaml,bmad-bmm-sprint-status,false,sm,Create Mode,"Anytime: Summarize sprint status and route to next workflow",,, 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,_bmad/bmm/workflows/4-implementation/create-story/workflow.yaml,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,Validate Story,VS,35,_bmad/bmm/workflows/4-implementation/create-story/workflow.yaml,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,_bmad/bmm/workflows/4-implementation/create-story/workflow.yaml,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,Create Story,CS,30,_bmad/bmm/workflows/4-implementation/create-story/workflow.yaml,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,_bmad/bmm/workflows/4-implementation/dev-story/workflow.yaml,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,Dev Story,DS,40,_bmad/bmm/workflows/4-implementation/dev-story/workflow.yaml,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.yaml,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,_bmad/bmm/workflows/4-implementation/code-review/workflow.yaml,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.yaml,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,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.yaml,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, 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,

1 module phase name code sequence workflow-file command required agent options description output-location outputs
3 bmm anytime Generate Project Context GPC _bmad/bmm/workflows/generate-project-context/workflow.md bmad-bmm-generate-project-context false analyst Create Mode Scan existing codebase to generate a lean LLM-optimized project-context.md containing critical implementation rules patterns and conventions for AI agents. Essential for brownfield projects and quick-flow. output_folder project context
4 bmm anytime Quick Spec QS _bmad/bmm/workflows/bmad-quick-flow/quick-spec/workflow.md bmad-bmm-quick-spec false quick-flow-solo-dev Create Mode Do not suggest for potentially very complex things unless requested or if the user complains that they do not want to follow the extensive planning of the bmad method. Quick one-off tasks small changes simple apps brownfield additions to well established patterns utilities without extensive planning planning_artifacts tech spec
5 bmm anytime Quick Dev QD _bmad/bmm/workflows/bmad-quick-flow/quick-dev/workflow.md bmad-bmm-quick-dev false quick-flow-solo-dev Create Mode Quick one-off tasks small changes simple apps utilities without extensive planning - Do not suggest for potentially very complex things unless requested or if the user complains that they do not want to follow the extensive planning of the bmad method, unless the user is already working through the implementation phase and just requests a 1 off things not already in the plan
6 bmm anytime Quick Dev New Preview QQ _bmad/bmm/workflows/bmad-quick-flow/quick-dev-new-preview/workflow.md skill:bmad-quick-dev-new-preview bmad-bmm-quick-dev-new-preview false quick-flow-solo-dev Create Mode Unified quick flow (experimental): clarify intent plan implement review and present in a single workflow implementation_artifacts tech spec implementation
7 bmm anytime Correct Course CC _bmad/bmm/workflows/4-implementation/correct-course/workflow.yaml bmad-bmm-correct-course false sm Create Mode Anytime: Navigate significant changes. May recommend start over update PRD redo architecture sprint planning or correct epics and stories planning_artifacts change proposal
8 bmm anytime Write Document WD _bmad/bmm/agents/tech-writer/tech-writer.agent.yaml false tech-writer Describe in detail what you want, and the agent will follow the documentation best practices defined in agent memory. Multi-turn conversation with subprocess for research/review. project-knowledge document
9 bmm anytime Update Standards US _bmad/bmm/agents/tech-writer/tech-writer.agent.yaml false tech-writer Update agent memory documentation-standards.md with your specific preferences if you discover missing document conventions. _bmad/_memory/tech-writer-sidecar standards
23 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
24 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
25 bmm 4-implementation Sprint Planning SP 10 _bmad/bmm/workflows/4-implementation/sprint-planning/workflow.yaml 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
26 bmm 4-implementation Sprint Status SS 20 _bmad/bmm/workflows/4-implementation/sprint-status/workflow.yaml _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
27 bmm 4-implementation Validate Story VS 35 _bmad/bmm/workflows/4-implementation/create-story/workflow.yaml bmad-bmm-create-story false sm Validate Mode Validates story readiness and completeness before development work begins implementation_artifacts story validation report
28 bmm 4-implementation Create Story CS 30 _bmad/bmm/workflows/4-implementation/create-story/workflow.yaml 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
29 bmm 4-implementation Dev Story DS 40 _bmad/bmm/workflows/4-implementation/dev-story/workflow.yaml 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
30 bmm 4-implementation Code Review CR 50 _bmad/bmm/workflows/4-implementation/code-review/workflow.yaml 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
31 bmm 4-implementation QA Automation Test QA 45 _bmad/bmm/workflows/qa-generate-e2e-tests/workflow.yaml _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
32 bmm 4-implementation Retrospective ER 60 _bmad/bmm/workflows/4-implementation/retrospective/workflow.yaml _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

View File

@ -7,7 +7,7 @@ nextStepFile: '{project-root}/_bmad/bmm/workflows/1-analysis/create-product-brie
outputFile: '{planning_artifacts}/product-brief-{{project_name}}-{{date}}.md' outputFile: '{planning_artifacts}/product-brief-{{project_name}}-{{date}}.md'
# Task References # Task References
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml' advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md'
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md' partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
--- ---

View File

@ -7,7 +7,7 @@ nextStepFile: '{project-root}/_bmad/bmm/workflows/1-analysis/create-product-brie
outputFile: '{planning_artifacts}/product-brief-{{project_name}}-{{date}}.md' outputFile: '{planning_artifacts}/product-brief-{{project_name}}-{{date}}.md'
# Task References # Task References
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml' advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md'
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md' partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
--- ---

View File

@ -7,7 +7,7 @@ nextStepFile: '{project-root}/_bmad/bmm/workflows/1-analysis/create-product-brie
outputFile: '{planning_artifacts}/product-brief-{{project_name}}-{{date}}.md' outputFile: '{planning_artifacts}/product-brief-{{project_name}}-{{date}}.md'
# Task References # Task References
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml' advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md'
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md' partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
--- ---

View File

@ -7,7 +7,7 @@ nextStepFile: '{project-root}/_bmad/bmm/workflows/1-analysis/create-product-brie
outputFile: '{planning_artifacts}/product-brief-{{project_name}}-{{date}}.md' outputFile: '{planning_artifacts}/product-brief-{{project_name}}-{{date}}.md'
# Task References # Task References
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml' advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md'
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md' partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
--- ---

View File

@ -11,7 +11,7 @@ projectTypesCSV: '../data/project-types.csv'
domainComplexityCSV: '../data/domain-complexity.csv' domainComplexityCSV: '../data/domain-complexity.csv'
# Task References # Task References
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml' advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md'
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md' partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
--- ---

View File

@ -7,7 +7,7 @@ nextStepFile: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/st
outputFile: '{planning_artifacts}/prd.md' outputFile: '{planning_artifacts}/prd.md'
# Task References # Task References
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml' advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md'
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md' partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
--- ---

View File

@ -7,7 +7,7 @@ nextStepFile: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/st
outputFile: '{planning_artifacts}/prd.md' outputFile: '{planning_artifacts}/prd.md'
# Task References # Task References
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml' advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md'
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md' partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
--- ---

View File

@ -7,7 +7,7 @@ nextStepFile: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/st
outputFile: '{planning_artifacts}/prd.md' outputFile: '{planning_artifacts}/prd.md'
# Task References # Task References
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml' advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md'
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md' partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
--- ---

View File

@ -7,7 +7,7 @@ nextStepFile: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/st
outputFile: '{planning_artifacts}/prd.md' outputFile: '{planning_artifacts}/prd.md'
# Task References # Task References
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml' advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md'
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md' partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
--- ---

View File

@ -8,7 +8,7 @@ outputFile: '{planning_artifacts}/prd.md'
domainComplexityCSV: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/data/domain-complexity.csv' domainComplexityCSV: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/data/domain-complexity.csv'
# Task References # Task References
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml' advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md'
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md' partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
--- ---

View File

@ -10,7 +10,7 @@ outputFile: '{planning_artifacts}/prd.md'
projectTypesCSV: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/data/project-types.csv' projectTypesCSV: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/data/project-types.csv'
# Task References # Task References
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml' advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md'
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md' partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
--- ---

View File

@ -10,7 +10,7 @@ outputFile: '{planning_artifacts}/prd.md'
projectTypesCSV: '../data/project-types.csv' projectTypesCSV: '../data/project-types.csv'
# Task References # Task References
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml' advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md'
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md' partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
--- ---

View File

@ -7,7 +7,7 @@ nextStepFile: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/st
outputFile: '{planning_artifacts}/prd.md' outputFile: '{planning_artifacts}/prd.md'
# Task References # Task References
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml' advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md'
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md' partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
--- ---

View File

@ -7,7 +7,7 @@ nextStepFile: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/st
outputFile: '{planning_artifacts}/prd.md' outputFile: '{planning_artifacts}/prd.md'
# Task References # Task References
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml' advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md'
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md' partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
--- ---

View File

@ -7,7 +7,7 @@ nextStepFile: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/st
outputFile: '{planning_artifacts}/prd.md' outputFile: '{planning_artifacts}/prd.md'
# Task References # Task References
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml' advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md'
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md' partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
--- ---

View File

@ -8,7 +8,7 @@ outputFile: '{planning_artifacts}/prd.md'
purposeFile: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/data/prd-purpose.md' purposeFile: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/data/prd-purpose.md'
# Task References # Task References
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml' advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md'
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md' partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
--- ---

View File

@ -5,7 +5,7 @@ description: 'Discovery & Understanding - Understand what user wants to edit and
# File references (ONLY variables used in this step) # File references (ONLY variables used in this step)
altStepFile: './step-e-01b-legacy-conversion.md' altStepFile: './step-e-01b-legacy-conversion.md'
prdPurpose: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/data/prd-purpose.md' prdPurpose: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/data/prd-purpose.md'
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml' advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md'
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md' partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
--- ---

View File

@ -7,7 +7,7 @@ nextStepFile: './step-e-03-edit.md'
prdFile: '{prd_file_path}' prdFile: '{prd_file_path}'
validationReport: '{validation_report_path}' # If provided validationReport: '{validation_report_path}' # If provided
prdPurpose: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/data/prd-purpose.md' prdPurpose: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/data/prd-purpose.md'
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml' advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md'
--- ---
# Step E-2: Deep Review & Analysis # Step E-2: Deep Review & Analysis

View File

@ -4,7 +4,7 @@ description: 'Document Discovery & Confirmation - Handle fresh context validatio
# File references (ONLY variables used in this step) # File references (ONLY variables used in this step)
nextStepFile: './step-v-02-format-detection.md' nextStepFile: './step-v-02-format-detection.md'
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml' advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md'
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md' partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
prdPurpose: '../data/prd-purpose.md' prdPurpose: '../data/prd-purpose.md'
--- ---

View File

@ -6,7 +6,7 @@ description: 'SMART Requirements Validation - Validate Functional Requirements m
nextStepFile: './step-v-11-holistic-quality-validation.md' nextStepFile: './step-v-11-holistic-quality-validation.md'
prdFile: '{prd_file_path}' prdFile: '{prd_file_path}'
validationReportPath: '{validation_report_path}' validationReportPath: '{validation_report_path}'
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml' advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md'
--- ---
# Step 10: SMART Requirements Validation # Step 10: SMART Requirements Validation

View File

@ -6,7 +6,7 @@ description: 'Holistic Quality Assessment - Assess PRD as cohesive, compelling d
nextStepFile: './step-v-12-completeness-validation.md' nextStepFile: './step-v-12-completeness-validation.md'
prdFile: '{prd_file_path}' prdFile: '{prd_file_path}'
validationReportPath: '{validation_report_path}' validationReportPath: '{validation_report_path}'
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml' advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md'
--- ---
# Step 11: Holistic Quality Assessment # Step 11: Holistic Quality Assessment

View File

@ -30,7 +30,7 @@ This step will generate content and present choices:
## PROTOCOL INTEGRATION: ## PROTOCOL INTEGRATION:
- When 'A' selected: Read fully and follow: {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml - When 'A' selected: Read fully and follow: {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md
- When 'P' selected: Read fully and follow: {project-root}/_bmad/core/workflows/party-mode/workflow.md - When 'P' selected: Read fully and follow: {project-root}/_bmad/core/workflows/party-mode/workflow.md
- PROTOCOLS always return to this step's A/P/C menu - PROTOCOLS always return to this step's A/P/C menu
- User accepts/rejects protocol changes before proceeding - User accepts/rejects protocol changes before proceeding

View File

@ -30,7 +30,7 @@ This step will generate content and present choices:
## PROTOCOL INTEGRATION: ## PROTOCOL INTEGRATION:
- When 'A' selected: Read fully and follow: {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml - When 'A' selected: Read fully and follow: {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md
- When 'P' selected: Read fully and follow: {project-root}/_bmad/core/workflows/party-mode/workflow.md - When 'P' selected: Read fully and follow: {project-root}/_bmad/core/workflows/party-mode/workflow.md
- PROTOCOLS always return to this step's A/P/C menu - PROTOCOLS always return to this step's A/P/C menu
- User accepts/rejects protocol changes before proceeding - User accepts/rejects protocol changes before proceeding
@ -161,7 +161,7 @@ Show the generated core experience content and present choices:
#### If 'A' (Advanced Elicitation): #### If 'A' (Advanced Elicitation):
- Read fully and follow: {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml with the current core experience content - Read fully and follow: {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md with the current core experience content
- Process the enhanced experience insights that come back - Process the enhanced experience insights that come back
- Ask user: "Accept these improvements to the core experience definition? (y/n)" - Ask user: "Accept these improvements to the core experience definition? (y/n)"
- If yes: Update content with improvements, then return to A/P/C menu - If yes: Update content with improvements, then return to A/P/C menu

View File

@ -30,7 +30,7 @@ This step will generate content and present choices:
## PROTOCOL INTEGRATION: ## PROTOCOL INTEGRATION:
- When 'A' selected: Read fully and follow: {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml - When 'A' selected: Read fully and follow: {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md
- When 'P' selected: Read fully and follow: {project-root}/_bmad/core/workflows/party-mode/workflow.md - When 'P' selected: Read fully and follow: {project-root}/_bmad/core/workflows/party-mode/workflow.md
- PROTOCOLS always return to this step's A/P/C menu - PROTOCOLS always return to this step's A/P/C menu
- User accepts/rejects protocol changes before proceeding - User accepts/rejects protocol changes before proceeding
@ -164,7 +164,7 @@ Show the generated emotional response content and present choices:
#### If 'A' (Advanced Elicitation): #### If 'A' (Advanced Elicitation):
- Read fully and follow: {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml with the current emotional response content - Read fully and follow: {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md with the current emotional response content
- Process the enhanced emotional insights that come back - Process the enhanced emotional insights that come back
- Ask user: "Accept these improvements to the emotional response definition? (y/n)" - Ask user: "Accept these improvements to the emotional response definition? (y/n)"
- If yes: Update content with improvements, then return to A/P/C menu - If yes: Update content with improvements, then return to A/P/C menu

View File

@ -30,7 +30,7 @@ This step will generate content and present choices:
## PROTOCOL INTEGRATION: ## PROTOCOL INTEGRATION:
- When 'A' selected: Read fully and follow: {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml - When 'A' selected: Read fully and follow: {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md
- When 'P' selected: Read fully and follow: {project-root}/_bmad/core/workflows/party-mode/workflow.md - When 'P' selected: Read fully and follow: {project-root}/_bmad/core/workflows/party-mode/workflow.md
- PROTOCOLS always return to this step's A/P/C menu - PROTOCOLS always return to this step's A/P/C menu
- User accepts/rejects protocol changes before proceeding - User accepts/rejects protocol changes before proceeding
@ -179,7 +179,7 @@ Show the generated inspiration analysis content and present choices:
#### If 'A' (Advanced Elicitation): #### If 'A' (Advanced Elicitation):
- Read fully and follow: {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml with the current inspiration analysis content - Read fully and follow: {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md with the current inspiration analysis content
- Process the enhanced pattern insights that come back - Process the enhanced pattern insights that come back
- Ask user: "Accept these improvements to the inspiration analysis? (y/n)" - Ask user: "Accept these improvements to the inspiration analysis? (y/n)"
- If yes: Update content with improvements, then return to A/P/C menu - If yes: Update content with improvements, then return to A/P/C menu

View File

@ -30,7 +30,7 @@ This step will generate content and present choices:
## PROTOCOL INTEGRATION: ## PROTOCOL INTEGRATION:
- When 'A' selected: Read fully and follow: {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml - When 'A' selected: Read fully and follow: {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md
- When 'P' selected: Read fully and follow: {project-root}/_bmad/core/workflows/party-mode/workflow.md - When 'P' selected: Read fully and follow: {project-root}/_bmad/core/workflows/party-mode/workflow.md
- PROTOCOLS always return to this step's A/P/C menu - PROTOCOLS always return to this step's A/P/C menu
- User accepts/rejects protocol changes before proceeding - User accepts/rejects protocol changes before proceeding
@ -197,7 +197,7 @@ Show the generated design system content and present choices:
#### If 'A' (Advanced Elicitation): #### If 'A' (Advanced Elicitation):
- Read fully and follow: {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml with the current design system content - Read fully and follow: {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md with the current design system content
- Process the enhanced design system insights that come back - Process the enhanced design system insights that come back
- Ask user: "Accept these improvements to the design system decision? (y/n)" - Ask user: "Accept these improvements to the design system decision? (y/n)"
- If yes: Update content with improvements, then return to A/P/C menu - If yes: Update content with improvements, then return to A/P/C menu

View File

@ -30,7 +30,7 @@ This step will generate content and present choices:
## PROTOCOL INTEGRATION: ## PROTOCOL INTEGRATION:
- When 'A' selected: Read fully and follow: {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml - When 'A' selected: Read fully and follow: {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md
- When 'P' selected: Read fully and follow: {project-root}/_bmad/core/workflows/party-mode/workflow.md - When 'P' selected: Read fully and follow: {project-root}/_bmad/core/workflows/party-mode/workflow.md
- PROTOCOLS always return to this step's A/P/C menu - PROTOCOLS always return to this step's A/P/C menu
- User accepts/rejects protocol changes before proceeding - User accepts/rejects protocol changes before proceeding
@ -199,7 +199,7 @@ Show the generated defining experience content and present choices:
#### If 'A' (Advanced Elicitation): #### If 'A' (Advanced Elicitation):
- Read fully and follow: {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml with the current defining experience content - Read fully and follow: {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md with the current defining experience content
- Process the enhanced experience insights that come back - Process the enhanced experience insights that come back
- Ask user: "Accept these improvements to the defining experience? (y/n)" - Ask user: "Accept these improvements to the defining experience? (y/n)"
- If yes: Update content with improvements, then return to A/P/C menu - If yes: Update content with improvements, then return to A/P/C menu

View File

@ -30,7 +30,7 @@ This step will generate content and present choices:
## PROTOCOL INTEGRATION: ## PROTOCOL INTEGRATION:
- When 'A' selected: Read fully and follow: {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml - When 'A' selected: Read fully and follow: {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md
- When 'P' selected: Read fully and follow: {project-root}/_bmad/core/workflows/party-mode/workflow.md - When 'P' selected: Read fully and follow: {project-root}/_bmad/core/workflows/party-mode/workflow.md
- PROTOCOLS always return to this step's A/P/C menu - PROTOCOLS always return to this step's A/P/C menu
- User accepts/rejects protocol changes before proceeding - User accepts/rejects protocol changes before proceeding
@ -169,7 +169,7 @@ Show the generated visual foundation content and present choices:
#### If 'A' (Advanced Elicitation): #### If 'A' (Advanced Elicitation):
- Read fully and follow: {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml with the current visual foundation content - Read fully and follow: {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md with the current visual foundation content
- Process the enhanced visual insights that come back - Process the enhanced visual insights that come back
- Ask user: "Accept these improvements to the visual foundation? (y/n)" - Ask user: "Accept these improvements to the visual foundation? (y/n)"
- If yes: Update content with improvements, then return to A/P/C menu - If yes: Update content with improvements, then return to A/P/C menu

View File

@ -30,7 +30,7 @@ This step will generate content and present choices:
## PROTOCOL INTEGRATION: ## PROTOCOL INTEGRATION:
- When 'A' selected: Read fully and follow: {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml - When 'A' selected: Read fully and follow: {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md
- When 'P' selected: Read fully and follow: {project-root}/_bmad/core/workflows/party-mode/workflow.md - When 'P' selected: Read fully and follow: {project-root}/_bmad/core/workflows/party-mode/workflow.md
- PROTOCOLS always return to this step's A/P/C menu - PROTOCOLS always return to this step's A/P/C menu
- User accepts/rejects protocol changes before proceeding - User accepts/rejects protocol changes before proceeding
@ -169,7 +169,7 @@ Show the generated design direction content and present choices:
#### If 'A' (Advanced Elicitation): #### If 'A' (Advanced Elicitation):
- Read fully and follow: {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml with the current design direction content - Read fully and follow: {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md with the current design direction content
- Process the enhanced design insights that come back - Process the enhanced design insights that come back
- Ask user: "Accept these improvements to the design direction? (y/n)" - Ask user: "Accept these improvements to the design direction? (y/n)"
- If yes: Update content with improvements, then return to A/P/C menu - If yes: Update content with improvements, then return to A/P/C menu

View File

@ -30,7 +30,7 @@ This step will generate content and present choices:
## PROTOCOL INTEGRATION: ## PROTOCOL INTEGRATION:
- When 'A' selected: Read fully and follow: {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml - When 'A' selected: Read fully and follow: {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md
- When 'P' selected: Read fully and follow: {project-root}/_bmad/core/workflows/party-mode/workflow.md - When 'P' selected: Read fully and follow: {project-root}/_bmad/core/workflows/party-mode/workflow.md
- PROTOCOLS always return to this step's A/P/C menu - PROTOCOLS always return to this step's A/P/C menu
- User accepts/rejects protocol changes before proceeding - User accepts/rejects protocol changes before proceeding
@ -187,7 +187,7 @@ Show the generated user journey content and present choices:
#### If 'A' (Advanced Elicitation): #### If 'A' (Advanced Elicitation):
- Read fully and follow: {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml with the current user journey content - Read fully and follow: {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md with the current user journey content
- Process the enhanced journey insights that come back - Process the enhanced journey insights that come back
- Ask user: "Accept these improvements to the user journeys? (y/n)" - Ask user: "Accept these improvements to the user journeys? (y/n)"
- If yes: Update content with improvements, then return to A/P/C menu - If yes: Update content with improvements, then return to A/P/C menu

View File

@ -30,7 +30,7 @@ This step will generate content and present choices:
## PROTOCOL INTEGRATION: ## PROTOCOL INTEGRATION:
- When 'A' selected: Read fully and follow: {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml - When 'A' selected: Read fully and follow: {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md
- When 'P' selected: Read fully and follow: {project-root}/_bmad/core/workflows/party-mode/workflow.md - When 'P' selected: Read fully and follow: {project-root}/_bmad/core/workflows/party-mode/workflow.md
- PROTOCOLS always return to this step's A/P/C menu - PROTOCOLS always return to this step's A/P/C menu
- User accepts/rejects protocol changes before proceeding - User accepts/rejects protocol changes before proceeding
@ -193,7 +193,7 @@ Show the generated component strategy content and present choices:
#### If 'A' (Advanced Elicitation): #### If 'A' (Advanced Elicitation):
- Read fully and follow: {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml with the current component strategy content - Read fully and follow: {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md with the current component strategy content
- Process the enhanced component insights that come back - Process the enhanced component insights that come back
- Ask user: "Accept these improvements to the component strategy? (y/n)" - Ask user: "Accept these improvements to the component strategy? (y/n)"
- If yes: Update content with improvements, then return to A/P/C menu - If yes: Update content with improvements, then return to A/P/C menu

View File

@ -30,7 +30,7 @@ This step will generate content and present choices:
## PROTOCOL INTEGRATION: ## PROTOCOL INTEGRATION:
- When 'A' selected: Read fully and follow: {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml - When 'A' selected: Read fully and follow: {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md
- When 'P' selected: Read fully and follow: {project-root}/_bmad/core/workflows/party-mode/workflow.md - When 'P' selected: Read fully and follow: {project-root}/_bmad/core/workflows/party-mode/workflow.md
- PROTOCOLS always return to this step's A/P/C menu - PROTOCOLS always return to this step's A/P/C menu
- User accepts/rejects protocol changes before proceeding - User accepts/rejects protocol changes before proceeding
@ -182,7 +182,7 @@ Show the generated UX patterns content and present choices:
#### If 'A' (Advanced Elicitation): #### If 'A' (Advanced Elicitation):
- Read fully and follow: {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml with the current UX patterns content - Read fully and follow: {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md with the current UX patterns content
- Process the enhanced pattern insights that come back - Process the enhanced pattern insights that come back
- Ask user: "Accept these improvements to the UX patterns? (y/n)" - Ask user: "Accept these improvements to the UX patterns? (y/n)"
- If yes: Update content with improvements, then return to A/P/C menu - If yes: Update content with improvements, then return to A/P/C menu

View File

@ -30,7 +30,7 @@ This step will generate content and present choices:
## PROTOCOL INTEGRATION: ## PROTOCOL INTEGRATION:
- When 'A' selected: Read fully and follow: {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml - When 'A' selected: Read fully and follow: {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md
- When 'P' selected: Read fully and follow: {project-root}/_bmad/core/workflows/party-mode/workflow.md - When 'P' selected: Read fully and follow: {project-root}/_bmad/core/workflows/party-mode/workflow.md
- PROTOCOLS always return to this step's A/P/C menu - PROTOCOLS always return to this step's A/P/C menu
- User accepts/rejects protocol changes before proceeding - User accepts/rejects protocol changes before proceeding
@ -209,7 +209,7 @@ Show the generated responsive and accessibility content and present choices:
#### If 'A' (Advanced Elicitation): #### If 'A' (Advanced Elicitation):
- Read fully and follow: {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml with the current responsive/accessibility content - Read fully and follow: {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md with the current responsive/accessibility content
- Process the enhanced insights that come back - Process the enhanced insights that come back
- Ask user: "Accept these improvements to the responsive/accessibility strategy? (y/n)" - Ask user: "Accept these improvements to the responsive/accessibility strategy? (y/n)"
- If yes: Update content with improvements, then return to A/P/C menu - If yes: Update content with improvements, then return to A/P/C menu

View File

@ -31,7 +31,7 @@ This step will generate content and present choices:
## PROTOCOL INTEGRATION: ## PROTOCOL INTEGRATION:
- When 'A' selected: Read fully and follow: {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml - When 'A' selected: Read fully and follow: {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md
- When 'P' selected: Read fully and follow: {project-root}/_bmad/core/workflows/party-mode/workflow.md - When 'P' selected: Read fully and follow: {project-root}/_bmad/core/workflows/party-mode/workflow.md
- PROTOCOLS always return to display this step's A/P/C menu after the A or P have completed - PROTOCOLS always return to display this step's A/P/C menu after the A or P have completed
- User accepts/rejects protocol changes before proceeding - User accepts/rejects protocol changes before proceeding
@ -170,7 +170,7 @@ Show the generated content and present choices:
#### If 'A' (Advanced Elicitation): #### If 'A' (Advanced Elicitation):
- Read fully and follow: {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml with the current context analysis - Read fully and follow: {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md with the current context analysis
- Process the enhanced architectural insights that come back - Process the enhanced architectural insights that come back
- Ask user: "Accept these enhancements to the project context analysis? (y/n)" - Ask user: "Accept these enhancements to the project context analysis? (y/n)"
- If yes: Update content with improvements, then return to A/P/C menu - If yes: Update content with improvements, then return to A/P/C menu

View File

@ -31,7 +31,7 @@ This step will generate content and present choices:
## PROTOCOL INTEGRATION: ## PROTOCOL INTEGRATION:
- When 'A' selected: Read fully and follow: {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml - When 'A' selected: Read fully and follow: {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md
- When 'P' selected: Read fully and follow: {project-root}/_bmad/core/workflows/party-mode/workflow.md - When 'P' selected: Read fully and follow: {project-root}/_bmad/core/workflows/party-mode/workflow.md
- PROTOCOLS always return to display this step's A/P/C menu after the A or P have completed - PROTOCOLS always return to display this step's A/P/C menu after the A or P have completed
- User accepts/rejects protocol changes before proceeding - User accepts/rejects protocol changes before proceeding
@ -276,7 +276,7 @@ Show the generated content and present choices:
#### If 'A' (Advanced Elicitation): #### If 'A' (Advanced Elicitation):
- Read fully and follow: {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml with current starter analysis - Read fully and follow: {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md with current starter analysis
- Process enhanced insights about starter options or custom approaches - Process enhanced insights about starter options or custom approaches
- Ask user: "Accept these changes to the starter template evaluation? (y/n)" - Ask user: "Accept these changes to the starter template evaluation? (y/n)"
- If yes: Update content, then return to A/P/C menu - If yes: Update content, then return to A/P/C menu

View File

@ -32,7 +32,7 @@ This step will generate content and present choices for each decision category:
## PROTOCOL INTEGRATION: ## PROTOCOL INTEGRATION:
- When 'A' selected: Read fully and follow: {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml - When 'A' selected: Read fully and follow: {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md
- When 'P' selected: Read fully and follow: {project-root}/_bmad/core/workflows/party-mode/workflow.md - When 'P' selected: Read fully and follow: {project-root}/_bmad/core/workflows/party-mode/workflow.md
- PROTOCOLS always return to display this step's A/P/C menu after the A or P have completed - PROTOCOLS always return to display this step's A/P/C menu after the A or P have completed
- User accepts/rejects protocol changes before proceeding - User accepts/rejects protocol changes before proceeding
@ -264,7 +264,7 @@ Show the generated decisions content and present choices:
#### If 'A' (Advanced Elicitation): #### If 'A' (Advanced Elicitation):
- Read fully and follow: {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml with specific decision categories - Read fully and follow: {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md with specific decision categories
- Process enhanced insights about particular decisions - Process enhanced insights about particular decisions
- Ask user: "Accept these enhancements to the architectural decisions? (y/n)" - Ask user: "Accept these enhancements to the architectural decisions? (y/n)"
- If yes: Update content, then return to A/P/C menu - If yes: Update content, then return to A/P/C menu

View File

@ -32,7 +32,7 @@ This step will generate content and present choices:
## PROTOCOL INTEGRATION: ## PROTOCOL INTEGRATION:
- When 'A' selected: Read fully and follow: {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml - When 'A' selected: Read fully and follow: {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md
- When 'P' selected: Read fully and follow: {project-root}/_bmad/core/workflows/party-mode/workflow.md - When 'P' selected: Read fully and follow: {project-root}/_bmad/core/workflows/party-mode/workflow.md
- PROTOCOLS always return to display this step's A/P/C menu after the A or P have completed - PROTOCOLS always return to display this step's A/P/C menu after the A or P have completed
- User accepts/rejects protocol changes before proceeding - User accepts/rejects protocol changes before proceeding
@ -305,7 +305,7 @@ Show the generated patterns content and present choices:
#### If 'A' (Advanced Elicitation): #### If 'A' (Advanced Elicitation):
- Read fully and follow: {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml with current patterns - Read fully and follow: {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md with current patterns
- Process enhanced consistency rules that come back - Process enhanced consistency rules that come back
- Ask user: "Accept these additional pattern refinements? (y/n)" - Ask user: "Accept these additional pattern refinements? (y/n)"
- If yes: Update content, then return to A/P/C menu - If yes: Update content, then return to A/P/C menu

View File

@ -32,7 +32,7 @@ This step will generate content and present choices:
## PROTOCOL INTEGRATION: ## PROTOCOL INTEGRATION:
- When 'A' selected: Read fully and follow: {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml - When 'A' selected: Read fully and follow: {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md
- When 'P' selected: Read fully and follow: {project-root}/_bmad/core/workflows/party-mode/workflow.md - When 'P' selected: Read fully and follow: {project-root}/_bmad/core/workflows/party-mode/workflow.md
- PROTOCOLS always return to display this step's A/P/C menu after the A or P have completed - PROTOCOLS always return to display this step's A/P/C menu after the A or P have completed
- User accepts/rejects protocol changes before proceeding - User accepts/rejects protocol changes before proceeding
@ -325,7 +325,7 @@ Show the generated project structure content and present choices:
#### If 'A' (Advanced Elicitation): #### If 'A' (Advanced Elicitation):
- Read fully and follow: {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml with current project structure - Read fully and follow: {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md with current project structure
- Process enhanced organizational insights that come back - Process enhanced organizational insights that come back
- Ask user: "Accept these changes to the project structure? (y/n)" - Ask user: "Accept these changes to the project structure? (y/n)"
- If yes: Update content, then return to A/P/C menu - If yes: Update content, then return to A/P/C menu

View File

@ -32,7 +32,7 @@ This step will generate content and present choices:
## PROTOCOL INTEGRATION: ## PROTOCOL INTEGRATION:
- When 'A' selected: Read fully and follow: {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml - When 'A' selected: Read fully and follow: {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md
- When 'P' selected: Read fully and follow: {project-root}/_bmad/core/workflows/party-mode/workflow.md - When 'P' selected: Read fully and follow: {project-root}/_bmad/core/workflows/party-mode/workflow.md
- PROTOCOLS always return to display this step's A/P/C menu after the A or P have completed - PROTOCOLS always return to display this step's A/P/C menu after the A or P have completed
- User accepts/rejects protocol changes before proceeding - User accepts/rejects protocol changes before proceeding
@ -305,7 +305,7 @@ Show the validation results and present choices:
#### If 'A' (Advanced Elicitation): #### If 'A' (Advanced Elicitation):
- Read fully and follow: {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml with validation issues - Read fully and follow: {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md with validation issues
- Process enhanced solutions for complex concerns - Process enhanced solutions for complex concerns
- Ask user: "Accept these architectural improvements? (y/n)" - Ask user: "Accept these architectural improvements? (y/n)"
- If yes: Update content, then return to A/P/C menu - If yes: Update content, then return to A/P/C menu

View File

@ -13,7 +13,7 @@ outputFile: '{planning_artifacts}/epics.md'
epicsTemplate: '{workflow_path}/templates/epics-template.md' epicsTemplate: '{workflow_path}/templates/epics-template.md'
# Task References # Task References
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml' advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md'
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md' partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
# Template References # Template References

View File

@ -12,7 +12,7 @@ workflowFile: '{workflow_path}/workflow.md'
outputFile: '{planning_artifacts}/epics.md' outputFile: '{planning_artifacts}/epics.md'
# Task References # Task References
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml' advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md'
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md' partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
# Template References # Template References

View File

@ -12,7 +12,7 @@ workflowFile: '{workflow_path}/workflow.md'
outputFile: '{planning_artifacts}/epics.md' outputFile: '{planning_artifacts}/epics.md'
# Task References # Task References
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml' advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md'
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md' partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
# Template References # Template References

View File

@ -11,7 +11,7 @@ workflowFile: '{workflow_path}/workflow.md'
outputFile: '{planning_artifacts}/epics.md' outputFile: '{planning_artifacts}/epics.md'
# Task References # Task References
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml' advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md'
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md' partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
# Template References # Template References

View File

@ -1,31 +1,71 @@
# Retrospective - Epic Completion Review Instructions ---
name: retrospective
description: 'Post-epic review to extract lessons and assess success. Use when the user says "run a retrospective" or "lets retro the epic [epic]"'
---
<critical>The workflow execution engine is governed by: {project-root}/_bmad/core/tasks/workflow.xml</critical> # Retrospective Workflow
<critical>You MUST have already loaded and processed: {project-root}/_bmad/bmm/workflows/4-implementation/retrospective/workflow.yaml</critical>
<critical>Communicate all responses in {communication_language} and language MUST be tailored to {user_skill_level}</critical>
<critical>Generate all documents in {document_output_language}</critical>
<critical>⚠️ ABSOLUTELY NO TIME ESTIMATES - NEVER mention hours, days, weeks, months, or ANY time-based predictions. AI has fundamentally changed development speed - what once took teams weeks/months can now be done by one person in hours. DO NOT give ANY time estimates whatsoever.</critical>
<critical> **Goal:** Post-epic review to extract lessons and assess success.
DOCUMENT OUTPUT: Retrospective analysis. Concise insights, lessons learned, action items. User skill level ({user_skill_level}) affects conversation style ONLY, not retrospective content.
FACILITATION NOTES: **Your Role:** Scrum Master facilitating retrospective.
- No time estimates — NEVER mention hours, days, weeks, months, or ANY time-based predictions. AI has fundamentally changed development speed.
- Scrum Master facilitates this retrospective - Communicate all responses in {communication_language} and language MUST be tailored to {user_skill_level}
- Generate all documents in {document_output_language}
- Document output: Retrospective analysis. Concise insights, lessons learned, action items. User skill level ({user_skill_level}) affects conversation style ONLY, not retrospective content.
- Facilitation notes:
- Psychological safety is paramount - NO BLAME - Psychological safety is paramount - NO BLAME
- Focus on systems, processes, and learning - Focus on systems, processes, and learning
- Everyone contributes with specific examples preferred - Everyone contributes with specific examples preferred
- Action items must be achievable with clear ownership - Action items must be achievable with clear ownership
- Two-part format: (1) Epic Review + (2) Next Epic Preparation - Two-part format: (1) Epic Review + (2) Next Epic Preparation
- Party mode protocol:
PARTY MODE PROTOCOL:
- ALL agent dialogue MUST use format: "Name (Role): dialogue" - ALL agent dialogue MUST use format: "Name (Role): dialogue"
- Example: Bob (Scrum Master): "Let's begin..." - Example: Bob (Scrum Master): "Let's begin..."
- Example: {user_name} (Project Lead): [User responds] - Example: {user_name} (Project Lead): [User responds]
- Create natural back-and-forth with user actively participating - Create natural back-and-forth with user actively participating
- Show disagreements, diverse perspectives, authentic team dynamics - Show disagreements, diverse perspectives, authentic team dynamics
</critical>
---
## INITIALIZATION
### Configuration Loading
Load config from `{project-root}/_bmad/bmm/config.yaml` and resolve:
- `project_name`, `user_name`
- `communication_language`, `document_output_language`
- `user_skill_level`
- `planning_artifacts`, `implementation_artifacts`
- `date` as system-generated current datetime
- YOU MUST ALWAYS SPEAK OUTPUT in your Agent communication style with the config `{communication_language}`
### Paths
- `installed_path` = `{project-root}/_bmad/bmm/workflows/4-implementation/retrospective`
- `sprint_status_file` = `{implementation_artifacts}/sprint-status.yaml`
### Input Files
| Input | Description | Path Pattern(s) | Load Strategy |
|-------|-------------|------------------|---------------|
| epics | The completed epic for retrospective | whole: `{planning_artifacts}/*epic*.md`, sharded_index: `{planning_artifacts}/*epic*/index.md`, sharded_single: `{planning_artifacts}/*epic*/epic-{{epic_num}}.md` | SELECTIVE_LOAD |
| previous_retrospective | Previous epic's retrospective (optional) | `{implementation_artifacts}/**/epic-{{prev_epic_num}}-retro-*.md` | SELECTIVE_LOAD |
| architecture | System architecture for context | whole: `{planning_artifacts}/*architecture*.md`, sharded: `{planning_artifacts}/*architecture*/*.md` | FULL_LOAD |
| prd | Product requirements for context | whole: `{planning_artifacts}/*prd*.md`, sharded: `{planning_artifacts}/*prd*/*.md` | FULL_LOAD |
| document_project | Brownfield project documentation (optional) | sharded: `{planning_artifacts}/*.md` | INDEX_GUIDED |
### Required Inputs
- `agent_manifest` = `{project-root}/_bmad/_config/agent-manifest.csv`
### Context
- `project_context` = `**/project-context.md` (load if exists)
---
## EXECUTION
<workflow> <workflow>
@ -159,7 +199,7 @@ Bob (Scrum Master): "Perfect. Epic {{epic_number}} is complete and ready for ret
</step> </step>
<step n="0.5" goal="Discover and load project documents"> <step n="0.5" goal="Discover and load project documents">
<invoke-protocol name="discover_inputs" /> <action>Load input files according to the Input Files table in INITIALIZATION. For SELECTIVE_LOAD inputs, load only the epic matching {{epic_number}}. For FULL_LOAD inputs, load the complete document. For INDEX_GUIDED inputs, check the index first and load relevant sections. After discovery, these content variables are available: {epics_content} (selective load for this epic), {architecture_content}, {prd_content}, {document_project_content}</action>
<note>After discovery, these content variables are available: {epics_content} (selective load for this epic), {architecture_content}, {prd_content}, {document_project_content}</note> <note>After discovery, these content variables are available: {epics_content} (selective load for this epic), {architecture_content}, {prd_content}, {document_project_content}</note>
</step> </step>

View File

@ -1,52 +0,0 @@
# Retrospective - Epic Completion Review Workflow
name: "retrospective"
description: 'Post-epic review to extract lessons and assess success. Use when the user says "run a retrospective" or "lets retro the epic [epic]"'
config_source: "{project-root}/_bmad/bmm/config.yaml"
user_name: "{config_source}:user_name"
communication_language: "{config_source}:communication_language"
user_skill_level: "{config_source}:user_skill_level"
document_output_language: "{config_source}:document_output_language"
date: system-generated
planning_artifacts: "{config_source}:planning_artifacts"
implementation_artifacts: "{config_source}:implementation_artifacts"
project_context: "**/project-context.md"
installed_path: "{project-root}/_bmad/bmm/workflows/4-implementation/retrospective"
template: false
instructions: "{installed_path}/instructions.md"
required_inputs:
- agent_manifest: "{project-root}/_bmad/_config/agent-manifest.csv"
# Smart input file references - handles both whole docs and sharded docs
# Priority: Whole document first, then sharded version
# Strategy: SELECTIVE LOAD - only load the completed epic and relevant retrospectives
input_file_patterns:
epics:
description: "The completed epic for retrospective"
whole: "{planning_artifacts}/*epic*.md"
sharded_index: "{planning_artifacts}/*epic*/index.md"
sharded_single: "{planning_artifacts}/*epic*/epic-{{epic_num}}.md"
load_strategy: "SELECTIVE_LOAD"
previous_retrospective:
description: "Previous epic's retrospective (optional)"
pattern: "{implementation_artifacts}/**/epic-{{prev_epic_num}}-retro-*.md"
load_strategy: "SELECTIVE_LOAD"
architecture:
description: "System architecture for context"
whole: "{planning_artifacts}/*architecture*.md"
sharded: "{planning_artifacts}/*architecture*/*.md"
load_strategy: "FULL_LOAD"
prd:
description: "Product requirements for context"
whole: "{planning_artifacts}/*prd*.md"
sharded: "{planning_artifacts}/*prd*/*.md"
load_strategy: "FULL_LOAD"
document_project:
description: "Brownfield project documentation (optional)"
sharded: "{planning_artifacts}/*.md"
load_strategy: "INDEX_GUIDED"
# Required files
sprint_status_file: "{implementation_artifacts}/sprint-status.yaml"

View File

@ -1,9 +1,46 @@
# Sprint Status - Multi-Mode Service ---
name: sprint-status
description: 'Summarize sprint status and surface risks. Use when the user says "check sprint status" or "show sprint status"'
---
<critical>The workflow execution engine is governed by: {project-root}/_bmad/core/tasks/workflow.xml</critical> # Sprint Status Workflow
<critical>You MUST have already loaded and processed: {project-root}/_bmad/bmm/workflows/4-implementation/sprint-status/workflow.yaml</critical>
<critical>Modes: interactive (default), validate, data</critical> **Goal:** Summarize sprint status, surface risks, and recommend the next workflow action.
<critical>⚠️ ABSOLUTELY NO TIME ESTIMATES. Do NOT mention hours, days, weeks, or timelines.</critical>
**Your Role:** You are a Scrum Master providing clear, actionable sprint visibility. No time estimates — focus on status, risks, and next steps.
---
## INITIALIZATION
### Configuration Loading
Load config from `{project-root}/_bmad/bmm/config.yaml` and resolve:
- `project_name`, `user_name`
- `communication_language`, `document_output_language`
- `implementation_artifacts`
- `date` as system-generated current datetime
- YOU MUST ALWAYS SPEAK OUTPUT in your Agent communication style with the config `{communication_language}`
### Paths
- `installed_path` = `{project-root}/_bmad/bmm/workflows/4-implementation/sprint-status`
- `sprint_status_file` = `{implementation_artifacts}/sprint-status.yaml`
### Input Files
| Input | Path | Load Strategy |
|-------|------|---------------|
| Sprint status | `{sprint_status_file}` | FULL_LOAD |
### Context
- `project_context` = `**/project-context.md` (load if exists)
---
## EXECUTION
<workflow> <workflow>

View File

@ -1,25 +0,0 @@
# Sprint Status - Implementation Tracker
name: sprint-status
description: 'Summarize sprint status and surface risks. Use when the user says "check sprint status" or "show sprint status"'
author: "BMad"
# Critical variables from config
config_source: "{project-root}/_bmad/bmm/config.yaml"
user_name: "{config_source}:user_name"
communication_language: "{config_source}:communication_language"
document_output_language: "{config_source}:document_output_language"
implementation_artifacts: "{config_source}:implementation_artifacts"
# Workflow components
installed_path: "{project-root}/_bmad/bmm/workflows/4-implementation/sprint-status"
instructions: "{installed_path}/instructions.md"
# Inputs
sprint_status_file: "{implementation_artifacts}/sprint-status.yaml"
# Smart input file references
input_file_patterns:
sprint_status:
description: "Sprint status file generated by sprint-planning"
whole: "{implementation_artifacts}/sprint-status.yaml"
load_strategy: "FULL_LOAD"

View File

@ -48,5 +48,5 @@ spec_file: '' # set at runtime before leaving this step
## NEXT ## NEXT
- One-shot / ready-for-dev: Read fully and follow `{installed_path}/steps/step-03-implement.md` - One-shot / ready-for-dev: Read fully and follow `./steps/step-03-implement.md`
- Plan-code-review: Read fully and follow `{installed_path}/steps/step-02-plan.md` - Plan-code-review: Read fully and follow `./steps/step-02-plan.md`

View File

@ -2,7 +2,7 @@
name: 'step-02-plan' name: 'step-02-plan'
description: 'Investigate, generate spec, present for approval' description: 'Investigate, generate spec, present for approval'
templateFile: '{installed_path}/tech-spec-template.md' templateFile: '../tech-spec-template.md'
wipFile: '{implementation_artifacts}/tech-spec-wip.md' wipFile: '{implementation_artifacts}/tech-spec-wip.md'
deferred_work_file: '{implementation_artifacts}/deferred-work.md' deferred_work_file: '{implementation_artifacts}/deferred-work.md'
--- ---
@ -36,4 +36,4 @@ Present summary. If token count exceeded 1600 and user chose [K], include the to
## NEXT ## NEXT
Read fully and follow `{installed_path}/steps/step-03-implement.md` Read fully and follow `./steps/step-03-implement.md`

View File

@ -32,4 +32,4 @@ Otherwise (`execution_mode = "plan-code-review"`): hand `{spec_file}` to a sub-a
## NEXT ## NEXT
Read fully and follow `{installed_path}/steps/step-04-review.md` Read fully and follow `./steps/step-04-review.md`

View File

@ -46,7 +46,7 @@ Do NOT `git add` anything — this is read-only inspection.
- **reject** — noise. Drop silently. When unsure between defer and reject, prefer reject — only defer findings you are confident are real. - **reject** — noise. Drop silently. When unsure between defer and reject, prefer reject — only defer findings you are confident are real.
3. Process findings in cascading order. If intent_gap or bad_spec findings exist, they trigger a loopback — lower findings are moot since code will be re-derived. If neither exists, process patch and defer normally. Increment `{specLoopIteration}` on each loopback. If it exceeds 5, HALT and escalate to the human. On any loopback, re-evaluate routing — if scope has grown beyond one-shot, escalate `execution_mode` to plan-code-review. 3. Process findings in cascading order. If intent_gap or bad_spec findings exist, they trigger a loopback — lower findings are moot since code will be re-derived. If neither exists, process patch and defer normally. Increment `{specLoopIteration}` on each loopback. If it exceeds 5, HALT and escalate to the human. On any loopback, re-evaluate routing — if scope has grown beyond one-shot, escalate `execution_mode` to plan-code-review.
- **intent_gap** — Root cause is inside `<frozen-after-approval>`. Revert code changes. Loop back to the human to resolve, then re-run steps 24. - **intent_gap** — Root cause is inside `<frozen-after-approval>`. Revert code changes. Loop back to the human to resolve, then re-run steps 24.
- **bad_spec** — Root cause is outside `<frozen-after-approval>`. Before reverting code: extract KEEP instructions for positive preservation (what worked well and must survive re-derivation). Revert code changes. Read the `## Spec Change Log` in `{spec_file}` and strictly respect all logged constraints when amending the non-frozen sections that contain the root cause. Append a new change-log entry recording: the triggering finding, what was amended, the known-bad state avoided, and the KEEP instructions. Read fully and follow `{installed_path}/steps/step-03-implement.md` to re-derive the code, then this step will run again. - **bad_spec** — Root cause is outside `<frozen-after-approval>`. Before reverting code: extract KEEP instructions for positive preservation (what worked well and must survive re-derivation). Revert code changes. Read the `## Spec Change Log` in `{spec_file}` and strictly respect all logged constraints when amending the non-frozen sections that contain the root cause. Append a new change-log entry recording: the triggering finding, what was amended, the known-bad state avoided, and the KEEP instructions. Read fully and follow `./steps/step-03-implement.md` to re-derive the code, then this step will run again.
- **patch** — Auto-fix. These are the only findings that survive loopbacks. - **patch** — Auto-fix. These are the only findings that survive loopbacks.
- **defer** — Append to `{deferred_work_file}`. - **defer** — Append to `{deferred_work_file}`.
- **reject** — Drop silently. - **reject** — Drop silently.
@ -54,4 +54,4 @@ Do NOT `git add` anything — this is read-only inspection.
## NEXT ## NEXT
Read fully and follow `{installed_path}/steps/step-05-present.md` Read fully and follow `./steps/step-05-present.md`

View File

@ -4,7 +4,7 @@ description: 'Unified quick flow - clarify intent, plan, implement, review, pres
main_config: '{project-root}/_bmad/bmm/config.yaml' main_config: '{project-root}/_bmad/bmm/config.yaml'
# Related workflows # Related workflows
advanced_elicitation: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml' advanced_elicitation: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md'
party_mode_exec: '{project-root}/_bmad/core/workflows/party-mode/workflow.md' party_mode_exec: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
# Review building block # Review building block
@ -81,10 +81,9 @@ YOU MUST ALWAYS SPEAK OUTPUT in your Agent communication style with the config `
### 2. Paths ### 2. Paths
- `installed_path` = `{project-root}/_bmad/bmm/workflows/bmad-quick-flow/quick-dev-new-preview` - `templateFile` = `./tech-spec-template.md`
- `templateFile` = `{installed_path}/tech-spec-template.md`
- `wipFile` = `{implementation_artifacts}/tech-spec-wip.md` - `wipFile` = `{implementation_artifacts}/tech-spec-wip.md`
### 3. First Step Execution ### 3. First Step Execution
Read fully and follow: `{installed_path}/steps/step-01-clarify-and-route.md` to begin the workflow. Read fully and follow: `./steps/step-01-clarify-and-route.md` to begin the workflow.

View File

@ -1,3 +0,0 @@
canonicalId: bmad-quick-dev-new-preview
type: workflow
description: "Unified quick flow - clarify intent, plan, implement, review, present"

View File

@ -41,7 +41,7 @@ Load config from `{project-root}/_bmad/bmm/config.yaml` and resolve:
- `quick_spec_workflow` = `{project-root}/_bmad/bmm/workflows/bmad-quick-flow/quick-spec/workflow.md` - `quick_spec_workflow` = `{project-root}/_bmad/bmm/workflows/bmad-quick-flow/quick-spec/workflow.md`
- `party_mode_exec` = `{project-root}/_bmad/core/workflows/party-mode/workflow.md` - `party_mode_exec` = `{project-root}/_bmad/core/workflows/party-mode/workflow.md`
- `advanced_elicitation` = `{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml` - `advanced_elicitation` = `{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md`
--- ---

View File

@ -4,7 +4,7 @@ description: 'Very quick process to create implementation-ready quick specs for
main_config: '{project-root}/_bmad/bmm/config.yaml' main_config: '{project-root}/_bmad/bmm/config.yaml'
# Checkpoint handler paths # Checkpoint handler paths
advanced_elicitation: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml' advanced_elicitation: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md'
party_mode_exec: '{project-root}/_bmad/core/workflows/party-mode/workflow.md' party_mode_exec: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
quick_dev_workflow: '{project-root}/_bmad/bmm/workflows/bmad-quick-flow/quick-dev/workflow.md' quick_dev_workflow: '{project-root}/_bmad/bmm/workflows/bmad-quick-flow/quick-dev/workflow.md'
--- ---

View File

@ -29,7 +29,7 @@ This step will generate content and present choices for each rule category:
## PROTOCOL INTEGRATION: ## PROTOCOL INTEGRATION:
- When 'A' selected: Execute {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml - When 'A' selected: Execute {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md
- When 'P' selected: Execute {project-root}/_bmad/core/workflows/party-mode - When 'P' selected: Execute {project-root}/_bmad/core/workflows/party-mode
- PROTOCOLS always return to display this step's A/P/C menu after the A or P have completed - PROTOCOLS always return to display this step's A/P/C menu after the A or P have completed
- User accepts/rejects protocol changes before proceeding - User accepts/rejects protocol changes before proceeding
@ -267,7 +267,7 @@ After each category, show the generated rules and present choices:
#### If 'A' (Advanced Elicitation): #### If 'A' (Advanced Elicitation):
- Execute advanced-elicitation.xml with current category rules - Execute {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md with current category rules
- Process enhanced rules that come back - Process enhanced rules that come back
- Ask user: "Accept these enhanced rules for {{category}}? (y/n)" - Ask user: "Accept these enhanced rules for {{category}}? (y/n)"
- If yes: Update content, then return to A/P/C menu - If yes: Update content, then return to A/P/C menu

View File

@ -1,10 +1,43 @@
# Quinn QA - Automate ---
name: qa-generate-e2e-tests
description: 'Generate end to end automated tests for existing features. Use when the user says "create qa automated tests for [feature]"'
---
**Goal**: Generate automated API and E2E tests for implemented code. # QA Generate E2E Tests Workflow
**Scope**: This workflow generates tests ONLY. It does **not** perform code review or story validation (use Code Review `CR` for that). **Goal:** Generate automated API and E2E tests for implemented code.
## Instructions **Your Role:** You are a QA automation engineer. You generate tests ONLY — no code review or story validation (use Code Review `CR` for that).
---
## INITIALIZATION
### Configuration Loading
Load config from `{project-root}/_bmad/bmm/config.yaml` and resolve:
- `project_name`, `user_name`
- `communication_language`, `document_output_language`
- `implementation_artifacts`
- `date` as system-generated current datetime
- YOU MUST ALWAYS SPEAK OUTPUT in your Agent communication style with the config `{communication_language}`
### Paths
- `installed_path` = `{project-root}/_bmad/bmm/workflows/qa-generate-e2e-tests`
- `checklist` = `{installed_path}/checklist.md`
- `test_dir` = `{project-root}/tests`
- `source_dir` = `{project-root}`
- `default_output_file` = `{implementation_artifacts}/tests/test-summary.md`
### Context
- `project_context` = `**/project-context.md` (load if exists)
---
## EXECUTION
### Step 0: Detect Test Framework ### Step 0: Detect Test Framework
@ -101,10 +134,10 @@ If the project needs:
- Comprehensive coverage analysis - Comprehensive coverage analysis
- Advanced testing patterns and utilities - Advanced testing patterns and utilities
**Install Test Architect (TEA) module**: <https://bmad-code-org.github.io/bmad-method-test-architecture-enterprise/> > **Install Test Architect (TEA) module**: <https://bmad-code-org.github.io/bmad-method-test-architecture-enterprise/>
## Output ## Output
Save summary to: `{implementation_artifacts}/tests/test-summary.md` Save summary to: `{default_output_file}`
**Done!** Tests generated and verified. **Done!** Tests generated and verified. Validate against `{checklist}`.

View File

@ -1,42 +0,0 @@
name: qa-generate-e2e-tests
description: 'Generate end to end automated tests for existing features. Use when the user says "create qa automated tests for [feature]"'
# Critical variables from config
config_source: "{project-root}/_bmad/bmm/config.yaml"
implementation_artifacts: "{config_source}:implementation_artifacts"
user_name: "{config_source}:user_name"
communication_language: "{config_source}:communication_language"
document_output_language: "{config_source}:document_output_language"
date: system-generated
# Workflow components
installed_path: "{project-root}/_bmad/bmm/workflows/qa-generate-e2e-tests"
instructions: "{installed_path}/instructions.md"
validation: "{installed_path}/checklist.md"
template: false
# Variables and inputs
test_dir: "{project-root}/tests" # Root test directory
source_dir: "{project-root}" # Source code directory
# Output configuration
default_output_file: "{implementation_artifacts}/tests/test-summary.md"
# Required tools
required_tools:
- read_file # Read source code and existing tests
- write_file # Create test files
- create_directory # Create test directories
- list_files # Discover features
- search_repo # Find patterns
- glob # Find files
tags:
- qa
- automation
- testing
execution_hints:
interactive: false
autonomous: true
iterative: false

View File

@ -21,6 +21,12 @@ description: 'Analyzes what is done and the users query and offers advice on wha
When `command` field has a value: When `command` field has a value:
- Show the command prefixed with `/` (e.g., `/bmad-bmm-create-prd`) - Show the command prefixed with `/` (e.g., `/bmad-bmm-create-prd`)
### Skill-Referenced Workflows
When `workflow-file` starts with `skill:`:
- The value is a skill reference (e.g., `skill:bmad-quick-dev-new-preview`), NOT a file path
- Do NOT attempt to resolve or load it as a file path
- Display using the `command` column value prefixed with `/` (same as command-based workflows)
### Agent-Based Workflows ### Agent-Based Workflows
When `command` field is empty: When `command` field is empty:
- User loads agent first via `/agent-command` - User loads agent first via `/agent-command`

View File

@ -74,7 +74,7 @@
<action>Display generated content</action> <action>Display generated content</action>
<ask> [a] Advanced Elicitation, [c] Continue, [p] Party-Mode, [y] YOLO the rest of this document only. WAIT for response. <if <ask> [a] Advanced Elicitation, [c] Continue, [p] Party-Mode, [y] YOLO the rest of this document only. WAIT for response. <if
response="a"> response="a">
<action>Start the advanced elicitation workflow {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml</action> <action>Start the advanced elicitation workflow {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md</action>
</if> </if>
<if <if
response="c"> response="c">

View File

@ -0,0 +1,3 @@
canonicalId: bmad-advanced-elicitation
type: workflow
description: "Push the LLM to reconsider, refine, and improve its recent output using structured reasoning methods"

View File

@ -0,0 +1,138 @@
---
name: advanced-elicitation
description: 'Push the LLM to reconsider refine and improve its recent output. Use when the user asks for advanced elicitation.'
methods: '{project-root}/_bmad/core/workflows/advanced-elicitation/methods.csv'
agent_party: '{project-root}/_bmad/_config/agent-manifest.csv'
---
# Advanced Elicitation Workflow
**Goal:** Push the LLM to reconsider, refine, and improve its recent output. Use when the user asks for advanced elicitation.
---
## CRITICAL LLM INSTRUCTIONS
- **MANDATORY:** Execute ALL steps in the flow section IN EXACT ORDER
- DO NOT skip steps or change the sequence
- HALT immediately when halt-conditions are met
- Each action within a step is a REQUIRED action to complete that step
- Sections outside flow (validation, output, critical-context) provide essential context - review and apply throughout execution
- **YOU MUST ALWAYS SPEAK OUTPUT in your Agent communication style with the `communication_language`**
---
## INTEGRATION (When Called from Workflow)
When called during template workflow processing:
1. Receive or review the current section content that was just generated
2. Apply elicitation methods iteratively to enhance that specific content
3. Return the enhanced version back when user selects 'x' to proceed and return back
4. The enhanced content replaces the original section content in the output document
---
## FLOW
### Step 1: Method Registry Loading
**Action:** Load and read `{methods}` and `{agent_party}`
#### CSV Structure
- **category:** Method grouping (core, structural, risk, etc.)
- **method_name:** Display name for the method
- **description:** Rich explanation of what the method does, when to use it, and why it's valuable
- **output_pattern:** Flexible flow guide using arrows (e.g., "analysis -> insights -> action")
#### Context Analysis
- Use conversation history
- Analyze: content type, complexity, stakeholder needs, risk level, and creative potential
#### Smart Selection
1. Analyze context: Content type, complexity, stakeholder needs, risk level, creative potential
2. Parse descriptions: Understand each method's purpose from the rich descriptions in CSV
3. Select 5 methods: Choose methods that best match the context based on their descriptions
4. Balance approach: Include mix of foundational and specialized techniques as appropriate
---
### Step 2: Present Options and Handle Responses
#### Display Format
```
**Advanced Elicitation Options**
_If party mode is active, agents will join in._
Choose a number (1-5), [r] to Reshuffle, [a] List All, or [x] to Proceed:
1. [Method Name]
2. [Method Name]
3. [Method Name]
4. [Method Name]
5. [Method Name]
r. Reshuffle the list with 5 new options
a. List all methods with descriptions
x. Proceed / No Further Actions
```
#### Response Handling
**Case 1-5 (User selects a numbered method):**
- Execute the selected method using its description from the CSV
- Adapt the method's complexity and output format based on the current context
- Apply the method creatively to the current section content being enhanced
- Display the enhanced version showing what the method revealed or improved
- **CRITICAL:** Ask the user if they would like to apply the changes to the doc (y/n/other) and HALT to await response.
- **CRITICAL:** ONLY if Yes, apply the changes. IF No, discard your memory of the proposed changes. If any other reply, try best to follow the instructions given by the user.
- **CRITICAL:** Re-present the same 1-5,r,x prompt to allow additional elicitations
**Case r (Reshuffle):**
- Select 5 random methods from methods.csv, present new list with same prompt format
- When selecting, try to think and pick a diverse set of methods covering different categories and approaches, with 1 and 2 being potentially the most useful for the document or section being discovered
**Case x (Proceed):**
- Complete elicitation and proceed
- Return the fully enhanced content back to create-doc.md
- The enhanced content becomes the final version for that section
- Signal completion back to create-doc.md to continue with next section
**Case a (List All):**
- List all methods with their descriptions from the CSV in a compact table
- Allow user to select any method by name or number from the full list
- After selection, execute the method as described in the Case 1-5 above
**Case: Direct Feedback:**
- Apply changes to current section content and re-present choices
**Case: Multiple Numbers:**
- Execute methods in sequence on the content, then re-offer choices
---
### Step 3: Execution Guidelines
- **Method execution:** Use the description from CSV to understand and apply each method
- **Output pattern:** Use the pattern as a flexible guide (e.g., "paths -> evaluation -> selection")
- **Dynamic adaptation:** Adjust complexity based on content needs (simple to sophisticated)
- **Creative application:** Interpret methods flexibly based on context while maintaining pattern consistency
- Focus on actionable insights
- **Stay relevant:** Tie elicitation to specific content being analyzed (the current section from the document being created unless user indicates otherwise)
- **Identify personas:** For single or multi-persona methods, clearly identify viewpoints, and use party members if available in memory already
- **Critical loop behavior:** Always re-offer the 1-5,r,a,x choices after each method execution
- Continue until user selects 'x' to proceed with enhanced content, confirm or ask the user what should be accepted from the session
- Each method application builds upon previous enhancements
- **Content preservation:** Track all enhancements made during elicitation
- **Iterative enhancement:** Each selected method (1-5) should:
1. Apply to the current enhanced version of the content
2. Show the improvements made
3. Return to the prompt for additional elicitations or completion

View File

@ -1,118 +0,0 @@
<task id="_bmad/core/workflows/advanced-elicitation/workflow.xml" name="Advanced Elicitation"
description="Push the LLM to reconsider refine and improve its recent output. Use when the user asks for advanced elicitation"
methods="{project-root}/_bmad/core/workflows/advanced-elicitation/methods.csv"
agent-party="{project-root}/_bmad/_config/agent-manifest.csv">
<llm critical="true">
<i>MANDATORY: Execute ALL steps in the flow section IN EXACT ORDER</i>
<i>DO NOT skip steps or change the sequence</i>
<i>HALT immediately when halt-conditions are met</i>
<i>Each action xml tag within step xml tag is a REQUIRED action to complete that step</i>
<i>Sections outside flow (validation, output, critical-context) provide essential context - review and apply throughout execution</i>
<i>YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the `communication_language`</i>
</llm>
<integration description="When called from workflow">
<desc>When called during template workflow processing:</desc>
<i>1. Receive or review the current section content that was just generated or</i>
<i>2. Apply elicitation methods iteratively to enhance that specific content</i>
<i>3. Return the enhanced version back when user selects 'x' to proceed and return back</i>
<i>4. The enhanced content replaces the original section content in the output document</i>
</integration>
<flow>
<step n="1" title="Method Registry Loading">
<action>Load and read {{methods}} and {{agent-party}}</action>
<csv-structure>
<i>category: Method grouping (core, structural, risk, etc.)</i>
<i>method_name: Display name for the method</i>
<i>description: Rich explanation of what the method does, when to use it, and why it's valuable</i>
<i>output_pattern: Flexible flow guide using → arrows (e.g., "analysis → insights → action")</i>
</csv-structure>
<context-analysis>
<i>Use conversation history</i>
<i>Analyze: content type, complexity, stakeholder needs, risk level, and creative potential</i>
</context-analysis>
<smart-selection>
<i>1. Analyze context: Content type, complexity, stakeholder needs, risk level, creative potential</i>
<i>2. Parse descriptions: Understand each method's purpose from the rich descriptions in CSV</i>
<i>3. Select 5 methods: Choose methods that best match the context based on their descriptions</i>
<i>4. Balance approach: Include mix of foundational and specialized techniques as appropriate</i>
</smart-selection>
</step>
<step n="2" title="Present Options and Handle Responses">
<format>
**Advanced Elicitation Options (If you launched Party Mode, they will participate randomly)**
Choose a number (1-5), [r] to Reshuffle, [a] List All, or [x] to Proceed:
1. [Method Name]
2. [Method Name]
3. [Method Name]
4. [Method Name]
5. [Method Name]
r. Reshuffle the list with 5 new options
a. List all methods with descriptions
x. Proceed / No Further Actions
</format>
<response-handling>
<case n="1-5">
<i>Execute the selected method using its description from the CSV</i>
<i>Adapt the method's complexity and output format based on the current context</i>
<i>Apply the method creatively to the current section content being enhanced</i>
<i>Display the enhanced version showing what the method revealed or improved</i>
<i>CRITICAL: Ask the user if they would like to apply the changes to the doc (y/n/other) and HALT to await response.</i>
<i>CRITICAL: ONLY if Yes, apply the changes. IF No, discard your memory of the proposed changes. If any other reply, try best to
follow the instructions given by the user.</i>
<i>CRITICAL: Re-present the same 1-5,r,x prompt to allow additional elicitations</i>
</case>
<case n="r">
<i>Select 5 random methods from advanced-elicitation-methods.csv, present new list with same prompt format</i>
<i>When selecting, try to think and pick a diverse set of methods covering different categories and approaches, with 1 and 2 being
potentially the most useful for the document or section being discovered</i>
</case>
<case n="x">
<i>Complete elicitation and proceed</i>
<i>Return the fully enhanced content back to create-doc.md</i>
<i>The enhanced content becomes the final version for that section</i>
<i>Signal completion back to create-doc.md to continue with next section</i>
</case>
<case n="a">
<i>List all methods with their descriptions from the CSV in a compact table</i>
<i>Allow user to select any method by name or number from the full list</i>
<i>After selection, execute the method as described in the n="1-5" case above</i>
</case>
<case n="direct-feedback">
<i>Apply changes to current section content and re-present choices</i>
</case>
<case n="multiple-numbers">
<i>Execute methods in sequence on the content, then re-offer choices</i>
</case>
</response-handling>
</step>
<step n="3" title="Execution Guidelines">
<i>Method execution: Use the description from CSV to understand and apply each method</i>
<i>Output pattern: Use the pattern as a flexible guide (e.g., "paths → evaluation → selection")</i>
<i>Dynamic adaptation: Adjust complexity based on content needs (simple to sophisticated)</i>
<i>Creative application: Interpret methods flexibly based on context while maintaining pattern consistency</i>
<i>Focus on actionable insights</i>
<i>Stay relevant: Tie elicitation to specific content being analyzed (the current section from the document being created unless user
indicates otherwise)</i>
<i>Identify personas: For single or multi-persona methods, clearly identify viewpoints, and use party members if available in memory
already</i>
<i>Critical loop behavior: Always re-offer the 1-5,r,a,x choices after each method execution</i>
<i>Continue until user selects 'x' to proceed with enhanced content, confirm or ask the user what should be accepted from the session</i>
<i>Each method application builds upon previous enhancements</i>
<i>Content preservation: Track all enhancements made during elicitation</i>
<i>Iterative enhancement: Each selected method (1-5) should:</i>
<i> 1. Apply to the current enhanced version of the content</i>
<i> 2. Show the improvements made</i>
<i> 3. Return to the prompt for additional elicitations or completion</i>
</step>
</flow>
</task>

View File

@ -1,7 +1,7 @@
# Step 3: Interactive Technique Execution and Facilitation # Step 3: Interactive Technique Execution and Facilitation
--- ---
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml' advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md'
--- ---
## MANDATORY EXECUTION RULES (READ FIRST): ## MANDATORY EXECUTION RULES (READ FIRST):

View File

@ -49,7 +49,7 @@ Load config from `{project-root}/_bmad/core/config.yaml` and resolve:
All steps MUST reference `{brainstorming_session_output_file}` instead of the full path pattern. All steps MUST reference `{brainstorming_session_output_file}` instead of the full path pattern.
- `context_file` = Optional context file path from workflow invocation for project-specific guidance - `context_file` = Optional context file path from workflow invocation for project-specific guidance
- `advancedElicitationTask` = `{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml` - `advancedElicitationTask` = `{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md`
--- ---

View File

@ -0,0 +1,154 @@
/**
* install_to_bmad Flag Design Contract Tests
*
* Unit tests against the functions that implement the install_to_bmad flag.
* These nail down the 4 core design decisions:
*
* 1. true/omitted skill stays in _bmad/ (default behavior)
* 2. false skill removed from _bmad/ after IDE install
* 3. No platform no cleanup runs (cleanup lives in installVerbatimSkills)
* 4. Mixed flags each skill evaluated independently
*
* Usage: node test/test-install-to-bmad.js
*/
const path = require('node:path');
const os = require('node:os');
const fs = require('fs-extra');
const { loadSkillManifest, getInstallToBmad } = require('../tools/cli/installers/lib/ide/shared/skill-manifest');
// ANSI colors
const colors = {
reset: '\u001B[0m',
green: '\u001B[32m',
red: '\u001B[31m',
yellow: '\u001B[33m',
cyan: '\u001B[36m',
dim: '\u001B[2m',
};
let passed = 0;
let failed = 0;
function assert(condition, testName, errorMessage = '') {
if (condition) {
console.log(`${colors.green}${colors.reset} ${testName}`);
passed++;
} else {
console.log(`${colors.red}${colors.reset} ${testName}`);
if (errorMessage) {
console.log(` ${colors.dim}${errorMessage}${colors.reset}`);
}
failed++;
}
}
async function runTests() {
console.log(`${colors.cyan}========================================`);
console.log('install_to_bmad — Design Contract Tests');
console.log(`========================================${colors.reset}\n`);
// ============================================================
// 1. true/omitted → getInstallToBmad returns true (keep in _bmad/)
// ============================================================
console.log(`${colors.yellow}Design decision 1: true or omitted → skill stays in _bmad/${colors.reset}\n`);
// Null manifest (no bmad-skill-manifest.yaml) → true
assert(getInstallToBmad(null, 'workflow.md') === true, 'null manifest defaults to true');
// Single-entry, flag omitted → true
assert(
getInstallToBmad({ __single: { type: 'skill' } }, 'workflow.md') === true,
'single-entry manifest with flag omitted defaults to true',
);
// Single-entry, explicit true → true
assert(
getInstallToBmad({ __single: { type: 'skill', install_to_bmad: true } }, 'workflow.md') === true,
'single-entry manifest with explicit true returns true',
);
console.log('');
// ============================================================
// 2. false → getInstallToBmad returns false (remove from _bmad/)
// ============================================================
console.log(`${colors.yellow}Design decision 2: false → skill removed from _bmad/${colors.reset}\n`);
// Single-entry, explicit false → false
assert(
getInstallToBmad({ __single: { type: 'skill', install_to_bmad: false } }, 'workflow.md') === false,
'single-entry manifest with explicit false returns false',
);
// loadSkillManifest round-trip: YAML with false is preserved through load
{
const tmpDir = await fs.mkdtemp(path.join(os.tmpdir(), 'bmad-itb-'));
await fs.writeFile(path.join(tmpDir, 'bmad-skill-manifest.yaml'), 'type: skill\ninstall_to_bmad: false\n');
const loaded = await loadSkillManifest(tmpDir);
assert(getInstallToBmad(loaded, 'workflow.md') === false, 'loadSkillManifest preserves install_to_bmad: false through round-trip');
await fs.remove(tmpDir);
}
console.log('');
// ============================================================
// 3. No platform → cleanup only runs inside installVerbatimSkills
// (This is a design invariant: getInstallToBmad is only consulted
// during IDE install. Without a platform, the flag has no effect.)
// ============================================================
console.log(`${colors.yellow}Design decision 3: flag is a per-skill property, not a pipeline gate${colors.reset}\n`);
// The flag value is stored but doesn't trigger any side effects by itself.
// Cleanup is driven by reading the CSV column inside installVerbatimSkills.
// We verify the flag is just data — getInstallToBmad doesn't touch the filesystem.
{
const manifest = { __single: { type: 'skill', install_to_bmad: false } };
const result = getInstallToBmad(manifest, 'workflow.md');
assert(typeof result === 'boolean', 'getInstallToBmad returns a boolean (pure data, no side effects)');
assert(result === false, 'false value is faithfully returned for consumer to act on');
}
console.log('');
// ============================================================
// 4. Mixed flags → each skill evaluated independently
// ============================================================
console.log(`${colors.yellow}Design decision 4: mixed flags — each skill independent${colors.reset}\n`);
// Multi-entry manifest: different files can have different flags
{
const manifest = {
'workflow.md': { type: 'skill', install_to_bmad: false },
'other.md': { type: 'skill', install_to_bmad: true },
};
assert(getInstallToBmad(manifest, 'workflow.md') === false, 'multi-entry: workflow.md with false returns false');
assert(getInstallToBmad(manifest, 'other.md') === true, 'multi-entry: other.md with true returns true');
assert(getInstallToBmad(manifest, 'unknown.md') === true, 'multi-entry: unknown file defaults to true');
}
console.log('');
// ============================================================
// Summary
// ============================================================
console.log(`${colors.cyan}========================================`);
console.log('Results:');
console.log(` Passed: ${colors.green}${passed}${colors.reset}`);
console.log(` Failed: ${colors.red}${failed}${colors.reset}`);
console.log(`========================================${colors.reset}\n`);
if (failed === 0) {
console.log(`${colors.green}All install_to_bmad contract tests passed!${colors.reset}\n`);
process.exit(0);
} else {
console.log(`${colors.red}Some install_to_bmad contract tests failed${colors.reset}\n`);
process.exit(1);
}
}
runTests().catch((error) => {
console.error(`${colors.red}Test runner failed:${colors.reset}`, error.message);
console.error(error.stack);
process.exit(1);
});

View File

@ -1500,6 +1500,96 @@ async function runTests() {
console.log(''); console.log('');
// ============================================================
// Suite 28: Pi Native Skills
// ============================================================
console.log(`${colors.yellow}Test Suite 28: Pi Native Skills${colors.reset}\n`);
let tempProjectDir28;
let installedBmadDir28;
try {
clearCache();
const platformCodes28 = await loadPlatformCodes();
const piInstaller = platformCodes28.platforms.pi?.installer;
assert(piInstaller?.target_dir === '.pi/skills', 'Pi target_dir uses native skills path');
assert(piInstaller?.skill_format === true, 'Pi installer enables native skill output');
assert(piInstaller?.template_type === 'default', 'Pi installer uses default skill template');
tempProjectDir28 = await fs.mkdtemp(path.join(os.tmpdir(), 'bmad-pi-test-'));
installedBmadDir28 = await createTestBmadFixture();
const ideManager28 = new IdeManager();
await ideManager28.ensureInitialized();
// Verify Pi is selectable in available IDEs list
const availableIdes28 = ideManager28.getAvailableIdes();
assert(
availableIdes28.some((ide) => ide.value === 'pi'),
'Pi appears in available IDEs list',
);
// Verify Pi is NOT detected before install
const detectedBefore28 = await ideManager28.detectInstalledIdes(tempProjectDir28);
assert(!detectedBefore28.includes('pi'), 'Pi is not detected before install');
const result28 = await ideManager28.setup('pi', tempProjectDir28, installedBmadDir28, {
silent: true,
selectedModules: ['bmm'],
});
assert(result28.success === true, 'Pi setup succeeds against temp project');
// Verify Pi IS detected after install
const detectedAfter28 = await ideManager28.detectInstalledIdes(tempProjectDir28);
assert(detectedAfter28.includes('pi'), 'Pi is detected after install');
const skillFile28 = path.join(tempProjectDir28, '.pi', 'skills', 'bmad-master', 'SKILL.md');
assert(await fs.pathExists(skillFile28), 'Pi install writes SKILL.md directory output');
// Parse YAML frontmatter between --- markers
const skillContent28 = await fs.readFile(skillFile28, 'utf8');
const fmMatch28 = skillContent28.match(/^---\n([\s\S]*?)\n---\n?([\s\S]*)$/);
assert(fmMatch28, 'Pi SKILL.md contains valid frontmatter delimiters');
const frontmatter28 = fmMatch28[1];
const body28 = fmMatch28[2];
// Verify name in frontmatter matches directory name
const fmName28 = frontmatter28.match(/^name:\s*(.+)$/m);
assert(fmName28 && fmName28[1].trim() === 'bmad-master', 'Pi skill name frontmatter matches directory name exactly');
// Verify description exists and is non-empty
const fmDesc28 = frontmatter28.match(/^description:\s*(.+)$/m);
assert(fmDesc28 && fmDesc28[1].trim().length > 0, 'Pi skill description frontmatter is present and non-empty');
// Verify frontmatter contains only name and description keys
const fmKeys28 = [...frontmatter28.matchAll(/^([a-zA-Z0-9_-]+):/gm)].map((m) => m[1]);
assert(
fmKeys28.length === 2 && fmKeys28.includes('name') && fmKeys28.includes('description'),
'Pi skill frontmatter contains only name and description keys',
);
// Verify body content is non-empty and contains expected activation instructions
assert(body28.trim().length > 0, 'Pi skill body content is non-empty');
assert(body28.includes('agent-activation'), 'Pi skill body contains expected agent activation instructions');
// Reinstall/upgrade: run setup again over existing output
const result28b = await ideManager28.setup('pi', tempProjectDir28, installedBmadDir28, {
silent: true,
selectedModules: ['bmm'],
});
assert(result28b.success === true, 'Pi reinstall/upgrade succeeds over existing skills');
assert(await fs.pathExists(skillFile28), 'Pi reinstall preserves SKILL.md output');
} catch (error) {
assert(false, 'Pi native skills test succeeds', error.message);
} finally {
if (tempProjectDir28) await fs.remove(tempProjectDir28).catch(() => {});
if (installedBmadDir28) await fs.remove(installedBmadDir28).catch(() => {});
}
console.log('');
// ============================================================ // ============================================================
// Summary // Summary
// ============================================================ // ============================================================

View File

@ -5,7 +5,12 @@ const crypto = require('node:crypto');
const csv = require('csv-parse/sync'); const csv = require('csv-parse/sync');
const { getSourcePath, getModulePath } = require('../../../lib/project-root'); const { getSourcePath, getModulePath } = require('../../../lib/project-root');
const prompts = require('../../../lib/prompts'); const prompts = require('../../../lib/prompts');
const { loadSkillManifest: loadSkillManifestShared, getCanonicalId: getCanonicalIdShared } = require('../ide/shared/skill-manifest'); const {
loadSkillManifest: loadSkillManifestShared,
getCanonicalId: getCanonicalIdShared,
getArtifactType: getArtifactTypeShared,
getInstallToBmad: getInstallToBmadShared,
} = require('../ide/shared/skill-manifest');
// Load package.json for version info // Load package.json for version info
const packageJson = require('../../../../../package.json'); const packageJson = require('../../../../../package.json');
@ -16,6 +21,7 @@ const packageJson = require('../../../../../package.json');
class ManifestGenerator { class ManifestGenerator {
constructor() { constructor() {
this.workflows = []; this.workflows = [];
this.skills = [];
this.agents = []; this.agents = [];
this.tasks = []; this.tasks = [];
this.tools = []; this.tools = [];
@ -34,6 +40,16 @@ class ManifestGenerator {
return getCanonicalIdShared(manifest, filename); return getCanonicalIdShared(manifest, filename);
} }
/** Delegate to shared skill-manifest module */
getArtifactType(manifest, filename) {
return getArtifactTypeShared(manifest, filename);
}
/** Delegate to shared skill-manifest module */
getInstallToBmad(manifest, filename) {
return getInstallToBmadShared(manifest, filename);
}
/** /**
* Clean text for CSV output by normalizing whitespace. * Clean text for CSV output by normalizing whitespace.
* Note: Quote escaping is handled by escapeCsv() at write time. * Note: Quote escaping is handled by escapeCsv() at write time.
@ -89,6 +105,9 @@ class ManifestGenerator {
// Filter out any undefined/null values from IDE list // Filter out any undefined/null values from IDE list
this.selectedIdes = resolvedIdes.filter((ide) => ide && typeof ide === 'string'); this.selectedIdes = resolvedIdes.filter((ide) => ide && typeof ide === 'string');
// Reset files list (defensive: prevent stale data if instance is reused)
this.files = [];
// Collect workflow data // Collect workflow data
await this.collectWorkflows(selectedModules); await this.collectWorkflows(selectedModules);
@ -105,6 +124,7 @@ class ManifestGenerator {
const manifestFiles = [ const manifestFiles = [
await this.writeMainManifest(cfgDir), await this.writeMainManifest(cfgDir),
await this.writeWorkflowManifest(cfgDir), await this.writeWorkflowManifest(cfgDir),
await this.writeSkillManifest(cfgDir),
await this.writeAgentManifest(cfgDir), await this.writeAgentManifest(cfgDir),
await this.writeTaskManifest(cfgDir), await this.writeTaskManifest(cfgDir),
await this.writeToolManifest(cfgDir), await this.writeToolManifest(cfgDir),
@ -127,6 +147,7 @@ class ManifestGenerator {
*/ */
async collectWorkflows(selectedModules) { async collectWorkflows(selectedModules) {
this.workflows = []; this.workflows = [];
this.skills = [];
// Use updatedModules which already includes deduplicated 'core' + selectedModules // Use updatedModules which already includes deduplicated 'core' + selectedModules
for (const moduleName of this.updatedModules) { for (const moduleName of this.updatedModules) {
@ -228,6 +249,25 @@ class ManifestGenerator {
? `${this.bmadFolderName}/core/workflows/${relativePath}/${entry.name}` ? `${this.bmadFolderName}/core/workflows/${relativePath}/${entry.name}`
: `${this.bmadFolderName}/${moduleName}/workflows/${relativePath}/${entry.name}`; : `${this.bmadFolderName}/${moduleName}/workflows/${relativePath}/${entry.name}`;
// Check if this is a type:skill entry — collect separately, skip workflow CSV
const artifactType = this.getArtifactType(skillManifest, entry.name);
if (artifactType === 'skill') {
const canonicalId = path.basename(dir);
this.skills.push({
name: workflow.name,
description: this.cleanForCSV(workflow.description),
module: moduleName,
path: installPath,
canonicalId,
install_to_bmad: this.getInstallToBmad(skillManifest, entry.name),
});
if (debug) {
console.log(`[DEBUG] ✓ Added skill (skipped workflow CSV): ${workflow.name} as ${canonicalId}`);
}
continue;
}
// Workflows with standalone: false are filtered out above // Workflows with standalone: false are filtered out above
workflows.push({ workflows.push({
name: workflow.name, name: workflow.name,
@ -793,6 +833,32 @@ class ManifestGenerator {
return csvPath; return csvPath;
} }
/**
* Write skill manifest CSV
* @returns {string} Path to the manifest file
*/
async writeSkillManifest(cfgDir) {
const csvPath = path.join(cfgDir, 'skill-manifest.csv');
const escapeCsv = (value) => `"${String(value ?? '').replaceAll('"', '""')}"`;
let csvContent = 'canonicalId,name,description,module,path,install_to_bmad\n';
for (const skill of this.skills) {
const row = [
escapeCsv(skill.canonicalId),
escapeCsv(skill.name),
escapeCsv(skill.description),
escapeCsv(skill.module),
escapeCsv(skill.path),
escapeCsv(skill.install_to_bmad),
].join(',');
csvContent += row + '\n';
}
await fs.writeFile(csvPath, csvContent);
return csvPath;
}
/** /**
* Write agent manifest CSV * Write agent manifest CSV
* @returns {string} Path to the manifest file * @returns {string} Path to the manifest file

View File

@ -7,6 +7,7 @@ const prompts = require('../../../lib/prompts');
const { AgentCommandGenerator } = require('./shared/agent-command-generator'); const { AgentCommandGenerator } = require('./shared/agent-command-generator');
const { WorkflowCommandGenerator } = require('./shared/workflow-command-generator'); const { WorkflowCommandGenerator } = require('./shared/workflow-command-generator');
const { TaskToolCommandGenerator } = require('./shared/task-tool-command-generator'); const { TaskToolCommandGenerator } = require('./shared/task-tool-command-generator');
const csv = require('csv-parse/sync');
/** /**
* Config-driven IDE setup handler * Config-driven IDE setup handler
@ -116,18 +117,21 @@ class ConfigDrivenIdeSetup extends BaseIdeSetup {
async installToTarget(projectDir, bmadDir, config, options) { async installToTarget(projectDir, bmadDir, config, options) {
const { target_dir, template_type, artifact_types } = config; const { target_dir, template_type, artifact_types } = config;
// Skip targets with explicitly empty artifact_types array // Skip targets with explicitly empty artifact_types and no verbatim skills
// This prevents creating empty directories when no artifacts will be written // This prevents creating empty directories when no artifacts will be written
if (Array.isArray(artifact_types) && artifact_types.length === 0) { const skipStandardArtifacts = Array.isArray(artifact_types) && artifact_types.length === 0;
return { success: true, results: { agents: 0, workflows: 0, tasks: 0, tools: 0 } }; if (skipStandardArtifacts && !config.skill_format) {
return { success: true, results: { agents: 0, workflows: 0, tasks: 0, tools: 0, skills: 0 } };
} }
const targetPath = path.join(projectDir, target_dir); const targetPath = path.join(projectDir, target_dir);
await this.ensureDir(targetPath); await this.ensureDir(targetPath);
const selectedModules = options.selectedModules || []; const selectedModules = options.selectedModules || [];
const results = { agents: 0, workflows: 0, tasks: 0, tools: 0 }; const results = { agents: 0, workflows: 0, tasks: 0, tools: 0, skills: 0 };
// Install standard artifacts (agents, workflows, tasks, tools)
if (!skipStandardArtifacts) {
// Install agents // Install agents
if (!artifact_types || artifact_types.includes('agents')) { if (!artifact_types || artifact_types.includes('agents')) {
const agentGen = new AgentCommandGenerator(this.bmadFolderName); const agentGen = new AgentCommandGenerator(this.bmadFolderName);
@ -150,6 +154,12 @@ class ConfigDrivenIdeSetup extends BaseIdeSetup {
results.tasks = taskToolResult.tasks || 0; results.tasks = taskToolResult.tasks || 0;
results.tools = taskToolResult.tools || 0; results.tools = taskToolResult.tools || 0;
} }
}
// Install verbatim skills (type: skill)
if (config.skill_format) {
results.skills = await this.installVerbatimSkills(projectDir, bmadDir, targetPath, config);
}
await this.printSummary(results, target_dir, options); await this.printSummary(results, target_dir, options);
return { success: true, results }; return { success: true, results };
@ -164,7 +174,7 @@ class ConfigDrivenIdeSetup extends BaseIdeSetup {
* @returns {Promise<Object>} Installation result * @returns {Promise<Object>} Installation result
*/ */
async installToMultipleTargets(projectDir, bmadDir, targets, options) { async installToMultipleTargets(projectDir, bmadDir, targets, options) {
const allResults = { agents: 0, workflows: 0, tasks: 0, tools: 0 }; const allResults = { agents: 0, workflows: 0, tasks: 0, tools: 0, skills: 0 };
for (const target of targets) { for (const target of targets) {
const result = await this.installToTarget(projectDir, bmadDir, target, options); const result = await this.installToTarget(projectDir, bmadDir, target, options);
@ -173,6 +183,7 @@ class ConfigDrivenIdeSetup extends BaseIdeSetup {
allResults.workflows += result.results.workflows || 0; allResults.workflows += result.results.workflows || 0;
allResults.tasks += result.results.tasks || 0; allResults.tasks += result.results.tasks || 0;
allResults.tools += result.results.tools || 0; allResults.tools += result.results.tools || 0;
allResults.skills += result.results.skills || 0;
} }
} }
@ -622,6 +633,94 @@ LOAD and execute from: {project-root}/{{bmadFolderName}}/{{path}}
return baseName.replace(/\.md$/, extension); return baseName.replace(/\.md$/, extension);
} }
/**
* Install verbatim skill directories (type: skill entries from skill-manifest.csv).
* Copies the entire source directory into the IDE skill directory, auto-generating SKILL.md.
* @param {string} projectDir - Project directory
* @param {string} bmadDir - BMAD installation directory
* @param {string} targetPath - Target skills directory
* @param {Object} config - Installation configuration
* @returns {Promise<number>} Count of skills installed
*/
async installVerbatimSkills(projectDir, bmadDir, targetPath, config) {
const bmadFolderName = path.basename(bmadDir);
const csvPath = path.join(bmadDir, '_config', 'skill-manifest.csv');
if (!(await fs.pathExists(csvPath))) return 0;
const csvContent = await fs.readFile(csvPath, 'utf8');
const records = csv.parse(csvContent, {
columns: true,
skip_empty_lines: true,
});
let count = 0;
for (const record of records) {
const canonicalId = record.canonicalId;
if (!canonicalId) continue;
// Derive source directory from path column
// path is like "_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-dev-new-preview/workflow.md"
// Strip bmadFolderName prefix and join with bmadDir, then get dirname
const relativePath = record.path.replace(new RegExp(`^${bmadFolderName}/`), '');
const sourceFile = path.join(bmadDir, relativePath);
const sourceDir = path.dirname(sourceFile);
if (!(await fs.pathExists(sourceDir))) continue;
// Clean target before copy to prevent stale files
const skillDir = path.join(targetPath, canonicalId);
await fs.remove(skillDir);
await fs.ensureDir(skillDir);
// Parse workflow.md frontmatter for description
let description = `${canonicalId} skill`;
try {
const workflowContent = await fs.readFile(sourceFile, 'utf8');
const fmMatch = workflowContent.match(/^---\r?\n([\s\S]*?)\r?\n---/);
if (fmMatch) {
const frontmatter = yaml.parse(fmMatch[1]);
if (frontmatter?.description) {
description = frontmatter.description;
}
}
} catch (error) {
await prompts.log.warn(`Failed to parse frontmatter from ${sourceFile}: ${error.message}`);
}
// Generate SKILL.md with YAML-safe frontmatter
const frontmatterYaml = yaml.stringify({ name: canonicalId, description: String(description) }, { lineWidth: 0 }).trimEnd();
const skillMd = `---\n${frontmatterYaml}\n---\n\nIT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL workflow.md, READ its entire contents and follow its directions exactly!\n`;
await fs.writeFile(path.join(skillDir, 'SKILL.md'), skillMd);
// Copy all files except bmad-skill-manifest.yaml
const entries = await fs.readdir(sourceDir, { withFileTypes: true });
for (const entry of entries) {
if (entry.name === 'bmad-skill-manifest.yaml') continue;
const srcPath = path.join(sourceDir, entry.name);
const destPath = path.join(skillDir, entry.name);
await fs.copy(srcPath, destPath);
}
count++;
}
// Post-install cleanup: remove _bmad/ directories for skills with install_to_bmad === "false"
for (const record of records) {
if (record.install_to_bmad === 'false') {
const relativePath = record.path.replace(new RegExp(`^${bmadFolderName}/`), '');
const sourceFile = path.join(bmadDir, relativePath);
const sourceDir = path.dirname(sourceFile);
if (await fs.pathExists(sourceDir)) {
await fs.remove(sourceDir);
}
}
}
return count;
}
/** /**
* Print installation summary * Print installation summary
* @param {Object} results - Installation results * @param {Object} results - Installation results
@ -634,6 +733,7 @@ LOAD and execute from: {project-root}/{{bmadFolderName}}/{{path}}
if (results.workflows > 0) parts.push(`${results.workflows} workflows`); if (results.workflows > 0) parts.push(`${results.workflows} workflows`);
if (results.tasks > 0) parts.push(`${results.tasks} tasks`); if (results.tasks > 0) parts.push(`${results.tasks} tasks`);
if (results.tools > 0) parts.push(`${results.tools} tools`); if (results.tools > 0) parts.push(`${results.tools} tools`);
if (results.skills > 0) parts.push(`${results.skills} skills`);
await prompts.log.success(`${this.name} configured: ${parts.join(', ')}${targetDir}`); await prompts.log.success(`${this.name} configured: ${parts.join(', ')}${targetDir}`);
} }

View File

@ -192,6 +192,16 @@ platforms:
skill_format: true skill_format: true
ancestor_conflict_check: true ancestor_conflict_check: true
pi:
name: "Pi"
preferred: false
category: cli
description: "Provider-agnostic terminal-native AI coding agent"
installer:
target_dir: .pi/skills
template_type: default
skill_format: true
qwen: qwen:
name: "QwenCoder" name: "QwenCoder"
preferred: false preferred: false

View File

@ -16,7 +16,7 @@ async function loadSkillManifest(dirPath) {
const content = await fs.readFile(manifestPath, 'utf8'); const content = await fs.readFile(manifestPath, 'utf8');
const parsed = yaml.parse(content); const parsed = yaml.parse(content);
if (!parsed || typeof parsed !== 'object') return null; if (!parsed || typeof parsed !== 'object') return null;
if (parsed.canonicalId) return { __single: parsed }; if (parsed.canonicalId || parsed.type) return { __single: parsed };
return parsed; return parsed;
} catch (error) { } catch (error) {
console.warn(`Warning: Failed to parse bmad-skill-manifest.yaml in ${dirPath}: ${error.message}`); console.warn(`Warning: Failed to parse bmad-skill-manifest.yaml in ${dirPath}: ${error.message}`);
@ -45,4 +45,46 @@ function getCanonicalId(manifest, filename) {
return ''; return '';
} }
module.exports = { loadSkillManifest, getCanonicalId }; /**
* Get the artifact type for a specific file from a loaded skill manifest.
* @param {Object|null} manifest - Loaded manifest (from loadSkillManifest)
* @param {string} filename - Source filename to look up
* @returns {string|null} type or null
*/
function getArtifactType(manifest, filename) {
if (!manifest) return null;
// Single-entry manifest applies to all files in the directory
if (manifest.__single) return manifest.__single.type || null;
// Multi-entry: look up by filename directly
if (manifest[filename]) return manifest[filename].type || null;
// Fallback: try alternate extensions for compiled files
const baseName = filename.replace(/\.(md|xml)$/i, '');
const agentKey = `${baseName}.agent.yaml`;
if (manifest[agentKey]) return manifest[agentKey].type || null;
const xmlKey = `${baseName}.xml`;
if (manifest[xmlKey]) return manifest[xmlKey].type || null;
return null;
}
/**
* Get the install_to_bmad flag for a specific file from a loaded skill manifest.
* @param {Object|null} manifest - Loaded manifest (from loadSkillManifest)
* @param {string} filename - Source filename to look up
* @returns {boolean} install_to_bmad value (defaults to true)
*/
function getInstallToBmad(manifest, filename) {
if (!manifest) return true;
// Single-entry manifest applies to all files in the directory
if (manifest.__single) return manifest.__single.install_to_bmad !== false;
// Multi-entry: look up by filename directly
if (manifest[filename]) return manifest[filename].install_to_bmad !== false;
// Fallback: try alternate extensions for compiled files
const baseName = filename.replace(/\.(md|xml)$/i, '');
const agentKey = `${baseName}.agent.yaml`;
if (manifest[agentKey]) return manifest[agentKey].install_to_bmad !== false;
const xmlKey = `${baseName}.xml`;
if (manifest[xmlKey]) return manifest[xmlKey].install_to_bmad !== false;
return true;
}
module.exports = { loadSkillManifest, getCanonicalId, getArtifactType, getInstallToBmad };

View File

@ -324,6 +324,8 @@ function extractCsvRefs(filePath, content) {
const raw = record['workflow-file']; const raw = record['workflow-file'];
if (!raw || raw.trim() === '') continue; if (!raw || raw.trim() === '') continue;
if (!isResolvable(raw)) continue; if (!isResolvable(raw)) continue;
// skill: prefixed references are resolved by the IDE/CLI, not as file paths
if (raw.startsWith('skill:')) continue;
// Line = header (1) + data row index (0-based) + 1 // Line = header (1) + data row index (0-based) + 1
const line = i + 2; const line = i + 2;