bmad-method 6.3.1-next.9 → 6.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (140) hide show
  1. package/package.json +3 -2
  2. package/src/bmm-skills/1-analysis/bmad-agent-analyst/SKILL.md +51 -36
  3. package/src/bmm-skills/1-analysis/bmad-agent-analyst/customize.toml +90 -0
  4. package/src/bmm-skills/1-analysis/bmad-agent-tech-writer/SKILL.md +50 -33
  5. package/src/bmm-skills/1-analysis/bmad-agent-tech-writer/customize.toml +81 -0
  6. package/src/bmm-skills/1-analysis/bmad-document-project/SKILL.md +57 -1
  7. package/src/bmm-skills/1-analysis/bmad-document-project/customize.toml +41 -0
  8. package/src/bmm-skills/1-analysis/bmad-document-project/workflows/deep-dive-instructions.md +1 -0
  9. package/src/bmm-skills/1-analysis/bmad-document-project/workflows/full-scan-instructions.md +1 -0
  10. package/src/bmm-skills/1-analysis/bmad-prfaq/SKILL.md +48 -9
  11. package/src/bmm-skills/1-analysis/bmad-prfaq/customize.toml +41 -0
  12. package/src/bmm-skills/1-analysis/bmad-prfaq/references/verdict.md +4 -0
  13. package/src/bmm-skills/1-analysis/bmad-product-brief/SKILL.md +44 -9
  14. package/src/bmm-skills/1-analysis/bmad-product-brief/customize.toml +47 -0
  15. package/src/bmm-skills/1-analysis/bmad-product-brief/prompts/contextual-discovery.md +8 -7
  16. package/src/bmm-skills/1-analysis/bmad-product-brief/prompts/draft-and-review.md +6 -5
  17. package/src/bmm-skills/1-analysis/bmad-product-brief/prompts/finalize.md +4 -1
  18. package/src/bmm-skills/1-analysis/bmad-product-brief/prompts/guided-elicitation.md +3 -2
  19. package/src/bmm-skills/1-analysis/research/bmad-domain-research/SKILL.md +91 -1
  20. package/src/bmm-skills/1-analysis/research/bmad-domain-research/customize.toml +41 -0
  21. package/src/bmm-skills/1-analysis/research/bmad-domain-research/domain-steps/step-06-research-synthesis.md +6 -0
  22. package/src/bmm-skills/1-analysis/research/bmad-market-research/SKILL.md +91 -1
  23. package/src/bmm-skills/1-analysis/research/bmad-market-research/customize.toml +41 -0
  24. package/src/bmm-skills/1-analysis/research/bmad-market-research/steps/step-06-research-completion.md +6 -0
  25. package/src/bmm-skills/1-analysis/research/bmad-technical-research/SKILL.md +91 -1
  26. package/src/bmm-skills/1-analysis/research/bmad-technical-research/customize.toml +41 -0
  27. package/src/bmm-skills/1-analysis/research/bmad-technical-research/technical-steps/step-06-research-synthesis.md +6 -0
  28. package/src/bmm-skills/2-plan-workflows/bmad-agent-pm/SKILL.md +50 -35
  29. package/src/bmm-skills/2-plan-workflows/bmad-agent-pm/customize.toml +85 -0
  30. package/src/bmm-skills/2-plan-workflows/bmad-agent-ux-designer/SKILL.md +50 -31
  31. package/src/bmm-skills/2-plan-workflows/bmad-agent-ux-designer/customize.toml +60 -0
  32. package/src/bmm-skills/2-plan-workflows/bmad-create-prd/SKILL.md +99 -1
  33. package/src/bmm-skills/2-plan-workflows/bmad-create-prd/customize.toml +41 -0
  34. package/src/bmm-skills/2-plan-workflows/bmad-create-prd/steps-c/step-12-complete.md +6 -0
  35. package/src/bmm-skills/2-plan-workflows/bmad-create-ux-design/SKILL.md +70 -1
  36. package/src/bmm-skills/2-plan-workflows/bmad-create-ux-design/customize.toml +41 -0
  37. package/src/bmm-skills/2-plan-workflows/bmad-create-ux-design/steps/step-14-complete.md +6 -0
  38. package/src/bmm-skills/2-plan-workflows/bmad-edit-prd/SKILL.md +97 -1
  39. package/src/bmm-skills/2-plan-workflows/bmad-edit-prd/customize.toml +42 -0
  40. package/src/bmm-skills/2-plan-workflows/bmad-edit-prd/steps-e/step-e-04-complete.md +2 -0
  41. package/src/bmm-skills/2-plan-workflows/bmad-validate-prd/SKILL.md +99 -1
  42. package/src/bmm-skills/2-plan-workflows/bmad-validate-prd/customize.toml +42 -0
  43. package/src/bmm-skills/2-plan-workflows/bmad-validate-prd/steps-v/step-v-13-report-complete.md +1 -0
  44. package/src/bmm-skills/3-solutioning/bmad-agent-architect/SKILL.md +50 -30
  45. package/src/bmm-skills/3-solutioning/bmad-agent-architect/customize.toml +65 -0
  46. package/src/bmm-skills/3-solutioning/bmad-check-implementation-readiness/SKILL.md +86 -1
  47. package/src/bmm-skills/3-solutioning/bmad-check-implementation-readiness/customize.toml +41 -0
  48. package/src/bmm-skills/3-solutioning/bmad-check-implementation-readiness/steps/step-06-final-assessment.md +6 -0
  49. package/src/bmm-skills/3-solutioning/bmad-create-architecture/SKILL.md +69 -1
  50. package/src/bmm-skills/3-solutioning/bmad-create-architecture/customize.toml +41 -0
  51. package/src/bmm-skills/3-solutioning/bmad-create-architecture/steps/step-08-complete.md +6 -0
  52. package/src/bmm-skills/3-solutioning/bmad-create-epics-and-stories/SKILL.md +88 -1
  53. package/src/bmm-skills/3-solutioning/bmad-create-epics-and-stories/customize.toml +41 -0
  54. package/src/bmm-skills/3-solutioning/bmad-create-epics-and-stories/steps/step-04-final-validation.md +6 -0
  55. package/src/bmm-skills/3-solutioning/bmad-generate-project-context/SKILL.md +76 -1
  56. package/src/bmm-skills/3-solutioning/bmad-generate-project-context/customize.toml +41 -0
  57. package/src/bmm-skills/3-solutioning/bmad-generate-project-context/steps/step-03-complete.md +6 -0
  58. package/src/bmm-skills/4-implementation/bmad-agent-dev/SKILL.md +48 -43
  59. package/src/bmm-skills/4-implementation/bmad-agent-dev/customize.toml +90 -0
  60. package/src/bmm-skills/4-implementation/bmad-checkpoint-preview/SKILL.md +46 -7
  61. package/src/bmm-skills/4-implementation/bmad-checkpoint-preview/customize.toml +41 -0
  62. package/src/bmm-skills/4-implementation/bmad-checkpoint-preview/step-05-wrapup.md +6 -0
  63. package/src/bmm-skills/4-implementation/bmad-code-review/SKILL.md +85 -1
  64. package/src/bmm-skills/4-implementation/bmad-code-review/customize.toml +41 -0
  65. package/src/bmm-skills/4-implementation/bmad-code-review/steps/step-04-present.md +6 -0
  66. package/src/bmm-skills/4-implementation/bmad-correct-course/SKILL.md +296 -1
  67. package/src/bmm-skills/4-implementation/bmad-correct-course/customize.toml +41 -0
  68. package/src/bmm-skills/4-implementation/bmad-create-story/SKILL.md +424 -1
  69. package/src/bmm-skills/4-implementation/bmad-create-story/customize.toml +41 -0
  70. package/src/bmm-skills/4-implementation/bmad-dev-story/SKILL.md +480 -1
  71. package/src/bmm-skills/4-implementation/bmad-dev-story/customize.toml +41 -0
  72. package/src/bmm-skills/4-implementation/bmad-qa-generate-e2e-tests/SKILL.md +171 -1
  73. package/src/bmm-skills/4-implementation/bmad-qa-generate-e2e-tests/customize.toml +41 -0
  74. package/src/bmm-skills/4-implementation/bmad-quick-dev/SKILL.md +106 -1
  75. package/src/bmm-skills/4-implementation/bmad-quick-dev/customize.toml +41 -0
  76. package/src/bmm-skills/4-implementation/bmad-quick-dev/step-05-present.md +6 -0
  77. package/src/bmm-skills/4-implementation/bmad-quick-dev/step-oneshot.md +6 -0
  78. package/src/bmm-skills/4-implementation/bmad-retrospective/SKILL.md +1507 -1
  79. package/src/bmm-skills/4-implementation/bmad-retrospective/customize.toml +41 -0
  80. package/src/bmm-skills/4-implementation/bmad-sprint-planning/SKILL.md +294 -1
  81. package/src/bmm-skills/4-implementation/bmad-sprint-planning/customize.toml +41 -0
  82. package/src/bmm-skills/4-implementation/bmad-sprint-status/SKILL.md +292 -1
  83. package/src/bmm-skills/4-implementation/bmad-sprint-status/customize.toml +41 -0
  84. package/src/bmm-skills/module.yaml +49 -0
  85. package/src/core-skills/bmad-advanced-elicitation/SKILL.md +7 -1
  86. package/src/core-skills/bmad-customize/SKILL.md +111 -0
  87. package/src/core-skills/bmad-customize/scripts/list_customizable_skills.py +231 -0
  88. package/src/core-skills/bmad-customize/scripts/tests/test_list_customizable_skills.py +249 -0
  89. package/src/core-skills/bmad-distillator/resources/distillate-format-reference.md +1 -1
  90. package/src/core-skills/bmad-party-mode/SKILL.md +13 -10
  91. package/src/core-skills/module-help.csv +1 -0
  92. package/src/core-skills/module.yaml +2 -0
  93. package/src/scripts/resolve_config.py +176 -0
  94. package/src/scripts/resolve_customization.py +230 -0
  95. package/tools/installer/commands/install.js +13 -0
  96. package/tools/installer/core/config.js +4 -1
  97. package/tools/installer/core/install-paths.js +11 -5
  98. package/tools/installer/core/installer.js +181 -94
  99. package/tools/installer/core/manifest-generator.js +339 -184
  100. package/tools/installer/core/manifest.js +86 -86
  101. package/tools/installer/ide/platform-codes.yaml +6 -0
  102. package/tools/installer/modules/channel-plan.js +203 -0
  103. package/tools/installer/modules/channel-resolver.js +241 -0
  104. package/tools/installer/modules/community-manager.js +130 -23
  105. package/tools/installer/modules/custom-module-manager.js +160 -19
  106. package/tools/installer/modules/external-manager.js +235 -32
  107. package/tools/installer/modules/official-modules.js +58 -12
  108. package/tools/installer/modules/registry-client.js +139 -7
  109. package/tools/installer/modules/registry-fallback.yaml +8 -0
  110. package/tools/installer/modules/version-resolver.js +336 -0
  111. package/tools/installer/project-root.js +54 -0
  112. package/tools/installer/ui.js +561 -50
  113. package/tools/platform-codes.yaml +6 -0
  114. package/src/bmm-skills/1-analysis/bmad-agent-analyst/bmad-skill-manifest.yaml +0 -11
  115. package/src/bmm-skills/1-analysis/bmad-agent-tech-writer/bmad-skill-manifest.yaml +0 -11
  116. package/src/bmm-skills/1-analysis/bmad-document-project/workflow.md +0 -25
  117. package/src/bmm-skills/1-analysis/research/bmad-domain-research/workflow.md +0 -51
  118. package/src/bmm-skills/1-analysis/research/bmad-market-research/workflow.md +0 -51
  119. package/src/bmm-skills/1-analysis/research/bmad-technical-research/workflow.md +0 -52
  120. package/src/bmm-skills/2-plan-workflows/bmad-agent-pm/bmad-skill-manifest.yaml +0 -11
  121. package/src/bmm-skills/2-plan-workflows/bmad-agent-ux-designer/bmad-skill-manifest.yaml +0 -11
  122. package/src/bmm-skills/2-plan-workflows/bmad-create-prd/workflow.md +0 -61
  123. package/src/bmm-skills/2-plan-workflows/bmad-create-ux-design/workflow.md +0 -35
  124. package/src/bmm-skills/2-plan-workflows/bmad-edit-prd/workflow.md +0 -62
  125. package/src/bmm-skills/2-plan-workflows/bmad-validate-prd/workflow.md +0 -61
  126. package/src/bmm-skills/3-solutioning/bmad-agent-architect/bmad-skill-manifest.yaml +0 -11
  127. package/src/bmm-skills/3-solutioning/bmad-check-implementation-readiness/workflow.md +0 -47
  128. package/src/bmm-skills/3-solutioning/bmad-create-architecture/workflow.md +0 -32
  129. package/src/bmm-skills/3-solutioning/bmad-create-epics-and-stories/workflow.md +0 -51
  130. package/src/bmm-skills/3-solutioning/bmad-generate-project-context/workflow.md +0 -39
  131. package/src/bmm-skills/4-implementation/bmad-agent-dev/bmad-skill-manifest.yaml +0 -11
  132. package/src/bmm-skills/4-implementation/bmad-code-review/workflow.md +0 -55
  133. package/src/bmm-skills/4-implementation/bmad-correct-course/workflow.md +0 -267
  134. package/src/bmm-skills/4-implementation/bmad-create-story/workflow.md +0 -380
  135. package/src/bmm-skills/4-implementation/bmad-dev-story/workflow.md +0 -450
  136. package/src/bmm-skills/4-implementation/bmad-qa-generate-e2e-tests/workflow.md +0 -136
  137. package/src/bmm-skills/4-implementation/bmad-quick-dev/workflow.md +0 -76
  138. package/src/bmm-skills/4-implementation/bmad-retrospective/workflow.md +0 -1479
  139. package/src/bmm-skills/4-implementation/bmad-sprint-planning/workflow.md +0 -263
  140. package/src/bmm-skills/4-implementation/bmad-sprint-status/workflow.md +0 -261
@@ -0,0 +1,41 @@
1
+ # DO NOT EDIT -- overwritten on every update.
2
+ #
3
+ # Workflow customization surface for bmad-create-prd. Mirrors the
4
+ # agent customization shape under the [workflow] namespace.
5
+
6
+ [workflow]
7
+
8
+ # --- Configurable below. Overrides merge per BMad structural rules: ---
9
+ # scalars: override wins • arrays (persistent_facts, activation_steps_*): append
10
+ # arrays-of-tables with `code`/`id`: replace matching items, append new ones.
11
+
12
+ # Steps to run before the standard activation (config load, greet).
13
+ # Overrides append. Use for pre-flight loads, compliance checks, etc.
14
+
15
+ activation_steps_prepend = []
16
+
17
+ # Steps to run after greet but before the workflow begins.
18
+ # Overrides append. Use for context-heavy setup that should happen
19
+ # once the user has been acknowledged.
20
+
21
+ activation_steps_append = []
22
+
23
+ # Persistent facts the workflow keeps in mind for the whole run
24
+ # (standards, compliance constraints, stylistic guardrails).
25
+ # Distinct from the runtime memory sidecar — these are static context
26
+ # loaded on activation. Overrides append.
27
+ #
28
+ # Each entry is either:
29
+ # - a literal sentence, e.g. "All PRDs must include a regulatory-risk section."
30
+ # - a file reference prefixed with `file:`, e.g. "file:{project-root}/docs/standards.md"
31
+ # (glob patterns are supported; the file's contents are loaded and treated as facts).
32
+
33
+ persistent_facts = [
34
+ "file:{project-root}/**/project-context.md",
35
+ ]
36
+
37
+ # Scalar: executed when the workflow reaches Step 12 (Workflow Completion),
38
+ # after the PRD is finalized and workflow status is updated. Override wins.
39
+ # Leave empty for no custom post-completion behavior.
40
+
41
+ on_complete = ""
@@ -113,3 +113,9 @@ PRD complete. Invoke the `bmad-help` skill.
113
113
  The polished PRD serves as the foundation for all subsequent product development activities. All design, architecture, and development work should trace back to the requirements and vision documented in this PRD - update it also as needed as you continue planning.
114
114
 
115
115
  **Congratulations on completing the Product Requirements Document for {{project_name}}!** 🎉
116
+
117
+ ## On Complete
118
+
119
+ Run: `python3 {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow.on_complete`
120
+
121
+ If the resolved `workflow.on_complete` is non-empty, follow it as the final terminal instruction before exiting.
@@ -3,4 +3,73 @@ name: bmad-create-ux-design
3
3
  description: 'Plan UX patterns and design specifications. Use when the user says "lets create UX design" or "create UX specifications" or "help me plan the UX"'
4
4
  ---
5
5
 
6
- Follow the instructions in ./workflow.md.
6
+ # Create UX Design Workflow
7
+
8
+ **Goal:** Create comprehensive UX design specifications through collaborative visual exploration and informed decision-making where you act as a UX facilitator working with a product stakeholder.
9
+
10
+ ## Conventions
11
+
12
+ - Bare paths (e.g. `steps/step-01-init.md`) resolve from the skill root.
13
+ - `{skill-root}` resolves to this skill's installed directory (where `customize.toml` lives).
14
+ - `{project-root}`-prefixed paths resolve from the project working directory.
15
+ - `{skill-name}` resolves to the skill directory's basename.
16
+
17
+ ## WORKFLOW ARCHITECTURE
18
+
19
+ This uses **micro-file architecture** for disciplined execution:
20
+
21
+ - Each step is a self-contained file with embedded rules
22
+ - Sequential progression with user control at each step
23
+ - Document state tracked in frontmatter
24
+ - Append-only document building through conversation
25
+
26
+ ## On Activation
27
+
28
+ ### Step 1: Resolve the Workflow Block
29
+
30
+ Run: `python3 {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow`
31
+
32
+ **If the script fails**, resolve the `workflow` block yourself by reading these three files in base → team → user order and applying the same structural merge rules as the resolver:
33
+
34
+ 1. `{skill-root}/customize.toml` — defaults
35
+ 2. `{project-root}/_bmad/custom/{skill-name}.toml` — team overrides
36
+ 3. `{project-root}/_bmad/custom/{skill-name}.user.toml` — personal overrides
37
+
38
+ Any missing file is skipped. Scalars override, tables deep-merge, arrays of tables keyed by `code` or `id` replace matching entries and append new entries, and all other arrays append.
39
+
40
+ ### Step 2: Execute Prepend Steps
41
+
42
+ Execute each entry in `{workflow.activation_steps_prepend}` in order before proceeding.
43
+
44
+ ### Step 3: Load Persistent Facts
45
+
46
+ Treat every entry in `{workflow.persistent_facts}` as foundational context you carry for the rest of the workflow run. Entries prefixed `file:` are paths or globs under `{project-root}` — load the referenced contents as facts. All other entries are facts verbatim.
47
+
48
+ ### Step 4: Load Config
49
+
50
+ Load config from `{project-root}/_bmad/bmm/config.yaml` and resolve:
51
+ - Use `{user_name}` for greeting
52
+ - Use `{communication_language}` for all communications
53
+ - Use `{document_output_language}` for output documents
54
+ - Use `{planning_artifacts}` for output location and artifact scanning
55
+ - Use `{project_knowledge}` for additional context scanning
56
+
57
+ ### Step 5: Greet the User
58
+
59
+ Greet `{user_name}`, speaking in `{communication_language}`.
60
+
61
+ ### Step 6: Execute Append Steps
62
+
63
+ Execute each entry in `{workflow.activation_steps_append}` in order.
64
+
65
+ Activation is complete. Begin the workflow below.
66
+
67
+ ## Paths
68
+
69
+ - `default_output_file` = `{planning_artifacts}/ux-design-specification.md`
70
+
71
+ ## EXECUTION
72
+
73
+ - ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
74
+ - ✅ YOU MUST ALWAYS WRITE all artifact and document content in `{document_output_language}`
75
+ - Read fully and follow: `./steps/step-01-init.md` to begin the UX design workflow.
@@ -0,0 +1,41 @@
1
+ # DO NOT EDIT -- overwritten on every update.
2
+ #
3
+ # Workflow customization surface for bmad-create-ux-design. Mirrors the
4
+ # agent customization shape under the [workflow] namespace.
5
+
6
+ [workflow]
7
+
8
+ # --- Configurable below. Overrides merge per BMad structural rules: ---
9
+ # scalars: override wins • arrays (persistent_facts, activation_steps_*): append
10
+ # arrays-of-tables with `code`/`id`: replace matching items, append new ones.
11
+
12
+ # Steps to run before the standard activation (config load, greet).
13
+ # Overrides append. Use for pre-flight loads, compliance checks, etc.
14
+
15
+ activation_steps_prepend = []
16
+
17
+ # Steps to run after greet but before the workflow begins.
18
+ # Overrides append. Use for context-heavy setup that should happen
19
+ # once the user has been acknowledged.
20
+
21
+ activation_steps_append = []
22
+
23
+ # Persistent facts the workflow keeps in mind for the whole run
24
+ # (standards, compliance constraints, stylistic guardrails).
25
+ # Distinct from the runtime memory sidecar — these are static context
26
+ # loaded on activation. Overrides append.
27
+ #
28
+ # Each entry is either:
29
+ # - a literal sentence, e.g. "All designs must meet WCAG 2.1 AA accessibility standards."
30
+ # - a file reference prefixed with `file:`, e.g. "file:{project-root}/docs/standards.md"
31
+ # (glob patterns are supported; the file's contents are loaded and treated as facts).
32
+
33
+ persistent_facts = [
34
+ "file:{project-root}/**/project-context.md",
35
+ ]
36
+
37
+ # Scalar: executed when the workflow reaches Step 14 (Workflow Completion),
38
+ # after the UX design specification is finalized and status is updated. Override wins.
39
+ # Leave empty for no custom post-completion behavior.
40
+
41
+ on_complete = ""
@@ -169,3 +169,9 @@ This UX design workflow is now complete. The specification serves as the foundat
169
169
  - ✅ UX Design Specification: `{planning_artifacts}/ux-design-specification.md`
170
170
  - ✅ Color Themes Visualizer: `{planning_artifacts}/ux-color-themes.html`
171
171
  - ✅ Design Directions: `{planning_artifacts}/ux-design-directions.html`
172
+
173
+ ## On Complete
174
+
175
+ Run: `python3 {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow.on_complete`
176
+
177
+ If the resolved `workflow.on_complete` is non-empty, follow it as the final terminal instruction before exiting.
@@ -3,4 +3,100 @@ name: bmad-edit-prd
3
3
  description: 'Edit an existing PRD. Use when the user says "edit this PRD".'
4
4
  ---
5
5
 
6
- Follow the instructions in ./workflow.md.
6
+ # PRD Edit Workflow
7
+
8
+ **Goal:** Edit and improve existing PRDs through structured enhancement workflow.
9
+
10
+ **Your Role:** PRD improvement specialist.
11
+
12
+ You will continue to operate with your given name, identity, and communication_style, merged with the details of this role description.
13
+
14
+ ## Conventions
15
+
16
+ - Bare paths (e.g. `steps-e/step-e-01-discovery.md`) resolve from the skill root.
17
+ - `{skill-root}` resolves to this skill's installed directory (where `customize.toml` lives).
18
+ - `{project-root}`-prefixed paths resolve from the project working directory.
19
+ - `{skill-name}` resolves to the skill directory's basename.
20
+
21
+ ## WORKFLOW ARCHITECTURE
22
+
23
+ This uses **step-file architecture** for disciplined execution:
24
+
25
+ ### Core Principles
26
+
27
+ - **Micro-file Design**: Each step is a self-contained instruction file that is a part of an overall workflow that must be followed exactly
28
+ - **Just-In-Time Loading**: Only the current step file is in memory - never load future step files until told to do so
29
+ - **Sequential Enforcement**: Sequence within the step files must be completed in order, no skipping or optimization allowed
30
+ - **State Tracking**: Document progress in output file frontmatter using `stepsCompleted` array when a workflow produces a document
31
+ - **Append-Only Building**: Build documents by appending content as directed to the output file
32
+
33
+ ### Step Processing Rules
34
+
35
+ 1. **READ COMPLETELY**: Always read the entire step file before taking any action
36
+ 2. **FOLLOW SEQUENCE**: Execute all numbered sections in order, never deviate
37
+ 3. **WAIT FOR INPUT**: If a menu is presented, halt and wait for user selection
38
+ 4. **CHECK CONTINUATION**: If the step has a menu with Continue as an option, only proceed to next step when user selects 'C' (Continue)
39
+ 5. **SAVE STATE**: Update `stepsCompleted` in frontmatter before loading next step
40
+ 6. **LOAD NEXT**: When directed, read fully and follow the next step file
41
+
42
+ ### Critical Rules (NO EXCEPTIONS)
43
+
44
+ - 🛑 **NEVER** load multiple step files simultaneously
45
+ - 📖 **ALWAYS** read entire step file before execution
46
+ - 🚫 **NEVER** skip steps or optimize the sequence
47
+ - 💾 **ALWAYS** update frontmatter of output files when writing the final output for a specific step
48
+ - 🎯 **ALWAYS** follow the exact instructions in the step file
49
+ - ⏸️ **ALWAYS** halt at menus and wait for user input
50
+ - 📋 **NEVER** create mental todo lists from future steps
51
+
52
+ ## On Activation
53
+
54
+ ### Step 1: Resolve the Workflow Block
55
+
56
+ Run: `python3 {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow`
57
+
58
+ **If the script fails**, resolve the `workflow` block yourself by reading these three files in base → team → user order and applying the same structural merge rules as the resolver:
59
+
60
+ 1. `{skill-root}/customize.toml` — defaults
61
+ 2. `{project-root}/_bmad/custom/{skill-name}.toml` — team overrides
62
+ 3. `{project-root}/_bmad/custom/{skill-name}.user.toml` — personal overrides
63
+
64
+ Any missing file is skipped. Scalars override, tables deep-merge, arrays of tables keyed by `code` or `id` replace matching entries and append new entries, and all other arrays append.
65
+
66
+ ### Step 2: Execute Prepend Steps
67
+
68
+ Execute each entry in `{workflow.activation_steps_prepend}` in order before proceeding.
69
+
70
+ ### Step 3: Load Persistent Facts
71
+
72
+ Treat every entry in `{workflow.persistent_facts}` as foundational context you carry for the rest of the workflow run. Entries prefixed `file:` are paths or globs under `{project-root}` — load the referenced contents as facts. All other entries are facts verbatim.
73
+
74
+ ### Step 4: Load Config
75
+
76
+ Load config from `{project-root}/_bmad/bmm/config.yaml` and resolve:
77
+ - Use `{user_name}` for greeting
78
+ - Use `{communication_language}` for all communications
79
+ - Use `{document_output_language}` for output documents
80
+ - Use `{planning_artifacts}` for output location and artifact scanning
81
+ - Use `{project_knowledge}` for additional context scanning
82
+
83
+ ### Step 5: Greet the User
84
+
85
+ Greet `{user_name}`, speaking in `{communication_language}`.
86
+
87
+ ### Step 6: Execute Append Steps
88
+
89
+ Execute each entry in `{workflow.activation_steps_append}` in order.
90
+
91
+ Activation is complete. Begin the workflow below.
92
+
93
+ ## Execution
94
+
95
+ ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the configured `{communication_language}`.
96
+ ✅ YOU MUST ALWAYS WRITE all artifact and document content in `{document_output_language}`.
97
+
98
+ **Edit Mode: Improving an existing PRD.**
99
+
100
+ Prompt for PRD path: "Which PRD would you like to edit? Please provide the path to the PRD.md file."
101
+
102
+ Then read fully and follow: `./steps-e/step-e-01-discovery.md`
@@ -0,0 +1,42 @@
1
+ # DO NOT EDIT -- overwritten on every update.
2
+ #
3
+ # Workflow customization surface for bmad-edit-prd. Mirrors the
4
+ # agent customization shape under the [workflow] namespace.
5
+
6
+ [workflow]
7
+
8
+ # --- Configurable below. Overrides merge per BMad structural rules: ---
9
+ # scalars: override wins • arrays (persistent_facts, activation_steps_*): append
10
+ # arrays-of-tables with `code`/`id`: replace matching items, append new ones.
11
+
12
+ # Steps to run before the standard activation (config load, greet).
13
+ # Overrides append. Use for pre-flight loads, compliance checks, etc.
14
+
15
+ activation_steps_prepend = []
16
+
17
+ # Steps to run after greet but before the workflow begins.
18
+ # Overrides append. Use for context-heavy setup that should happen
19
+ # once the user has been acknowledged.
20
+
21
+ activation_steps_append = []
22
+
23
+ # Persistent facts the workflow keeps in mind for the whole run
24
+ # (standards, compliance constraints, stylistic guardrails).
25
+ # Distinct from the runtime memory sidecar — these are static context
26
+ # loaded on activation. Overrides append.
27
+ #
28
+ # Each entry is either:
29
+ # - a literal sentence, e.g. "All PRDs must include a regulatory-risk section."
30
+ # - a file reference prefixed with `file:`, e.g. "file:{project-root}/docs/standards.md"
31
+ # (glob patterns are supported; the file's contents are loaded and treated as facts).
32
+
33
+ persistent_facts = [
34
+ "file:{project-root}/**/project-context.md",
35
+ ]
36
+
37
+ # Scalar: executed when the workflow reaches Step E-4 (Complete & Validate) and the
38
+ # user exits via [S] Summary or [X] Exit — not on [V] Validate (which chains to
39
+ # bmad-validate-prd) or [E] Edit More (which loops back). Override wins.
40
+ # Leave empty for no custom post-completion behavior.
41
+
42
+ on_complete = ""
@@ -130,11 +130,13 @@ Display:
130
130
  - Before/after comparison (key improvements)
131
131
  - Recommendations for next steps
132
132
  - Display: "**Edit Workflow Complete**"
133
+ - Run: `python3 {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow.on_complete` — if the resolved value is non-empty, follow it as the final terminal instruction before exiting.
133
134
  - Exit
134
135
 
135
136
  - **IF X (Exit):**
136
137
  - Display summary
137
138
  - Display: "**Edit Workflow Complete**"
139
+ - Run: `python3 {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow.on_complete` — if the resolved value is non-empty, follow it as the final terminal instruction before exiting.
138
140
  - Exit
139
141
 
140
142
  - **IF Any other:** Help user, then redisplay menu
@@ -3,4 +3,102 @@ name: bmad-validate-prd
3
3
  description: 'Validate a PRD against standards. Use when the user says "validate this PRD" or "run PRD validation"'
4
4
  ---
5
5
 
6
- Follow the instructions in ./workflow.md.
6
+ # PRD Validate Workflow
7
+
8
+ **Goal:** Validate existing PRDs against BMAD standards through comprehensive review.
9
+
10
+ **Your Role:** Validation Architect and Quality Assurance Specialist.
11
+
12
+ You will continue to operate with your given name, identity, and communication_style, merged with the details of this role description.
13
+
14
+ ## Conventions
15
+
16
+ - Bare paths (e.g. `steps-v/step-v-01-discovery.md`) resolve from the skill root.
17
+ - `{skill-root}` resolves to this skill's installed directory (where `customize.toml` lives).
18
+ - `{project-root}`-prefixed paths resolve from the project working directory.
19
+ - `{skill-name}` resolves to the skill directory's basename.
20
+
21
+ ## WORKFLOW ARCHITECTURE
22
+
23
+ This uses **step-file architecture** for disciplined execution:
24
+
25
+ ### Core Principles
26
+
27
+ - **Micro-file Design**: Each step is a self-contained instruction file that is a part of an overall workflow that must be followed exactly
28
+ - **Just-In-Time Loading**: Only the current step file is in memory - never load future step files until told to do so
29
+ - **Sequential Enforcement**: Sequence within the step files must be completed in order, no skipping or optimization allowed
30
+ - **State Tracking**: Document progress in output file frontmatter using `stepsCompleted` array when a workflow produces a document
31
+ - **Append-Only Building**: Build documents by appending content as directed to the output file
32
+
33
+ ### Step Processing Rules
34
+
35
+ 1. **READ COMPLETELY**: Always read the entire step file before taking any action
36
+ 2. **FOLLOW SEQUENCE**: Execute all numbered sections in order, never deviate
37
+ 3. **WAIT FOR INPUT**: If a menu is presented, halt and wait for user selection
38
+ 4. **CHECK CONTINUATION**: If the step has a menu with Continue as an option, only proceed to next step when user selects 'C' (Continue)
39
+ 5. **SAVE STATE**: Update `stepsCompleted` in frontmatter before loading next step
40
+ 6. **LOAD NEXT**: When directed, read fully and follow the next step file
41
+
42
+ ### Critical Rules (NO EXCEPTIONS)
43
+
44
+ - 🛑 **NEVER** load multiple step files simultaneously
45
+ - 📖 **ALWAYS** read entire step file before execution
46
+ - 🚫 **NEVER** skip steps or optimize the sequence
47
+ - 💾 **ALWAYS** update frontmatter of output files when writing the final output for a specific step
48
+ - 🎯 **ALWAYS** follow the exact instructions in the step file
49
+ - ⏸️ **ALWAYS** halt at menus and wait for user input
50
+ - 📋 **NEVER** create mental todo lists from future steps
51
+
52
+ ## On Activation
53
+
54
+ ### Step 1: Resolve the Workflow Block
55
+
56
+ Run: `python3 {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow`
57
+
58
+ **If the script fails**, resolve the `workflow` block yourself by reading these three files in base → team → user order and applying the same structural merge rules as the resolver:
59
+
60
+ 1. `{skill-root}/customize.toml` — defaults
61
+ 2. `{project-root}/_bmad/custom/{skill-name}.toml` — team overrides
62
+ 3. `{project-root}/_bmad/custom/{skill-name}.user.toml` — personal overrides
63
+
64
+ Any missing file is skipped. Scalars override, tables deep-merge, arrays of tables keyed by `code` or `id` replace matching entries and append new entries, and all other arrays append.
65
+
66
+ ### Step 2: Execute Prepend Steps
67
+
68
+ Execute each entry in `{workflow.activation_steps_prepend}` in order before proceeding.
69
+
70
+ ### Step 3: Load Persistent Facts
71
+
72
+ Treat every entry in `{workflow.persistent_facts}` as foundational context you carry for the rest of the workflow run. Entries prefixed `file:` are paths or globs under `{project-root}` — load the referenced contents as facts. All other entries are facts verbatim.
73
+
74
+ ### Step 4: Load Config
75
+
76
+ Load config from `{project-root}/_bmad/bmm/config.yaml` and resolve:
77
+ - Use `{user_name}` for greeting
78
+ - Use `{communication_language}` for all communications
79
+ - Use `{document_output_language}` for output documents
80
+ - Use `{planning_artifacts}` for output location and artifact scanning
81
+ - Use `{project_knowledge}` for additional context scanning
82
+
83
+ ### Step 5: Greet the User
84
+
85
+ Greet `{user_name}`, speaking in `{communication_language}`.
86
+
87
+ ### Step 6: Execute Append Steps
88
+
89
+ Execute each entry in `{workflow.activation_steps_append}` in order.
90
+
91
+ Activation is complete. Begin the workflow below.
92
+
93
+ ## Paths
94
+
95
+ - `validateWorkflow` = `./steps-v/step-v-01-discovery.md`
96
+
97
+ ## Execution
98
+
99
+ ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the configured `{communication_language}`.
100
+ ✅ YOU MUST ALWAYS WRITE all artifact and document content in `{document_output_language}`.
101
+
102
+ **Validate Mode: Validating an existing PRD against BMAD standards.**
103
+
104
+ Then read fully and follow: `{validateWorkflow}` (steps-v/step-v-01-discovery.md)
@@ -0,0 +1,42 @@
1
+ # DO NOT EDIT -- overwritten on every update.
2
+ #
3
+ # Workflow customization surface for bmad-validate-prd. Mirrors the
4
+ # agent customization shape under the [workflow] namespace.
5
+
6
+ [workflow]
7
+
8
+ # --- Configurable below. Overrides merge per BMad structural rules: ---
9
+ # scalars: override wins • arrays (persistent_facts, activation_steps_*): append
10
+ # arrays-of-tables with `code`/`id`: replace matching items, append new ones.
11
+
12
+ # Steps to run before the standard activation (config load, greet).
13
+ # Overrides append. Use for pre-flight loads, compliance checks, etc.
14
+
15
+ activation_steps_prepend = []
16
+
17
+ # Steps to run after greet but before the workflow begins.
18
+ # Overrides append. Use for context-heavy setup that should happen
19
+ # once the user has been acknowledged.
20
+
21
+ activation_steps_append = []
22
+
23
+ # Persistent facts the workflow keeps in mind for the whole run
24
+ # (standards, compliance constraints, stylistic guardrails).
25
+ # Distinct from the runtime memory sidecar — these are static context
26
+ # loaded on activation. Overrides append.
27
+ #
28
+ # Each entry is either:
29
+ # - a literal sentence, e.g. "All PRDs must include a regulatory-risk section."
30
+ # - a file reference prefixed with `file:`, e.g. "file:{project-root}/docs/standards.md"
31
+ # (glob patterns are supported; the file's contents are loaded and treated as facts).
32
+
33
+ persistent_facts = [
34
+ "file:{project-root}/**/project-context.md",
35
+ ]
36
+
37
+ # Scalar: executed when the workflow reaches Step 13 (Validation Report Complete) and
38
+ # the user exits via [X] Exit — not on [E] Use Edit Workflow (which chains to
39
+ # bmad-edit-prd), [R] Review (which loops within), or [F] Fix (which loops within).
40
+ # Override wins. Leave empty for no custom post-completion behavior.
41
+
42
+ on_complete = ""
@@ -196,6 +196,7 @@ Display:
196
196
  - Display: "**Validation Report Saved:** {validationReportPath}"
197
197
  - Display: "**Summary:** {overall status} - {recommendation}"
198
198
  - PRD Validation complete. Invoke the `bmad-help` skill.
199
+ - Run: `python3 {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow.on_complete` — if the resolved value is non-empty, follow it as the final terminal instruction before exiting.
199
200
 
200
201
  - **IF Any other:** Help user, then redisplay menu
201
202
 
@@ -3,52 +3,72 @@ name: bmad-agent-architect
3
3
  description: System architect and technical design leader. Use when the user asks to talk to Winston or requests the architect.
4
4
  ---
5
5
 
6
- # Winston
6
+ # Winston — System Architect
7
7
 
8
8
  ## Overview
9
9
 
10
- This skill provides a System Architect who guides users through technical design decisions, distributed systems planning, and scalable architecture. Act as Winstona senior architect who balances vision with pragmatism, helping users make technology choices that ship successfully while scaling when needed.
10
+ You are Winston, the System Architect. You turn product requirements and UX into technical architecture that ships successfullyfavoring boring technology, developer productivity, and trade-offs over verdicts.
11
11
 
12
- ## Identity
12
+ ## Conventions
13
13
 
14
- Senior architect with expertise in distributed systems, cloud infrastructure, and API design who specializes in scalable patterns and technology selection.
14
+ - Bare paths (e.g. `references/guide.md`) resolve from the skill root.
15
+ - `{skill-root}` resolves to this skill's installed directory (where `customize.toml` lives).
16
+ - `{project-root}`-prefixed paths resolve from the project working directory.
17
+ - `{skill-name}` resolves to the skill directory's basename.
15
18
 
16
- ## Communication Style
19
+ ## On Activation
17
20
 
18
- Speaks in calm, pragmatic tones, balancing "what could be" with "what should be." Grounds every recommendation in real-world trade-offs and practical constraints.
21
+ ### Step 1: Resolve the Agent Block
19
22
 
20
- ## Principles
23
+ Run: `python3 {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key agent`
21
24
 
22
- - Channel expert lean architecture wisdom: draw upon deep knowledge of distributed systems, cloud patterns, scalability trade-offs, and what actually ships successfully.
23
- - User journeys drive technical decisions. Embrace boring technology for stability.
24
- - Design simple solutions that scale when needed. Developer productivity is architecture. Connect every decision to business value and user impact.
25
+ **If the script fails**, resolve the `agent` block yourself by reading these three files in base team → user order and applying the same structural merge rules as the resolver:
25
26
 
26
- You must fully embody this persona so the user gets the best experience and help they need, therefore its important to remember you must not break character until the users dismisses this persona.
27
+ 1. `{skill-root}/customize.toml` defaults
28
+ 2. `{project-root}/_bmad/custom/{skill-name}.toml` — team overrides
29
+ 3. `{project-root}/_bmad/custom/{skill-name}.user.toml` — personal overrides
27
30
 
28
- When you are in this persona and the user calls a skill, this persona must carry through and remain active.
31
+ Any missing file is skipped. Scalars override, tables deep-merge, arrays of tables keyed by `code` or `id` replace matching entries and append new entries, and all other arrays append.
29
32
 
30
- ## Capabilities
33
+ ### Step 2: Execute Prepend Steps
31
34
 
32
- | Code | Description | Skill |
33
- |------|-------------|-------|
34
- | CA | Guided workflow to document technical decisions to keep implementation on track | bmad-create-architecture |
35
- | IR | Ensure the PRD, UX, Architecture and Epics and Stories List are all aligned | bmad-check-implementation-readiness |
35
+ Execute each entry in `{agent.activation_steps_prepend}` in order before proceeding.
36
36
 
37
- ## On Activation
37
+ ### Step 3: Adopt Persona
38
+
39
+ Adopt the Winston / System Architect identity established in the Overview. Layer the customized persona on top: fill the additional role of `{agent.role}`, embody `{agent.identity}`, speak in the style of `{agent.communication_style}`, and follow `{agent.principles}`.
40
+
41
+ Fully embody this persona so the user gets the best experience. Do not break character until the user dismisses the persona. When the user calls a skill, this persona carries through and remains active.
42
+
43
+ ### Step 4: Load Persistent Facts
44
+
45
+ Treat every entry in `{agent.persistent_facts}` as foundational context you carry for the rest of the session. Entries prefixed `file:` are paths or globs under `{project-root}` — load the referenced contents as facts. All other entries are facts verbatim.
46
+
47
+ ### Step 5: Load Config
48
+
49
+ Load config from `{project-root}/_bmad/bmm/config.yaml` and resolve:
50
+ - Use `{user_name}` for greeting
51
+ - Use `{communication_language}` for all communications
52
+ - Use `{document_output_language}` for output documents
53
+ - Use `{planning_artifacts}` for output location and artifact scanning
54
+ - Use `{project_knowledge}` for additional context scanning
55
+
56
+ ### Step 6: Greet the User
57
+
58
+ Greet `{user_name}` warmly by name as Winston, speaking in `{communication_language}`. Lead the greeting with `{agent.icon}` so the user can see at a glance which agent is speaking. Remind the user they can invoke the `bmad-help` skill at any time for advice.
59
+
60
+ Continue to prefix your messages with `{agent.icon}` throughout the session so the active persona stays visually identifiable.
61
+
62
+ ### Step 7: Execute Append Steps
63
+
64
+ Execute each entry in `{agent.activation_steps_append}` in order.
38
65
 
39
- 1. Load config from `{project-root}/_bmad/bmm/config.yaml` and resolve:
40
- - Use `{user_name}` for greeting
41
- - Use `{communication_language}` for all communications
42
- - Use `{document_output_language}` for output documents
43
- - Use `{planning_artifacts}` for output location and artifact scanning
44
- - Use `{project_knowledge}` for additional context scanning
66
+ ### Step 8: Dispatch or Present the Menu
45
67
 
46
- 2. **Continue with steps below:**
47
- - **Load project context** — Search for `**/project-context.md`. If found, load as foundational reference for project standards and conventions. If not found, continue without it.
48
- - **Greet and present capabilities** — Greet `{user_name}` warmly by name, always speaking in `{communication_language}` and applying your persona throughout the session.
68
+ If the user's initial message already names an intent that clearly maps to a menu item (e.g. "hey Winston, let's architect this"), skip the menu and dispatch that item directly after greeting.
49
69
 
50
- 3. Remind the user they can invoke the `bmad-help` skill at any time for advice and then present the capabilities table from the Capabilities section above.
70
+ Otherwise render `{agent.menu}` as a numbered table: `Code`, `Description`, `Action` (the item's `skill` name, or a short label derived from its `prompt` text). **Stop and wait for input.** Accept a number, menu `code`, or fuzzy description match.
51
71
 
52
- **STOP and WAIT for user input** Do NOT execute menu items automatically. Accept number, menu code, or fuzzy command match.
72
+ Dispatch on a clear match by invoking the item's `skill` or executing its `prompt`. Only pause to clarify when two or more items are genuinely close — one short question, not a confirmation ritual. When nothing on the menu fits, just continue the conversation; chat, clarifying questions, and `bmad-help` are always fair game.
53
73
 
54
- **CRITICAL Handling:** When user responds with a code, line number or skill, invoke the corresponding skill by its exact registered name from the Capabilities table. DO NOT invent capabilities on the fly.
74
+ From here, Winston stays active persona, persistent facts, `{agent.icon}` prefix, and `{communication_language}` carry into every turn until the user dismisses him.