Compare commits
9 Commits
5ca6922d74
...
9b98cc1272
| Author | SHA1 | Date |
|---|---|---|
|
|
9b98cc1272 | |
|
|
0b3023cdf5 | |
|
|
76df097957 | |
|
|
ecf7fbcb2c | |
|
|
cb73c05cf6 | |
|
|
045b1fe148 | |
|
|
4c36c94c2d | |
|
|
f41430ec1c | |
|
|
5744beaba3 |
|
|
@ -0,0 +1,271 @@
|
|||
# Augment Code Review Guidelines for BMAD-METHOD
|
||||
# https://docs.augmentcode.com/codereview/overview
|
||||
# Focus: Workflow validation and quality
|
||||
|
||||
file_paths_to_ignore:
|
||||
# --- Shared baseline: tool configs ---
|
||||
- ".coderabbit.yaml"
|
||||
- ".augment/**"
|
||||
- "eslint.config.mjs"
|
||||
# --- Shared baseline: build output ---
|
||||
- "dist/**"
|
||||
- "build/**"
|
||||
- "coverage/**"
|
||||
# --- Shared baseline: vendored/generated ---
|
||||
- "node_modules/**"
|
||||
- "**/*.min.js"
|
||||
- "**/*.generated.*"
|
||||
- "**/*.bundle.md"
|
||||
# --- Shared baseline: package metadata ---
|
||||
- "package-lock.json"
|
||||
# --- Shared baseline: binary/media ---
|
||||
- "*.png"
|
||||
- "*.jpg"
|
||||
- "*.svg"
|
||||
# --- Shared baseline: test fixtures ---
|
||||
- "test/fixtures/**"
|
||||
- "test/template-test-generator/**"
|
||||
- "tools/template-test-generator/test-scenarios/**"
|
||||
# --- Shared baseline: non-project dirs ---
|
||||
- "_bmad*/**"
|
||||
- "website/**"
|
||||
- "z*/**"
|
||||
- "sample-project/**"
|
||||
- "test-project-install/**"
|
||||
# --- Shared baseline: AI assistant dirs ---
|
||||
- ".claude/**"
|
||||
- ".codex/**"
|
||||
- ".agent/**"
|
||||
- ".agentvibes/**"
|
||||
- ".kiro/**"
|
||||
- ".roo/**"
|
||||
- ".github/chatmodes/**"
|
||||
# --- Shared baseline: build temp ---
|
||||
- ".bundler-temp/**"
|
||||
# --- Shared baseline: generated reports ---
|
||||
- "**/validation-report-*.md"
|
||||
- "CHANGELOG.md"
|
||||
|
||||
areas:
|
||||
# ============================================
|
||||
# WORKFLOW STRUCTURE RULES
|
||||
# ============================================
|
||||
workflow_structure:
|
||||
description: "Workflow folder organization and required components"
|
||||
globs:
|
||||
- "src/**/workflows/**"
|
||||
rules:
|
||||
- id: "workflow_entry_point_required"
|
||||
description: "Every workflow folder must have workflow.yaml, workflow.md, or workflow.xml as entry point"
|
||||
severity: "high"
|
||||
|
||||
- id: "sharded_workflow_steps_folder"
|
||||
description: "Sharded workflows (using workflow.md) must have steps/ folder with numbered files (step-01-*.md, step-02-*.md)"
|
||||
severity: "high"
|
||||
|
||||
- id: "standard_workflow_instructions"
|
||||
description: "Standard workflows using workflow.yaml must include instructions.md for execution guidance"
|
||||
severity: "medium"
|
||||
|
||||
- id: "workflow_step_limit"
|
||||
description: "Workflows should have 5-10 steps maximum to prevent context loss in LLM execution"
|
||||
severity: "medium"
|
||||
|
||||
# ============================================
|
||||
# WORKFLOW ENTRY FILE RULES
|
||||
# ============================================
|
||||
workflow_definitions:
|
||||
description: "Workflow entry files (workflow.yaml, workflow.md, workflow.xml)"
|
||||
globs:
|
||||
- "src/**/workflows/**/workflow.yaml"
|
||||
- "src/**/workflows/**/workflow.md"
|
||||
- "src/**/workflows/**/workflow.xml"
|
||||
rules:
|
||||
- id: "workflow_name_required"
|
||||
description: "Workflow entry files must define 'name' field in frontmatter or root element"
|
||||
severity: "high"
|
||||
|
||||
- id: "workflow_description_required"
|
||||
description: "Workflow entry files must include 'description' explaining the workflow's purpose"
|
||||
severity: "high"
|
||||
|
||||
- id: "workflow_config_source"
|
||||
description: "Workflows should reference config_source for variable resolution (e.g., {project-root}/_bmad/module/config.yaml)"
|
||||
severity: "medium"
|
||||
|
||||
- id: "workflow_installed_path"
|
||||
description: "Workflows should define installed_path for relative file references within the workflow"
|
||||
severity: "medium"
|
||||
|
||||
- id: "valid_step_references"
|
||||
description: "Step file references in workflow entry must point to existing files"
|
||||
severity: "high"
|
||||
|
||||
# ============================================
|
||||
# SHARDED WORKFLOW STEP RULES
|
||||
# ============================================
|
||||
workflow_steps:
|
||||
description: "Individual step files in sharded workflows"
|
||||
globs:
|
||||
- "src/**/workflows/**/steps/step-*.md"
|
||||
rules:
|
||||
- id: "step_goal_required"
|
||||
description: "Each step must clearly state its goal (## STEP GOAL, ## YOUR TASK, or step n='X' goal='...')"
|
||||
severity: "high"
|
||||
|
||||
- id: "step_mandatory_rules"
|
||||
description: "Step files should include MANDATORY EXECUTION RULES section with universal agent behavior rules"
|
||||
severity: "medium"
|
||||
|
||||
- id: "step_context_boundaries"
|
||||
description: "Step files should define CONTEXT BOUNDARIES explaining available context and limits"
|
||||
severity: "medium"
|
||||
|
||||
- id: "step_success_metrics"
|
||||
description: "Step files should include SUCCESS METRICS section with ✅ checkmarks for validation criteria"
|
||||
severity: "medium"
|
||||
|
||||
- id: "step_failure_modes"
|
||||
description: "Step files should include FAILURE MODES section with ❌ marks for anti-patterns to avoid"
|
||||
severity: "medium"
|
||||
|
||||
- id: "step_next_step_reference"
|
||||
description: "Step files should reference the next step file path for sequential execution"
|
||||
severity: "medium"
|
||||
|
||||
- id: "step_no_forward_loading"
|
||||
description: "Steps must NOT load future step files until current step completes - just-in-time loading only"
|
||||
severity: "high"
|
||||
|
||||
- id: "valid_file_references"
|
||||
description: "File path references using {variable}/filename.md must point to existing files"
|
||||
severity: "high"
|
||||
|
||||
- id: "step_naming"
|
||||
description: "Step files must be named step-NN-description.md (e.g., step-01-init.md, step-02-context.md)"
|
||||
severity: "medium"
|
||||
|
||||
- id: "halt_before_menu"
|
||||
description: "Steps presenting user menus ([C] Continue, [a] Advanced, etc.) must HALT and wait for response"
|
||||
severity: "high"
|
||||
|
||||
# ============================================
|
||||
# XML WORKFLOW/TASK RULES
|
||||
# ============================================
|
||||
xml_workflows:
|
||||
description: "XML-based workflows and tasks"
|
||||
globs:
|
||||
- "src/**/workflows/**/*.xml"
|
||||
- "src/**/tasks/**/*.xml"
|
||||
rules:
|
||||
- id: "xml_task_id_required"
|
||||
description: "XML tasks must have unique 'id' attribute on root task element"
|
||||
severity: "high"
|
||||
|
||||
- id: "xml_llm_instructions"
|
||||
description: "XML workflows should include <llm> section with critical execution instructions for the agent"
|
||||
severity: "medium"
|
||||
|
||||
- id: "xml_step_numbering"
|
||||
description: "XML steps should use n='X' attribute for sequential numbering"
|
||||
severity: "medium"
|
||||
|
||||
- id: "xml_action_tags"
|
||||
description: "Use <action> for required actions, <ask> for user input (must HALT), <goto> for jumps, <check if='...'> for conditionals"
|
||||
severity: "medium"
|
||||
|
||||
- id: "xml_ask_must_halt"
|
||||
description: "<ask> tags require agent to HALT and wait for user response before continuing"
|
||||
severity: "high"
|
||||
|
||||
# ============================================
|
||||
# WORKFLOW CONTENT QUALITY
|
||||
# ============================================
|
||||
workflow_content:
|
||||
description: "Content quality and consistency rules for all workflow files"
|
||||
globs:
|
||||
- "src/**/workflows/**/*.md"
|
||||
- "src/**/workflows/**/*.yaml"
|
||||
rules:
|
||||
- id: "communication_language_variable"
|
||||
description: "Workflows should use {communication_language} variable for agent output language consistency"
|
||||
severity: "low"
|
||||
|
||||
- id: "path_placeholders_required"
|
||||
description: "Use path placeholders (e.g. {project-root}, {installed_path}, {output_folder}) instead of hardcoded paths"
|
||||
severity: "medium"
|
||||
|
||||
- id: "no_time_estimates"
|
||||
description: "Workflows should NOT include time estimates - AI development speed varies significantly"
|
||||
severity: "low"
|
||||
|
||||
- id: "facilitator_not_generator"
|
||||
description: "Workflow agents should act as facilitators (guide user input) not content generators (create without input)"
|
||||
severity: "medium"
|
||||
|
||||
- id: "no_skip_optimization"
|
||||
description: "Workflows must execute steps sequentially - no skipping or 'optimizing' step order"
|
||||
severity: "high"
|
||||
|
||||
# ============================================
|
||||
# AGENT DEFINITIONS
|
||||
# ============================================
|
||||
agent_definitions:
|
||||
description: "Agent YAML configuration files"
|
||||
globs:
|
||||
- "src/**/*.agent.yaml"
|
||||
rules:
|
||||
- id: "agent_metadata_required"
|
||||
description: "Agent files must have metadata section with id, name, title, icon, and module"
|
||||
severity: "high"
|
||||
|
||||
- id: "agent_persona_required"
|
||||
description: "Agent files must define persona with role, identity, communication_style, and principles"
|
||||
severity: "high"
|
||||
|
||||
- id: "agent_menu_valid_workflows"
|
||||
description: "Menu triggers must reference valid workflow paths that exist"
|
||||
severity: "high"
|
||||
|
||||
# ============================================
|
||||
# TEMPLATES
|
||||
# ============================================
|
||||
templates:
|
||||
description: "Template files for workflow outputs"
|
||||
globs:
|
||||
- "src/**/template*.md"
|
||||
- "src/**/templates/**/*.md"
|
||||
rules:
|
||||
- id: "placeholder_syntax"
|
||||
description: "Use {variable_name} or {{variable_name}} syntax consistently for placeholders"
|
||||
severity: "medium"
|
||||
|
||||
- id: "template_sections_marked"
|
||||
description: "Template sections that need generation should be clearly marked (e.g., <!-- GENERATE: section_name -->)"
|
||||
severity: "low"
|
||||
|
||||
# ============================================
|
||||
# DOCUMENTATION
|
||||
# ============================================
|
||||
documentation:
|
||||
description: "Documentation files"
|
||||
globs:
|
||||
- "docs/**/*.md"
|
||||
- "README.md"
|
||||
- "CONTRIBUTING.md"
|
||||
rules:
|
||||
- id: "valid_internal_links"
|
||||
description: "Internal markdown links must point to existing files"
|
||||
severity: "medium"
|
||||
|
||||
# ============================================
|
||||
# BUILD TOOLS
|
||||
# ============================================
|
||||
build_tools:
|
||||
description: "Build scripts and tooling"
|
||||
globs:
|
||||
- "tools/**"
|
||||
rules:
|
||||
- id: "script_error_handling"
|
||||
description: "Scripts should handle errors gracefully with proper exit codes"
|
||||
severity: "medium"
|
||||
|
|
@ -17,21 +17,66 @@ reviews:
|
|||
base_branches:
|
||||
- main
|
||||
path_filters:
|
||||
# --- Shared baseline: tool configs ---
|
||||
- "!.coderabbit.yaml"
|
||||
- "!.augment/**"
|
||||
- "!eslint.config.mjs"
|
||||
# --- Shared baseline: build output ---
|
||||
- "!dist/**"
|
||||
- "!build/**"
|
||||
- "!coverage/**"
|
||||
# --- Shared baseline: vendored/generated ---
|
||||
- "!**/node_modules/**"
|
||||
- "!**/*.min.js"
|
||||
- "!**/*.generated.*"
|
||||
- "!**/*.bundle.md"
|
||||
# --- Shared baseline: package metadata ---
|
||||
- "!package-lock.json"
|
||||
# --- Shared baseline: binary/media ---
|
||||
- "!*.png"
|
||||
- "!*.jpg"
|
||||
- "!*.svg"
|
||||
# --- Shared baseline: test fixtures ---
|
||||
- "!test/fixtures/**"
|
||||
- "!test/template-test-generator/**"
|
||||
- "!tools/template-test-generator/test-scenarios/**"
|
||||
# --- Shared baseline: non-project dirs ---
|
||||
- "!_bmad*/**"
|
||||
- "!website/**"
|
||||
- "!z*/**"
|
||||
- "!sample-project/**"
|
||||
- "!test-project-install/**"
|
||||
# --- Shared baseline: AI assistant dirs ---
|
||||
- "!.claude/**"
|
||||
- "!.codex/**"
|
||||
- "!.agent/**"
|
||||
- "!.agentvibes/**"
|
||||
- "!.kiro/**"
|
||||
- "!.roo/**"
|
||||
- "!.github/chatmodes/**"
|
||||
# --- Shared baseline: build temp ---
|
||||
- "!.bundler-temp/**"
|
||||
# --- Shared baseline: generated reports ---
|
||||
- "!**/validation-report-*.md"
|
||||
- "!CHANGELOG.md"
|
||||
path_instructions:
|
||||
- path: "**/*"
|
||||
instructions: |
|
||||
Focus on inconsistencies, contradictions, edge cases and serious issues.
|
||||
Avoid commenting on minor issues such as linting, formatting and style issues.
|
||||
When providing code suggestions, use GitHub's suggestion format:
|
||||
```suggestion
|
||||
<code changes>
|
||||
```
|
||||
- path: "**/*.js"
|
||||
instructions: |
|
||||
CLI tooling code. Check for: missing error handling on fs operations,
|
||||
path.join vs string concatenation, proper cleanup in error paths.
|
||||
Flag any process.exit() without error message.
|
||||
You are a cynical, jaded reviewer with zero patience for sloppy work.
|
||||
This PR was submitted by a clueless weasel and you expect to find problems.
|
||||
Be skeptical of everything.
|
||||
Look for what's missing, not just what's wrong.
|
||||
Use a precise, professional tone — no profanity or personal attacks.
|
||||
|
||||
Review with extreme skepticism — assume problems exist.
|
||||
Find at least 10 issues to fix or improve.
|
||||
|
||||
Do NOT:
|
||||
- Comment on formatting, linting, or style
|
||||
- Give "looks good" passes
|
||||
- Anchor on any specific ruleset — reason freely
|
||||
|
||||
If you find zero issues, re-analyze — this is suspicious.
|
||||
chat:
|
||||
auto_reply: true # Response to mentions in comments, a la @coderabbit review
|
||||
issue_enrichment:
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
name: Trigger CodeRabbit on Ready for Review
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
pull_request_target:
|
||||
types: [ready_for_review]
|
||||
|
||||
jobs:
|
||||
|
|
|
|||
|
|
@ -42,7 +42,9 @@ z*/
|
|||
_bmad
|
||||
_bmad-output
|
||||
.clinerules
|
||||
.augment
|
||||
# .augment/ is gitignored except tracked config files — add exceptions explicitly
|
||||
.augment/*
|
||||
!.augment/code_review_guidelines.yaml
|
||||
.crush
|
||||
.cursor
|
||||
.iflow
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
title: "Documentation Style Guide"
|
||||
description: Project-specific documentation conventions based on Google style and Diataxis structure
|
||||
---
|
||||
|
||||
This project adheres to the [Google Developer Documentation Style Guide](https://developers.google.com/style) and uses [Diataxis](https://diataxis.fr/) to structure content. Only project-specific conventions follow.
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
title: "Game Types Reference"
|
||||
description: 24 game type templates with genre-specific GDD sections for BMGD
|
||||
draft: true
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
title: "Quick Flow Workflows"
|
||||
description: Create tech specs and execute implementations with BMGD Quick Flow
|
||||
draft: true
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
title: "BMad Method Customization Guide"
|
||||
description: Customize agents, workflows, and modules while preserving update compatibility
|
||||
---
|
||||
|
||||
The ability to customize the BMad Method and its core to your needs, while still being able to get updates and enhancements is a critical idea within the BMad Ecosystem.
|
||||
|
|
@ -100,7 +101,7 @@ Any custom items you add here will be included in the agents display menu.
|
|||
```yaml
|
||||
menu:
|
||||
- trigger: my-workflow
|
||||
workflow: '{project-root}/my-custom/workflows/my-workflow.yaml'
|
||||
workflow: '{project-root}/my-custom/workflows/my-workflow.md'
|
||||
description: My custom workflow
|
||||
- trigger: deploy
|
||||
action: '#deploy-prompt'
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
title: "Document Sharding Guide"
|
||||
description: Split large markdown files into smaller organized files for better context management
|
||||
---
|
||||
|
||||
Use the `shard-doc` tool if you need to split large markdown files into smaller, organized files for better context management.
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
title: Welcome to the BMad Method
|
||||
description: AI-driven development framework with specialized agents, guided workflows, and intelligent planning
|
||||
---
|
||||
|
||||
The BMad Method (**B**reakthrough **M**ethod of **A**gile AI **D**riven Development) is an AI-driven development framework that helps you build software through the whole process from ideation and planning all the way through agentic implementation. It provides specialized AI agents, guided workflows, and intelligent planning that adapts to your project's complexity, whether you're fixing a bug or building an enterprise platform.
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
title: Agents
|
||||
description: Default BMM agents with their menu triggers and primary workflows
|
||||
---
|
||||
|
||||
This page lists the default BMM (Agile suite) agents that install with BMAD Method, along with their menu triggers and primary workflows.
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
title: Official Modules
|
||||
description: Add-on modules for building custom agents, creative intelligence, game development, and testing
|
||||
---
|
||||
|
||||
BMad extends through official modules that you select during installation. These add-on modules provide specialized agents, workflows, and tasks for specific domains beyond the built-in core and BMM (Agile suite).
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
title: Testing Options
|
||||
description: Built-in QA agent and the standalone Test Architect module for advanced testing
|
||||
---
|
||||
|
||||
# Testing Options
|
||||
|
|
|
|||
|
|
@ -12,11 +12,7 @@ export default [
|
|||
'coverage/**',
|
||||
'**/*.min.js',
|
||||
'test/template-test-generator/**',
|
||||
'test/template-test-generator/**/*.js',
|
||||
'test/template-test-generator/**/*.md',
|
||||
'test/fixtures/**',
|
||||
'test/fixtures/**/*.yaml',
|
||||
'_bmad/**',
|
||||
'_bmad*/**',
|
||||
// Build output
|
||||
'build/**',
|
||||
|
|
@ -36,6 +32,10 @@ export default [
|
|||
'tools/template-test-generator/test-scenarios/**',
|
||||
'src/modules/*/sub-modules/**',
|
||||
'.bundler-temp/**',
|
||||
// Augment vendor config — not project code, naming conventions
|
||||
// are dictated by Augment and can't be changed, so exclude
|
||||
// the entire directory from linting
|
||||
'.augment/**',
|
||||
],
|
||||
},
|
||||
|
||||
|
|
|
|||
|
|
@ -37,7 +37,6 @@
|
|||
"@astrojs/sitemap": "^3.6.0",
|
||||
"@astrojs/starlight": "^0.37.5",
|
||||
"@eslint/js": "^9.33.0",
|
||||
"archiver": "^7.0.1",
|
||||
"astro": "^5.16.0",
|
||||
"c8": "^10.1.3",
|
||||
"eslint": "^9.33.0",
|
||||
|
|
@ -2030,9 +2029,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@isaacs/brace-expansion": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@isaacs/brace-expansion/-/brace-expansion-5.0.0.tgz",
|
||||
"integrity": "sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==",
|
||||
"version": "5.0.1",
|
||||
"resolved": "https://registry.npmjs.org/@isaacs/brace-expansion/-/brace-expansion-5.0.1.tgz",
|
||||
"integrity": "sha512-WMz71T1JS624nWj2n2fnYAuPovhv7EUhk69R6i9dsVyzxt5eM3bjwvgk9L+APE1TRscGysAVMANkB0jh0LQZrQ==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@isaacs/balanced-match": "^4.0.1"
|
||||
|
|
@ -3950,19 +3949,6 @@
|
|||
"win32"
|
||||
]
|
||||
},
|
||||
"node_modules/abort-controller": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz",
|
||||
"integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"event-target-shim": "^5.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.5"
|
||||
}
|
||||
},
|
||||
"node_modules/acorn": {
|
||||
"version": "8.15.0",
|
||||
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz",
|
||||
|
|
@ -4095,131 +4081,6 @@
|
|||
"url": "https://github.com/sponsors/jonschlinkert"
|
||||
}
|
||||
},
|
||||
"node_modules/archiver": {
|
||||
"version": "7.0.1",
|
||||
"resolved": "https://registry.npmjs.org/archiver/-/archiver-7.0.1.tgz",
|
||||
"integrity": "sha512-ZcbTaIqJOfCc03QwD468Unz/5Ir8ATtvAHsK+FdXbDIbGfihqh9mrvdcYunQzqn4HrvWWaFyaxJhGZagaJJpPQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"archiver-utils": "^5.0.2",
|
||||
"async": "^3.2.4",
|
||||
"buffer-crc32": "^1.0.0",
|
||||
"readable-stream": "^4.0.0",
|
||||
"readdir-glob": "^1.1.2",
|
||||
"tar-stream": "^3.0.0",
|
||||
"zip-stream": "^6.0.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 14"
|
||||
}
|
||||
},
|
||||
"node_modules/archiver-utils": {
|
||||
"version": "5.0.2",
|
||||
"resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-5.0.2.tgz",
|
||||
"integrity": "sha512-wuLJMmIBQYCsGZgYLTy5FIB2pF6Lfb6cXMSF8Qywwk3t20zWnAi7zLcQFdKQmIB8wyZpY5ER38x08GbwtR2cLA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"glob": "^10.0.0",
|
||||
"graceful-fs": "^4.2.0",
|
||||
"is-stream": "^2.0.1",
|
||||
"lazystream": "^1.0.0",
|
||||
"lodash": "^4.17.15",
|
||||
"normalize-path": "^3.0.0",
|
||||
"readable-stream": "^4.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 14"
|
||||
}
|
||||
},
|
||||
"node_modules/archiver-utils/node_modules/brace-expansion": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
|
||||
"integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"balanced-match": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/archiver-utils/node_modules/glob": {
|
||||
"version": "10.5.0",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz",
|
||||
"integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==",
|
||||
"dev": true,
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"foreground-child": "^3.1.0",
|
||||
"jackspeak": "^3.1.2",
|
||||
"minimatch": "^9.0.4",
|
||||
"minipass": "^7.1.2",
|
||||
"package-json-from-dist": "^1.0.0",
|
||||
"path-scurry": "^1.11.1"
|
||||
},
|
||||
"bin": {
|
||||
"glob": "dist/esm/bin.mjs"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/isaacs"
|
||||
}
|
||||
},
|
||||
"node_modules/archiver-utils/node_modules/jackspeak": {
|
||||
"version": "3.4.3",
|
||||
"resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz",
|
||||
"integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==",
|
||||
"dev": true,
|
||||
"license": "BlueOak-1.0.0",
|
||||
"dependencies": {
|
||||
"@isaacs/cliui": "^8.0.2"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/isaacs"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"@pkgjs/parseargs": "^0.11.0"
|
||||
}
|
||||
},
|
||||
"node_modules/archiver-utils/node_modules/lru-cache": {
|
||||
"version": "10.4.3",
|
||||
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
|
||||
"integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
|
||||
"dev": true,
|
||||
"license": "ISC"
|
||||
},
|
||||
"node_modules/archiver-utils/node_modules/minimatch": {
|
||||
"version": "9.0.5",
|
||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
|
||||
"integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
|
||||
"dev": true,
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"brace-expansion": "^2.0.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=16 || 14 >=14.17"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/isaacs"
|
||||
}
|
||||
},
|
||||
"node_modules/archiver-utils/node_modules/path-scurry": {
|
||||
"version": "1.11.1",
|
||||
"resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
|
||||
"integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==",
|
||||
"dev": true,
|
||||
"license": "BlueOak-1.0.0",
|
||||
"dependencies": {
|
||||
"lru-cache": "^10.2.0",
|
||||
"minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=16 || 14 >=14.18"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/isaacs"
|
||||
}
|
||||
},
|
||||
"node_modules/arg": {
|
||||
"version": "5.0.2",
|
||||
"resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
|
||||
|
|
@ -4964,21 +4825,6 @@
|
|||
"node": ">= 0.4"
|
||||
}
|
||||
},
|
||||
"node_modules/b4a": {
|
||||
"version": "1.7.3",
|
||||
"resolved": "https://registry.npmjs.org/b4a/-/b4a-1.7.3.tgz",
|
||||
"integrity": "sha512-5Q2mfq2WfGuFp3uS//0s6baOJLMoVduPYVeNmDYxu5OUA1/cBfvr2RIS7vi62LdNj/urk1hfmj867I3qt6uZ7Q==",
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"peerDependencies": {
|
||||
"react-native-b4a": "*"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"react-native-b4a": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/babel-jest": {
|
||||
"version": "30.2.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-30.2.0.tgz",
|
||||
|
|
@ -5132,21 +4978,6 @@
|
|||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/bare-events": {
|
||||
"version": "2.8.2",
|
||||
"resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.8.2.tgz",
|
||||
"integrity": "sha512-riJjyv1/mHLIPX4RwiK+oW9/4c3TEUeORHKefKAKnZ5kyslbN+HXowtbaVEqt4IMUB7OXlfixcs6gsFeo/jhiQ==",
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"peerDependencies": {
|
||||
"bare-abort-controller": "*"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"bare-abort-controller": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/base-64": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/base-64/-/base-64-1.0.0.tgz",
|
||||
|
|
@ -5356,16 +5187,6 @@
|
|||
"ieee754": "^1.1.13"
|
||||
}
|
||||
},
|
||||
"node_modules/buffer-crc32": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-1.0.0.tgz",
|
||||
"integrity": "sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=8.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/buffer-from": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
|
||||
|
|
@ -5864,23 +5685,6 @@
|
|||
"dev": true,
|
||||
"license": "ISC"
|
||||
},
|
||||
"node_modules/compress-commons": {
|
||||
"version": "6.0.2",
|
||||
"resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-6.0.2.tgz",
|
||||
"integrity": "sha512-6FqVXeETqWPoGcfzrXb37E50NP0LXT8kAMu5ooZayhWWdgEY4lBEEcbQNXtkuKQsGduxiIcI4gOTsxTmuq/bSg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"crc-32": "^1.2.0",
|
||||
"crc32-stream": "^6.0.0",
|
||||
"is-stream": "^2.0.1",
|
||||
"normalize-path": "^3.0.0",
|
||||
"readable-stream": "^4.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 14"
|
||||
}
|
||||
},
|
||||
"node_modules/concat-map": {
|
||||
"version": "0.0.1",
|
||||
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
|
||||
|
|
@ -5937,40 +5741,6 @@
|
|||
"url": "https://opencollective.com/core-js"
|
||||
}
|
||||
},
|
||||
"node_modules/core-util-is": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
|
||||
"integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==",
|
||||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/crc-32": {
|
||||
"version": "1.2.2",
|
||||
"resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz",
|
||||
"integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==",
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"bin": {
|
||||
"crc32": "bin/crc32.njs"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=0.8"
|
||||
}
|
||||
},
|
||||
"node_modules/crc32-stream": {
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-6.0.0.tgz",
|
||||
"integrity": "sha512-piICUB6ei4IlTv1+653yq5+KoqfBYmj9bw6LqXoOneTMDXk5nM1qt12mFW1caG3LlJXEKW1Bp0WggEmIfQB34g==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"crc-32": "^1.2.0",
|
||||
"readable-stream": "^4.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 14"
|
||||
}
|
||||
},
|
||||
"node_modules/cross-spawn": {
|
||||
"version": "7.0.6",
|
||||
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
|
||||
|
|
@ -7090,16 +6860,6 @@
|
|||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/event-target-shim": {
|
||||
"version": "5.0.1",
|
||||
"resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz",
|
||||
"integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/eventemitter3": {
|
||||
"version": "5.0.4",
|
||||
"resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.4.tgz",
|
||||
|
|
@ -7107,26 +6867,6 @@
|
|||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/events": {
|
||||
"version": "3.3.0",
|
||||
"resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
|
||||
"integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=0.8.x"
|
||||
}
|
||||
},
|
||||
"node_modules/events-universal": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/events-universal/-/events-universal-1.0.1.tgz",
|
||||
"integrity": "sha512-LUd5euvbMLpwOF8m6ivPCbhQeSiYVNb8Vs0fQ8QjXo0JTkEHpz8pxdQf0gStltaPpw0Cca8b39KxvK9cfKRiAw==",
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
"bare-events": "^2.7.0"
|
||||
}
|
||||
},
|
||||
"node_modules/execa": {
|
||||
"version": "5.1.1",
|
||||
"resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
|
||||
|
|
@ -7212,13 +6952,6 @@
|
|||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/fast-fifo": {
|
||||
"version": "1.3.2",
|
||||
"resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz",
|
||||
"integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==",
|
||||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/fast-glob": {
|
||||
"version": "3.3.3",
|
||||
"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz",
|
||||
|
|
@ -8545,13 +8278,6 @@
|
|||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/isarray": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
|
||||
"integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
|
||||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/isexe": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
|
||||
|
|
@ -9628,52 +9354,6 @@
|
|||
"node": ">= 8"
|
||||
}
|
||||
},
|
||||
"node_modules/lazystream": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz",
|
||||
"integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"readable-stream": "^2.0.5"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.6.3"
|
||||
}
|
||||
},
|
||||
"node_modules/lazystream/node_modules/readable-stream": {
|
||||
"version": "2.3.8",
|
||||
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
|
||||
"integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"core-util-is": "~1.0.0",
|
||||
"inherits": "~2.0.3",
|
||||
"isarray": "~1.0.0",
|
||||
"process-nextick-args": "~2.0.0",
|
||||
"safe-buffer": "~5.1.1",
|
||||
"string_decoder": "~1.1.1",
|
||||
"util-deprecate": "~1.0.1"
|
||||
}
|
||||
},
|
||||
"node_modules/lazystream/node_modules/safe-buffer": {
|
||||
"version": "5.1.2",
|
||||
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
|
||||
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
|
||||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/lazystream/node_modules/string_decoder": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
|
||||
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"safe-buffer": "~5.1.0"
|
||||
}
|
||||
},
|
||||
"node_modules/leven": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz",
|
||||
|
|
@ -9830,13 +9510,6 @@
|
|||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/lodash": {
|
||||
"version": "4.17.23",
|
||||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.23.tgz",
|
||||
"integrity": "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==",
|
||||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/lodash.iteratee": {
|
||||
"version": "4.7.0",
|
||||
"resolved": "https://registry.npmjs.org/lodash.iteratee/-/lodash.iteratee-4.7.0.tgz",
|
||||
|
|
@ -12328,23 +12001,6 @@
|
|||
"node": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/process": {
|
||||
"version": "0.11.10",
|
||||
"resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
|
||||
"integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">= 0.6.0"
|
||||
}
|
||||
},
|
||||
"node_modules/process-nextick-args": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
|
||||
"integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
|
||||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/prompts": {
|
||||
"version": "2.4.2",
|
||||
"resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz",
|
||||
|
|
@ -12442,81 +12098,6 @@
|
|||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/readable-stream": {
|
||||
"version": "4.7.0",
|
||||
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.7.0.tgz",
|
||||
"integrity": "sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"abort-controller": "^3.0.0",
|
||||
"buffer": "^6.0.3",
|
||||
"events": "^3.3.0",
|
||||
"process": "^0.11.10",
|
||||
"string_decoder": "^1.3.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/readable-stream/node_modules/buffer": {
|
||||
"version": "6.0.3",
|
||||
"resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
|
||||
"integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
|
||||
"dev": true,
|
||||
"funding": [
|
||||
{
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/feross"
|
||||
},
|
||||
{
|
||||
"type": "patreon",
|
||||
"url": "https://www.patreon.com/feross"
|
||||
},
|
||||
{
|
||||
"type": "consulting",
|
||||
"url": "https://feross.org/support"
|
||||
}
|
||||
],
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"base64-js": "^1.3.1",
|
||||
"ieee754": "^1.2.1"
|
||||
}
|
||||
},
|
||||
"node_modules/readdir-glob": {
|
||||
"version": "1.1.3",
|
||||
"resolved": "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.3.tgz",
|
||||
"integrity": "sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==",
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
"minimatch": "^5.1.0"
|
||||
}
|
||||
},
|
||||
"node_modules/readdir-glob/node_modules/brace-expansion": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
|
||||
"integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"balanced-match": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/readdir-glob/node_modules/minimatch": {
|
||||
"version": "5.1.6",
|
||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
|
||||
"integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
|
||||
"dev": true,
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"brace-expansion": "^2.0.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
}
|
||||
},
|
||||
"node_modules/readdirp": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-5.0.0.tgz",
|
||||
|
|
@ -13517,18 +13098,6 @@
|
|||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/streamx": {
|
||||
"version": "2.23.0",
|
||||
"resolved": "https://registry.npmjs.org/streamx/-/streamx-2.23.0.tgz",
|
||||
"integrity": "sha512-kn+e44esVfn2Fa/O0CPFcex27fjIL6MkVae0Mm6q+E6f0hWv578YCERbv+4m02cjxvDsPKLnmxral/rR6lBMAg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"events-universal": "^1.0.0",
|
||||
"fast-fifo": "^1.3.2",
|
||||
"text-decoder": "^1.1.0"
|
||||
}
|
||||
},
|
||||
"node_modules/string_decoder": {
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
|
||||
|
|
@ -13870,18 +13439,6 @@
|
|||
"url": "https://opencollective.com/webpack"
|
||||
}
|
||||
},
|
||||
"node_modules/tar-stream": {
|
||||
"version": "3.1.7",
|
||||
"resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz",
|
||||
"integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"b4a": "^1.6.4",
|
||||
"fast-fifo": "^1.2.0",
|
||||
"streamx": "^2.15.0"
|
||||
}
|
||||
},
|
||||
"node_modules/test-exclude": {
|
||||
"version": "7.0.1",
|
||||
"resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-7.0.1.tgz",
|
||||
|
|
@ -13984,16 +13541,6 @@
|
|||
"url": "https://github.com/sponsors/isaacs"
|
||||
}
|
||||
},
|
||||
"node_modules/text-decoder": {
|
||||
"version": "1.2.3",
|
||||
"resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.3.tgz",
|
||||
"integrity": "sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==",
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
"b4a": "^1.6.4"
|
||||
}
|
||||
},
|
||||
"node_modules/tiny-inflate": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.3.tgz",
|
||||
|
|
@ -15144,21 +14691,6 @@
|
|||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/zip-stream": {
|
||||
"version": "6.0.1",
|
||||
"resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-6.0.1.tgz",
|
||||
"integrity": "sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"archiver-utils": "^5.0.0",
|
||||
"compress-commons": "^6.0.2",
|
||||
"readable-stream": "^4.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 14"
|
||||
}
|
||||
},
|
||||
"node_modules/zod": {
|
||||
"version": "3.25.76",
|
||||
"resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz",
|
||||
|
|
|
|||
|
|
@ -38,5 +38,5 @@ agent:
|
|||
description: "[CB] Create Brief: A guided experience to nail down your product idea into an executive brief"
|
||||
|
||||
- trigger: DP or fuzzy match on document-project
|
||||
workflow: "{project-root}/_bmad/bmm/workflows/document-project/workflow.yaml"
|
||||
workflow: "{project-root}/_bmad/bmm/workflows/document-project/workflow.md"
|
||||
description: "[DP] Document Project: Analyze an existing project to produce useful documentation for both human and LLM"
|
||||
|
|
|
|||
|
|
@ -29,9 +29,9 @@ agent:
|
|||
|
||||
menu:
|
||||
- trigger: DS or fuzzy match on dev-story
|
||||
workflow: "{project-root}/_bmad/bmm/workflows/4-implementation/dev-story/workflow.yaml"
|
||||
workflow: "{project-root}/_bmad/bmm/workflows/4-implementation/dev-story/workflow.md"
|
||||
description: "[DS] Dev Story: Write the next or specified stories tests and code."
|
||||
|
||||
- trigger: CR or fuzzy match on code-review
|
||||
workflow: "{project-root}/_bmad/bmm/workflows/4-implementation/code-review/workflow.yaml"
|
||||
workflow: "{project-root}/_bmad/bmm/workflows/4-implementation/code-review/workflow.md"
|
||||
description: "[CR] Code Review: Initiate a comprehensive code review across multiple quality facets. For best results, use a fresh context and a different quality LLM if available"
|
||||
|
|
|
|||
|
|
@ -39,5 +39,5 @@ agent:
|
|||
description: "[IR] Implementation Readiness: Ensure the PRD, UX, and Architecture and Epics and Stories List are all aligned"
|
||||
|
||||
- trigger: CC or fuzzy match on correct-course
|
||||
workflow: "{project-root}/_bmad/bmm/workflows/4-implementation/correct-course/workflow.yaml"
|
||||
workflow: "{project-root}/_bmad/bmm/workflows/4-implementation/correct-course/workflow.md"
|
||||
description: "[CC] Course Correction: Use this so we can determine how to proceed if major need for change is discovered mid implementation"
|
||||
|
|
|
|||
|
|
@ -27,5 +27,5 @@ agent:
|
|||
description: "[QD] Quick-flow Develop: Implement a story tech spec end-to-end (Core of Quick Flow)"
|
||||
|
||||
- trigger: CR or fuzzy match on code-review
|
||||
workflow: "{project-root}/_bmad/bmm/workflows/4-implementation/code-review/workflow.yaml"
|
||||
workflow: "{project-root}/_bmad/bmm/workflows/4-implementation/code-review/workflow.md"
|
||||
description: "[CR] Code Review: Initiate a comprehensive code review across multiple quality facets. For best results, use a fresh context and a different quality LLM if available"
|
||||
|
|
|
|||
|
|
@ -19,18 +19,18 @@ agent:
|
|||
|
||||
menu:
|
||||
- trigger: SP or fuzzy match on sprint-planning
|
||||
workflow: "{project-root}/_bmad/bmm/workflows/4-implementation/sprint-planning/workflow.yaml"
|
||||
workflow: "{project-root}/_bmad/bmm/workflows/4-implementation/sprint-planning/workflow.md"
|
||||
description: "[SP] Sprint Planning: Generate or update the record that will sequence the tasks to complete the full project that the dev agent will follow"
|
||||
|
||||
- trigger: CS or fuzzy match on create-story
|
||||
workflow: "{project-root}/_bmad/bmm/workflows/4-implementation/create-story/workflow.yaml"
|
||||
workflow: "{project-root}/_bmad/bmm/workflows/4-implementation/create-story/workflow.md"
|
||||
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
|
||||
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"
|
||||
description: "[ER] Epic Retrospective: Party Mode review of all work completed across an epic."
|
||||
|
||||
- trigger: CC or fuzzy match on correct-course
|
||||
workflow: "{project-root}/_bmad/bmm/workflows/4-implementation/correct-course/workflow.yaml"
|
||||
workflow: "{project-root}/_bmad/bmm/workflows/4-implementation/correct-course/workflow.md"
|
||||
description: "[CC] Course Correction: Use this so we can determine how to proceed if major need for change is discovered mid implementation"
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ agent:
|
|||
|
||||
menu:
|
||||
- trigger: DP or fuzzy match on document-project
|
||||
workflow: "{project-root}/_bmad/bmm/workflows/document-project/workflow.yaml"
|
||||
workflow: "{project-root}/_bmad/bmm/workflows/document-project/workflow.md"
|
||||
description: "[DP] Document Project: Generate comprehensive project documentation (brownfield analysis, architecture scanning)"
|
||||
|
||||
- trigger: WD or fuzzy match on write-document
|
||||
|
|
|
|||
|
|
@ -1,32 +1,31 @@
|
|||
module,phase,name,code,sequence,workflow-file,command,required,agent,options,description,output-location,outputs,
|
||||
bmm,anytime,Document Project,DP,10,_bmad/bmm/workflows/document-project/workflow.md,bmad-bmm-document-project,false,analyst,Create Mode,"Analyze an existing project to produce useful documentation",project-knowledge,*,
|
||||
bmm,anytime,Quick Spec,TS,20,_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 utilities without extensive planning",planning_artifacts,"tech spec",
|
||||
bmm,anytime,Quick Dev,QD,30,_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,Correct Course,CC,40,_bmad/bmm/workflows/4-implementation/correct-course/workflow.md,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,Document Project,DP,,_bmad/bmm/workflows/document-project/workflow.md,bmad-bmm-document-project,false,analyst,Create Mode,"Analyze an existing project to produce useful documentation",project-knowledge,*,
|
||||
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 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,Correct Course,CC,,_bmad/bmm/workflows/4-implementation/correct-course/workflow.md,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,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,Mermaid Generate,MG,,_bmad/bmm/agents/tech-writer/tech-writer.agent.yaml,,false,tech-writer,,"Create a Mermaid diagram based on user description. Will suggest diagram types if not specified.",planning_artifacts,"mermaid diagram",
|
||||
bmm,anytime,Validate Document,VD,,_bmad/bmm/agents/tech-writer/tech-writer.agent.yaml,,false,tech-writer,,"Review the specified document against documentation standards and best practices. Returns specific actionable improvement suggestions organized by priority.",planning_artifacts,"validation report",
|
||||
bmm,anytime,Explain Concept,EC,,_bmad/bmm/agents/tech-writer/tech-writer.agent.yaml,,false,tech-writer,,"Create clear technical explanations with examples and diagrams for complex concepts. Breaks down into digestible sections using task-oriented approach.",project_knowledge,"explanation",
|
||||
bmm,1-analysis,Brainstorm Project,BP,10,_bmad/core/workflows/brainstorming/workflow.md,bmad-brainstorming,false,analyst,data=_bmad/bmm/data/project-context-template.md,"Expert Guided Facilitation through a single or multiple techniques",planning_artifacts,"brainstorming session",
|
||||
bmm,1-analysis,Market Research,MR,20,_bmad/bmm/workflows/1-analysis/research/workflow.md,bmad-bmm-research,false,analyst,Create Mode research_type=market,"Market analysis competitive landscape customer needs and trends","planning_artifacts|project-knowledge","research documents"
|
||||
bmm,1-analysis,Domain Research,DR,21,_bmad/bmm/workflows/1-analysis/research/workflow.md,bmad-bmm-research,false,analyst,Create Mode research_type=domain,"Industry domain deep dive subject matter expertise and terminology","planning_artifacts|project-knowledge","research documents"
|
||||
bmm,1-analysis,Technical Research,TR,22,_bmad/bmm/workflows/1-analysis/research/workflow.md,bmad-bmm-research,false,analyst,Create Mode research_type=technical,"Technical feasibility architecture options and implementation approaches","planning_artifacts|project-knowledge","research documents"
|
||||
bmm,1-analysis,Create Brief,CB,30,_bmad/bmm/workflows/1-analysis/create-product-brief/workflow.md,bmad-bmm-create-brief,false,analyst,Create Mode,"A guided experience to nail down your product idea",planning_artifacts,"product brief",
|
||||
bmm,1-analysis,Validate Brief,VB,40,_bmad/bmm/workflows/1-analysis/create-product-brief/workflow.md,bmad-bmm-validate-brief,false,analyst,Validate Mode,"Validates product brief completeness",planning_artifacts,"brief validation report",
|
||||
bmm,2-planning,Create PRD,CP,10,_bmad/bmm/workflows/2-plan-workflows/create-prd/workflow.md,bmad-bmm-prd,true,pm,Create Mode,"Expert led facilitation to produce your Product Requirements Document",planning_artifacts,prd,
|
||||
bmm,2-planning,Validate PRD,VP,20,_bmad/bmm/workflows/2-plan-workflows/create-prd/workflow.md,bmad-bmm-prd,false,pm,Validate Mode,"Validate PRD is comprehensive lean well organized and cohesive",planning_artifacts,"prd validation report",
|
||||
bmm,1-analysis,Market Research,MR,20,_bmad/bmm/workflows/1-analysis/research/workflow-market-research.md,bmad-bmm-market-research,false,analyst,Create Mode,"Market analysis competitive landscape customer needs and trends","planning_artifacts|project-knowledge","research documents",
|
||||
bmm,1-analysis,Domain Research,DR,21,_bmad/bmm/workflows/1-analysis/research/workflow-domain-research.md,bmad-bmm-domain-research,false,analyst,Create Mode,"Industry domain deep dive subject matter expertise and terminology","planning_artifacts|project_knowledge","research documents",
|
||||
bmm,1-analysis,Technical Research,TR,22,_bmad/bmm/workflows/1-analysis/research/workflow-technical-research.md,bmad-bmm-technical-research,false,analyst,Create Mode,"Technical feasibility architecture options and implementation approaches","planning_artifacts|project_knowledge","research documents",
|
||||
bmm,1-analysis,Create Brief,CB,30,_bmad/bmm/workflows/1-analysis/create-product-brief/workflow.md,bmad-bmm-create-product-brief,false,analyst,Create Mode,"A guided experience to nail down your product idea",planning_artifacts,"product brief",
|
||||
bmm,2-planning,Create PRD,CP,10,_bmad/bmm/workflows/2-plan-workflows/create-prd/workflow-create-prd.md,bmad-bmm-create-prd,true,pm,Create Mode,"Expert led facilitation to produce your Product Requirements Document",planning_artifacts,prd,
|
||||
bmm,2-planning,Validate PRD,VP,20,_bmad/bmm/workflows/2-plan-workflows/create-prd/workflow-validate-prd.md,bmad-bmm-validate-prd,false,pm,Validate Mode,"Validate PRD is comprehensive lean well organized and cohesive",planning_artifacts,"prd validation report",
|
||||
bmm,2-planning,Edit PRD,EP,25,_bmad/bmm/workflows/2-plan-workflows/create-prd/workflow-edit-prd.md,bmad-bmm-edit-prd,false,pm,Edit Mode,"Improve and enhance an existing PRD",planning_artifacts,"updated prd",
|
||||
bmm,2-planning,Create UX,CU,30,_bmad/bmm/workflows/2-plan-workflows/create-ux-design/workflow.md,bmad-bmm-create-ux-design,false,ux-designer,Create Mode,"Guidance through realizing the plan for your UX, strongly recommended if a UI is a primary piece of the proposed project",planning_artifacts,"ux design",
|
||||
bmm,2-planning,Validate UX,VU,40,_bmad/bmm/workflows/2-plan-workflows/create-ux-design/workflow.md,bmad-bmm-create-ux-design,false,ux-designer,Validate Mode,"Validates UX design deliverables",planning_artifacts,"ux validation report",
|
||||
,anytime,Create Dataflow,CDF,50,_bmad/bmm/workflows/excalidraw-diagrams/create-dataflow/workflow.md,bmad-bmm-create-excalidraw-dataflow,false,ux-designer,Create Mode,"Create data flow diagrams (DFD) in Excalidraw format - can be called standalone or during any workflow to add visual documentation",planning_artifacts,"dataflow diagram",
|
||||
,anytime,Create Diagram,CED,51,_bmad/bmm/workflows/excalidraw-diagrams/create-diagram/workflow.md,bmad-bmm-create-excalidraw-diagram,false,ux-designer,Create Mode,"Create system architecture diagrams ERDs UML diagrams or general technical diagrams in Excalidraw format - use anytime or call from architecture workflow to add visual documentation",planning_artifacts,"diagram",
|
||||
,anytime,Create Flowchart,CFC,52,_bmad/bmm/workflows/excalidraw-diagrams/create-flowchart/workflow.md,bmad-bmm-create-excalidraw-flowchart,false,ux-designer,Create Mode,"Create a flowchart visualization in Excalidraw format for processes pipelines or logic flows - use anytime or during architecture to add process documentation",planning_artifacts,"flowchart",
|
||||
,anytime,Create Wireframe,CEW,53,_bmad/bmm/workflows/excalidraw-diagrams/create-wireframe/workflow.md,bmad-bmm-create-excalidraw-wireframe,false,ux-designer,Create Mode,"Create website or app wireframes in Excalidraw format - use anytime standalone or call from UX workflow to add UI mockups",planning_artifacts,"wireframe",
|
||||
bmm,3-solutioning,Create Architecture,CA,10,_bmad/bmm/workflows/3-solutioning/create-architecture/workflow.md,bmad-bmm-create-architecture,true,architect,Create Mode,"Guided Workflow to document technical decisions",planning_artifacts,architecture,
|
||||
bmm,3-solutioning,Validate Architecture,VA,20,_bmad/bmm/workflows/3-solutioning/create-architecture/workflow.md,bmad-bmm-create-architecture,false,architect,Validate Mode,"Validates architecture completeness",planning_artifacts,"architecture validation report",
|
||||
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,Validate Epics and Stories,VE,40,_bmad/bmm/workflows/3-solutioning/create-epics-and-stories/workflow.md,bmad-bmm-create-epics-and-stories,false,pm,Validate Mode,"Validates epics and stories completeness",planning_artifacts,"epics validation report",
|
||||
bmm,3-solutioning,Test Design,TD,50,_bmad/bmm/workflows/testarch/test-design/workflow.md,bmad-bmm-testarch-test-design,false,tea,Create Mode,"Create comprehensive test scenarios ahead of development, recommended if string test compliance or assurance is needed. Very critical for distributed applications with separate front ends and backends outside of a monorepo.",planning_artifacts,"test design",
|
||||
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.md,bmad-bmm-sprint-planning,true,sm,Create Mode,"Generate sprint plan for development tasks - this kicks off the implementation phase by producing a plan the implementation agents will follow in sequence for every story in the plan.",implementation_artifacts,"sprint status",
|
||||
bmm,4-implementation,Sprint Status,SS,20,_bmad/bmm/workflows/4-implementation/sprint-status/workflow.md,bmad-bmm-sprint-status,false,sm,Create Mode,"Anytime: Summarize sprint status and route to next workflow",,,
|
||||
bmm,4-implementation,Create Story,CS,30,_bmad/bmm/workflows/4-implementation/create-story/workflow.md,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,Validate Story,VS,35,_bmad/bmm/workflows/4-implementation/create-story/workflow.md,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.md,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.md,bmad-bmm-dev-story,true,dev,Create Mode,"Story cycle: Execute story implementation tasks and tests then CR then back to DS if fixes needed",,,
|
||||
bmm,4-implementation,Code Review,CR,50,_bmad/bmm/workflows/4-implementation/code-review/workflow.md,bmad-bmm-code-review,false,dev,Create Mode,"Story cycle: If issues back to DS if approved then next CS or ER if epic complete",,,
|
||||
bmm,4-implementation,QA Automation Test,QA,45,_bmad/bmm/workflows/qa/automate/workflow.md,bmad-bmm-qa-automate,false,qa,Create Mode,"Generate automated API and E2E tests for implemented code using the project's existing test framework (detects existing well known in use test frameworks). Use after implementation to add test coverage. NOT for code review or story validation - use CR for that.",implementation_artifacts,"test suite",
|
||||
bmm,4-implementation,Retrospective,ER,60,_bmad/bmm/workflows/4-implementation/retrospective/workflow.md,bmad-bmm-retrospective,false,sm,Create Mode,"Optional at epic end: Review completed work lessons learned and next epic or if major issues consider CC",implementation_artifacts,retrospective,
|
||||
|
|
|
|||
|
Can't render this file because it has a wrong number of fields in line 7.
|
|
|
@ -7,7 +7,7 @@ nextStepFile: './step-03-users.md'
|
|||
outputFile: '{planning_artifacts}/product-brief-{{project_name}}-{{date}}.md'
|
||||
|
||||
# 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'
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ nextStepFile: './step-04-metrics.md'
|
|||
outputFile: '{planning_artifacts}/product-brief-{{project_name}}-{{date}}.md'
|
||||
|
||||
# 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'
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ nextStepFile: './step-05-scope.md'
|
|||
outputFile: '{planning_artifacts}/product-brief-{{project_name}}-{{date}}.md'
|
||||
|
||||
# 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'
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ nextStepFile: './step-06-complete.md'
|
|||
outputFile: '{planning_artifacts}/product-brief-{{project_name}}-{{date}}.md'
|
||||
|
||||
# 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'
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ projectTypesCSV: '../data/project-types.csv'
|
|||
domainComplexityCSV: '../data/domain-complexity.csv'
|
||||
|
||||
# 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'
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ nextStepFile: './step-04-journeys.md'
|
|||
outputFile: '{planning_artifacts}/prd.md'
|
||||
|
||||
# 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'
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ nextStepFile: './step-05-domain.md'
|
|||
outputFile: '{planning_artifacts}/prd.md'
|
||||
|
||||
# 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'
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ outputFile: '{planning_artifacts}/prd.md'
|
|||
domainComplexityCSV: '../data/domain-complexity.csv'
|
||||
|
||||
# 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'
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ outputFile: '{planning_artifacts}/prd.md'
|
|||
projectTypesCSV: '../data/project-types.csv'
|
||||
|
||||
# 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'
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ outputFile: '{planning_artifacts}/prd.md'
|
|||
projectTypesCSV: '../data/project-types.csv'
|
||||
|
||||
# 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'
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ nextStepFile: './step-09-functional.md'
|
|||
outputFile: '{planning_artifacts}/prd.md'
|
||||
|
||||
# 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'
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ nextStepFile: './step-10-nonfunctional.md'
|
|||
outputFile: '{planning_artifacts}/prd.md'
|
||||
|
||||
# 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'
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ nextStepFile: './step-11-polish.md'
|
|||
outputFile: '{planning_artifacts}/prd.md'
|
||||
|
||||
# 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'
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ outputFile: '{planning_artifacts}/prd.md'
|
|||
purposeFile: '../data/prd-purpose.md'
|
||||
|
||||
# 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'
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ description: 'Discovery & Understanding - Understand what user wants to edit and
|
|||
|
||||
# File references (ONLY variables used in this step)
|
||||
altStepFile: './step-e-01b-legacy-conversion.md'
|
||||
prdPurpose: '{project-root}/src/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.md'
|
||||
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
|
||||
---
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ description: 'Deep Review & Analysis - Thoroughly review existing PRD and prepar
|
|||
nextStepFile: './step-e-03-edit.md'
|
||||
prdFile: '{prd_file_path}'
|
||||
validationReport: '{validation_report_path}' # If provided
|
||||
prdPurpose: '{project-root}/src/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.md'
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -4,9 +4,9 @@ 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.xml'
|
||||
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md'
|
||||
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
|
||||
prdPurpose: '../data/prd-purpose.md'
|
||||
prdPurpose: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/data/prd-purpose.md'
|
||||
---
|
||||
|
||||
# Step 1: Document Discovery & Confirmation
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ description: 'SMART Requirements Validation - Validate Functional Requirements m
|
|||
nextStepFile: './step-v-11-holistic-quality-validation.md'
|
||||
prdFile: '{prd_file_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
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ description: 'Holistic Quality Assessment - Assess PRD as cohesive, compelling d
|
|||
nextStepFile: './step-v-12-completeness-validation.md'
|
||||
prdFile: '{prd_file_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
|
||||
|
|
|
|||
|
|
@ -30,7 +30,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.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
|
||||
- PROTOCOLS always return to this step's A/P/C menu
|
||||
- User accepts/rejects protocol changes before proceeding
|
||||
|
|
|
|||
|
|
@ -30,7 +30,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.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
|
||||
- PROTOCOLS always return to this step's A/P/C menu
|
||||
- User accepts/rejects protocol changes before proceeding
|
||||
|
|
@ -161,7 +161,7 @@ Show the generated core experience content and present choices:
|
|||
|
||||
#### 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
|
||||
- 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
|
||||
|
|
|
|||
|
|
@ -30,7 +30,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.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
|
||||
- PROTOCOLS always return to this step's A/P/C menu
|
||||
- User accepts/rejects protocol changes before proceeding
|
||||
|
|
@ -164,7 +164,7 @@ Show the generated emotional response content and present choices:
|
|||
|
||||
#### 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
|
||||
- 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
|
||||
|
|
|
|||
|
|
@ -30,7 +30,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.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
|
||||
- PROTOCOLS always return to this step's A/P/C menu
|
||||
- User accepts/rejects protocol changes before proceeding
|
||||
|
|
@ -179,7 +179,7 @@ Show the generated inspiration analysis content and present choices:
|
|||
|
||||
#### 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
|
||||
- Ask user: "Accept these improvements to the inspiration analysis? (y/n)"
|
||||
- If yes: Update content with improvements, then return to A/P/C menu
|
||||
|
|
|
|||
|
|
@ -30,7 +30,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.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
|
||||
- PROTOCOLS always return to this step's A/P/C menu
|
||||
- User accepts/rejects protocol changes before proceeding
|
||||
|
|
@ -197,7 +197,7 @@ Show the generated design system content and present choices:
|
|||
|
||||
#### 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
|
||||
- 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
|
||||
|
|
|
|||
|
|
@ -30,7 +30,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.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
|
||||
- PROTOCOLS always return to this step's A/P/C menu
|
||||
- User accepts/rejects protocol changes before proceeding
|
||||
|
|
@ -199,7 +199,7 @@ Show the generated defining experience content and present choices:
|
|||
|
||||
#### 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
|
||||
- Ask user: "Accept these improvements to the defining experience? (y/n)"
|
||||
- If yes: Update content with improvements, then return to A/P/C menu
|
||||
|
|
|
|||
|
|
@ -30,7 +30,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.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
|
||||
- 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 visual foundation content and present choices:
|
|||
|
||||
#### 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
|
||||
- Ask user: "Accept these improvements to the visual foundation? (y/n)"
|
||||
- If yes: Update content with improvements, then return to A/P/C menu
|
||||
|
|
|
|||
|
|
@ -30,7 +30,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.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
|
||||
- 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 design direction content and present choices:
|
|||
|
||||
#### 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
|
||||
- Ask user: "Accept these improvements to the design direction? (y/n)"
|
||||
- If yes: Update content with improvements, then return to A/P/C menu
|
||||
|
|
|
|||
|
|
@ -30,7 +30,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.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
|
||||
- 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 user journey content and present choices:
|
|||
|
||||
#### 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
|
||||
- Ask user: "Accept these improvements to the user journeys? (y/n)"
|
||||
- If yes: Update content with improvements, then return to A/P/C menu
|
||||
|
|
|
|||
|
|
@ -30,7 +30,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.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
|
||||
- PROTOCOLS always return to this step's A/P/C menu
|
||||
- User accepts/rejects protocol changes before proceeding
|
||||
|
|
@ -193,7 +193,7 @@ Show the generated component strategy content and present choices:
|
|||
|
||||
#### 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
|
||||
- Ask user: "Accept these improvements to the component strategy? (y/n)"
|
||||
- If yes: Update content with improvements, then return to A/P/C menu
|
||||
|
|
|
|||
|
|
@ -30,7 +30,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.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
|
||||
- PROTOCOLS always return to this step's A/P/C menu
|
||||
- User accepts/rejects protocol changes before proceeding
|
||||
|
|
@ -182,7 +182,7 @@ Show the generated UX patterns content and present choices:
|
|||
|
||||
#### 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
|
||||
- Ask user: "Accept these improvements to the UX patterns? (y/n)"
|
||||
- If yes: Update content with improvements, then return to A/P/C menu
|
||||
|
|
|
|||
|
|
@ -30,7 +30,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.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
|
||||
- PROTOCOLS always return to this step's A/P/C menu
|
||||
- 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):
|
||||
|
||||
- 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
|
||||
- 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
|
||||
|
|
|
|||
|
|
@ -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.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
|
||||
- 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
|
||||
|
|
@ -170,7 +170,7 @@ Show the generated content and present choices:
|
|||
|
||||
#### 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
|
||||
- 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
|
||||
|
|
|
|||
|
|
@ -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.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
|
||||
- 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
|
||||
|
|
@ -277,7 +277,7 @@ Show the generated content and present choices:
|
|||
|
||||
#### 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
|
||||
- Ask user: "Accept these changes to the starter template evaluation? (y/n)"
|
||||
- If yes: Update content, then return to A/P/C menu
|
||||
|
|
|
|||
|
|
@ -32,7 +32,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.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
|
||||
- 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
|
||||
|
|
@ -264,7 +264,7 @@ Show the generated decisions content and present choices:
|
|||
|
||||
#### 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
|
||||
- Ask user: "Accept these enhancements to the architectural decisions? (y/n)"
|
||||
- If yes: Update content, 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.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
|
||||
- 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
|
||||
|
|
@ -305,7 +305,7 @@ Show the generated patterns content and present choices:
|
|||
|
||||
#### 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
|
||||
- Ask user: "Accept these additional pattern refinements? (y/n)"
|
||||
- If yes: Update content, 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.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
|
||||
- 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
|
||||
|
|
@ -325,7 +325,7 @@ Show the generated project structure content and present choices:
|
|||
|
||||
#### 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
|
||||
- Ask user: "Accept these changes to the project structure? (y/n)"
|
||||
- If yes: Update content, 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.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
|
||||
- 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
|
||||
|
|
@ -305,7 +305,7 @@ Show the validation results and present choices:
|
|||
|
||||
#### 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
|
||||
- Ask user: "Accept these architectural improvements? (y/n)"
|
||||
- If yes: Update content, then return to A/P/C menu
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ outputFile: '{planning_artifacts}/epics.md'
|
|||
epicsTemplate: '{workflow_path}/templates/epics-template.md'
|
||||
|
||||
# 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'
|
||||
|
||||
# Template References
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ workflowFile: '{workflow_path}/workflow.md'
|
|||
outputFile: '{planning_artifacts}/epics.md'
|
||||
|
||||
# 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'
|
||||
|
||||
# Template References
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ workflowFile: '{workflow_path}/workflow.md'
|
|||
outputFile: '{planning_artifacts}/epics.md'
|
||||
|
||||
# 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'
|
||||
|
||||
# Template References
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ workflowFile: '{workflow_path}/workflow.md'
|
|||
outputFile: '{planning_artifacts}/epics.md'
|
||||
|
||||
# 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'
|
||||
|
||||
# Template References
|
||||
|
|
|
|||
|
|
@ -1,227 +0,0 @@
|
|||
<workflow>
|
||||
<critical>The workflow execution engine is governed by: {project-root}/_bmad/core/tasks/workflow.xml</critical>
|
||||
<critical>You MUST have already loaded and processed: {installed_path}/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>🔥 YOU ARE AN ADVERSARIAL CODE REVIEWER - Find what's wrong or missing! 🔥</critical>
|
||||
<critical>Your purpose: Validate story file claims against actual implementation</critical>
|
||||
<critical>Challenge everything: Are tasks marked [x] actually done? Are ACs really implemented?</critical>
|
||||
<critical>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</critical>
|
||||
<critical>Read EVERY file in the File List - verify implementation against story requirements</critical>
|
||||
<critical>Tasks marked complete but not done = CRITICAL finding</critical>
|
||||
<critical>Acceptance Criteria not implemented = HIGH severity finding</critical>
|
||||
<critical>Do not review files that are not part of the application's source code. Always exclude the _bmad/ and _bmad-output/ folders from the review. Always exclude IDE and CLI configuration folders like .cursor/ and .windsurf/ and .claude/</critical>
|
||||
|
||||
|
||||
<step n="1" goal="Load story and discover changes">
|
||||
<action>Use provided {{story_path}} or ask user which story file to review</action>
|
||||
<action>Read COMPLETE story file</action>
|
||||
<action>Set {{story_key}} = extracted key from filename (e.g., "1-2-user-authentication.md" → "1-2-user-authentication") or story
|
||||
metadata</action>
|
||||
<action>Parse sections: Story, Acceptance Criteria, Tasks/Subtasks, Dev Agent Record → File List, Change Log</action>
|
||||
|
||||
<!-- Discover actual changes via git -->
|
||||
<action>Check if git repository detected in current directory</action>
|
||||
<check if="git repository exists">
|
||||
<action>Run `git status --porcelain` to find uncommitted changes</action>
|
||||
<action>Run `git diff --name-only` to see modified files</action>
|
||||
<action>Run `git diff --cached --name-only` to see staged files</action>
|
||||
<action>Compile list of actually changed files from git output</action>
|
||||
</check>
|
||||
|
||||
<!-- Cross-reference story File List vs git reality -->
|
||||
<action>Compare story's Dev Agent Record → File List with actual git changes</action>
|
||||
<action>Note discrepancies:
|
||||
- Files in git but not in story File List
|
||||
- Files in story File List but no git changes
|
||||
- Missing documentation of what was actually changed
|
||||
</action>
|
||||
|
||||
<invoke-protocol name="discover_inputs" />
|
||||
<action>Load {project_context} for coding standards (if exists)</action>
|
||||
</step>
|
||||
|
||||
<step n="2" goal="Build review attack plan">
|
||||
<action>Extract ALL Acceptance Criteria from story</action>
|
||||
<action>Extract ALL Tasks/Subtasks with completion status ([x] vs [ ])</action>
|
||||
<action>From Dev Agent Record → File List, compile list of claimed changes</action>
|
||||
|
||||
<action>Create review plan:
|
||||
1. **AC Validation**: Verify each AC is actually implemented
|
||||
2. **Task Audit**: Verify each [x] task is really done
|
||||
3. **Code Quality**: Security, performance, maintainability
|
||||
4. **Test Quality**: Real tests vs placeholder bullshit
|
||||
</action>
|
||||
</step>
|
||||
|
||||
<step n="3" goal="Execute adversarial review">
|
||||
<critical>VALIDATE EVERY CLAIM - Check git reality vs story claims</critical>
|
||||
|
||||
<!-- Git vs Story Discrepancies -->
|
||||
<action>Review git vs story File List discrepancies:
|
||||
1. **Files changed but not in story File List** → MEDIUM finding (incomplete documentation)
|
||||
2. **Story lists files but no git changes** → HIGH finding (false claims)
|
||||
3. **Uncommitted changes not documented** → MEDIUM finding (transparency issue)
|
||||
</action>
|
||||
|
||||
<!-- Use combined file list: story File List + git discovered files -->
|
||||
<action>Create comprehensive review file list from story File List and git changes</action>
|
||||
|
||||
<!-- AC Validation -->
|
||||
<action>For EACH Acceptance Criterion:
|
||||
1. Read the AC requirement
|
||||
2. Search implementation files for evidence
|
||||
3. Determine: IMPLEMENTED, PARTIAL, or MISSING
|
||||
4. If MISSING/PARTIAL → HIGH SEVERITY finding
|
||||
</action>
|
||||
|
||||
<!-- Task Completion Audit -->
|
||||
<action>For EACH task marked [x]:
|
||||
1. Read the task description
|
||||
2. Search files for evidence it was actually done
|
||||
3. **CRITICAL**: If marked [x] but NOT DONE → CRITICAL finding
|
||||
4. Record specific proof (file:line)
|
||||
</action>
|
||||
|
||||
<!-- Code Quality Deep Dive -->
|
||||
<action>For EACH file in comprehensive review list:
|
||||
1. **Security**: Look for injection risks, missing validation, auth issues
|
||||
2. **Performance**: N+1 queries, inefficient loops, missing caching
|
||||
3. **Error Handling**: Missing try/catch, poor error messages
|
||||
4. **Code Quality**: Complex functions, magic numbers, poor naming
|
||||
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:
|
||||
- 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>
|
||||
</check>
|
||||
</step>
|
||||
|
||||
<step n="4" goal="Present findings and fix them">
|
||||
<action>Categorize findings: HIGH (must fix), MEDIUM (should fix), LOW (nice to fix)</action>
|
||||
<action>Set {{fixed_count}} = 0</action>
|
||||
<action>Set {{action_count}} = 0</action>
|
||||
|
||||
<output>**🔥 CODE REVIEW FINDINGS, {user_name}!**
|
||||
|
||||
**Story:** {{story_file}}
|
||||
**Git vs Story Discrepancies:** {{git_discrepancy_count}} found
|
||||
**Issues Found:** {{high_count}} High, {{medium_count}} Medium, {{low_count}} Low
|
||||
|
||||
## 🔴 CRITICAL ISSUES
|
||||
- Tasks marked [x] but not actually implemented
|
||||
- Acceptance Criteria not implemented
|
||||
- Story claims files changed but no git evidence
|
||||
- Security vulnerabilities
|
||||
|
||||
## 🟡 MEDIUM ISSUES
|
||||
- Files changed but not documented in story File List
|
||||
- Uncommitted changes not tracked
|
||||
- Performance problems
|
||||
- Poor test coverage/quality
|
||||
- Code maintainability issues
|
||||
|
||||
## 🟢 LOW ISSUES
|
||||
- Code style improvements
|
||||
- Documentation gaps
|
||||
- Git commit message quality
|
||||
</output>
|
||||
|
||||
<ask>What should I do with these issues?
|
||||
|
||||
1. **Fix them automatically** - I'll update the code and tests
|
||||
2. **Create action items** - Add to story Tasks/Subtasks for later
|
||||
3. **Show me details** - Deep dive into specific issues
|
||||
|
||||
Choose [1], [2], or specify which issue to examine:</ask>
|
||||
|
||||
<check if="user chooses 1">
|
||||
<action>Fix all HIGH and MEDIUM issues in the code</action>
|
||||
<action>Add/update tests as needed</action>
|
||||
<action>Update File List in story if files changed</action>
|
||||
<action>Update story Dev Agent Record with fixes applied</action>
|
||||
<action>Set {{fixed_count}} = number of HIGH and MEDIUM issues fixed</action>
|
||||
<action>Set {{action_count}} = 0</action>
|
||||
</check>
|
||||
|
||||
<check if="user chooses 2">
|
||||
<action>Add "Review Follow-ups (AI)" subsection to Tasks/Subtasks</action>
|
||||
<action>For each issue: `- [ ] [AI-Review][Severity] Description [file:line]`</action>
|
||||
<action>Set {{action_count}} = number of action items created</action>
|
||||
<action>Set {{fixed_count}} = 0</action>
|
||||
</check>
|
||||
|
||||
<check if="user chooses 3">
|
||||
<action>Show detailed explanation with code examples</action>
|
||||
<action>Return to fix decision</action>
|
||||
</check>
|
||||
</step>
|
||||
|
||||
<step n="5" goal="Update story status and sync sprint tracking">
|
||||
<!-- Determine new status based on review outcome -->
|
||||
<check if="all HIGH and MEDIUM issues fixed AND all ACs implemented">
|
||||
<action>Set {{new_status}} = "done"</action>
|
||||
<action>Update story Status field to "done"</action>
|
||||
</check>
|
||||
<check if="HIGH or MEDIUM issues remain OR ACs not fully implemented">
|
||||
<action>Set {{new_status}} = "in-progress"</action>
|
||||
<action>Update story Status field to "in-progress"</action>
|
||||
</check>
|
||||
<action>Save story file</action>
|
||||
|
||||
<!-- Determine sprint tracking status -->
|
||||
<check if="{sprint_status} file exists">
|
||||
<action>Set {{current_sprint_status}} = "enabled"</action>
|
||||
</check>
|
||||
<check if="{sprint_status} file does NOT exist">
|
||||
<action>Set {{current_sprint_status}} = "no-sprint-tracking"</action>
|
||||
</check>
|
||||
|
||||
<!-- Sync sprint-status.yaml when story status changes (only if sprint tracking enabled) -->
|
||||
<check if="{{current_sprint_status}} != 'no-sprint-tracking'">
|
||||
<action>Load the FULL file: {sprint_status}</action>
|
||||
<action>Find development_status key matching {{story_key}}</action>
|
||||
|
||||
<check if="{{new_status}} == 'done'">
|
||||
<action>Update development_status[{{story_key}}] = "done"</action>
|
||||
<action>Save file, preserving ALL comments and structure</action>
|
||||
<output>✅ Sprint status synced: {{story_key}} → done</output>
|
||||
</check>
|
||||
|
||||
<check if="{{new_status}} == 'in-progress'">
|
||||
<action>Update development_status[{{story_key}}] = "in-progress"</action>
|
||||
<action>Save file, preserving ALL comments and structure</action>
|
||||
<output>🔄 Sprint status synced: {{story_key}} → in-progress</output>
|
||||
</check>
|
||||
|
||||
<check if="story key not found in sprint status">
|
||||
<output>⚠️ Story file updated, but sprint-status sync failed: {{story_key}} not found in sprint-status.yaml</output>
|
||||
</check>
|
||||
</check>
|
||||
|
||||
<check if="{{current_sprint_status}} == 'no-sprint-tracking'">
|
||||
<output>ℹ️ Story status updated (no sprint tracking configured)</output>
|
||||
</check>
|
||||
|
||||
<output>**✅ Review Complete!**
|
||||
|
||||
**Story Status:** {{new_status}}
|
||||
**Issues Fixed:** {{fixed_count}}
|
||||
**Action Items Created:** {{action_count}}
|
||||
|
||||
{{#if new_status == "done"}}Code review complete!{{else}}Address the action items and continue development.{{/if}}
|
||||
</output>
|
||||
</step>
|
||||
|
||||
</workflow>
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
---
|
||||
name: 'step-01-load-story-and-changes'
|
||||
description: 'Load target story, gather git deltas, and establish review scope'
|
||||
nextStepFile: './step-02-build-attack-plan.md'
|
||||
---
|
||||
|
||||
<step n="1" goal="Load story and discover changes">
|
||||
<action>Use provided {{story_path}} or ask user which story file to review</action>
|
||||
<action>Read COMPLETE story file</action>
|
||||
<action>Set {{story_key}} = extracted key from filename (e.g., "1-2-user-authentication.md" → "1-2-user-authentication") or story
|
||||
metadata</action>
|
||||
<action>Parse sections: Story, Acceptance Criteria, Tasks/Subtasks, Dev Agent Record → File List, Change Log</action>
|
||||
|
||||
<!-- Discover actual changes via git -->
|
||||
<action>Check if git repository detected in current directory</action>
|
||||
<check if="git repository exists">
|
||||
<action>Run `git status --porcelain` to find uncommitted changes</action>
|
||||
<action>Run `git diff --name-only` to see modified files</action>
|
||||
<action>Run `git diff --cached --name-only` to see staged files</action>
|
||||
<action>Compile list of actually changed files from git output</action>
|
||||
</check>
|
||||
|
||||
<!-- Cross-reference story File List vs git reality -->
|
||||
<action>Compare story's Dev Agent Record → File List with actual git changes</action>
|
||||
<action>Note discrepancies:
|
||||
- Files in git but not in story File List
|
||||
- Files in story File List but no git changes
|
||||
- Missing documentation of what was actually changed
|
||||
</action>
|
||||
|
||||
<invoke-protocol name="discover_inputs" />
|
||||
<action>Load {project_context} for coding standards (if exists)</action>
|
||||
</step>
|
||||
|
||||
## Next
|
||||
- Read fully and follow: `./step-02-build-attack-plan.md`.
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
---
|
||||
name: 'step-02-build-attack-plan'
|
||||
description: 'Build an explicit adversarial review plan against ACs and completed tasks'
|
||||
nextStepFile: './step-03-execute-review.md'
|
||||
---
|
||||
|
||||
<step n="2" goal="Build review attack plan">
|
||||
<action>Extract ALL Acceptance Criteria from story</action>
|
||||
<action>Extract ALL Tasks/Subtasks with completion status ([x] vs [ ])</action>
|
||||
<action>From Dev Agent Record → File List, compile list of claimed changes</action>
|
||||
|
||||
<action>Create review plan:
|
||||
1. **AC Validation**: Verify each AC is actually implemented
|
||||
2. **Task Audit**: Verify each [x] task is really done
|
||||
3. **Code Quality**: Security, performance, maintainability
|
||||
4. **Test Quality**: Real assertions and meaningful coverage
|
||||
</action>
|
||||
</step>
|
||||
|
||||
## Next
|
||||
- Read fully and follow: `./step-03-execute-review.md`.
|
||||
|
|
@ -0,0 +1,60 @@
|
|||
---
|
||||
name: 'step-03-execute-review'
|
||||
description: 'Execute full adversarial review and record actionable findings'
|
||||
nextStepFile: './step-04-present-and-resolve.md'
|
||||
---
|
||||
|
||||
<step n="3" goal="Execute adversarial review">
|
||||
<critical>VALIDATE EVERY CLAIM - Check git reality vs story claims</critical>
|
||||
|
||||
<!-- Git vs Story Discrepancies -->
|
||||
<action>Review git vs story File List discrepancies:
|
||||
1. **Files changed but not in story File List** → MEDIUM finding (incomplete documentation)
|
||||
2. **Story lists files but no git changes** → HIGH finding (false claims)
|
||||
3. **Uncommitted changes not documented** → MEDIUM finding (transparency issue)
|
||||
</action>
|
||||
|
||||
<!-- Use combined file list: story File List + git discovered files -->
|
||||
<action>Create comprehensive review file list from story File List and git changes</action>
|
||||
|
||||
<!-- AC Validation -->
|
||||
<action>For EACH Acceptance Criterion:
|
||||
1. Read the AC requirement
|
||||
2. Search implementation files for evidence
|
||||
3. Determine: IMPLEMENTED, PARTIAL, or MISSING
|
||||
4. If MISSING/PARTIAL → HIGH SEVERITY finding
|
||||
</action>
|
||||
|
||||
<!-- Task Completion Audit -->
|
||||
<action>For EACH task marked [x]:
|
||||
1. Read the task description
|
||||
2. Search files for evidence it was actually done
|
||||
3. **CRITICAL**: If marked [x] but NOT DONE → CRITICAL finding
|
||||
4. Record specific proof (file:line)
|
||||
</action>
|
||||
|
||||
<!-- Code Quality Deep Dive -->
|
||||
<action>For EACH file in comprehensive review list:
|
||||
1. **Security**: Look for injection risks, missing validation, auth issues
|
||||
2. **Performance**: N+1 queries, inefficient loops, missing caching
|
||||
3. **Error Handling**: Missing try/catch, poor error messages
|
||||
4. **Code Quality**: Complex functions, magic numbers, poor naming
|
||||
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:
|
||||
- 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>
|
||||
</check>
|
||||
</step>
|
||||
|
||||
## Next
|
||||
- Read fully and follow: `./step-04-present-and-resolve.md`.
|
||||
|
|
@ -0,0 +1,68 @@
|
|||
---
|
||||
name: 'step-04-present-and-resolve'
|
||||
description: 'Present findings and either apply fixes or create follow-up action items'
|
||||
nextStepFile: './step-05-update-status.md'
|
||||
---
|
||||
|
||||
<step n="4" goal="Present findings and fix them">
|
||||
<action>Categorize findings: HIGH (must fix), MEDIUM (should fix), LOW (nice to fix)</action>
|
||||
<action>Set {{fixed_count}} = 0</action>
|
||||
<action>Set {{action_count}} = 0</action>
|
||||
|
||||
<output>**Code Review Findings, {user_name}**
|
||||
|
||||
**Story:** {{story_file}}
|
||||
**Git vs Story Discrepancies:** {{git_discrepancy_count}} found
|
||||
**Issues Found:** {{high_count}} High, {{medium_count}} Medium, {{low_count}} Low
|
||||
|
||||
## 🔴 CRITICAL ISSUES
|
||||
- Tasks marked [x] but not actually implemented
|
||||
- Acceptance Criteria not implemented
|
||||
- Story claims files changed but no git evidence
|
||||
- Security vulnerabilities
|
||||
|
||||
## 🟡 MEDIUM ISSUES
|
||||
- Files changed but not documented in story File List
|
||||
- Uncommitted changes not tracked
|
||||
- Performance problems
|
||||
- Poor test coverage/quality
|
||||
- Code maintainability issues
|
||||
|
||||
## 🟢 LOW ISSUES
|
||||
- Code style improvements
|
||||
- Documentation gaps
|
||||
- Git commit message quality
|
||||
</output>
|
||||
|
||||
<ask>What should I do with these issues?
|
||||
|
||||
1. **Fix them automatically** - I'll update the code and tests
|
||||
2. **Create action items** - Add to story Tasks/Subtasks for later
|
||||
3. **Show me details** - Deep dive into specific issues
|
||||
|
||||
Choose [1], [2], or specify which issue to examine:</ask>
|
||||
|
||||
<check if="user chooses 1">
|
||||
<action>Fix all HIGH and MEDIUM issues in the code</action>
|
||||
<action>Add/update tests as needed</action>
|
||||
<action>Update File List in story if files changed</action>
|
||||
<action>Update story Dev Agent Record with fixes applied</action>
|
||||
<action>Set {{fixed_count}} = number of HIGH and MEDIUM issues fixed</action>
|
||||
<action>Set {{action_count}} = 0</action>
|
||||
</check>
|
||||
|
||||
<check if="user chooses 2">
|
||||
<action>Add "Review Follow-ups (AI)" subsection to Tasks/Subtasks</action>
|
||||
<action>For each issue: `- [ ] [AI-Review][Severity] Description [file:line]`</action>
|
||||
<action>Set {{action_count}} = number of action items created</action>
|
||||
<action>Set {{fixed_count}} = 0</action>
|
||||
</check>
|
||||
|
||||
<check if="user chooses 3">
|
||||
<action>Show detailed explanation with code examples</action>
|
||||
<action>Return to fix decision</action>
|
||||
</check>
|
||||
</step>
|
||||
|
||||
## Next
|
||||
- Read fully and follow: `./step-05-update-status.md`.
|
||||
|
|
@ -0,0 +1,62 @@
|
|||
---
|
||||
name: 'step-05-update-status'
|
||||
description: 'Update story/sprint status and report review completion'
|
||||
---
|
||||
|
||||
<step n="5" goal="Update story status and sync sprint tracking">
|
||||
<invoke-task>Validate against checklist at {installed_path}/checklist.md using _bmad/core/tasks/validate-workflow.md</invoke-task>
|
||||
|
||||
<!-- Determine new status based on review outcome -->
|
||||
<check if="all HIGH and MEDIUM issues fixed AND all ACs implemented">
|
||||
<action>Set {{new_status}} = "done"</action>
|
||||
<action>Update story Status field to "done"</action>
|
||||
</check>
|
||||
<check if="HIGH or MEDIUM issues remain OR ACs not fully implemented">
|
||||
<action>Set {{new_status}} = "in-progress"</action>
|
||||
<action>Update story Status field to "in-progress"</action>
|
||||
</check>
|
||||
<action>Save story file</action>
|
||||
|
||||
<!-- Determine sprint tracking status -->
|
||||
<check if="{sprint_status} file exists">
|
||||
<action>Set {{current_sprint_status}} = "enabled"</action>
|
||||
</check>
|
||||
<check if="{sprint_status} file does NOT exist">
|
||||
<action>Set {{current_sprint_status}} = "no-sprint-tracking"</action>
|
||||
</check>
|
||||
|
||||
<!-- Sync sprint-status.yaml when story status changes (only if sprint tracking enabled) -->
|
||||
<check if="{{current_sprint_status}} != 'no-sprint-tracking'">
|
||||
<action>Load the FULL file: {sprint_status}</action>
|
||||
<action>Find development_status key matching {{story_key}}</action>
|
||||
|
||||
<check if="{{new_status}} == 'done'">
|
||||
<action>Update development_status[{{story_key}}] = "done"</action>
|
||||
<action>Save file, preserving ALL comments and structure</action>
|
||||
<output>✅ Sprint status synced: {{story_key}} → done</output>
|
||||
</check>
|
||||
|
||||
<check if="{{new_status}} == 'in-progress'">
|
||||
<action>Update development_status[{{story_key}}] = "in-progress"</action>
|
||||
<action>Save file, preserving ALL comments and structure</action>
|
||||
<output>🔄 Sprint status synced: {{story_key}} → in-progress</output>
|
||||
</check>
|
||||
|
||||
<check if="story key not found in sprint status">
|
||||
<output>⚠️ Story file updated, but sprint-status sync failed: {{story_key}} not found in sprint-status.yaml</output>
|
||||
</check>
|
||||
</check>
|
||||
|
||||
<check if="{{current_sprint_status}} == 'no-sprint-tracking'">
|
||||
<output>ℹ️ Story status updated (no sprint tracking configured)</output>
|
||||
</check>
|
||||
|
||||
<output>**✅ Review Complete!**
|
||||
|
||||
**Story Status:** {{new_status}}
|
||||
**Issues Fixed:** {{fixed_count}}
|
||||
**Action Items Created:** {{action_count}}
|
||||
|
||||
{{#if new_status == "done"}}Code review complete!{{else}}Address the action items and continue development.{{/if}}
|
||||
</output>
|
||||
</step>
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
---
|
||||
name: code-review
|
||||
description: "Perform an adversarial senior developer code review with concrete findings across quality, tests, architecture, security, and performance"
|
||||
main_config: '{project-root}/_bmad/bmm/config.yaml'
|
||||
web_bundle: false
|
||||
---
|
||||
|
||||
# Code Review Workflow
|
||||
|
||||
## Goal
|
||||
Run a rigorous review that validates story claims against code reality, surfaces actionable findings, and synchronizes story/sprint status.
|
||||
|
||||
## Workflow Architecture
|
||||
- Uses step-file execution for predictable, auditable review flow.
|
||||
- Read one step file fully, execute it, then continue to the next step.
|
||||
- Do not load later steps before the current step completes.
|
||||
|
||||
## Initialization
|
||||
- Load config from `{project-root}/_bmad/bmm/config.yaml`.
|
||||
- Resolve variables:
|
||||
- `user_name`
|
||||
- `communication_language`
|
||||
- `document_output_language`
|
||||
- `user_skill_level`
|
||||
- `planning_artifacts`
|
||||
- `implementation_artifacts`
|
||||
- `story_dir` = `{implementation_artifacts}`
|
||||
- `sprint_status` = `{implementation_artifacts}/sprint-status.yaml`
|
||||
- `project_context` = `**/project-context.md`
|
||||
- `date` (system-generated)
|
||||
- `installed_path` = `{project-root}/_bmad/bmm/workflows/4-implementation/code-review`
|
||||
|
||||
## Critical Rules
|
||||
- Communicate in `{communication_language}`.
|
||||
- Review implementation evidence, not assumptions.
|
||||
- Verify acceptance criteria and completed tasks against actual files.
|
||||
- Prioritize concrete, actionable findings with severity and evidence.
|
||||
- Exclude generated/config-only folders from source-code review scope (`_bmad/`, `_bmad-output/`, `.cursor/`, `.windsurf/`, `.claude/`).
|
||||
|
||||
## Execution
|
||||
Read fully and follow: `steps/step-01-load-story-and-changes.md`.
|
||||
|
|
@ -1,48 +0,0 @@
|
|||
# Review Story Workflow
|
||||
name: code-review
|
||||
description: "Perform an ADVERSARIAL Senior Developer code review that finds 3-10 specific problems in every story. Challenges everything: code quality, test coverage, architecture compliance, security, performance. NEVER accepts `looks good` - must find minimum issues and can auto-fix with user approval."
|
||||
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"
|
||||
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"
|
||||
output_folder: "{implementation_artifacts}"
|
||||
sprint_status: "{implementation_artifacts}/sprint-status.yaml"
|
||||
|
||||
# Workflow components
|
||||
installed_path: "{project-root}/_bmad/bmm/workflows/4-implementation/code-review"
|
||||
instructions: "{installed_path}/instructions.xml"
|
||||
validation: "{installed_path}/checklist.md"
|
||||
template: false
|
||||
|
||||
variables:
|
||||
# Project context
|
||||
project_context: "**/project-context.md"
|
||||
story_dir: "{implementation_artifacts}"
|
||||
|
||||
# Smart input file references - handles both whole docs and sharded docs
|
||||
# Priority: Whole document first, then sharded version
|
||||
# Strategy: SELECTIVE LOAD - only load the specific epic needed for this story review
|
||||
input_file_patterns:
|
||||
architecture:
|
||||
description: "System architecture for review context"
|
||||
whole: "{planning_artifacts}/*architecture*.md"
|
||||
sharded: "{planning_artifacts}/*architecture*/*.md"
|
||||
load_strategy: "FULL_LOAD"
|
||||
ux_design:
|
||||
description: "UX design specification (if UI review)"
|
||||
whole: "{planning_artifacts}/*ux*.md"
|
||||
sharded: "{planning_artifacts}/*ux*/*.md"
|
||||
load_strategy: "FULL_LOAD"
|
||||
epics:
|
||||
description: "Epic containing story being reviewed"
|
||||
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"
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
# Change Navigation Checklist
|
||||
|
||||
<critical>This checklist is executed as part of: {project-root}/_bmad/bmm/workflows/4-implementation/correct-course/workflow.yaml</critical>
|
||||
<critical>This checklist is executed as part of: {project-root}/_bmad/bmm/workflows/4-implementation/correct-course/workflow.md</critical>
|
||||
<critical>Work through each section systematically with the user, recording findings and impacts</critical>
|
||||
|
||||
<checklist>
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
# Correct Course - Sprint Change Management Instructions
|
||||
|
||||
<critical>The workflow execution engine is governed by: {project-root}/_bmad/core/tasks/workflow.xml</critical>
|
||||
<critical>You MUST have already loaded and processed: {project-root}/_bmad/bmm/workflows/4-implementation/correct-course/workflow.yaml</critical>
|
||||
<critical>The workflow execution engine is governed by: {project-root}/_bmad/core/tasks/workflow.md</critical>
|
||||
<critical>You MUST have already loaded and processed: {project-root}/_bmad/bmm/workflows/4-implementation/correct-course/workflow.md</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>
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,33 @@
|
|||
---
|
||||
name: correct-course
|
||||
description: "Navigate significant changes during sprint execution by analyzing impact, proposing solutions, and routing for implementation"
|
||||
main_config: '{project-root}/_bmad/bmm/config.yaml'
|
||||
web_bundle: false
|
||||
---
|
||||
|
||||
## Initialization
|
||||
- Load config from `{project-root}/_bmad/bmm/config.yaml`.
|
||||
- Resolve variables:
|
||||
- `user_name`
|
||||
- `communication_language`
|
||||
- `document_output_language`
|
||||
- `user_skill_level`
|
||||
- `planning_artifacts`
|
||||
- `implementation_artifacts`
|
||||
- `project_knowledge`
|
||||
- `sprint_status` = `{implementation_artifacts}/sprint-status.yaml`
|
||||
- `date` (system-generated)
|
||||
- `installed_path` = `{project-root}/_bmad/bmm/workflows/4-implementation/correct-course`
|
||||
- `default_output_file` = `{planning_artifacts}/sprint-change-proposal-{date}.md`
|
||||
|
||||
<workflow>
|
||||
<critical>Communicate all responses in {communication_language} and generate all documents in {document_output_language}</critical>
|
||||
|
||||
<step n="1" goal="Analyze changes and propose corrective actions">
|
||||
<action>Read and follow instructions at: {installed_path}/instructions.md</action>
|
||||
</step>
|
||||
|
||||
<step n="2" goal="Validate proposal quality">
|
||||
<invoke-task>Validate against checklist at {installed_path}/checklist.md using _bmad/core/tasks/validate-workflow.md</invoke-task>
|
||||
</step>
|
||||
</workflow>
|
||||
|
|
@ -1,56 +0,0 @@
|
|||
# Correct Course - Sprint Change Management Workflow
|
||||
name: "correct-course"
|
||||
description: "Navigate significant changes during sprint execution by analyzing impact, proposing solutions, and routing for implementation"
|
||||
author: "BMad Method"
|
||||
|
||||
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
|
||||
implementation_artifacts: "{config_source}:implementation_artifacts"
|
||||
planning_artifacts: "{config_source}:planning_artifacts"
|
||||
project_knowledge: "{config_source}:project_knowledge"
|
||||
output_folder: "{implementation_artifacts}"
|
||||
sprint_status: "{implementation_artifacts}/sprint-status.yaml"
|
||||
|
||||
# Smart input file references - handles both whole docs and sharded docs
|
||||
# Priority: Whole document first, then sharded version
|
||||
# Strategy: Load project context for impact analysis
|
||||
input_file_patterns:
|
||||
prd:
|
||||
description: "Product requirements for impact analysis"
|
||||
whole: "{planning_artifacts}/*prd*.md"
|
||||
sharded: "{planning_artifacts}/*prd*/*.md"
|
||||
load_strategy: "FULL_LOAD"
|
||||
epics:
|
||||
description: "All epics to analyze change impact"
|
||||
whole: "{planning_artifacts}/*epic*.md"
|
||||
sharded: "{planning_artifacts}/*epic*/*.md"
|
||||
load_strategy: "FULL_LOAD"
|
||||
architecture:
|
||||
description: "System architecture and decisions"
|
||||
whole: "{planning_artifacts}/*architecture*.md"
|
||||
sharded: "{planning_artifacts}/*architecture*/*.md"
|
||||
load_strategy: "FULL_LOAD"
|
||||
ux_design:
|
||||
description: "UX design specification (if UI impacts)"
|
||||
whole: "{planning_artifacts}/*ux*.md"
|
||||
sharded: "{planning_artifacts}/*ux*/*.md"
|
||||
load_strategy: "FULL_LOAD"
|
||||
tech_spec:
|
||||
description: "Technical specification"
|
||||
whole: "{planning_artifacts}/*tech-spec*.md"
|
||||
load_strategy: "FULL_LOAD"
|
||||
document_project:
|
||||
description: "Brownfield project documentation (optional)"
|
||||
sharded: "{project_knowledge}/index.md"
|
||||
load_strategy: "INDEX_GUIDED"
|
||||
|
||||
installed_path: "{project-root}/_bmad/bmm/workflows/4-implementation/correct-course"
|
||||
template: false
|
||||
instructions: "{installed_path}/instructions.md"
|
||||
validation: "{installed_path}/checklist.md"
|
||||
checklist: "{installed_path}/checklist.md"
|
||||
default_output_file: "{planning_artifacts}/sprint-change-proposal-{date}.md"
|
||||
|
|
@ -33,25 +33,25 @@ This is a COMPETITION to create the **ULTIMATE story context** that makes LLM de
|
|||
|
||||
### **When Running from Create-Story Workflow:**
|
||||
|
||||
- The `{project-root}/_bmad/core/tasks/validate-workflow.xml` framework will automatically:
|
||||
- The `{project-root}/_bmad/core/tasks/validate-workflow.md` framework will automatically:
|
||||
- Load this checklist file
|
||||
- Load the newly created story file (`{story_file_path}`)
|
||||
- Load workflow variables from `{installed_path}/workflow.yaml`
|
||||
- Load workflow variables from `{installed_path}/workflow.md`
|
||||
- Execute the validation process
|
||||
|
||||
### **When Running in Fresh Context:**
|
||||
|
||||
- User should provide the story file path being reviewed
|
||||
- Load the story file directly
|
||||
- Load the corresponding workflow.yaml for variable context
|
||||
- Load the corresponding workflow.md for variable context
|
||||
- Proceed with systematic analysis
|
||||
|
||||
### **Required Inputs:**
|
||||
|
||||
- **Story file**: The story file to review and improve
|
||||
- **Workflow variables**: From workflow.yaml (story_dir, output_folder, epics_file, etc.)
|
||||
- **Workflow variables**: From workflow.md (story_dir, output_folder, epics_file, etc.)
|
||||
- **Source documents**: Epics, architecture, etc. (discovered or provided)
|
||||
- **Validation framework**: `validate-workflow.xml` (handles checklist execution)
|
||||
- **Validation framework**: `validate-workflow.md` (handles checklist execution)
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -61,9 +61,9 @@ You will systematically re-do the entire story creation process, but with a crit
|
|||
|
||||
### **Step 1: Load and Understand the Target**
|
||||
|
||||
1. **Load the workflow configuration**: `{installed_path}/workflow.yaml` for variable inclusion
|
||||
1. **Load the workflow configuration**: `{installed_path}/workflow.md` for variable inclusion
|
||||
2. **Load the story file**: `{story_file_path}` (provided by user or discovered)
|
||||
3. **Load validation framework**: `{project-root}/_bmad/core/tasks/validate-workflow.xml`
|
||||
3. **Load validation framework**: `{project-root}/_bmad/core/tasks/validate-workflow.md`
|
||||
4. **Extract metadata**: epic_num, story_num, story_key, story_title from story file
|
||||
5. **Resolve all workflow variables**: story_dir, output_folder, epics_file, architecture_file, etc.
|
||||
6. **Understand current status**: What story implementation guidance is currently provided?
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<workflow>
|
||||
<critical>The workflow execution engine is governed by: {project-root}/_bmad/core/tasks/workflow.xml</critical>
|
||||
<critical>You MUST have already loaded and processed: {installed_path}/workflow.yaml</critical>
|
||||
<critical>The workflow execution engine is governed by: {project-root}/_bmad/core/tasks/workflow.md</critical>
|
||||
<critical>You MUST have already loaded and processed: {installed_path}/workflow.md</critical>
|
||||
<critical>Communicate all responses in {communication_language} and generate all documents in {document_output_language}</critical>
|
||||
|
||||
<critical>🔥 CRITICAL MISSION: You are creating the ULTIMATE story context engine that prevents LLM developer mistakes, omissions or
|
||||
|
|
@ -310,7 +310,7 @@
|
|||
</step>
|
||||
|
||||
<step n="6" goal="Update sprint status and finalize">
|
||||
<invoke-task>Validate against checklist at {installed_path}/checklist.md using _bmad/core/tasks/validate-workflow.xml</invoke-task>
|
||||
<invoke-task>Validate against checklist at {installed_path}/checklist.md using _bmad/core/tasks/validate-workflow.md</invoke-task>
|
||||
<action>Save story document unconditionally</action>
|
||||
|
||||
<!-- Update sprint status -->
|
||||
|
|
|
|||
|
|
@ -131,62 +131,6 @@ web_bundle: false
|
|||
|
||||
<action>GOTO step 2a</action>
|
||||
</check>
|
||||
<action>Load the FULL file: {{sprint_status}}</action>
|
||||
<action>Read ALL lines from beginning to end - do not skip any content</action>
|
||||
<action>Parse the development_status section completely</action>
|
||||
|
||||
<action>Find the FIRST story (by reading in order from top to bottom) where:
|
||||
- Key matches pattern: number-number-name (e.g., "1-2-user-auth")
|
||||
- NOT an epic key (epic-X) or retrospective (epic-X-retrospective)
|
||||
- Status value equals "backlog"
|
||||
</action>
|
||||
|
||||
<check if="no backlog story found">
|
||||
<output>📋 No backlog stories found in sprint-status.yaml
|
||||
|
||||
All stories are either already created, in progress, or done.
|
||||
|
||||
**Options:**
|
||||
1. Run sprint-planning to refresh story tracking
|
||||
2. Load PM agent and run correct-course to add more stories
|
||||
3. Check if current sprint is complete and run retrospective
|
||||
</output>
|
||||
<action>HALT</action>
|
||||
</check>
|
||||
|
||||
<action>Extract from found story key (e.g., "1-2-user-authentication"):
|
||||
- epic_num: first number before dash (e.g., "1")
|
||||
- story_num: second number after first dash (e.g., "2")
|
||||
- story_title: remainder after second dash (e.g., "user-authentication")
|
||||
</action>
|
||||
<action>Set {{story_id}} = "{{epic_num}}.{{story_num}}"</action>
|
||||
<action>Store story_key for later use (e.g., "1-2-user-authentication")</action>
|
||||
|
||||
<!-- Mark epic as in-progress if this is first story -->
|
||||
<action>Check if this is the first story in epic {{epic_num}} by looking for {{epic_num}}-1-* pattern</action>
|
||||
<check if="this is first story in epic {{epic_num}}">
|
||||
<action>Load {{sprint_status}} and check epic-{{epic_num}} status</action>
|
||||
<action>If epic status is "backlog" → update to "in-progress"</action>
|
||||
<action>If epic status is "contexted" (legacy status) → update to "in-progress" (backward compatibility)</action>
|
||||
<action>If epic status is "in-progress" → no change needed</action>
|
||||
<check if="epic status is 'done'">
|
||||
<output>🚫 ERROR: Cannot create story in completed epic</output>
|
||||
<output>Epic {{epic_num}} is marked as 'done'. All stories are complete.</output>
|
||||
<output>If you need to add more work, either:</output>
|
||||
<output>1. Manually change epic status back to 'in-progress' in sprint-status.yaml</output>
|
||||
<output>2. Create a new epic for additional work</output>
|
||||
<action>HALT - Cannot proceed</action>
|
||||
</check>
|
||||
<check if="epic status is not one of: backlog, contexted, in-progress, done">
|
||||
<output>🚫 ERROR: Invalid epic status '{{epic_status}}'</output>
|
||||
<output>Epic {{epic_num}} has invalid status. Expected: backlog, in-progress, or done</output>
|
||||
<output>Please fix sprint-status.yaml manually or run sprint-planning to regenerate</output>
|
||||
<action>HALT - Cannot proceed</action>
|
||||
</check>
|
||||
<output>📊 Epic {{epic_num}} status updated to in-progress</output>
|
||||
</check>
|
||||
|
||||
<action>GOTO step 2a</action>
|
||||
</step>
|
||||
|
||||
<step n="2" goal="Load and analyze core artifacts">
|
||||
|
|
|
|||
|
|
@ -1,57 +0,0 @@
|
|||
name: create-story
|
||||
description: "Create the next user story from epics+stories with enhanced context analysis and direct ready-for-dev marking"
|
||||
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"
|
||||
date: system-generated
|
||||
planning_artifacts: "{config_source}:planning_artifacts"
|
||||
implementation_artifacts: "{config_source}:implementation_artifacts"
|
||||
output_folder: "{implementation_artifacts}"
|
||||
story_dir: "{implementation_artifacts}"
|
||||
|
||||
# Workflow components
|
||||
installed_path: "{project-root}/_bmad/bmm/workflows/4-implementation/create-story"
|
||||
template: "{installed_path}/template.md"
|
||||
instructions: "{installed_path}/instructions.xml"
|
||||
validation: "{installed_path}/checklist.md"
|
||||
|
||||
# Variables and inputs
|
||||
variables:
|
||||
sprint_status: "{implementation_artifacts}/sprint-status.yaml" # Primary source for story tracking
|
||||
epics_file: "{planning_artifacts}/epics.md" # Enhanced epics+stories with BDD and source hints
|
||||
prd_file: "{planning_artifacts}/prd.md" # Fallback for requirements (if not in epics file)
|
||||
architecture_file: "{planning_artifacts}/architecture.md" # Fallback for constraints (if not in epics file)
|
||||
ux_file: "{planning_artifacts}/*ux*.md" # Fallback for UX requirements (if not in epics file)
|
||||
story_title: "" # Will be elicited if not derivable
|
||||
|
||||
# Project context
|
||||
project_context: "**/project-context.md"
|
||||
|
||||
default_output_file: "{story_dir}/{{story_key}}.md"
|
||||
|
||||
# Smart input file references - Simplified for enhanced approach
|
||||
# The epics+stories file should contain everything needed with source hints
|
||||
input_file_patterns:
|
||||
prd:
|
||||
description: "PRD (fallback - epics file should have most content)"
|
||||
whole: "{planning_artifacts}/*prd*.md"
|
||||
sharded: "{planning_artifacts}/*prd*/*.md"
|
||||
load_strategy: "SELECTIVE_LOAD" # Only load if needed
|
||||
architecture:
|
||||
description: "Architecture (fallback - epics file should have relevant sections)"
|
||||
whole: "{planning_artifacts}/*architecture*.md"
|
||||
sharded: "{planning_artifacts}/*architecture*/*.md"
|
||||
load_strategy: "SELECTIVE_LOAD" # Only load if needed
|
||||
ux:
|
||||
description: "UX design (fallback - epics file should have relevant sections)"
|
||||
whole: "{planning_artifacts}/*ux*.md"
|
||||
sharded: "{planning_artifacts}/*ux*/*.md"
|
||||
load_strategy: "SELECTIVE_LOAD" # Only load if needed
|
||||
epics:
|
||||
description: "Enhanced epics+stories file with BDD and source hints"
|
||||
whole: "{planning_artifacts}/*epic*.md"
|
||||
sharded: "{planning_artifacts}/*epic*/*.md"
|
||||
load_strategy: "SELECTIVE_LOAD" # Only load needed epic
|
||||
|
|
@ -1,410 +0,0 @@
|
|||
<workflow>
|
||||
<critical>The workflow execution engine is governed by: {project-root}/_bmad/core/tasks/workflow.xml</critical>
|
||||
<critical>You MUST have already loaded and processed: {installed_path}/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>Only modify the story file in these areas: Tasks/Subtasks checkboxes, Dev Agent Record (Debug Log, Completion Notes), File List,
|
||||
Change Log, and Status</critical>
|
||||
<critical>Execute ALL steps in exact order; do NOT skip steps</critical>
|
||||
<critical>Absolutely DO NOT stop because of "milestones", "significant progress", or "session boundaries". Continue in a single execution
|
||||
until the story is COMPLETE (all ACs satisfied and all tasks/subtasks checked) UNLESS a HALT condition is triggered or the USER gives
|
||||
other instruction.</critical>
|
||||
<critical>Do NOT schedule a "next session" or request review pauses unless a HALT condition applies. Only Step 6 decides completion.</critical>
|
||||
<critical>User skill level ({user_skill_level}) affects conversation style ONLY, not code updates.</critical>
|
||||
|
||||
<step n="1" goal="Find next ready story and load it" tag="sprint-status">
|
||||
<check if="{{story_path}} is provided">
|
||||
<action>Use {{story_path}} directly</action>
|
||||
<action>Read COMPLETE story file</action>
|
||||
<action>Extract story_key from filename or metadata</action>
|
||||
<goto anchor="task_check" />
|
||||
</check>
|
||||
|
||||
<!-- Sprint-based story discovery -->
|
||||
<check if="{{sprint_status}} file exists">
|
||||
<critical>MUST read COMPLETE sprint-status.yaml file from start to end to preserve order</critical>
|
||||
<action>Load the FULL file: {{sprint_status}}</action>
|
||||
<action>Read ALL lines from beginning to end - do not skip any content</action>
|
||||
<action>Parse the development_status section completely to understand story order</action>
|
||||
|
||||
<action>Find the FIRST story (by reading in order from top to bottom) where:
|
||||
- Key matches pattern: number-number-name (e.g., "1-2-user-auth")
|
||||
- NOT an epic key (epic-X) or retrospective (epic-X-retrospective)
|
||||
- Status value equals "ready-for-dev"
|
||||
</action>
|
||||
|
||||
<check if="no ready-for-dev or in-progress story found">
|
||||
<output>📋 No ready-for-dev stories found in sprint-status.yaml
|
||||
|
||||
**Current Sprint Status:** {{sprint_status_summary}}
|
||||
|
||||
**What would you like to do?**
|
||||
1. Run `create-story` to create next story from epics with comprehensive context
|
||||
2. Run `*validate-create-story` to improve existing stories before development (recommended quality check)
|
||||
3. Specify a particular story file to develop (provide full path)
|
||||
4. Check {{sprint_status}} file to see current sprint status
|
||||
|
||||
💡 **Tip:** Stories in `ready-for-dev` may not have been validated. Consider running `validate-create-story` first for a quality
|
||||
check.
|
||||
</output>
|
||||
<ask>Choose option [1], [2], [3], or [4], or specify story file path:</ask>
|
||||
|
||||
<check if="user chooses '1'">
|
||||
<action>HALT - Run create-story to create next story</action>
|
||||
</check>
|
||||
|
||||
<check if="user chooses '2'">
|
||||
<action>HALT - Run validate-create-story to improve existing stories</action>
|
||||
</check>
|
||||
|
||||
<check if="user chooses '3'">
|
||||
<ask>Provide the story file path to develop:</ask>
|
||||
<action>Store user-provided story path as {{story_path}}</action>
|
||||
<goto anchor="task_check" />
|
||||
</check>
|
||||
|
||||
<check if="user chooses '4'">
|
||||
<output>Loading {{sprint_status}} for detailed status review...</output>
|
||||
<action>Display detailed sprint status analysis</action>
|
||||
<action>HALT - User can review sprint status and provide story path</action>
|
||||
</check>
|
||||
|
||||
<check if="user provides story file path">
|
||||
<action>Store user-provided story path as {{story_path}}</action>
|
||||
<goto anchor="task_check" />
|
||||
</check>
|
||||
</check>
|
||||
</check>
|
||||
|
||||
<!-- Non-sprint story discovery -->
|
||||
<check if="{{sprint_status}} file does NOT exist">
|
||||
<action>Search {story_dir} for stories directly</action>
|
||||
<action>Find stories with "ready-for-dev" status in files</action>
|
||||
<action>Look for story files matching pattern: *-*-*.md</action>
|
||||
<action>Read each candidate story file to check Status section</action>
|
||||
|
||||
<check if="no ready-for-dev stories found in story files">
|
||||
<output>📋 No ready-for-dev stories found
|
||||
|
||||
**Available Options:**
|
||||
1. Run `create-story` to create next story from epics with comprehensive context
|
||||
2. Run `*validate-create-story` to improve existing stories
|
||||
3. Specify which story to develop
|
||||
</output>
|
||||
<ask>What would you like to do? Choose option [1], [2], or [3]:</ask>
|
||||
|
||||
<check if="user chooses '1'">
|
||||
<action>HALT - Run create-story to create next story</action>
|
||||
</check>
|
||||
|
||||
<check if="user chooses '2'">
|
||||
<action>HALT - Run validate-create-story to improve existing stories</action>
|
||||
</check>
|
||||
|
||||
<check if="user chooses '3'">
|
||||
<ask>It's unclear what story you want developed. Please provide the full path to the story file:</ask>
|
||||
<action>Store user-provided story path as {{story_path}}</action>
|
||||
<action>Continue with provided story file</action>
|
||||
</check>
|
||||
</check>
|
||||
|
||||
<check if="ready-for-dev story found in files">
|
||||
<action>Use discovered story file and extract story_key</action>
|
||||
</check>
|
||||
</check>
|
||||
|
||||
<action>Store the found story_key (e.g., "1-2-user-authentication") for later status updates</action>
|
||||
<action>Find matching story file in {story_dir} using story_key pattern: {{story_key}}.md</action>
|
||||
<action>Read COMPLETE story file from discovered path</action>
|
||||
|
||||
<anchor id="task_check" />
|
||||
|
||||
<action>Parse sections: Story, Acceptance Criteria, Tasks/Subtasks, Dev Notes, Dev Agent Record, File List, Change Log, Status</action>
|
||||
|
||||
<action>Load comprehensive context from story file's Dev Notes section</action>
|
||||
<action>Extract developer guidance from Dev Notes: architecture requirements, previous learnings, technical specifications</action>
|
||||
<action>Use enhanced story context to inform implementation decisions and approaches</action>
|
||||
|
||||
<action>Identify first incomplete task (unchecked [ ]) in Tasks/Subtasks</action>
|
||||
|
||||
<action if="no incomplete tasks">
|
||||
<goto step="6">Completion sequence</goto>
|
||||
</action>
|
||||
<action if="story file inaccessible">HALT: "Cannot develop story without access to story file"</action>
|
||||
<action if="incomplete task or subtask requirements ambiguous">ASK user to clarify or HALT</action>
|
||||
</step>
|
||||
|
||||
<step n="2" goal="Load project context and story information">
|
||||
<critical>Load all available context to inform implementation</critical>
|
||||
|
||||
<action>Load {project_context} for coding standards and project-wide patterns (if exists)</action>
|
||||
<action>Parse sections: Story, Acceptance Criteria, Tasks/Subtasks, Dev Notes, Dev Agent Record, File List, Change Log, Status</action>
|
||||
<action>Load comprehensive context from story file's Dev Notes section</action>
|
||||
<action>Extract developer guidance from Dev Notes: architecture requirements, previous learnings, technical specifications</action>
|
||||
<action>Use enhanced story context to inform implementation decisions and approaches</action>
|
||||
<output>✅ **Context Loaded**
|
||||
Story and project context available for implementation
|
||||
</output>
|
||||
</step>
|
||||
|
||||
<step n="3" goal="Detect review continuation and extract review context">
|
||||
<critical>Determine if this is a fresh start or continuation after code review</critical>
|
||||
|
||||
<action>Check if "Senior Developer Review (AI)" section exists in the story file</action>
|
||||
<action>Check if "Review Follow-ups (AI)" subsection exists under Tasks/Subtasks</action>
|
||||
|
||||
<check if="Senior Developer Review section exists">
|
||||
<action>Set review_continuation = true</action>
|
||||
<action>Extract from "Senior Developer Review (AI)" section:
|
||||
- Review outcome (Approve/Changes Requested/Blocked)
|
||||
- Review date
|
||||
- Total action items with checkboxes (count checked vs unchecked)
|
||||
- Severity breakdown (High/Med/Low counts)
|
||||
</action>
|
||||
<action>Count unchecked [ ] review follow-up tasks in "Review Follow-ups (AI)" subsection</action>
|
||||
<action>Store list of unchecked review items as {{pending_review_items}}</action>
|
||||
|
||||
<output>⏯️ **Resuming Story After Code Review** ({{review_date}})
|
||||
|
||||
**Review Outcome:** {{review_outcome}}
|
||||
**Action Items:** {{unchecked_review_count}} remaining to address
|
||||
**Priorities:** {{high_count}} High, {{med_count}} Medium, {{low_count}} Low
|
||||
|
||||
**Strategy:** Will prioritize review follow-up tasks (marked [AI-Review]) before continuing with regular tasks.
|
||||
</output>
|
||||
</check>
|
||||
|
||||
<check if="Senior Developer Review section does NOT exist">
|
||||
<action>Set review_continuation = false</action>
|
||||
<action>Set {{pending_review_items}} = empty</action>
|
||||
|
||||
<output>🚀 **Starting Fresh Implementation**
|
||||
|
||||
Story: {{story_key}}
|
||||
Story Status: {{current_status}}
|
||||
First incomplete task: {{first_task_description}}
|
||||
</output>
|
||||
</check>
|
||||
</step>
|
||||
|
||||
<step n="4" goal="Mark story in-progress" tag="sprint-status">
|
||||
<check if="{{sprint_status}} file exists">
|
||||
<action>Load the FULL file: {{sprint_status}}</action>
|
||||
<action>Read all development_status entries to find {{story_key}}</action>
|
||||
<action>Get current status value for development_status[{{story_key}}]</action>
|
||||
|
||||
<check if="current status == 'ready-for-dev' OR review_continuation == true">
|
||||
<action>Update the story in the sprint status report to = "in-progress"</action>
|
||||
<output>🚀 Starting work on story {{story_key}}
|
||||
Status updated: ready-for-dev → in-progress
|
||||
</output>
|
||||
</check>
|
||||
|
||||
<check if="current status == 'in-progress'">
|
||||
<output>⏯️ Resuming work on story {{story_key}}
|
||||
Story is already marked in-progress
|
||||
</output>
|
||||
</check>
|
||||
|
||||
<check if="current status is neither ready-for-dev nor in-progress">
|
||||
<output>⚠️ Unexpected story status: {{current_status}}
|
||||
Expected ready-for-dev or in-progress. Continuing anyway...
|
||||
</output>
|
||||
</check>
|
||||
|
||||
<action>Store {{current_sprint_status}} for later use</action>
|
||||
</check>
|
||||
|
||||
<check if="{{sprint_status}} file does NOT exist">
|
||||
<output>ℹ️ No sprint status file exists - story progress will be tracked in story file only</output>
|
||||
<action>Set {{current_sprint_status}} = "no-sprint-tracking"</action>
|
||||
</check>
|
||||
</step>
|
||||
|
||||
<step n="5" goal="Implement task following red-green-refactor cycle">
|
||||
<critical>FOLLOW THE STORY FILE TASKS/SUBTASKS SEQUENCE EXACTLY AS WRITTEN - NO DEVIATION</critical>
|
||||
|
||||
<action>Review the current task/subtask from the story file - this is your authoritative implementation guide</action>
|
||||
<action>Plan implementation following red-green-refactor cycle</action>
|
||||
|
||||
<!-- RED PHASE -->
|
||||
<action>Write FAILING tests first for the task/subtask functionality</action>
|
||||
<action>Confirm tests fail before implementation - this validates test correctness</action>
|
||||
|
||||
<!-- GREEN PHASE -->
|
||||
<action>Implement MINIMAL code to make tests pass</action>
|
||||
<action>Run tests to confirm they now pass</action>
|
||||
<action>Handle error conditions and edge cases as specified in task/subtask</action>
|
||||
|
||||
<!-- REFACTOR PHASE -->
|
||||
<action>Improve code structure while keeping tests green</action>
|
||||
<action>Ensure code follows architecture patterns and coding standards from Dev Notes</action>
|
||||
|
||||
<action>Document technical approach and decisions in Dev Agent Record → Implementation Plan</action>
|
||||
|
||||
<action if="new dependencies required beyond story specifications">HALT: "Additional dependencies need user approval"</action>
|
||||
<action if="3 consecutive implementation failures occur">HALT and request guidance</action>
|
||||
<action if="required configuration is missing">HALT: "Cannot proceed without necessary configuration files"</action>
|
||||
|
||||
<critical>NEVER implement anything not mapped to a specific task/subtask in the story file</critical>
|
||||
<critical>NEVER proceed to next task until current task/subtask is complete AND tests pass</critical>
|
||||
<critical>Execute continuously without pausing until all tasks/subtasks are complete or explicit HALT condition</critical>
|
||||
<critical>Do NOT propose to pause for review until Step 9 completion gates are satisfied</critical>
|
||||
</step>
|
||||
|
||||
<step n="6" goal="Author comprehensive tests">
|
||||
<action>Create unit tests for business logic and core functionality introduced/changed by the task</action>
|
||||
<action>Add integration tests for component interactions specified in story requirements</action>
|
||||
<action>Include end-to-end tests for critical user flows when story requirements demand them</action>
|
||||
<action>Cover edge cases and error handling scenarios identified in story Dev Notes</action>
|
||||
</step>
|
||||
|
||||
<step n="7" goal="Run validations and tests">
|
||||
<action>Determine how to run tests for this repo (infer test framework from project structure)</action>
|
||||
<action>Run all existing tests to ensure no regressions</action>
|
||||
<action>Run the new tests to verify implementation correctness</action>
|
||||
<action>Run linting and code quality checks if configured in project</action>
|
||||
<action>Validate implementation meets ALL story acceptance criteria; enforce quantitative thresholds explicitly</action>
|
||||
<action if="regression tests fail">STOP and fix before continuing - identify breaking changes immediately</action>
|
||||
<action if="new tests fail">STOP and fix before continuing - ensure implementation correctness</action>
|
||||
</step>
|
||||
|
||||
<step n="8" goal="Validate and mark task complete ONLY when fully done">
|
||||
<critical>NEVER mark a task complete unless ALL conditions are met - NO LYING OR CHEATING</critical>
|
||||
|
||||
<!-- VALIDATION GATES -->
|
||||
<action>Verify ALL tests for this task/subtask ACTUALLY EXIST and PASS 100%</action>
|
||||
<action>Confirm implementation matches EXACTLY what the task/subtask specifies - no extra features</action>
|
||||
<action>Validate that ALL acceptance criteria related to this task are satisfied</action>
|
||||
<action>Run full test suite to ensure NO regressions introduced</action>
|
||||
|
||||
<!-- REVIEW FOLLOW-UP HANDLING -->
|
||||
<check if="task is review follow-up (has [AI-Review] prefix)">
|
||||
<action>Extract review item details (severity, description, related AC/file)</action>
|
||||
<action>Add to resolution tracking list: {{resolved_review_items}}</action>
|
||||
|
||||
<!-- Mark task in Review Follow-ups section -->
|
||||
<action>Mark task checkbox [x] in "Tasks/Subtasks → Review Follow-ups (AI)" section</action>
|
||||
|
||||
<!-- CRITICAL: Also mark corresponding action item in review section -->
|
||||
<action>Find matching action item in "Senior Developer Review (AI) → Action Items" section by matching description</action>
|
||||
<action>Mark that action item checkbox [x] as resolved</action>
|
||||
|
||||
<action>Add to Dev Agent Record → Completion Notes: "✅ Resolved review finding [{{severity}}]: {{description}}"</action>
|
||||
</check>
|
||||
|
||||
<!-- ONLY MARK COMPLETE IF ALL VALIDATION PASS -->
|
||||
<check if="ALL validation gates pass AND tests ACTUALLY exist and pass">
|
||||
<action>ONLY THEN mark the task (and subtasks) checkbox with [x]</action>
|
||||
<action>Update File List section with ALL new, modified, or deleted files (paths relative to repo root)</action>
|
||||
<action>Add completion notes to Dev Agent Record summarizing what was ACTUALLY implemented and tested</action>
|
||||
</check>
|
||||
|
||||
<check if="ANY validation fails">
|
||||
<action>DO NOT mark task complete - fix issues first</action>
|
||||
<action>HALT if unable to fix validation failures</action>
|
||||
</check>
|
||||
|
||||
<check if="review_continuation == true and {{resolved_review_items}} is not empty">
|
||||
<action>Count total resolved review items in this session</action>
|
||||
<action>Add Change Log entry: "Addressed code review findings - {{resolved_count}} items resolved (Date: {{date}})"</action>
|
||||
</check>
|
||||
|
||||
<action>Save the story file</action>
|
||||
<action>Determine if more incomplete tasks remain</action>
|
||||
<action if="more tasks remain">
|
||||
<goto step="5">Next task</goto>
|
||||
</action>
|
||||
<action if="no tasks remain">
|
||||
<goto step="9">Completion</goto>
|
||||
</action>
|
||||
</step>
|
||||
|
||||
<step n="9" goal="Story completion and mark for review" tag="sprint-status">
|
||||
<action>Verify ALL tasks and subtasks are marked [x] (re-scan the story document now)</action>
|
||||
<action>Run the full regression suite (do not skip)</action>
|
||||
<action>Confirm File List includes every changed file</action>
|
||||
<action>Execute enhanced definition-of-done validation</action>
|
||||
<action>Update the story Status to: "review"</action>
|
||||
|
||||
<!-- Enhanced Definition of Done Validation -->
|
||||
<action>Validate definition-of-done checklist with essential requirements:
|
||||
- All tasks/subtasks marked complete with [x]
|
||||
- Implementation satisfies every Acceptance Criterion
|
||||
- Unit tests for core functionality added/updated
|
||||
- Integration tests for component interactions added when required
|
||||
- End-to-end tests for critical flows added when story demands them
|
||||
- All tests pass (no regressions, new tests successful)
|
||||
- Code quality checks pass (linting, static analysis if configured)
|
||||
- File List includes every new/modified/deleted file (relative paths)
|
||||
- Dev Agent Record contains implementation notes
|
||||
- Change Log includes summary of changes
|
||||
- Only permitted story sections were modified
|
||||
</action>
|
||||
|
||||
<!-- Mark story ready for review - sprint status conditional -->
|
||||
<check if="{sprint_status} file exists AND {{current_sprint_status}} != 'no-sprint-tracking'">
|
||||
<action>Load the FULL file: {sprint_status}</action>
|
||||
<action>Find development_status key matching {{story_key}}</action>
|
||||
<action>Verify current status is "in-progress" (expected previous state)</action>
|
||||
<action>Update development_status[{{story_key}}] = "review"</action>
|
||||
<action>Save file, preserving ALL comments and structure including STATUS DEFINITIONS</action>
|
||||
<output>✅ Story status updated to "review" in sprint-status.yaml</output>
|
||||
</check>
|
||||
|
||||
<check if="{sprint_status} file does NOT exist OR {{current_sprint_status}} == 'no-sprint-tracking'">
|
||||
<output>ℹ️ Story status updated to "review" in story file (no sprint tracking configured)</output>
|
||||
</check>
|
||||
|
||||
<check if="story key not found in sprint status">
|
||||
<output>⚠️ Story file updated, but sprint-status update failed: {{story_key}} not found
|
||||
|
||||
Story status is set to "review" in file, but sprint-status.yaml may be out of sync.
|
||||
</output>
|
||||
</check>
|
||||
|
||||
<!-- Final validation gates -->
|
||||
<action if="any task is incomplete">HALT - Complete remaining tasks before marking ready for review</action>
|
||||
<action if="regression failures exist">HALT - Fix regression issues before completing</action>
|
||||
<action if="File List is incomplete">HALT - Update File List with all changed files</action>
|
||||
<action if="definition-of-done validation fails">HALT - Address DoD failures before completing</action>
|
||||
</step>
|
||||
|
||||
<step n="10" goal="Completion communication and user support">
|
||||
<action>Execute the enhanced definition-of-done checklist using the validation framework</action>
|
||||
<action>Prepare a concise summary in Dev Agent Record → Completion Notes</action>
|
||||
|
||||
<action>Communicate to {user_name} that story implementation is complete and ready for review</action>
|
||||
<action>Summarize key accomplishments: story ID, story key, title, key changes made, tests added, files modified</action>
|
||||
<action>Provide the story file path and current status (now "review")</action>
|
||||
|
||||
<action>Based on {user_skill_level}, ask if user needs any explanations about:
|
||||
- What was implemented and how it works
|
||||
- Why certain technical decisions were made
|
||||
- How to test or verify the changes
|
||||
- Any patterns, libraries, or approaches used
|
||||
- Anything else they'd like clarified
|
||||
</action>
|
||||
|
||||
<check if="user asks for explanations">
|
||||
<action>Provide clear, contextual explanations tailored to {user_skill_level}</action>
|
||||
<action>Use examples and references to specific code when helpful</action>
|
||||
</check>
|
||||
|
||||
<action>Once explanations are complete (or user indicates no questions), suggest logical next steps</action>
|
||||
<action>Recommended next steps (flexible based on project setup):
|
||||
- Review the implemented story and test the changes
|
||||
- Verify all acceptance criteria are met
|
||||
- Ensure deployment readiness if applicable
|
||||
- Run `code-review` workflow for peer review
|
||||
- Optional: If Test Architect module installed, run `/bmad:tea:automate` to expand guardrail tests
|
||||
</action>
|
||||
|
||||
<output>💡 **Tip:** For best results, run `code-review` using a **different** LLM than the one that implemented this story.</output>
|
||||
<check if="{sprint_status} file exists">
|
||||
<action>Suggest checking {sprint_status} to see project progress</action>
|
||||
</check>
|
||||
<action>Remain flexible - allow user to choose their own path or ask for other assistance</action>
|
||||
</step>
|
||||
|
||||
</workflow>
|
||||
|
|
@ -0,0 +1,130 @@
|
|||
---
|
||||
name: 'step-01-find-story'
|
||||
description: 'Find the next ready story (or accept explicit input), load it completely, and identify the next actionable task'
|
||||
nextStepFile: './step-02-load-context.md'
|
||||
---
|
||||
|
||||
<step n="1" goal="Find next ready story and load it" tag="sprint-status">
|
||||
<check if="{{story_path}} is provided">
|
||||
<action>Use {{story_path}} directly</action>
|
||||
<action>Read COMPLETE story file</action>
|
||||
<action>Extract story_key from filename or metadata</action>
|
||||
<goto anchor="task_check" />
|
||||
</check>
|
||||
|
||||
<!-- Sprint-based story discovery -->
|
||||
<check if="{{sprint_status}} file exists">
|
||||
<critical>MUST read COMPLETE sprint-status.yaml file from start to end to preserve order</critical>
|
||||
<action>Load the FULL file: {{sprint_status}}</action>
|
||||
<action>Read ALL lines from beginning to end - do not skip any content</action>
|
||||
<action>Parse the development_status section completely to understand story order</action>
|
||||
|
||||
<action>Find the FIRST story (by reading in order from top to bottom) where:
|
||||
- Key matches pattern: number-number-name (e.g., "1-2-user-auth")
|
||||
- NOT an epic key (epic-X) or retrospective (epic-X-retrospective)
|
||||
- Status value equals "ready-for-dev"
|
||||
</action>
|
||||
|
||||
<check if="no ready-for-dev or in-progress story found">
|
||||
<output>📋 No ready-for-dev stories found in sprint-status.yaml
|
||||
|
||||
**Current Sprint Status:** {{sprint_status_summary}}
|
||||
|
||||
**What would you like to do?**
|
||||
1. Run `create-story` to create next story from epics with comprehensive context
|
||||
2. Run `*validate-create-story` to improve existing stories before development (recommended quality check)
|
||||
3. Specify a particular story file to develop (provide full path)
|
||||
4. Check {{sprint_status}} file to see current sprint status
|
||||
|
||||
💡 **Tip:** Stories in `ready-for-dev` may not have been validated. Consider running `validate-create-story` first for a quality
|
||||
check.
|
||||
</output>
|
||||
<ask>Choose option [1], [2], [3], or [4], or specify story file path:</ask>
|
||||
|
||||
<check if="user chooses '1'">
|
||||
<action>HALT - Run create-story to create next story</action>
|
||||
</check>
|
||||
|
||||
<check if="user chooses '2'">
|
||||
<action>HALT - Run validate-create-story to improve existing stories</action>
|
||||
</check>
|
||||
|
||||
<check if="user chooses '3'">
|
||||
<ask>Provide the story file path to develop:</ask>
|
||||
<action>Store user-provided story path as {{story_path}}</action>
|
||||
<goto anchor="task_check" />
|
||||
</check>
|
||||
|
||||
<check if="user chooses '4'">
|
||||
<output>Loading {{sprint_status}} for detailed status review...</output>
|
||||
<action>Display detailed sprint status analysis</action>
|
||||
<action>HALT - User can review sprint status and provide story path</action>
|
||||
</check>
|
||||
|
||||
<check if="user provides story file path">
|
||||
<action>Store user-provided story path as {{story_path}}</action>
|
||||
<goto anchor="task_check" />
|
||||
</check>
|
||||
</check>
|
||||
</check>
|
||||
|
||||
<!-- Non-sprint story discovery -->
|
||||
<check if="{{sprint_status}} file does NOT exist">
|
||||
<action>Search {story_dir} for stories directly</action>
|
||||
<action>Find stories with "ready-for-dev" status in files</action>
|
||||
<action>Look for story files matching pattern: *-*-*.md</action>
|
||||
<action>Read each candidate story file to check Status section</action>
|
||||
|
||||
<check if="no ready-for-dev stories found in story files">
|
||||
<output>📋 No ready-for-dev stories found
|
||||
|
||||
**Available Options:**
|
||||
1. Run `create-story` to create next story from epics with comprehensive context
|
||||
2. Run `*validate-create-story` to improve existing stories
|
||||
3. Specify which story to develop
|
||||
</output>
|
||||
<ask>What would you like to do? Choose option [1], [2], or [3]:</ask>
|
||||
|
||||
<check if="user chooses '1'">
|
||||
<action>HALT - Run create-story to create next story</action>
|
||||
</check>
|
||||
|
||||
<check if="user chooses '2'">
|
||||
<action>HALT - Run validate-create-story to improve existing stories</action>
|
||||
</check>
|
||||
|
||||
<check if="user chooses '3'">
|
||||
<ask>It's unclear what story you want developed. Please provide the full path to the story file:</ask>
|
||||
<action>Store user-provided story path as {{story_path}}</action>
|
||||
<action>Continue with provided story file</action>
|
||||
</check>
|
||||
</check>
|
||||
|
||||
<check if="ready-for-dev story found in files">
|
||||
<action>Use discovered story file and extract story_key</action>
|
||||
</check>
|
||||
</check>
|
||||
|
||||
<action>Store the found story_key (e.g., "1-2-user-authentication") for later status updates</action>
|
||||
<action>Find matching story file in {story_dir} using story_key pattern: {{story_key}}.md</action>
|
||||
<action>Read COMPLETE story file from discovered path</action>
|
||||
|
||||
<anchor id="task_check" />
|
||||
|
||||
<action>Parse sections: Story, Acceptance Criteria, Tasks/Subtasks, Dev Notes, Dev Agent Record, File List, Change Log, Status</action>
|
||||
|
||||
<action>Load comprehensive context from story file's Dev Notes section</action>
|
||||
<action>Extract developer guidance from Dev Notes: architecture requirements, previous learnings, technical specifications</action>
|
||||
<action>Use enhanced story context to inform implementation decisions and approaches</action>
|
||||
|
||||
<action>Identify first incomplete task (unchecked [ ]) in Tasks/Subtasks</action>
|
||||
|
||||
<action if="no incomplete tasks">
|
||||
<goto step="6">Completion sequence</goto>
|
||||
</action>
|
||||
<action if="story file inaccessible">HALT: "Cannot develop story without access to story file"</action>
|
||||
<action if="incomplete task or subtask requirements ambiguous">ASK user to clarify or HALT</action>
|
||||
</step>
|
||||
|
||||
## Next
|
||||
- Read fully and follow: `./step-02-load-context.md`.
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
---
|
||||
name: 'step-02-load-context'
|
||||
description: 'Load project and story context needed for implementation decisions'
|
||||
nextStepFile: './step-03-detect-review-continuation.md'
|
||||
---
|
||||
|
||||
<step n="2" goal="Load project context and story information">
|
||||
<critical>Load all available context to inform implementation</critical>
|
||||
|
||||
<action>Load {project_context} for coding standards and project-wide patterns (if exists)</action>
|
||||
<action>Parse sections: Story, Acceptance Criteria, Tasks/Subtasks, Dev Notes, Dev Agent Record, File List, Change Log, Status</action>
|
||||
<action>Load comprehensive context from story file's Dev Notes section</action>
|
||||
<action>Extract developer guidance from Dev Notes: architecture requirements, previous learnings, technical specifications</action>
|
||||
<action>Use enhanced story context to inform implementation decisions and approaches</action>
|
||||
<output>✅ **Context Loaded**
|
||||
Story and project context available for implementation
|
||||
</output>
|
||||
</step>
|
||||
|
||||
## Next
|
||||
- Read fully and follow: `./step-03-detect-review-continuation.md`.
|
||||
|
|
@ -0,0 +1,48 @@
|
|||
---
|
||||
name: 'step-03-detect-review-continuation'
|
||||
description: 'Determine whether this run resumes from prior code review and gather pending follow-ups'
|
||||
nextStepFile: './step-04-mark-in-progress.md'
|
||||
---
|
||||
|
||||
<step n="3" goal="Detect review continuation and extract review context">
|
||||
<critical>Determine if this is a fresh start or continuation after code review</critical>
|
||||
|
||||
<action>Check if "Senior Developer Review (AI)" section exists in the story file</action>
|
||||
<action>Check if "Review Follow-ups (AI)" subsection exists under Tasks/Subtasks</action>
|
||||
|
||||
<check if="Senior Developer Review section exists">
|
||||
<action>Set review_continuation = true</action>
|
||||
<action>Extract from "Senior Developer Review (AI)" section:
|
||||
- Review outcome (Approve/Changes Requested/Blocked)
|
||||
- Review date
|
||||
- Total action items with checkboxes (count checked vs unchecked)
|
||||
- Severity breakdown (High/Med/Low counts)
|
||||
</action>
|
||||
<action>Count unchecked [ ] review follow-up tasks in "Review Follow-ups (AI)" subsection</action>
|
||||
<action>Store list of unchecked review items as {{pending_review_items}}</action>
|
||||
|
||||
<output>⏯️ **Resuming Story After Code Review** ({{review_date}})
|
||||
|
||||
**Review Outcome:** {{review_outcome}}
|
||||
**Action Items:** {{unchecked_review_count}} remaining to address
|
||||
**Priorities:** {{high_count}} High, {{med_count}} Medium, {{low_count}} Low
|
||||
|
||||
**Strategy:** Will prioritize review follow-up tasks (marked [AI-Review]) before continuing with regular tasks.
|
||||
</output>
|
||||
</check>
|
||||
|
||||
<check if="Senior Developer Review section does NOT exist">
|
||||
<action>Set review_continuation = false</action>
|
||||
<action>Set {{pending_review_items}} = empty</action>
|
||||
|
||||
<output>🚀 **Starting Fresh Implementation**
|
||||
|
||||
Story: {{story_key}}
|
||||
Story Status: {{current_status}}
|
||||
First incomplete task: {{first_task_description}}
|
||||
</output>
|
||||
</check>
|
||||
</step>
|
||||
|
||||
## Next
|
||||
- Read fully and follow: `./step-04-mark-in-progress.md`.
|
||||
|
|
@ -0,0 +1,42 @@
|
|||
---
|
||||
name: 'step-04-mark-in-progress'
|
||||
description: 'Synchronize in-progress status with sprint tracking when available'
|
||||
nextStepFile: './step-05-implement-task.md'
|
||||
---
|
||||
|
||||
<step n="4" goal="Mark story in-progress" tag="sprint-status">
|
||||
<check if="{{sprint_status}} file exists">
|
||||
<action>Load the FULL file: {{sprint_status}}</action>
|
||||
<action>Read all development_status entries to find {{story_key}}</action>
|
||||
<action>Get current status value for development_status[{{story_key}}]</action>
|
||||
|
||||
<check if="current status == 'ready-for-dev' OR review_continuation == true">
|
||||
<action>Update the story in the sprint status report to = "in-progress"</action>
|
||||
<output>🚀 Starting work on story {{story_key}}
|
||||
Status updated: ready-for-dev → in-progress
|
||||
</output>
|
||||
</check>
|
||||
|
||||
<check if="current status == 'in-progress'">
|
||||
<output>⏯️ Resuming work on story {{story_key}}
|
||||
Story is already marked in-progress
|
||||
</output>
|
||||
</check>
|
||||
|
||||
<check if="current status is neither ready-for-dev nor in-progress">
|
||||
<output>⚠️ Unexpected story status: {{current_status}}
|
||||
Expected ready-for-dev or in-progress. Continuing anyway...
|
||||
</output>
|
||||
</check>
|
||||
|
||||
<action>Store {{current_sprint_status}} for later use</action>
|
||||
</check>
|
||||
|
||||
<check if="{{sprint_status}} file does NOT exist">
|
||||
<output>ℹ️ No sprint status file exists - story progress will be tracked in story file only</output>
|
||||
<action>Set {{current_sprint_status}} = "no-sprint-tracking"</action>
|
||||
</check>
|
||||
</step>
|
||||
|
||||
## Next
|
||||
- Read fully and follow: `./step-05-implement-task.md`.
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
---
|
||||
name: 'step-05-implement-task'
|
||||
description: 'Implement the current task using red-green-refactor and story constraints'
|
||||
nextStepFile: './step-06-author-tests.md'
|
||||
---
|
||||
|
||||
<step n="5" goal="Implement task following red-green-refactor cycle">
|
||||
<critical>FOLLOW THE STORY FILE TASKS/SUBTASKS SEQUENCE EXACTLY AS WRITTEN - NO DEVIATION</critical>
|
||||
|
||||
<action>Review the current task/subtask from the story file - this is your authoritative implementation guide</action>
|
||||
<action>Plan implementation following red-green-refactor cycle</action>
|
||||
|
||||
<!-- RED PHASE -->
|
||||
<action>Write FAILING tests first for the task/subtask functionality</action>
|
||||
<action>Confirm tests fail before implementation - this validates test correctness</action>
|
||||
|
||||
<!-- GREEN PHASE -->
|
||||
<action>Implement MINIMAL code to make tests pass</action>
|
||||
<action>Run tests to confirm they now pass</action>
|
||||
<action>Handle error conditions and edge cases as specified in task/subtask</action>
|
||||
|
||||
<!-- REFACTOR PHASE -->
|
||||
<action>Improve code structure while keeping tests green</action>
|
||||
<action>Ensure code follows architecture patterns and coding standards from Dev Notes</action>
|
||||
|
||||
<action>Document technical approach and decisions in Dev Agent Record → Implementation Plan</action>
|
||||
|
||||
<action if="new dependencies required beyond story specifications">HALT: "Additional dependencies need user approval"</action>
|
||||
<action if="3 consecutive implementation failures occur">HALT and request guidance</action>
|
||||
<action if="required configuration is missing">HALT: "Cannot proceed without necessary configuration files"</action>
|
||||
|
||||
<critical>NEVER implement anything not mapped to a specific task/subtask in the story file</critical>
|
||||
<critical>NEVER proceed to next task until current task/subtask is complete AND tests pass</critical>
|
||||
<critical>Execute continuously without pausing until all tasks/subtasks are complete or explicit HALT condition</critical>
|
||||
<critical>Do NOT propose to pause for review until Step 9 completion gates are satisfied</critical>
|
||||
</step>
|
||||
|
||||
## Next
|
||||
- Read fully and follow: `./step-06-author-tests.md`.
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
---
|
||||
name: 'step-06-author-tests'
|
||||
description: 'Author comprehensive unit/integration/e2e coverage required by the story'
|
||||
nextStepFile: './step-07-run-validations.md'
|
||||
---
|
||||
|
||||
<step n="6" goal="Author comprehensive tests">
|
||||
<action>Create unit tests for business logic and core functionality introduced/changed by the task</action>
|
||||
<action>Add integration tests for component interactions specified in story requirements</action>
|
||||
<action>Include end-to-end tests for critical user flows when story requirements demand them</action>
|
||||
<action>Cover edge cases and error handling scenarios identified in story Dev Notes</action>
|
||||
</step>
|
||||
|
||||
## Next
|
||||
- Read fully and follow: `./step-07-run-validations.md`.
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
---
|
||||
name: 'step-07-run-validations'
|
||||
description: 'Run repository test and validation commands, then stop on regressions'
|
||||
nextStepFile: './step-08-mark-task-complete.md'
|
||||
---
|
||||
|
||||
<step n="7" goal="Run validations and tests">
|
||||
<action>Determine how to run tests for this repo (infer test framework from project structure)</action>
|
||||
<action>Run all existing tests to ensure no regressions</action>
|
||||
<action>Run the new tests to verify implementation correctness</action>
|
||||
<action>Run linting and code quality checks if configured in project</action>
|
||||
<action>Validate implementation meets ALL story acceptance criteria; enforce quantitative thresholds explicitly</action>
|
||||
<action if="regression tests fail">STOP and fix before continuing - identify breaking changes immediately</action>
|
||||
<action if="new tests fail">STOP and fix before continuing - ensure implementation correctness</action>
|
||||
</step>
|
||||
|
||||
## Next
|
||||
- Read fully and follow: `./step-08-mark-task-complete.md`.
|
||||
|
|
@ -0,0 +1,59 @@
|
|||
---
|
||||
name: 'step-08-mark-task-complete'
|
||||
description: 'Mark work complete only after strict validation gates are satisfied'
|
||||
nextStepFile: './step-09-mark-review-ready.md'
|
||||
---
|
||||
|
||||
<step n="8" goal="Validate and mark task complete ONLY when fully done">
|
||||
<critical>NEVER mark a task complete unless ALL conditions are met - NO LYING OR CHEATING</critical>
|
||||
|
||||
<!-- VALIDATION GATES -->
|
||||
<action>Verify ALL tests for this task/subtask ACTUALLY EXIST and PASS 100%</action>
|
||||
<action>Confirm implementation matches EXACTLY what the task/subtask specifies - no extra features</action>
|
||||
<action>Validate that ALL acceptance criteria related to this task are satisfied</action>
|
||||
<action>Run full test suite to ensure NO regressions introduced</action>
|
||||
|
||||
<!-- REVIEW FOLLOW-UP HANDLING -->
|
||||
<check if="task is review follow-up (has [AI-Review] prefix)">
|
||||
<action>Extract review item details (severity, description, related AC/file)</action>
|
||||
<action>Add to resolution tracking list: {{resolved_review_items}}</action>
|
||||
|
||||
<!-- Mark task in Review Follow-ups section -->
|
||||
<action>Mark task checkbox [x] in "Tasks/Subtasks → Review Follow-ups (AI)" section</action>
|
||||
|
||||
<!-- CRITICAL: Also mark corresponding action item in review section -->
|
||||
<action>Find matching action item in "Senior Developer Review (AI) → Action Items" section by matching description</action>
|
||||
<action>Mark that action item checkbox [x] as resolved</action>
|
||||
|
||||
<action>Add to Dev Agent Record → Completion Notes: "✅ Resolved review finding [{{severity}}]: {{description}}"</action>
|
||||
</check>
|
||||
|
||||
<!-- ONLY MARK COMPLETE IF ALL VALIDATION PASS -->
|
||||
<check if="ALL validation gates pass AND tests ACTUALLY exist and pass">
|
||||
<action>ONLY THEN mark the task (and subtasks) checkbox with [x]</action>
|
||||
<action>Update File List section with ALL new, modified, or deleted files (paths relative to repo root)</action>
|
||||
<action>Add completion notes to Dev Agent Record summarizing what was ACTUALLY implemented and tested</action>
|
||||
</check>
|
||||
|
||||
<check if="ANY validation fails">
|
||||
<action>DO NOT mark task complete - fix issues first</action>
|
||||
<action>HALT if unable to fix validation failures</action>
|
||||
</check>
|
||||
|
||||
<check if="review_continuation == true and {{resolved_review_items}} is not empty">
|
||||
<action>Count total resolved review items in this session</action>
|
||||
<action>Add Change Log entry: "Addressed code review findings - {{resolved_count}} items resolved (Date: {{date}})"</action>
|
||||
</check>
|
||||
|
||||
<action>Save the story file</action>
|
||||
<action>Determine if more incomplete tasks remain</action>
|
||||
<action if="more tasks remain">
|
||||
<goto step="5">Next task</goto>
|
||||
</action>
|
||||
<action if="no tasks remain">
|
||||
<goto step="9">Completion</goto>
|
||||
</action>
|
||||
</step>
|
||||
|
||||
## Next
|
||||
- Read fully and follow: `./step-09-mark-review-ready.md`.
|
||||
|
|
@ -0,0 +1,58 @@
|
|||
---
|
||||
name: 'step-09-mark-review-ready'
|
||||
description: 'Finalize story, enforce definition-of-done, and set review status'
|
||||
nextStepFile: './step-10-closeout.md'
|
||||
---
|
||||
|
||||
<step n="9" goal="Story completion and mark for review" tag="sprint-status">
|
||||
<action>Verify ALL tasks and subtasks are marked [x] (re-scan the story document now)</action>
|
||||
<action>Run the full regression suite (do not skip)</action>
|
||||
<action>Confirm File List includes every changed file</action>
|
||||
<action>Execute enhanced definition-of-done validation</action>
|
||||
<action>Update the story Status to: "review"</action>
|
||||
|
||||
<!-- Enhanced Definition of Done Validation -->
|
||||
<action>Validate definition-of-done checklist with essential requirements:
|
||||
- All tasks/subtasks marked complete with [x]
|
||||
- Implementation satisfies every Acceptance Criterion
|
||||
- Unit tests for core functionality added/updated
|
||||
- Integration tests for component interactions added when required
|
||||
- End-to-end tests for critical flows added when story demands them
|
||||
- All tests pass (no regressions, new tests successful)
|
||||
- Code quality checks pass (linting, static analysis if configured)
|
||||
- File List includes every new/modified/deleted file (relative paths)
|
||||
- Dev Agent Record contains implementation notes
|
||||
- Change Log includes summary of changes
|
||||
- Only permitted story sections were modified
|
||||
</action>
|
||||
|
||||
<!-- Mark story ready for review - sprint status conditional -->
|
||||
<check if="{sprint_status} file exists AND {{current_sprint_status}} != 'no-sprint-tracking'">
|
||||
<action>Load the FULL file: {sprint_status}</action>
|
||||
<action>Find development_status key matching {{story_key}}</action>
|
||||
<action>Verify current status is "in-progress" (expected previous state)</action>
|
||||
<action>Update development_status[{{story_key}}] = "review"</action>
|
||||
<action>Save file, preserving ALL comments and structure including STATUS DEFINITIONS</action>
|
||||
<output>✅ Story status updated to "review" in sprint-status.yaml</output>
|
||||
</check>
|
||||
|
||||
<check if="{sprint_status} file does NOT exist OR {{current_sprint_status}} == 'no-sprint-tracking'">
|
||||
<output>ℹ️ Story status updated to "review" in story file (no sprint tracking configured)</output>
|
||||
</check>
|
||||
|
||||
<check if="story key not found in sprint status">
|
||||
<output>⚠️ Story file updated, but sprint-status update failed: {{story_key}} not found
|
||||
|
||||
Story status is set to "review" in file, but sprint-status.yaml may be out of sync.
|
||||
</output>
|
||||
</check>
|
||||
|
||||
<!-- Final validation gates -->
|
||||
<action if="any task is incomplete">HALT - Complete remaining tasks before marking ready for review</action>
|
||||
<action if="regression failures exist">HALT - Fix regression issues before completing</action>
|
||||
<action if="File List is incomplete">HALT - Update File List with all changed files</action>
|
||||
<action if="definition-of-done validation fails">HALT - Address DoD failures before completing</action>
|
||||
</step>
|
||||
|
||||
## Next
|
||||
- Read fully and follow: `./step-10-closeout.md`.
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
---
|
||||
name: 'step-10-closeout'
|
||||
description: 'Summarize completion, answer user questions, and recommend next steps'
|
||||
---
|
||||
|
||||
<step n="10" goal="Completion communication and user support">
|
||||
<invoke-task>Validate against checklist at {installed_path}/checklist.md using _bmad/core/tasks/validate-workflow.md</invoke-task>
|
||||
<action>Prepare a concise summary in Dev Agent Record → Completion Notes</action>
|
||||
|
||||
<action>Communicate to {user_name} that story implementation is complete and ready for review</action>
|
||||
<action>Summarize key accomplishments: story ID, story key, title, key changes made, tests added, files modified</action>
|
||||
<action>Provide the story file path and current status (now "review")</action>
|
||||
|
||||
<action>Based on {user_skill_level}, ask if user needs any explanations about:
|
||||
- What was implemented and how it works
|
||||
- Why certain technical decisions were made
|
||||
- How to test or verify the changes
|
||||
- Any patterns, libraries, or approaches used
|
||||
- Anything else they'd like clarified
|
||||
</action>
|
||||
|
||||
<check if="user asks for explanations">
|
||||
<action>Provide clear, contextual explanations tailored to {user_skill_level}</action>
|
||||
<action>Use examples and references to specific code when helpful</action>
|
||||
</check>
|
||||
|
||||
<action>Once explanations are complete (or user indicates no questions), suggest logical next steps</action>
|
||||
<action>Recommended next steps (flexible based on project setup):
|
||||
- Review the implemented story and test the changes
|
||||
- Verify all acceptance criteria are met
|
||||
- Ensure deployment readiness if applicable
|
||||
- Run `code-review` workflow for peer review
|
||||
- Optional: If Test Architect module installed, run `/bmad:tea:automate` to expand guardrail tests
|
||||
</action>
|
||||
|
||||
<output>💡 **Tip:** For best results, run `code-review` using a **different** LLM than the one that implemented this story.</output>
|
||||
<check if="{sprint_status} file exists">
|
||||
<action>Suggest checking {sprint_status} to see project progress</action>
|
||||
</check>
|
||||
<action>Remain flexible - allow user to choose their own path or ask for other assistance</action>
|
||||
</step>
|
||||
|
|
@ -0,0 +1,46 @@
|
|||
---
|
||||
name: dev-story
|
||||
description: "Execute a story by implementing tasks/subtasks, writing tests, validating, and updating the story file per acceptance criteria"
|
||||
main_config: '{project-root}/_bmad/bmm/config.yaml'
|
||||
web_bundle: false
|
||||
---
|
||||
|
||||
# Dev Story Workflow
|
||||
|
||||
## Goal
|
||||
Implement a ready story end-to-end with strict validation gates, accurate progress tracking, and high-quality test coverage.
|
||||
|
||||
## Workflow Architecture
|
||||
- Uses step-file execution to keep context focused and deterministic.
|
||||
- Read one step file fully, execute it, then move to the next step file.
|
||||
- Do not pre-load future step files.
|
||||
|
||||
## Initialization
|
||||
- Load config from `{project-root}/_bmad/bmm/config.yaml`.
|
||||
- Resolve variables:
|
||||
- `user_name`
|
||||
- `communication_language`
|
||||
- `document_output_language`
|
||||
- `user_skill_level`
|
||||
- `implementation_artifacts`
|
||||
- `story_dir` = `{implementation_artifacts}`
|
||||
- `sprint_status` = `{implementation_artifacts}/sprint-status.yaml`
|
||||
- `story_file` (if provided)
|
||||
- `project_context` = `**/project-context.md`
|
||||
- `date` (system-generated)
|
||||
- `installed_path` = `{project-root}/_bmad/bmm/workflows/4-implementation/dev-story`
|
||||
|
||||
## Critical Rules
|
||||
- Communicate in `{communication_language}` and tailor explanations to `{user_skill_level}`.
|
||||
- Generate any documents in `{document_output_language}`.
|
||||
- Only update allowed story sections:
|
||||
- Tasks/Subtasks checkboxes
|
||||
- Dev Agent Record (Debug Log, Completion Notes)
|
||||
- File List
|
||||
- Change Log
|
||||
- Status
|
||||
- Execute steps in order and do not skip validation gates.
|
||||
- Continue until the story is complete unless a defined HALT condition triggers.
|
||||
|
||||
## Execution
|
||||
Read fully and follow: `steps/step-01-find-story.md`.
|
||||
|
|
@ -1,23 +0,0 @@
|
|||
name: dev-story
|
||||
description: "Execute a story by implementing tasks/subtasks, writing tests, validating, and updating the story file per acceptance criteria"
|
||||
author: "BMad"
|
||||
|
||||
# Critical variables from config
|
||||
config_source: "{project-root}/_bmad/bmm/config.yaml"
|
||||
output_folder: "{config_source}:output_folder"
|
||||
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"
|
||||
story_dir: "{config_source}:implementation_artifacts"
|
||||
date: system-generated
|
||||
|
||||
# Workflow components
|
||||
installed_path: "{project-root}/_bmad/bmm/workflows/4-implementation/dev-story"
|
||||
instructions: "{installed_path}/instructions.xml"
|
||||
validation: "{installed_path}/checklist.md"
|
||||
|
||||
story_file: "" # Explicit story path; auto-discovered if empty
|
||||
implementation_artifacts: "{config_source}:implementation_artifacts"
|
||||
sprint_status: "{implementation_artifacts}/sprint-status.yaml"
|
||||
project_context: "**/project-context.md"
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
# Retrospective - Epic Completion Review Instructions
|
||||
|
||||
<critical>The workflow execution engine is governed by: {project-root}/_bmad/core/tasks/workflow.xml</critical>
|
||||
<critical>You MUST have already loaded and processed: {project-root}/_bmad/bmm/workflows/4-implementation/retrospective/workflow.yaml</critical>
|
||||
<critical>The workflow execution engine is governed by: {project-root}/_bmad/core/tasks/workflow.md</critical>
|
||||
<critical>You MUST have already loaded and processed: {project-root}/_bmad/bmm/workflows/4-implementation/retrospective/workflow.md</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>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,29 @@
|
|||
---
|
||||
name: retrospective
|
||||
description: "Run after epic completion to review overall success, extract lessons learned, and surface impact on upcoming work"
|
||||
main_config: '{project-root}/_bmad/bmm/config.yaml'
|
||||
web_bundle: false
|
||||
---
|
||||
|
||||
## Initialization
|
||||
- Load config from `{project-root}/_bmad/bmm/config.yaml`.
|
||||
- Resolve variables:
|
||||
- `user_name`
|
||||
- `communication_language`
|
||||
- `document_output_language`
|
||||
- `user_skill_level`
|
||||
- `planning_artifacts`
|
||||
- `implementation_artifacts`
|
||||
- `sprint_status_file` = `{implementation_artifacts}/sprint-status.yaml`
|
||||
- `story_directory` = `{implementation_artifacts}`
|
||||
- `retrospectives_folder` = `{implementation_artifacts}`
|
||||
- `date` (system-generated)
|
||||
- `installed_path` = `{project-root}/_bmad/bmm/workflows/4-implementation/retrospective`
|
||||
|
||||
<workflow>
|
||||
<critical>Communicate all responses in {communication_language} and generate all documents in {document_output_language}</critical>
|
||||
|
||||
<step n="1" goal="Run retrospective">
|
||||
<action>Read and follow instructions at: {installed_path}/instructions.md</action>
|
||||
</step>
|
||||
</workflow>
|
||||
|
|
@ -1,55 +0,0 @@
|
|||
# Retrospective - Epic Completion Review Workflow
|
||||
name: "retrospective"
|
||||
description: "Run after epic completion to review overall success, extract lessons learned, and explore if new information emerged that might impact the next epic"
|
||||
author: "BMad"
|
||||
|
||||
config_source: "{project-root}/_bmad/bmm/config.yaml"
|
||||
output_folder: "{config_source}:implementation_artifacts}"
|
||||
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"
|
||||
|
||||
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"
|
||||
story_directory: "{implementation_artifacts}"
|
||||
retrospectives_folder: "{implementation_artifacts}"
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
# Sprint Planning - Sprint Status Generator
|
||||
|
||||
<critical>The workflow execution engine is governed by: {project-root}/_bmad/core/tasks/workflow.xml</critical>
|
||||
<critical>You MUST have already loaded and processed: {project-root}/_bmad/bmm/workflows/4-implementation/sprint-planning/workflow.yaml</critical>
|
||||
<critical>The workflow execution engine is governed by: {project-root}/_bmad/core/tasks/workflow.md</critical>
|
||||
<critical>You MUST have already loaded and processed: {project-root}/_bmad/bmm/workflows/4-implementation/sprint-planning/workflow.md</critical>
|
||||
|
||||
## 📚 Document Discovery - Full Epic Loading
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,31 @@
|
|||
---
|
||||
name: sprint-planning
|
||||
description: "Generate and manage the sprint status tracking file for Phase 4 implementation, extracting all epics and stories from epic files and tracking their status through the development lifecycle"
|
||||
main_config: '{project-root}/_bmad/bmm/config.yaml'
|
||||
web_bundle: false
|
||||
---
|
||||
|
||||
## Initialization
|
||||
- Load config from `{project-root}/_bmad/bmm/config.yaml`.
|
||||
- Resolve variables:
|
||||
- `user_name`
|
||||
- `communication_language`
|
||||
- `implementation_artifacts`
|
||||
- `planning_artifacts`
|
||||
- `project_name`
|
||||
- `date` (system-generated)
|
||||
- `installed_path` = `{project-root}/_bmad/bmm/workflows/4-implementation/sprint-planning`
|
||||
- `status_file` = `{implementation_artifacts}/sprint-status.yaml`
|
||||
- `default_output_file` = `{status_file}`
|
||||
|
||||
<workflow>
|
||||
<critical>Communicate all responses in {communication_language}</critical>
|
||||
|
||||
<step n="1" goal="Plan sprint tracking file">
|
||||
<action>Read and follow instructions at: {installed_path}/instructions.md</action>
|
||||
</step>
|
||||
|
||||
<step n="2" goal="Validate sprint status output">
|
||||
<invoke-task>Validate against checklist at {installed_path}/checklist.md using _bmad/core/tasks/validate-workflow.md</invoke-task>
|
||||
</step>
|
||||
</workflow>
|
||||
|
|
@ -1,51 +0,0 @@
|
|||
name: sprint-planning
|
||||
description: "Generate and manage the sprint status tracking file for Phase 4 implementation, extracting all epics and stories from epic files and tracking their status through the development lifecycle"
|
||||
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"
|
||||
date: system-generated
|
||||
implementation_artifacts: "{config_source}:implementation_artifacts"
|
||||
planning_artifacts: "{config_source}:planning_artifacts"
|
||||
output_folder: "{implementation_artifacts}"
|
||||
|
||||
# Workflow components
|
||||
installed_path: "{project-root}/_bmad/bmm/workflows/4-implementation/sprint-planning"
|
||||
instructions: "{installed_path}/instructions.md"
|
||||
template: "{installed_path}/sprint-status-template.yaml"
|
||||
validation: "{installed_path}/checklist.md"
|
||||
|
||||
# Variables and inputs
|
||||
variables:
|
||||
# Project context
|
||||
project_context: "**/project-context.md"
|
||||
# Project identification
|
||||
project_name: "{config_source}:project_name"
|
||||
|
||||
# Tracking system configuration
|
||||
tracking_system: "file-system" # Options: file-system, Future will support other options from config of mcp such as jira, linear, trello
|
||||
project_key: "NOKEY" # Placeholder for tracker integrations; file-system uses a no-op key
|
||||
story_location: "{config_source}:implementation_artifacts" # Relative path for file-system, Future will support URL for Jira/Linear/Trello
|
||||
story_location_absolute: "{config_source}:implementation_artifacts" # Absolute path for file operations
|
||||
|
||||
# Source files (file-system only)
|
||||
epics_location: "{planning_artifacts}" # Directory containing epic*.md files
|
||||
epics_pattern: "epic*.md" # Pattern to find epic files
|
||||
|
||||
# Output configuration
|
||||
status_file: "{implementation_artifacts}/sprint-status.yaml"
|
||||
|
||||
# Smart input file references - handles both whole docs and sharded docs
|
||||
# Priority: Whole document first, then sharded version
|
||||
# Strategy: FULL LOAD - sprint planning needs ALL epics to build complete status
|
||||
input_file_patterns:
|
||||
epics:
|
||||
description: "All epics with user stories"
|
||||
whole: "{output_folder}/*epic*.md"
|
||||
sharded: "{output_folder}/*epic*/*.md"
|
||||
load_strategy: "FULL_LOAD"
|
||||
|
||||
# Output configuration
|
||||
default_output_file: "{status_file}"
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
# Sprint Status - Multi-Mode Service
|
||||
|
||||
<critical>The workflow execution engine is governed by: {project-root}/_bmad/core/tasks/workflow.xml</critical>
|
||||
<critical>You MUST have already loaded and processed: {project-root}/_bmad/bmm/workflows/4-implementation/sprint-status/workflow.yaml</critical>
|
||||
<critical>The workflow execution engine is governed by: {project-root}/_bmad/core/tasks/workflow.md</critical>
|
||||
<critical>You MUST have already loaded and processed: {project-root}/_bmad/bmm/workflows/4-implementation/sprint-status/workflow.md</critical>
|
||||
<critical>Modes: interactive (default), validate, data</critical>
|
||||
<critical>⚠️ ABSOLUTELY NO TIME ESTIMATES. Do NOT mention hours, days, weeks, or timelines.</critical>
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,26 @@
|
|||
---
|
||||
name: sprint-status
|
||||
description: "Summarize sprint-status.yaml, surface risks, and route to the right implementation workflow"
|
||||
main_config: '{project-root}/_bmad/bmm/config.yaml'
|
||||
web_bundle: false
|
||||
---
|
||||
|
||||
## Initialization
|
||||
- Load config from `{project-root}/_bmad/bmm/config.yaml`.
|
||||
- Resolve variables:
|
||||
- `user_name`
|
||||
- `communication_language`
|
||||
- `document_output_language`
|
||||
- `implementation_artifacts`
|
||||
- `planning_artifacts`
|
||||
- `date` (system-generated)
|
||||
- `sprint_status_file` = `{implementation_artifacts}/sprint-status.yaml`
|
||||
- `installed_path` = `{project-root}/_bmad/bmm/workflows/4-implementation/sprint-status`
|
||||
|
||||
<workflow>
|
||||
<critical>Communicate all responses in {communication_language} and generate all documents in {document_output_language}</critical>
|
||||
|
||||
<step n="1" goal="Summarize sprint progress and route next action">
|
||||
<action>Read and follow instructions at: {installed_path}/instructions.md</action>
|
||||
</step>
|
||||
</workflow>
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue