Compare commits
12 Commits
2cf990914c
...
ec02c04bc1
| Author | SHA1 | Date |
|---|---|---|
|
|
ec02c04bc1 | |
|
|
75ec4aa504 | |
|
|
7b4875be79 | |
|
|
c57506464f | |
|
|
861716fbe3 | |
|
|
0ba809c3e8 | |
|
|
42aa184074 | |
|
|
5a5ade333a | |
|
|
7f7ce8c5e3 | |
|
|
5e1149dc14 | |
|
|
df9a7f9b67 | |
|
|
9cd362d2d8 |
|
|
@ -37,7 +37,7 @@ permissions:
|
|||
|
||||
jobs:
|
||||
publish:
|
||||
if: github.event_name != 'workflow_dispatch' || github.ref == 'refs/heads/main'
|
||||
if: github.repository == 'bmad-code-org/BMAD-METHOD' && (github.event_name != 'workflow_dispatch' || github.ref == 'refs/heads/main')
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
|
|
|
|||
|
|
@ -0,0 +1,40 @@
|
|||
# Development & Testing
|
||||
test/
|
||||
.husky/
|
||||
.github/
|
||||
.vscode/
|
||||
.augment/
|
||||
coverage/
|
||||
test-output/
|
||||
|
||||
# Documentation site (users access docs online)
|
||||
docs/
|
||||
website/
|
||||
|
||||
# Configuration files (development only)
|
||||
.coderabbit.yaml
|
||||
.markdownlint-cli2.yaml
|
||||
.prettierignore
|
||||
.nvmrc
|
||||
eslint.config.mjs
|
||||
prettier.config.mjs
|
||||
|
||||
# Build tools (not needed at runtime)
|
||||
tools/build-docs.mjs
|
||||
tools/fix-doc-links.js
|
||||
tools/validate-doc-links.js
|
||||
tools/validate-file-refs.js
|
||||
tools/validate-agent-schema.js
|
||||
|
||||
# Images (branding/marketing only)
|
||||
banner-bmad-method.png
|
||||
Wordmark.png
|
||||
|
||||
# Repository metadata
|
||||
CONTRIBUTING.md
|
||||
CONTRIBUTORS.md
|
||||
SECURITY.md
|
||||
TRADEMARK.md
|
||||
CHANGELOG.md
|
||||
CNAME
|
||||
CODE_OF_CONDUCT.md
|
||||
|
|
@ -26,3 +26,33 @@ This page lists the default BMM (Agile suite) agents that install with BMad Meth
|
|||
| Quick Flow Solo Dev (Barry) | `bmad-master` | `QS`, `QD`, `CR` | Quick Spec, Quick Dev, Code Review |
|
||||
| UX Designer (Sally) | `bmad-ux-designer` | `CU` | Create UX Design |
|
||||
| Technical Writer (Paige) | `bmad-tech-writer` | `DP`, `WD`, `US`, `MG`, `VD`, `EC` | Document Project, Write Document, Update Standards, Mermaid Generate, Validate Doc, Explain Concept |
|
||||
|
||||
## Trigger Types
|
||||
|
||||
Agent menu triggers use two different invocation types. Knowing which type a trigger uses helps you provide the right input.
|
||||
|
||||
### Workflow triggers (no arguments needed)
|
||||
|
||||
Most triggers load a structured workflow file. Type the trigger code and the agent starts the workflow, prompting you for input at each step.
|
||||
|
||||
Examples: `CP` (Create PRD), `DS` (Dev Story), `CA` (Create Architecture), `QS` (Quick Spec)
|
||||
|
||||
### Conversational triggers (arguments required)
|
||||
|
||||
Some triggers start a free-form conversation instead of a structured workflow. These expect you to describe what you need alongside the trigger code.
|
||||
|
||||
| Agent | Trigger | What to provide |
|
||||
| --- | --- | --- |
|
||||
| Technical Writer (Paige) | `WD` | Description of the document to write |
|
||||
| Technical Writer (Paige) | `US` | Preferences or conventions to add to standards |
|
||||
| Technical Writer (Paige) | `MG` | Diagram description and type (sequence, flowchart, etc.) |
|
||||
| Technical Writer (Paige) | `VD` | Document to validate and focus areas |
|
||||
| Technical Writer (Paige) | `EC` | Concept name to explain |
|
||||
|
||||
**Example:**
|
||||
|
||||
```text
|
||||
WD Write a deployment guide for our Docker setup
|
||||
MG Create a sequence diagram showing the auth flow
|
||||
EC Explain how the module system works
|
||||
```
|
||||
|
|
|
|||
|
|
@ -95,11 +95,11 @@ TEA also supports P0-P3 risk-based prioritization and optional integrations with
|
|||
|
||||
## How Testing Fits into Workflows
|
||||
|
||||
Quinn's Automate workflow appears in Phase 4 (Implementation) of the BMad Method workflow map. A typical sequence:
|
||||
Quinn's Automate workflow appears in Phase 4 (Implementation) of the BMad Method workflow map. It is designed to run **after a full epic is complete** — once all stories in an epic have been implemented and code-reviewed. A typical sequence:
|
||||
|
||||
1. Implement a story with the Dev workflow (`DS`)
|
||||
2. Generate tests with Quinn (`QA`) or TEA's Automate workflow
|
||||
3. Validate implementation with Code Review (`CR`)
|
||||
1. For each story in the epic: implement with Dev (`DS`), then validate with Code Review (`CR`)
|
||||
2. After the epic is complete: generate tests with Quinn (`QA`) or TEA's Automate workflow
|
||||
3. Run retrospective (`bmad-retrospective`) to capture lessons learned
|
||||
|
||||
Quinn works directly from source code without loading planning documents (PRD, architecture). TEA workflows can integrate with upstream planning artifacts for traceability.
|
||||
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ outputFile: '{planning_artifacts}/product-brief-{{project_name}}-{{date}}.md'
|
|||
|
||||
# Task References
|
||||
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/bmad-party-mode/workflow.md'
|
||||
---
|
||||
|
||||
# Step 2: Product Vision Discovery
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ outputFile: '{planning_artifacts}/product-brief-{{project_name}}-{{date}}.md'
|
|||
|
||||
# Task References
|
||||
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/bmad-party-mode/workflow.md'
|
||||
---
|
||||
|
||||
# Step 3: Target Users Discovery
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ outputFile: '{planning_artifacts}/product-brief-{{project_name}}-{{date}}.md'
|
|||
|
||||
# Task References
|
||||
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/bmad-party-mode/workflow.md'
|
||||
---
|
||||
|
||||
# Step 4: Success Metrics Definition
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ outputFile: '{planning_artifacts}/product-brief-{{project_name}}-{{date}}.md'
|
|||
|
||||
# Task References
|
||||
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/bmad-party-mode/workflow.md'
|
||||
---
|
||||
|
||||
# Step 5: MVP Scope Definition
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ domainComplexityCSV: '../data/domain-complexity.csv'
|
|||
|
||||
# Task References
|
||||
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/bmad-party-mode/workflow.md'
|
||||
---
|
||||
|
||||
# Step 2: Project Discovery
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ outputFile: '{planning_artifacts}/prd.md'
|
|||
|
||||
# Task References
|
||||
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/bmad-party-mode/workflow.md'
|
||||
---
|
||||
|
||||
# Step 2b: Product Vision Discovery
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ outputFile: '{planning_artifacts}/prd.md'
|
|||
|
||||
# Task References
|
||||
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/bmad-party-mode/workflow.md'
|
||||
---
|
||||
|
||||
# Step 2c: Executive Summary Generation
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ outputFile: '{planning_artifacts}/prd.md'
|
|||
|
||||
# Task References
|
||||
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/bmad-party-mode/workflow.md'
|
||||
---
|
||||
|
||||
# Step 3: Success Criteria Definition
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ outputFile: '{planning_artifacts}/prd.md'
|
|||
|
||||
# Task References
|
||||
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/bmad-party-mode/workflow.md'
|
||||
---
|
||||
|
||||
# Step 4: User Journey Mapping
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ domainComplexityCSV: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/create
|
|||
|
||||
# Task References
|
||||
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/bmad-party-mode/workflow.md'
|
||||
---
|
||||
|
||||
# Step 5: Domain-Specific Requirements (Optional)
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ projectTypesCSV: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd
|
|||
|
||||
# Task References
|
||||
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/bmad-party-mode/workflow.md'
|
||||
---
|
||||
|
||||
# Step 6: Innovation Discovery
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ projectTypesCSV: '../data/project-types.csv'
|
|||
|
||||
# Task References
|
||||
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/bmad-party-mode/workflow.md'
|
||||
---
|
||||
|
||||
# Step 7: Project-Type Deep Dive
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ outputFile: '{planning_artifacts}/prd.md'
|
|||
|
||||
# Task References
|
||||
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/bmad-party-mode/workflow.md'
|
||||
---
|
||||
|
||||
# Step 8: Scoping Exercise - MVP & Future Features
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ outputFile: '{planning_artifacts}/prd.md'
|
|||
|
||||
# Task References
|
||||
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/bmad-party-mode/workflow.md'
|
||||
---
|
||||
|
||||
# Step 9: Functional Requirements Synthesis
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ outputFile: '{planning_artifacts}/prd.md'
|
|||
|
||||
# Task References
|
||||
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/bmad-party-mode/workflow.md'
|
||||
---
|
||||
|
||||
# Step 10: Non-Functional Requirements
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ purposeFile: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/dat
|
|||
|
||||
# Task References
|
||||
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/bmad-party-mode/workflow.md'
|
||||
---
|
||||
|
||||
# Step 11: Document Polish
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ description: 'Discovery & Understanding - Understand what user wants to edit and
|
|||
altStepFile: './step-e-01b-legacy-conversion.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.md'
|
||||
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
|
||||
partyModeWorkflow: '{project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md'
|
||||
---
|
||||
|
||||
# Step E-1: Discovery & Understanding
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ description: 'Document Discovery & Confirmation - Handle fresh context validatio
|
|||
# File references (ONLY variables used in this step)
|
||||
nextStepFile: './step-v-02-format-detection.md'
|
||||
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/bmad-party-mode/workflow.md'
|
||||
prdPurpose: '../data/prd-purpose.md'
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ This step will generate content and present choices:
|
|||
## PROTOCOL INTEGRATION:
|
||||
|
||||
- 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/bmad-party-mode/workflow.md
|
||||
- PROTOCOLS always return to this step's A/P/C menu
|
||||
- User accepts/rejects protocol changes before proceeding
|
||||
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ This step will generate content and present choices:
|
|||
## PROTOCOL INTEGRATION:
|
||||
|
||||
- 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/bmad-party-mode/workflow.md
|
||||
- PROTOCOLS always return to this step's A/P/C menu
|
||||
- User accepts/rejects protocol changes before proceeding
|
||||
|
||||
|
|
@ -169,7 +169,7 @@ Show the generated core experience content and present choices:
|
|||
|
||||
#### If 'P' (Party Mode):
|
||||
|
||||
- Read fully and follow: {project-root}/_bmad/core/workflows/party-mode/workflow.md with the current core experience definition
|
||||
- Read fully and follow: {project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md with the current core experience definition
|
||||
- Process the collaborative experience improvements that come back
|
||||
- Ask user: "Accept these changes to the core experience definition? (y/n)"
|
||||
- If yes: Update content with improvements, then return to A/P/C menu
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ This step will generate content and present choices:
|
|||
## PROTOCOL INTEGRATION:
|
||||
|
||||
- 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/bmad-party-mode/workflow.md
|
||||
- PROTOCOLS always return to this step's A/P/C menu
|
||||
- User accepts/rejects protocol changes before proceeding
|
||||
|
||||
|
|
@ -172,7 +172,7 @@ Show the generated emotional response content and present choices:
|
|||
|
||||
#### If 'P' (Party Mode):
|
||||
|
||||
- Read fully and follow: {project-root}/_bmad/core/workflows/party-mode/workflow.md with the current emotional response definition
|
||||
- Read fully and follow: {project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md with the current emotional response definition
|
||||
- Process the collaborative emotional insights that come back
|
||||
- Ask user: "Accept these changes to the emotional response definition? (y/n)"
|
||||
- If yes: Update content with improvements, then return to A/P/C menu
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ This step will generate content and present choices:
|
|||
## PROTOCOL INTEGRATION:
|
||||
|
||||
- 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/bmad-party-mode/workflow.md
|
||||
- PROTOCOLS always return to this step's A/P/C menu
|
||||
- User accepts/rejects protocol changes before proceeding
|
||||
|
||||
|
|
@ -187,7 +187,7 @@ Show the generated inspiration analysis content and present choices:
|
|||
|
||||
#### If 'P' (Party Mode):
|
||||
|
||||
- Read fully and follow: {project-root}/_bmad/core/workflows/party-mode/workflow.md with the current inspiration analysis
|
||||
- Read fully and follow: {project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md with the current inspiration analysis
|
||||
- Process the collaborative pattern insights that come back
|
||||
- Ask user: "Accept these changes to the inspiration analysis? (y/n)"
|
||||
- If yes: Update content with improvements, then return to A/P/C menu
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ This step will generate content and present choices:
|
|||
## PROTOCOL INTEGRATION:
|
||||
|
||||
- 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/bmad-party-mode/workflow.md
|
||||
- PROTOCOLS always return to this step's A/P/C menu
|
||||
- User accepts/rejects protocol changes before proceeding
|
||||
|
||||
|
|
@ -205,7 +205,7 @@ Show the generated design system content and present choices:
|
|||
|
||||
#### If 'P' (Party Mode):
|
||||
|
||||
- Read fully and follow: {project-root}/_bmad/core/workflows/party-mode/workflow.md with the current design system choice
|
||||
- Read fully and follow: {project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md with the current design system choice
|
||||
- Process the collaborative design system insights that come back
|
||||
- Ask user: "Accept these changes to the design system decision? (y/n)"
|
||||
- If yes: Update content with improvements, then return to A/P/C menu
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ This step will generate content and present choices:
|
|||
## PROTOCOL INTEGRATION:
|
||||
|
||||
- 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/bmad-party-mode/workflow.md
|
||||
- PROTOCOLS always return to this step's A/P/C menu
|
||||
- User accepts/rejects protocol changes before proceeding
|
||||
|
||||
|
|
@ -207,7 +207,7 @@ Show the generated defining experience content and present choices:
|
|||
|
||||
#### If 'P' (Party Mode):
|
||||
|
||||
- Read fully and follow: {project-root}/_bmad/core/workflows/party-mode/workflow.md with the current defining experience
|
||||
- Read fully and follow: {project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md with the current defining experience
|
||||
- Process the collaborative experience insights that come back
|
||||
- Ask user: "Accept these changes to the defining experience? (y/n)"
|
||||
- If yes: Update content with improvements, then return to A/P/C menu
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ This step will generate content and present choices:
|
|||
## PROTOCOL INTEGRATION:
|
||||
|
||||
- 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/bmad-party-mode/workflow.md
|
||||
- PROTOCOLS always return to this step's A/P/C menu
|
||||
- User accepts/rejects protocol changes before proceeding
|
||||
|
||||
|
|
@ -177,7 +177,7 @@ Show the generated visual foundation content and present choices:
|
|||
|
||||
#### If 'P' (Party Mode):
|
||||
|
||||
- Read fully and follow: {project-root}/_bmad/core/workflows/party-mode/workflow.md with the current visual foundation
|
||||
- Read fully and follow: {project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md with the current visual foundation
|
||||
- Process the collaborative visual insights that come back
|
||||
- Ask user: "Accept these changes to the visual foundation? (y/n)"
|
||||
- If yes: Update content with improvements, then return to A/P/C menu
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ This step will generate content and present choices:
|
|||
## PROTOCOL INTEGRATION:
|
||||
|
||||
- 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/bmad-party-mode/workflow.md
|
||||
- PROTOCOLS always return to this step's A/P/C menu
|
||||
- User accepts/rejects protocol changes before proceeding
|
||||
|
||||
|
|
@ -177,7 +177,7 @@ Show the generated design direction content and present choices:
|
|||
|
||||
#### If 'P' (Party Mode):
|
||||
|
||||
- Read fully and follow: {project-root}/_bmad/core/workflows/party-mode/workflow.md with the current design direction
|
||||
- Read fully and follow: {project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md with the current design direction
|
||||
- Process the collaborative design insights that come back
|
||||
- Ask user: "Accept these changes to the design direction? (y/n)"
|
||||
- If yes: Update content with improvements, then return to A/P/C menu
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ This step will generate content and present choices:
|
|||
## PROTOCOL INTEGRATION:
|
||||
|
||||
- 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/bmad-party-mode/workflow.md
|
||||
- PROTOCOLS always return to this step's A/P/C menu
|
||||
- User accepts/rejects protocol changes before proceeding
|
||||
|
||||
|
|
@ -195,7 +195,7 @@ Show the generated user journey content and present choices:
|
|||
|
||||
#### If 'P' (Party Mode):
|
||||
|
||||
- Read fully and follow: {project-root}/_bmad/core/workflows/party-mode/workflow.md with the current user journeys
|
||||
- Read fully and follow: {project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md with the current user journeys
|
||||
- Process the collaborative journey insights that come back
|
||||
- Ask user: "Accept these changes to the user journeys? (y/n)"
|
||||
- If yes: Update content with improvements, then return to A/P/C menu
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ This step will generate content and present choices:
|
|||
## PROTOCOL INTEGRATION:
|
||||
|
||||
- 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/bmad-party-mode/workflow.md
|
||||
- PROTOCOLS always return to this step's A/P/C menu
|
||||
- User accepts/rejects protocol changes before proceeding
|
||||
|
||||
|
|
@ -201,7 +201,7 @@ Show the generated component strategy content and present choices:
|
|||
|
||||
#### If 'P' (Party Mode):
|
||||
|
||||
- Read fully and follow: {project-root}/_bmad/core/workflows/party-mode/workflow.md with the current component strategy
|
||||
- Read fully and follow: {project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md with the current component strategy
|
||||
- Process the collaborative component insights that come back
|
||||
- Ask user: "Accept these changes to the component strategy? (y/n)"
|
||||
- If yes: Update content with improvements, then return to A/P/C menu
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ This step will generate content and present choices:
|
|||
## PROTOCOL INTEGRATION:
|
||||
|
||||
- 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/bmad-party-mode/workflow.md
|
||||
- PROTOCOLS always return to this step's A/P/C menu
|
||||
- User accepts/rejects protocol changes before proceeding
|
||||
|
||||
|
|
@ -190,7 +190,7 @@ Show the generated UX patterns content and present choices:
|
|||
|
||||
#### If 'P' (Party Mode):
|
||||
|
||||
- Read fully and follow: {project-root}/_bmad/core/workflows/party-mode/workflow.md with the current UX patterns
|
||||
- Read fully and follow: {project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md with the current UX patterns
|
||||
- Process the collaborative pattern insights that come back
|
||||
- Ask user: "Accept these changes to the UX patterns? (y/n)"
|
||||
- If yes: Update content with improvements, then return to A/P/C menu
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ This step will generate content and present choices:
|
|||
## PROTOCOL INTEGRATION:
|
||||
|
||||
- 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/bmad-party-mode/workflow.md
|
||||
- PROTOCOLS always return to this step's A/P/C menu
|
||||
- User accepts/rejects protocol changes before proceeding
|
||||
|
||||
|
|
@ -217,7 +217,7 @@ Show the generated responsive and accessibility content and present choices:
|
|||
|
||||
#### If 'P' (Party Mode):
|
||||
|
||||
- Read fully and follow: {project-root}/_bmad/core/workflows/party-mode/workflow.md with the current responsive/accessibility strategy
|
||||
- Read fully and follow: {project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md with the current responsive/accessibility strategy
|
||||
- Process the collaborative insights that come back
|
||||
- Ask user: "Accept these changes to the responsive/accessibility strategy? (y/n)"
|
||||
- If yes: Update content with improvements, then return to A/P/C menu
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ This step will generate content and present choices:
|
|||
## PROTOCOL INTEGRATION:
|
||||
|
||||
- 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/bmad-party-mode/workflow.md
|
||||
- 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
|
||||
|
||||
|
|
@ -178,7 +178,7 @@ Show the generated content and present choices:
|
|||
|
||||
#### If 'P' (Party Mode):
|
||||
|
||||
- Read fully and follow: {project-root}/_bmad/core/workflows/party-mode/workflow.md with the current project context
|
||||
- Read fully and follow: {project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md with the current project context
|
||||
- Process the collaborative improvements to architectural understanding
|
||||
- Ask user: "Accept these changes to the project context analysis? (y/n)"
|
||||
- If yes: Update content with improvements, then return to A/P/C menu
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ This step will generate content and present choices:
|
|||
## PROTOCOL INTEGRATION:
|
||||
|
||||
- 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/bmad-party-mode/workflow.md
|
||||
- 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
|
||||
|
||||
|
|
@ -284,7 +284,7 @@ Show the generated content and present choices:
|
|||
|
||||
#### If 'P' (Party Mode):
|
||||
|
||||
- Read fully and follow: {project-root}/_bmad/core/workflows/party-mode/workflow.md with starter evaluation context
|
||||
- Read fully and follow: {project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md with starter evaluation context
|
||||
- Process collaborative insights about starter trade-offs
|
||||
- Ask user: "Accept these changes to the starter template evaluation? (y/n)"
|
||||
- If yes: Update content, then return to A/P/C menu
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ This step will generate content and present choices for each decision category:
|
|||
## PROTOCOL INTEGRATION:
|
||||
|
||||
- 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/bmad-party-mode/workflow.md
|
||||
- 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
|
||||
|
||||
|
|
@ -272,7 +272,7 @@ Show the generated decisions content and present choices:
|
|||
|
||||
#### If 'P' (Party Mode):
|
||||
|
||||
- Read fully and follow: {project-root}/_bmad/core/workflows/party-mode/workflow.md with architectural decisions context
|
||||
- Read fully and follow: {project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md with architectural decisions context
|
||||
- Process collaborative insights about decision trade-offs
|
||||
- Ask user: "Accept these changes to the architectural decisions? (y/n)"
|
||||
- If yes: Update content, then return to A/P/C menu
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ This step will generate content and present choices:
|
|||
## PROTOCOL INTEGRATION:
|
||||
|
||||
- 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/bmad-party-mode/workflow.md
|
||||
- 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
|
||||
|
||||
|
|
@ -313,7 +313,7 @@ Show the generated patterns content and present choices:
|
|||
|
||||
#### If 'P' (Party Mode):
|
||||
|
||||
- Read fully and follow: {project-root}/_bmad/core/workflows/party-mode/workflow.md with implementation patterns context
|
||||
- Read fully and follow: {project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md with implementation patterns context
|
||||
- Process collaborative insights about potential conflicts
|
||||
- Ask user: "Accept these changes to the implementation patterns? (y/n)"
|
||||
- If yes: Update content, then return to A/P/C menu
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ This step will generate content and present choices:
|
|||
## PROTOCOL INTEGRATION:
|
||||
|
||||
- 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/bmad-party-mode/workflow.md
|
||||
- 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
|
||||
|
||||
|
|
@ -333,7 +333,7 @@ Show the generated project structure content and present choices:
|
|||
|
||||
#### If 'P' (Party Mode):
|
||||
|
||||
- Read fully and follow: {project-root}/_bmad/core/workflows/party-mode/workflow.md with project structure context
|
||||
- Read fully and follow: {project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md with project structure context
|
||||
- Process collaborative insights about organization trade-offs
|
||||
- Ask user: "Accept these changes to the project structure? (y/n)"
|
||||
- If yes: Update content, then return to A/P/C menu
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ This step will generate content and present choices:
|
|||
## PROTOCOL INTEGRATION:
|
||||
|
||||
- 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/bmad-party-mode/workflow.md
|
||||
- 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
|
||||
|
||||
|
|
@ -313,7 +313,7 @@ Show the validation results and present choices:
|
|||
|
||||
#### If 'P' (Party Mode):
|
||||
|
||||
- Read fully and follow: {project-root}/_bmad/core/workflows/party-mode/workflow.md with validation context
|
||||
- Read fully and follow: {project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md with validation context
|
||||
- Process collaborative insights on implementation readiness
|
||||
- Ask user: "Accept these changes to the validation results? (y/n)"
|
||||
- If yes: Update content, then return to A/P/C menu
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ epicsTemplate: '{workflow_path}/templates/epics-template.md'
|
|||
|
||||
# Task References
|
||||
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/bmad-party-mode/workflow.md'
|
||||
|
||||
# Template References
|
||||
epicsTemplate: '{workflow_path}/templates/epics-template.md'
|
||||
|
|
@ -154,20 +154,31 @@ Review the Architecture document for technical requirements that impact epic and
|
|||
...
|
||||
```
|
||||
|
||||
### 6. Extract Additional Requirements from UX (if exists)
|
||||
### 6. Extract UX Design Requirements (if UX document exists)
|
||||
|
||||
Review the UX document for requirements that affect epic and story creation:
|
||||
**IMPORTANT**: The UX Design Specification is a first-class input document, not supplementary material. Requirements from the UX spec must be extracted with the same rigor as PRD functional requirements.
|
||||
|
||||
Read the FULL UX Design document and extract ALL actionable work items:
|
||||
|
||||
**Look for:**
|
||||
|
||||
- Responsive design requirements
|
||||
- Accessibility requirements
|
||||
- Browser/device compatibility
|
||||
- User interaction patterns that need implementation
|
||||
- Animation or transition requirements
|
||||
- Error handling UX requirements
|
||||
- **Design token work**: Color systems, spacing scales, typography tokens that need implementation or consolidation
|
||||
- **Component proposals**: Reusable UI components identified in the UX spec (e.g., ConfirmActions, StatusMessage, EmptyState, FocusIndicator)
|
||||
- **Visual standardization**: Semantic CSS classes, consistent color palette usage, design pattern consolidation
|
||||
- **Accessibility requirements**: Contrast audit fixes, ARIA patterns, keyboard navigation, screen reader support
|
||||
- **Responsive design requirements**: Breakpoints, layout adaptations, mobile-specific interactions
|
||||
- **Interaction patterns**: Animations, transitions, loading states, error handling UX
|
||||
- **Browser/device compatibility**: Target platforms, progressive enhancement requirements
|
||||
|
||||
**Add these to Additional Requirements list.**
|
||||
**Format UX Design Requirements as a SEPARATE section (not merged into Additional Requirements):**
|
||||
|
||||
```
|
||||
UX-DR1: [Actionable UX design requirement with clear implementation scope]
|
||||
UX-DR2: [Actionable UX design requirement with clear implementation scope]
|
||||
...
|
||||
```
|
||||
|
||||
**🚨 CRITICAL**: Do NOT reduce UX requirements to vague summaries. Each UX-DR must be specific enough to generate a story with testable acceptance criteria. If the UX spec identifies 6 reusable components, list all 6 — not "create reusable components."
|
||||
|
||||
### 7. Load and Initialize Template
|
||||
|
||||
|
|
@ -178,7 +189,8 @@ Load {epicsTemplate} and initialize {outputFile}:
|
|||
3. Replace placeholder sections with extracted requirements:
|
||||
- {{fr_list}} → extracted FRs
|
||||
- {{nfr_list}} → extracted NFRs
|
||||
- {{additional_requirements}} → extracted additional requirements
|
||||
- {{additional_requirements}} → extracted additional requirements (from Architecture)
|
||||
- {{ux_design_requirements}} → extracted UX Design Requirements (if UX document exists)
|
||||
4. Leave {{requirements_coverage_map}} and {{epics_list}} as placeholders for now
|
||||
|
||||
### 8. Present Extracted Requirements
|
||||
|
|
@ -197,12 +209,17 @@ Display to user:
|
|||
- Display key NFRs
|
||||
- Ask if any constraints were missed
|
||||
|
||||
**Additional Requirements:**
|
||||
**Additional Requirements (Architecture):**
|
||||
|
||||
- Summarize technical requirements from Architecture
|
||||
- Summarize UX requirements (if applicable)
|
||||
- Verify completeness
|
||||
|
||||
**UX Design Requirements (if applicable):**
|
||||
|
||||
- Show count of UX-DRs found
|
||||
- Display key UX Design requirements (design tokens, components, accessibility)
|
||||
- Verify each UX-DR is specific enough for story creation
|
||||
|
||||
### 9. Get User Confirmation
|
||||
|
||||
Ask: "Do these extracted requirements accurately represent what needs to be built? Any additions or corrections?"
|
||||
|
|
@ -216,6 +233,7 @@ After extraction and confirmation, update {outputFile} with:
|
|||
- Complete FR list in {{fr_list}} section
|
||||
- Complete NFR list in {{nfr_list}} section
|
||||
- All additional requirements in {{additional_requirements}} section
|
||||
- UX Design requirements in {{ux_design_requirements}} section (if UX document exists)
|
||||
|
||||
### 10. Present MENU OPTIONS
|
||||
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ outputFile: '{planning_artifacts}/epics.md'
|
|||
|
||||
# Task References
|
||||
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/bmad-party-mode/workflow.md'
|
||||
|
||||
# Template References
|
||||
epicsTemplate: '{workflow_path}/templates/epics-template.md'
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ outputFile: '{planning_artifacts}/epics.md'
|
|||
|
||||
# Task References
|
||||
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/bmad-party-mode/workflow.md'
|
||||
|
||||
# Template References
|
||||
epicsTemplate: '{workflow_path}/templates/epics-template.md'
|
||||
|
|
@ -66,9 +66,11 @@ Load {outputFile} and review:
|
|||
|
||||
- Approved epics_list from Step 2
|
||||
- FR coverage map
|
||||
- All requirements (FRs, NFRs, additional)
|
||||
- All requirements (FRs, NFRs, additional, **UX Design requirements if present**)
|
||||
- Template structure at the end of the document
|
||||
|
||||
**UX Design Integration**: If UX Design Requirements (UX-DRs) were extracted in Step 1, ensure they are visible during story creation. UX-DRs must be covered by stories — either within existing epics (e.g., accessibility fixes for a feature epic) or in a dedicated "Design System / UX Polish" epic.
|
||||
|
||||
### 2. Explain Story Creation Approach
|
||||
|
||||
**STORY CREATION GUIDELINES:**
|
||||
|
|
@ -146,6 +148,7 @@ Display:
|
|||
- Epic goal statement
|
||||
- FRs covered by this epic
|
||||
- Any NFRs or additional requirements relevant
|
||||
- Any UX Design Requirements (UX-DRs) relevant to this epic
|
||||
|
||||
#### B. Story Breakdown
|
||||
|
||||
|
|
@ -207,6 +210,7 @@ After all epics and stories are generated:
|
|||
- Verify the document follows template structure exactly
|
||||
- Ensure all placeholders are replaced
|
||||
- Confirm all FRs are covered
|
||||
- **Confirm all UX Design Requirements (UX-DRs) are covered by at least one story** (if UX document was an input)
|
||||
- Check formatting consistency
|
||||
|
||||
## TEMPLATE STRUCTURE COMPLIANCE:
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ outputFile: '{planning_artifacts}/epics.md'
|
|||
|
||||
# Task References
|
||||
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/bmad-party-mode/workflow.md'
|
||||
|
||||
# Template References
|
||||
epicsTemplate: '{workflow_path}/templates/epics-template.md'
|
||||
|
|
|
|||
|
|
@ -23,6 +23,10 @@ This document provides the complete epic and story breakdown for {{project_name}
|
|||
|
||||
{{additional_requirements}}
|
||||
|
||||
### UX Design Requirements
|
||||
|
||||
{{ux_design_requirements}}
|
||||
|
||||
### FR Coverage Map
|
||||
|
||||
{{requirements_coverage_map}}
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ description: 'Perform adversarial code review finding specific issues. Use when
|
|||
- Generate all documents in {document_output_language}
|
||||
- Your purpose: Validate story file claims against actual implementation
|
||||
- Challenge everything: Are tasks marked [x] actually done? Are ACs really implemented?
|
||||
- Find 3-10 specific issues in every review minimum - no lazy "looks good" reviews - YOU are so much better than the dev agent that wrote this slop
|
||||
- Be thorough and specific — find real issues, not manufactured ones. If the code is genuinely good after fixes, say so
|
||||
- Read EVERY file in the File List - verify implementation against story requirements
|
||||
- Tasks marked complete but not done = CRITICAL finding
|
||||
- Acceptance Criteria not implemented = HIGH severity finding
|
||||
|
|
@ -136,17 +136,14 @@ Load config from `{project-root}/_bmad/bmm/config.yaml` and resolve:
|
|||
5. **Test Quality**: Are tests real assertions or placeholders?
|
||||
</action>
|
||||
|
||||
<check if="total_issues_found lt 3">
|
||||
<critical>NOT LOOKING HARD ENOUGH - Find more problems!</critical>
|
||||
<action>Re-examine code for:
|
||||
<check if="total_issues_found == 0">
|
||||
<action>Double-check by re-examining code for:
|
||||
- Edge cases and null handling
|
||||
- Architecture violations
|
||||
- Documentation gaps
|
||||
- Integration issues
|
||||
- Dependency problems
|
||||
- Git commit message quality (if applicable)
|
||||
</action>
|
||||
<action>Find at least 3 more specific, actionable issues</action>
|
||||
<action>If still no issues found after thorough re-examination, that is a valid outcome — report a clean review</action>
|
||||
</check>
|
||||
</step>
|
||||
|
||||
|
|
|
|||
|
|
@ -1,9 +1,5 @@
|
|||
---
|
||||
main_config: '{project-root}/_bmad/bmm/config.yaml'
|
||||
|
||||
# Related workflows
|
||||
advanced_elicitation: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md'
|
||||
party_mode_exec: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
|
||||
---
|
||||
|
||||
# Quick Dev New Preview Workflow
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ Load config from `{project-root}/_bmad/bmm/config.yaml` and resolve:
|
|||
### Related Workflows
|
||||
|
||||
- `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/bmad-party-mode/workflow.md`
|
||||
- `advanced_elicitation` = `{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md`
|
||||
|
||||
---
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ main_config: '{project-root}/_bmad/bmm/config.yaml'
|
|||
|
||||
# Checkpoint handler paths
|
||||
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/bmad-party-mode/workflow.md'
|
||||
quick_dev_workflow: '{project-root}/_bmad/bmm/workflows/bmad-quick-flow/quick-dev/workflow.md'
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ This step will generate content and present choices for each rule category:
|
|||
## PROTOCOL INTEGRATION:
|
||||
|
||||
- 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/bmad-party-mode/workflow.md
|
||||
- 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
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
module,phase,name,code,sequence,workflow-file,command,required,agent,options,description,output-location,outputs
|
||||
core,anytime,Brainstorming,BSP,,_bmad/core/workflows/brainstorming/workflow.md,bmad-brainstorming,false,analyst,,"Generate diverse ideas through interactive techniques. Use early in ideation phase or when stuck generating ideas.",{output_folder}/brainstorming/brainstorming-session-{{date}}.md,,
|
||||
core,anytime,Party Mode,PM,,_bmad/core/workflows/party-mode/workflow.md,bmad-party-mode,false,party-mode facilitator,,"Orchestrate multi-agent discussions. Use when you need multiple agent perspectives or want agents to collaborate.",,
|
||||
core,anytime,Party Mode,PM,,skill:bmad-party-mode,bmad-party-mode,false,party-mode facilitator,,"Orchestrate multi-agent discussions. Use when you need multiple agent perspectives or want agents to collaborate.",,
|
||||
core,anytime,bmad-help,BH,,skill:bmad-help,bmad-help,false,,,"Get unstuck by showing what workflow steps come next or answering BMad Method questions.",,
|
||||
core,anytime,Index Docs,ID,,skill:bmad-index-docs,bmad-index-docs,false,,,"Create lightweight index for quick LLM scanning. Use when LLM needs to understand available docs without loading everything.",,
|
||||
core,anytime,Shard Document,SD,,skill:bmad-shard-doc,bmad-shard-doc,false,,,"Split large documents into smaller files by sections. Use when doc becomes too large (>500 lines) to manage effectively.",,
|
||||
|
|
|
|||
|
Can't render this file because it has a wrong number of fields in line 2.
|
|
|
@ -0,0 +1,6 @@
|
|||
---
|
||||
name: bmad-party-mode
|
||||
description: 'Orchestrates group discussions between all installed BMAD agents, enabling natural multi-agent conversations. Use when user requests party mode.'
|
||||
---
|
||||
|
||||
Follow the instructions in [workflow.md](workflow.md).
|
||||
|
|
@ -0,0 +1 @@
|
|||
type: skill
|
||||
|
|
@ -93,7 +93,6 @@ Final workflow completion steps:
|
|||
```yaml
|
||||
---
|
||||
stepsCompleted: [1, 2, 3]
|
||||
workflowType: 'party-mode'
|
||||
user_name: '{{user_name}}'
|
||||
date: '{{date}}'
|
||||
agents_loaded: true
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
name: party-mode
|
||||
name: bmad-party-mode
|
||||
description: 'Orchestrates group discussions between all installed BMAD agents, enabling natural multi-agent conversations. Use when user requests party mode.'
|
||||
---
|
||||
|
||||
|
|
@ -36,7 +36,6 @@ Load config from `{project-root}/_bmad/core/config.yaml` and resolve:
|
|||
|
||||
### Paths
|
||||
|
||||
- `installed_path` = `{project-root}/_bmad/core/workflows/party-mode`
|
||||
- `agent_manifest_path` = `{project-root}/_bmad/_config/agent-manifest.csv`
|
||||
- `standalone_mode` = `true` (party mode is an interactive workflow)
|
||||
|
||||
|
|
@ -115,7 +114,6 @@ Load step: `./steps/step-02-discussion-orchestration.md`
|
|||
```yaml
|
||||
---
|
||||
stepsCompleted: [1]
|
||||
workflowType: 'party-mode'
|
||||
user_name: '{{user_name}}'
|
||||
date: '{{date}}'
|
||||
agents_loaded: true
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
canonicalId: bmad-party-mode
|
||||
type: workflow
|
||||
description: "Orchestrates group discussions between all installed BMAD agents"
|
||||
|
|
@ -1,3 +1,3 @@
|
|||
module,phase,name,code,sequence,workflow-file,command,required,agent,options,description,output-location,outputs
|
||||
core,anytime,Brainstorming,BSP,,_bmad/core/workflows/brainstorming/workflow.md,bmad-brainstorming,false,analyst,,"Generate ideas",{output_folder}/brainstorming.md,
|
||||
core,anytime,Party Mode,PM,,_bmad/core/workflows/party-mode/workflow.md,bmad-party-mode,false,facilitator,,"Multi-agent discussion",,
|
||||
core,anytime,Party Mode,PM,,_bmad/core/workflows/bmad-party-mode/workflow.md,bmad-party-mode,false,facilitator,,"Multi-agent discussion",,
|
||||
|
|
|
|||
|
|
|
@ -71,7 +71,7 @@ test('core-style.csv: extracts refs from core module-help format', () => {
|
|||
const refs = extractCsvRefs(fullPath, content);
|
||||
assert(refs.length === 2, `Expected 2 refs, got ${refs.length}`);
|
||||
assert(refs[0].raw === '_bmad/core/workflows/brainstorming/workflow.md', `Wrong raw[0]: ${refs[0].raw}`);
|
||||
assert(refs[1].raw === '_bmad/core/workflows/party-mode/workflow.md', `Wrong raw[1]: ${refs[1].raw}`);
|
||||
assert(refs[1].raw === '_bmad/core/workflows/bmad-party-mode/workflow.md', `Wrong raw[1]: ${refs[1].raw}`);
|
||||
});
|
||||
|
||||
test('minimal.csv: extracts refs from minimal 3-column CSV', () => {
|
||||
|
|
|
|||
|
|
@ -81,6 +81,60 @@ async function createTestBmadFixture() {
|
|||
return fixtureDir;
|
||||
}
|
||||
|
||||
async function createSkillCollisionFixture() {
|
||||
const fixtureRoot = await fs.mkdtemp(path.join(os.tmpdir(), 'bmad-skill-collision-'));
|
||||
const fixtureDir = path.join(fixtureRoot, '_bmad');
|
||||
const configDir = path.join(fixtureDir, '_config');
|
||||
await fs.ensureDir(configDir);
|
||||
|
||||
await fs.writeFile(
|
||||
path.join(configDir, 'agent-manifest.csv'),
|
||||
[
|
||||
'name,displayName,title,icon,capabilities,role,identity,communicationStyle,principles,module,path,canonicalId',
|
||||
'"bmad-master","BMAD Master","","","","","","","","core","_bmad/core/agents/bmad-master.md","bmad-master"',
|
||||
'',
|
||||
].join('\n'),
|
||||
);
|
||||
|
||||
await fs.writeFile(
|
||||
path.join(configDir, 'workflow-manifest.csv'),
|
||||
[
|
||||
'name,description,module,path,canonicalId',
|
||||
'"help","Workflow help","core","_bmad/core/workflows/help/workflow.md","bmad-help"',
|
||||
'',
|
||||
].join('\n'),
|
||||
);
|
||||
|
||||
await fs.writeFile(path.join(configDir, 'task-manifest.csv'), 'name,displayName,description,module,path,standalone,canonicalId\n');
|
||||
await fs.writeFile(path.join(configDir, 'tool-manifest.csv'), 'name,displayName,description,module,path,standalone,canonicalId\n');
|
||||
await fs.writeFile(
|
||||
path.join(configDir, 'skill-manifest.csv'),
|
||||
[
|
||||
'canonicalId,name,description,module,path,install_to_bmad',
|
||||
'"bmad-help","bmad-help","Native help skill","core","_bmad/core/tasks/bmad-help/SKILL.md","true"',
|
||||
'',
|
||||
].join('\n'),
|
||||
);
|
||||
|
||||
const skillDir = path.join(fixtureDir, 'core', 'tasks', 'bmad-help');
|
||||
await fs.ensureDir(skillDir);
|
||||
await fs.writeFile(
|
||||
path.join(skillDir, 'SKILL.md'),
|
||||
['---', 'name: bmad-help', 'description: Native help skill', '---', '', 'Use this skill directly.'].join('\n'),
|
||||
);
|
||||
|
||||
const agentDir = path.join(fixtureDir, 'core', 'agents');
|
||||
await fs.ensureDir(agentDir);
|
||||
await fs.writeFile(
|
||||
path.join(agentDir, 'bmad-master.md'),
|
||||
['---', 'name: BMAD Master', 'description: Master agent', '---', '', '<agent name="BMAD Master" title="Master">', '</agent>'].join(
|
||||
'\n',
|
||||
),
|
||||
);
|
||||
|
||||
return { root: fixtureRoot, bmadDir: fixtureDir };
|
||||
}
|
||||
|
||||
/**
|
||||
* Test Suite
|
||||
*/
|
||||
|
|
@ -1860,6 +1914,50 @@ async function runTests() {
|
|||
|
||||
console.log('');
|
||||
|
||||
// ============================================================
|
||||
// Test 31: Skill-format installs report unique skill directories
|
||||
// ============================================================
|
||||
console.log(`${colors.yellow}Test Suite 31: Skill Count Reporting${colors.reset}\n`);
|
||||
|
||||
let collisionFixtureRoot = null;
|
||||
let collisionProjectDir = null;
|
||||
|
||||
try {
|
||||
clearCache();
|
||||
const collisionFixture = await createSkillCollisionFixture();
|
||||
collisionFixtureRoot = collisionFixture.root;
|
||||
collisionProjectDir = await fs.mkdtemp(path.join(os.tmpdir(), 'bmad-antigravity-test-'));
|
||||
|
||||
const ideManager = new IdeManager();
|
||||
await ideManager.ensureInitialized();
|
||||
const result = await ideManager.setup('antigravity', collisionProjectDir, collisionFixture.bmadDir, {
|
||||
silent: true,
|
||||
selectedModules: ['core'],
|
||||
});
|
||||
|
||||
assert(result.success === true, 'Antigravity setup succeeds with overlapping skill names');
|
||||
assert(result.detail === '2 agents', 'Installer detail reports agents separately from skills');
|
||||
assert(result.handlerResult.results.skillDirectories === 2, 'Result exposes unique skill directory count');
|
||||
assert(result.handlerResult.results.agents === 2, 'Result retains generated agent write count');
|
||||
assert(result.handlerResult.results.workflows === 1, 'Result retains generated workflow count');
|
||||
assert(result.handlerResult.results.skills === 1, 'Result retains verbatim skill count');
|
||||
assert(
|
||||
await fs.pathExists(path.join(collisionProjectDir, '.agent', 'skills', 'bmad-agent-bmad-master', 'SKILL.md')),
|
||||
'Agent skill directory is created',
|
||||
);
|
||||
assert(
|
||||
await fs.pathExists(path.join(collisionProjectDir, '.agent', 'skills', 'bmad-help', 'SKILL.md')),
|
||||
'Overlapping skill directory is created once',
|
||||
);
|
||||
} catch (error) {
|
||||
assert(false, 'Skill-format unique count test succeeds', error.message);
|
||||
} finally {
|
||||
if (collisionProjectDir) await fs.remove(collisionProjectDir).catch(() => {});
|
||||
if (collisionFixtureRoot) await fs.remove(collisionFixtureRoot).catch(() => {});
|
||||
}
|
||||
|
||||
console.log('');
|
||||
|
||||
// ============================================================
|
||||
// Summary
|
||||
// ============================================================
|
||||
|
|
|
|||
|
|
@ -2,15 +2,15 @@
|
|||
# allowing us to keep the source of these projects in separate repos.
|
||||
|
||||
modules:
|
||||
bmad-builder:
|
||||
url: https://github.com/bmad-code-org/bmad-builder
|
||||
module-definition: src/module.yaml
|
||||
code: bmb
|
||||
name: "BMad Builder"
|
||||
description: "Agent, Workflow and Module Builder"
|
||||
defaultSelected: false
|
||||
type: bmad-org
|
||||
npmPackage: bmad-builder
|
||||
# bmad-builder:
|
||||
# url: https://github.com/bmad-code-org/bmad-builder
|
||||
# module-definition: src/module.yaml
|
||||
# code: bmb
|
||||
# name: "BMad Builder"
|
||||
# description: "Agent, Workflow and Module Builder"
|
||||
# defaultSelected: false
|
||||
# type: bmad-org
|
||||
# npmPackage: bmad-builder
|
||||
|
||||
bmad-creative-intelligence-suite:
|
||||
url: https://github.com/bmad-code-org/bmad-module-creative-intelligence-suite
|
||||
|
|
|
|||
|
|
@ -1153,12 +1153,6 @@ class Installer {
|
|||
preservedModules: modulesForCsvPreserve,
|
||||
});
|
||||
|
||||
addResult(
|
||||
'Manifests',
|
||||
'ok',
|
||||
`${manifestStats.workflows} workflows, ${manifestStats.agents} agents, ${manifestStats.tasks} tasks, ${manifestStats.tools} tools`,
|
||||
);
|
||||
|
||||
// Merge help catalogs
|
||||
message('Generating help catalog...');
|
||||
await this.mergeModuleHelpCatalogs(bmadDir);
|
||||
|
|
@ -1379,10 +1373,27 @@ class Installer {
|
|||
*/
|
||||
async renderInstallSummary(results, context = {}) {
|
||||
const color = await prompts.getColor();
|
||||
const selectedIdes = new Set((context.ides || []).map((ide) => String(ide).toLowerCase()));
|
||||
|
||||
// Build step lines with status indicators
|
||||
const lines = [];
|
||||
for (const r of results) {
|
||||
let stepLabel = null;
|
||||
|
||||
if (r.status !== 'ok') {
|
||||
stepLabel = r.step;
|
||||
} else if (r.step === 'Core') {
|
||||
stepLabel = 'BMAD';
|
||||
} else if (r.step.startsWith('Module: ')) {
|
||||
stepLabel = r.step;
|
||||
} else if (selectedIdes.has(String(r.step).toLowerCase())) {
|
||||
stepLabel = r.step;
|
||||
}
|
||||
|
||||
if (!stepLabel) {
|
||||
continue;
|
||||
}
|
||||
|
||||
let icon;
|
||||
if (r.status === 'ok') {
|
||||
icon = color.green('\u2713');
|
||||
|
|
@ -1392,7 +1403,11 @@ class Installer {
|
|||
icon = color.red('\u2717');
|
||||
}
|
||||
const detail = r.detail ? color.dim(` (${r.detail})`) : '';
|
||||
lines.push(` ${icon} ${r.step}${detail}`);
|
||||
lines.push(` ${icon} ${stepLabel}${detail}`);
|
||||
}
|
||||
|
||||
if ((context.ides || []).length === 0) {
|
||||
lines.push(` ${color.green('\u2713')} No IDE selected ${color.dim('(installed in _bmad only)')}`);
|
||||
}
|
||||
|
||||
// Context and warnings
|
||||
|
|
@ -1415,8 +1430,10 @@ class Installer {
|
|||
` Join our Discord: ${color.dim('https://discord.gg/gk8jAdXWmj')}`,
|
||||
` Star us on GitHub: ${color.dim('https://github.com/bmad-code-org/BMAD-METHOD/')}`,
|
||||
` Subscribe on YouTube: ${color.dim('https://www.youtube.com/@BMadCode')}`,
|
||||
` Invoke the ${color.cyan('bmad-help')} skill in your IDE Agent to get started`,
|
||||
);
|
||||
if (context.ides && context.ides.length > 0) {
|
||||
lines.push(` Invoke the ${color.cyan('bmad-help')} skill in your IDE Agent to get started`);
|
||||
}
|
||||
|
||||
await prompts.note(lines.join('\n'), 'BMAD is ready to use!');
|
||||
}
|
||||
|
|
|
|||
|
|
@ -129,6 +129,7 @@ class ConfigDrivenIdeSetup extends BaseIdeSetup {
|
|||
|
||||
const selectedModules = options.selectedModules || [];
|
||||
const results = { agents: 0, workflows: 0, tasks: 0, tools: 0, skills: 0 };
|
||||
this.skillWriteTracker = config.skill_format ? new Set() : null;
|
||||
|
||||
// Install standard artifacts (agents, workflows, tasks, tools)
|
||||
if (!skipStandardArtifacts) {
|
||||
|
|
@ -159,9 +160,11 @@ class ConfigDrivenIdeSetup extends BaseIdeSetup {
|
|||
// Install verbatim skills (type: skill)
|
||||
if (config.skill_format) {
|
||||
results.skills = await this.installVerbatimSkills(projectDir, bmadDir, targetPath, config);
|
||||
results.skillDirectories = this.skillWriteTracker ? this.skillWriteTracker.size : 0;
|
||||
}
|
||||
|
||||
await this.printSummary(results, target_dir, options);
|
||||
this.skillWriteTracker = null;
|
||||
return { success: true, results };
|
||||
}
|
||||
|
||||
|
|
@ -495,6 +498,7 @@ LOAD and execute from: {project-root}/{{bmadFolderName}}/{{path}}
|
|||
// Create skill directory
|
||||
const skillDir = path.join(targetPath, skillName);
|
||||
await this.ensureDir(skillDir);
|
||||
this.skillWriteTracker?.add(skillName);
|
||||
|
||||
// Transform content: rewrite frontmatter for skills format
|
||||
const skillContent = this.transformToSkillFormat(content, skillName);
|
||||
|
|
@ -667,6 +671,7 @@ LOAD and execute from: {project-root}/{{bmadFolderName}}/{{path}}
|
|||
const skillDir = path.join(targetPath, canonicalId);
|
||||
await fs.remove(skillDir);
|
||||
await fs.ensureDir(skillDir);
|
||||
this.skillWriteTracker?.add(canonicalId);
|
||||
|
||||
// Copy all skill files, filtering OS/editor artifacts recursively
|
||||
const skipPatterns = new Set(['.DS_Store', 'Thumbs.db', 'desktop.ini']);
|
||||
|
|
@ -707,11 +712,11 @@ LOAD and execute from: {project-root}/{{bmadFolderName}}/{{path}}
|
|||
async printSummary(results, targetDir, options = {}) {
|
||||
if (options.silent) return;
|
||||
const parts = [];
|
||||
const totalDirs =
|
||||
results.skillDirectories || (results.workflows || 0) + (results.tasks || 0) + (results.tools || 0) + (results.skills || 0);
|
||||
const skillCount = totalDirs - (results.agents || 0);
|
||||
if (skillCount > 0) parts.push(`${skillCount} skills`);
|
||||
if (results.agents > 0) parts.push(`${results.agents} agents`);
|
||||
if (results.workflows > 0) parts.push(`${results.workflows} workflows`);
|
||||
if (results.tasks > 0) parts.push(`${results.tasks} tasks`);
|
||||
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}`);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -162,10 +162,10 @@ class IdeManager {
|
|||
// Config-driven handlers return { success, results: { agents, workflows, tasks, tools } }
|
||||
const r = handlerResult.results;
|
||||
const parts = [];
|
||||
const totalDirs = r.skillDirectories || (r.workflows || 0) + (r.tasks || 0) + (r.tools || 0) + (r.skills || 0);
|
||||
const skillCount = totalDirs - (r.agents || 0);
|
||||
if (skillCount > 0) parts.push(`${skillCount} skills`);
|
||||
if (r.agents > 0) parts.push(`${r.agents} agents`);
|
||||
if (r.workflows > 0) parts.push(`${r.workflows} workflows`);
|
||||
if (r.tasks > 0) parts.push(`${r.tasks} tasks`);
|
||||
if (r.tools > 0) parts.push(`${r.tools} tools`);
|
||||
detail = parts.join(', ');
|
||||
}
|
||||
// Propagate handler's success status (default true for backward compat)
|
||||
|
|
|
|||
|
|
@ -157,7 +157,7 @@ function buildMenuXml(menuItems) {
|
|||
}
|
||||
}
|
||||
|
||||
xml += ` <item cmd="PM or fuzzy match on party-mode" exec="{project-root}/_bmad/core/workflows/party-mode/workflow.md">[PM] Start Party Mode</item>\n`;
|
||||
xml += ` <item cmd="PM or fuzzy match on party-mode" exec="{project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md">[PM] Start Party Mode</item>\n`;
|
||||
xml += ` <item cmd="DA or fuzzy match on exit, leave, goodbye or dismiss agent">[DA] Dismiss Agent</item>\n`;
|
||||
|
||||
xml += ' </menu>\n';
|
||||
|
|
|
|||
Loading…
Reference in New Issue