diff --git a/src/bmm-skills/1-analysis/bmad-document-project/workflows/deep-dive-instructions.md b/src/bmm-skills/1-analysis/bmad-document-project/workflows/deep-dive-instructions.md index 6a6d00e6c..9ab07ee0c 100644 --- a/src/bmm-skills/1-analysis/bmad-document-project/workflows/deep-dive-instructions.md +++ b/src/bmm-skills/1-analysis/bmad-document-project/workflows/deep-dive-instructions.md @@ -291,6 +291,7 @@ These comprehensive docs are now ready for: Thank you for using the document-project workflow! +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. Exit workflow diff --git a/src/bmm-skills/1-analysis/bmad-document-project/workflows/full-scan-instructions.md b/src/bmm-skills/1-analysis/bmad-document-project/workflows/full-scan-instructions.md index dd90c4eea..3569725ec 100644 --- a/src/bmm-skills/1-analysis/bmad-document-project/workflows/full-scan-instructions.md +++ b/src/bmm-skills/1-analysis/bmad-document-project/workflows/full-scan-instructions.md @@ -1103,5 +1103,6 @@ When ready to plan new features, run the PRD workflow and provide this index as Display: "State file saved: {{project_knowledge}}/project-scan-report.json" +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. diff --git a/src/bmm-skills/1-analysis/bmad-prfaq/customize.toml b/src/bmm-skills/1-analysis/bmad-prfaq/customize.toml index dbb833857..c8db70955 100644 --- a/src/bmm-skills/1-analysis/bmad-prfaq/customize.toml +++ b/src/bmm-skills/1-analysis/bmad-prfaq/customize.toml @@ -9,11 +9,33 @@ # scalars: override wins • arrays (persistent_facts, activation_steps_*): append # arrays-of-tables with `code`/`id`: replace matching items, append new ones. +# Steps to run before the standard activation (config load, greet). +# Overrides append. Use for pre-flight loads, compliance checks, etc. + activation_steps_prepend = [] + +# Steps to run after greet but before the workflow begins. +# Overrides append. Use for context-heavy setup that should happen +# once the user has been acknowledged. + activation_steps_append = [] +# Persistent facts the workflow keeps in mind for the whole run +# (standards, compliance constraints, stylistic guardrails). +# Distinct from the runtime memory sidecar — these are static context +# loaded on activation. Overrides append. +# +# Each entry is either: +# - a literal sentence, e.g. "All briefs must include a regulatory-risk section." +# - a file reference prefixed with `file:`, e.g. "file:{project-root}/docs/standards.md" +# (glob patterns are supported; the file's contents are loaded and treated as facts). + persistent_facts = [ "file:{project-root}/**/project-context.md", ] +# Scalar: executed when the workflow reaches its terminal stage (Stage 5: The Verdict), +# after the PRFAQ and distillate have been delivered. Override wins. Leave empty for +# no custom post-completion behavior. + on_complete = "" diff --git a/src/bmm-skills/1-analysis/bmad-prfaq/references/verdict.md b/src/bmm-skills/1-analysis/bmad-prfaq/references/verdict.md index f77a95020..5d3a09287 100644 --- a/src/bmm-skills/1-analysis/bmad-prfaq/references/verdict.md +++ b/src/bmm-skills/1-analysis/bmad-prfaq/references/verdict.md @@ -77,3 +77,7 @@ purpose: "Token-efficient context for downstream PRD creation" ## Stage Complete This is the terminal stage. If the user wants to revise, loop back to the relevant stage. Otherwise, the workflow is done. + +Run: `python3 {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow.on_complete` + +If the resolved `workflow.on_complete` is non-empty, follow it as the final terminal instruction before exiting. diff --git a/src/bmm-skills/1-analysis/research/bmad-domain-research/customize.toml b/src/bmm-skills/1-analysis/research/bmad-domain-research/customize.toml index 9e083dc00..d401cf3d3 100644 --- a/src/bmm-skills/1-analysis/research/bmad-domain-research/customize.toml +++ b/src/bmm-skills/1-analysis/research/bmad-domain-research/customize.toml @@ -9,11 +9,33 @@ # scalars: override wins • arrays (persistent_facts, activation_steps_*): append # arrays-of-tables with `code`/`id`: replace matching items, append new ones. +# Steps to run before the standard activation (config load, greet). +# Overrides append. Use for pre-flight loads, compliance checks, etc. + activation_steps_prepend = [] + +# Steps to run after greet but before the workflow begins. +# Overrides append. Use for context-heavy setup that should happen +# once the user has been acknowledged. + activation_steps_append = [] +# Persistent facts the workflow keeps in mind for the whole run +# (standards, compliance constraints, stylistic guardrails). +# Distinct from the runtime memory sidecar — these are static context +# loaded on activation. Overrides append. +# +# Each entry is either: +# - a literal sentence, e.g. "All briefs must include a regulatory-risk section." +# - a file reference prefixed with `file:`, e.g. "file:{project-root}/docs/standards.md" +# (glob patterns are supported; the file's contents are loaded and treated as facts). + persistent_facts = [ "file:{project-root}/**/project-context.md", ] +# Scalar: executed when the workflow reaches its terminal stage (Step 6: Research Synthesis), +# after the domain research document has been saved and the user selects [C] Complete. +# Override wins. Leave empty for no custom post-completion behavior. + on_complete = "" diff --git a/src/bmm-skills/1-analysis/research/bmad-domain-research/domain-steps/step-06-research-synthesis.md b/src/bmm-skills/1-analysis/research/bmad-domain-research/domain-steps/step-06-research-synthesis.md index 9e2261fb7..07d2123f1 100644 --- a/src/bmm-skills/1-analysis/research/bmad-domain-research/domain-steps/step-06-research-synthesis.md +++ b/src/bmm-skills/1-analysis/research/bmad-domain-research/domain-steps/step-06-research-synthesis.md @@ -441,4 +441,10 @@ Complete authoritative research document on {{research_topic}} that: - Serves as reference document for continued use - Maintains highest research quality standards +## On Complete + +Run: `python3 {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow.on_complete` + +If the resolved `workflow.on_complete` is non-empty, follow it as the final terminal instruction before exiting. + Congratulations on completing comprehensive domain research! 🎉 diff --git a/src/bmm-skills/1-analysis/research/bmad-market-research/customize.toml b/src/bmm-skills/1-analysis/research/bmad-market-research/customize.toml index 414fe7fd9..0fa844780 100644 --- a/src/bmm-skills/1-analysis/research/bmad-market-research/customize.toml +++ b/src/bmm-skills/1-analysis/research/bmad-market-research/customize.toml @@ -5,11 +5,37 @@ [workflow] +# --- Configurable below. Overrides merge per BMad structural rules: --- +# scalars: override wins • arrays (persistent_facts, activation_steps_*): append +# arrays-of-tables with `code`/`id`: replace matching items, append new ones. + +# Steps to run before the standard activation (config load, greet). +# Overrides append. Use for pre-flight loads, compliance checks, etc. + activation_steps_prepend = [] + +# Steps to run after greet but before the workflow begins. +# Overrides append. Use for context-heavy setup that should happen +# once the user has been acknowledged. + activation_steps_append = [] +# Persistent facts the workflow keeps in mind for the whole run +# (standards, compliance constraints, stylistic guardrails). +# Distinct from the runtime memory sidecar — these are static context +# loaded on activation. Overrides append. +# +# Each entry is either: +# - a literal sentence, e.g. "All briefs must include a regulatory-risk section." +# - a file reference prefixed with `file:`, e.g. "file:{project-root}/docs/standards.md" +# (glob patterns are supported; the file's contents are loaded and treated as facts). + persistent_facts = [ "file:{project-root}/**/project-context.md", ] +# Scalar: executed when the workflow reaches its terminal stage (Step 6: Research Completion), +# after the market research document has been saved and the user selects [C] Complete. +# Override wins. Leave empty for no custom post-completion behavior. + on_complete = "" diff --git a/src/bmm-skills/1-analysis/research/bmad-market-research/steps/step-06-research-completion.md b/src/bmm-skills/1-analysis/research/bmad-market-research/steps/step-06-research-completion.md index 59ca4ae89..4878764a8 100644 --- a/src/bmm-skills/1-analysis/research/bmad-market-research/steps/step-06-research-completion.md +++ b/src/bmm-skills/1-analysis/research/bmad-market-research/steps/step-06-research-completion.md @@ -475,4 +475,10 @@ Comprehensive market research workflow complete. User may: - Combine market research with other research types for comprehensive insights - Move forward with implementation based on strategic market recommendations +## On Complete + +Run: `python3 {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow.on_complete` + +If the resolved `workflow.on_complete` is non-empty, follow it as the final terminal instruction before exiting. + Congratulations on completing comprehensive market research with professional documentation! 🎉 diff --git a/src/bmm-skills/1-analysis/research/bmad-technical-research/customize.toml b/src/bmm-skills/1-analysis/research/bmad-technical-research/customize.toml index 7b87cae29..9c65ca531 100644 --- a/src/bmm-skills/1-analysis/research/bmad-technical-research/customize.toml +++ b/src/bmm-skills/1-analysis/research/bmad-technical-research/customize.toml @@ -5,11 +5,37 @@ [workflow] +# --- Configurable below. Overrides merge per BMad structural rules: --- +# scalars: override wins • arrays (persistent_facts, activation_steps_*): append +# arrays-of-tables with `code`/`id`: replace matching items, append new ones. + +# Steps to run before the standard activation (config load, greet). +# Overrides append. Use for pre-flight loads, compliance checks, etc. + activation_steps_prepend = [] + +# Steps to run after greet but before the workflow begins. +# Overrides append. Use for context-heavy setup that should happen +# once the user has been acknowledged. + activation_steps_append = [] +# Persistent facts the workflow keeps in mind for the whole run +# (standards, compliance constraints, stylistic guardrails). +# Distinct from the runtime memory sidecar — these are static context +# loaded on activation. Overrides append. +# +# Each entry is either: +# - a literal sentence, e.g. "All briefs must include a regulatory-risk section." +# - a file reference prefixed with `file:`, e.g. "file:{project-root}/docs/standards.md" +# (glob patterns are supported; the file's contents are loaded and treated as facts). + persistent_facts = [ "file:{project-root}/**/project-context.md", ] +# Scalar: executed when the workflow reaches its terminal stage (Step 6: Technical Synthesis), +# after the technical research document has been saved and the user selects [C] Complete. +# Override wins. Leave empty for no custom post-completion behavior. + on_complete = "" diff --git a/src/bmm-skills/1-analysis/research/bmad-technical-research/technical-steps/step-06-research-synthesis.md b/src/bmm-skills/1-analysis/research/bmad-technical-research/technical-steps/step-06-research-synthesis.md index 96852cb1b..26addaa47 100644 --- a/src/bmm-skills/1-analysis/research/bmad-technical-research/technical-steps/step-06-research-synthesis.md +++ b/src/bmm-skills/1-analysis/research/bmad-technical-research/technical-steps/step-06-research-synthesis.md @@ -484,4 +484,10 @@ Complete authoritative technical research document on {{research_topic}} that: - Serves as technical reference document for continued use - Maintains highest technical research quality standards with current verification +## On Complete + +Run: `python3 {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow.on_complete` + +If the resolved `workflow.on_complete` is non-empty, follow it as the final terminal instruction before exiting. + Congratulations on completing comprehensive technical research with professional documentation! 🎉 diff --git a/src/bmm-skills/2-plan-workflows/bmad-create-prd/customize.toml b/src/bmm-skills/2-plan-workflows/bmad-create-prd/customize.toml index 946f7de31..fde1ba1b1 100644 --- a/src/bmm-skills/2-plan-workflows/bmad-create-prd/customize.toml +++ b/src/bmm-skills/2-plan-workflows/bmad-create-prd/customize.toml @@ -1,14 +1,41 @@ # DO NOT EDIT -- overwritten on every update. # -# Workflow customization surface for bmad-create-prd. +# Workflow customization surface for bmad-create-prd. Mirrors the +# agent customization shape under the [workflow] namespace. [workflow] +# --- Configurable below. Overrides merge per BMad structural rules: --- +# scalars: override wins • arrays (persistent_facts, activation_steps_*): append +# arrays-of-tables with `code`/`id`: replace matching items, append new ones. + +# Steps to run before the standard activation (config load, greet). +# Overrides append. Use for pre-flight loads, compliance checks, etc. + activation_steps_prepend = [] + +# Steps to run after greet but before the workflow begins. +# Overrides append. Use for context-heavy setup that should happen +# once the user has been acknowledged. + activation_steps_append = [] +# Persistent facts the workflow keeps in mind for the whole run +# (standards, compliance constraints, stylistic guardrails). +# Distinct from the runtime memory sidecar — these are static context +# loaded on activation. Overrides append. +# +# Each entry is either: +# - a literal sentence, e.g. "All PRDs must include a regulatory-risk section." +# - a file reference prefixed with `file:`, e.g. "file:{project-root}/docs/standards.md" +# (glob patterns are supported; the file's contents are loaded and treated as facts). + persistent_facts = [ "file:{project-root}/**/project-context.md", ] +# Scalar: executed when the workflow reaches Step 12 (Workflow Completion), +# after the PRD is finalized and workflow status is updated. Override wins. +# Leave empty for no custom post-completion behavior. + on_complete = "" diff --git a/src/bmm-skills/2-plan-workflows/bmad-create-prd/steps-c/step-12-complete.md b/src/bmm-skills/2-plan-workflows/bmad-create-prd/steps-c/step-12-complete.md index d7b652524..d34597bb4 100644 --- a/src/bmm-skills/2-plan-workflows/bmad-create-prd/steps-c/step-12-complete.md +++ b/src/bmm-skills/2-plan-workflows/bmad-create-prd/steps-c/step-12-complete.md @@ -113,3 +113,9 @@ PRD complete. Invoke the `bmad-help` skill. 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. **Congratulations on completing the Product Requirements Document for {{project_name}}!** 🎉 + +## On Complete + +Run: `python3 {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow.on_complete` + +If the resolved `workflow.on_complete` is non-empty, follow it as the final terminal instruction before exiting. diff --git a/src/bmm-skills/2-plan-workflows/bmad-create-ux-design/customize.toml b/src/bmm-skills/2-plan-workflows/bmad-create-ux-design/customize.toml index 167712a40..f77520c83 100644 --- a/src/bmm-skills/2-plan-workflows/bmad-create-ux-design/customize.toml +++ b/src/bmm-skills/2-plan-workflows/bmad-create-ux-design/customize.toml @@ -1,14 +1,41 @@ # DO NOT EDIT -- overwritten on every update. # -# Workflow customization surface for bmad-create-ux-design. +# Workflow customization surface for bmad-create-ux-design. Mirrors the +# agent customization shape under the [workflow] namespace. [workflow] +# --- Configurable below. Overrides merge per BMad structural rules: --- +# scalars: override wins • arrays (persistent_facts, activation_steps_*): append +# arrays-of-tables with `code`/`id`: replace matching items, append new ones. + +# Steps to run before the standard activation (config load, greet). +# Overrides append. Use for pre-flight loads, compliance checks, etc. + activation_steps_prepend = [] + +# Steps to run after greet but before the workflow begins. +# Overrides append. Use for context-heavy setup that should happen +# once the user has been acknowledged. + activation_steps_append = [] +# Persistent facts the workflow keeps in mind for the whole run +# (standards, compliance constraints, stylistic guardrails). +# Distinct from the runtime memory sidecar — these are static context +# loaded on activation. Overrides append. +# +# Each entry is either: +# - a literal sentence, e.g. "All designs must meet WCAG 2.1 AA accessibility standards." +# - a file reference prefixed with `file:`, e.g. "file:{project-root}/docs/standards.md" +# (glob patterns are supported; the file's contents are loaded and treated as facts). + persistent_facts = [ "file:{project-root}/**/project-context.md", ] +# Scalar: executed when the workflow reaches Step 14 (Workflow Completion), +# after the UX design specification is finalized and status is updated. Override wins. +# Leave empty for no custom post-completion behavior. + on_complete = "" diff --git a/src/bmm-skills/2-plan-workflows/bmad-create-ux-design/steps/step-14-complete.md b/src/bmm-skills/2-plan-workflows/bmad-create-ux-design/steps/step-14-complete.md index 67d99c427..31edb0284 100644 --- a/src/bmm-skills/2-plan-workflows/bmad-create-ux-design/steps/step-14-complete.md +++ b/src/bmm-skills/2-plan-workflows/bmad-create-ux-design/steps/step-14-complete.md @@ -169,3 +169,9 @@ This UX design workflow is now complete. The specification serves as the foundat - ✅ UX Design Specification: `{planning_artifacts}/ux-design-specification.md` - ✅ Color Themes Visualizer: `{planning_artifacts}/ux-color-themes.html` - ✅ Design Directions: `{planning_artifacts}/ux-design-directions.html` + +## On Complete + +Run: `python3 {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow.on_complete` + +If the resolved `workflow.on_complete` is non-empty, follow it as the final terminal instruction before exiting. diff --git a/src/bmm-skills/2-plan-workflows/bmad-edit-prd/customize.toml b/src/bmm-skills/2-plan-workflows/bmad-edit-prd/customize.toml index 78496ba2c..1886d4ace 100644 --- a/src/bmm-skills/2-plan-workflows/bmad-edit-prd/customize.toml +++ b/src/bmm-skills/2-plan-workflows/bmad-edit-prd/customize.toml @@ -1,14 +1,42 @@ # DO NOT EDIT -- overwritten on every update. # -# Workflow customization surface for bmad-edit-prd. +# Workflow customization surface for bmad-edit-prd. Mirrors the +# agent customization shape under the [workflow] namespace. [workflow] +# --- Configurable below. Overrides merge per BMad structural rules: --- +# scalars: override wins • arrays (persistent_facts, activation_steps_*): append +# arrays-of-tables with `code`/`id`: replace matching items, append new ones. + +# Steps to run before the standard activation (config load, greet). +# Overrides append. Use for pre-flight loads, compliance checks, etc. + activation_steps_prepend = [] + +# Steps to run after greet but before the workflow begins. +# Overrides append. Use for context-heavy setup that should happen +# once the user has been acknowledged. + activation_steps_append = [] +# Persistent facts the workflow keeps in mind for the whole run +# (standards, compliance constraints, stylistic guardrails). +# Distinct from the runtime memory sidecar — these are static context +# loaded on activation. Overrides append. +# +# Each entry is either: +# - a literal sentence, e.g. "All PRDs must include a regulatory-risk section." +# - a file reference prefixed with `file:`, e.g. "file:{project-root}/docs/standards.md" +# (glob patterns are supported; the file's contents are loaded and treated as facts). + persistent_facts = [ "file:{project-root}/**/project-context.md", ] +# Scalar: executed when the workflow reaches Step E-4 (Complete & Validate) and the +# user exits via [S] Summary or [X] Exit — not on [V] Validate (which chains to +# bmad-validate-prd) or [E] Edit More (which loops back). Override wins. +# Leave empty for no custom post-completion behavior. + on_complete = "" diff --git a/src/bmm-skills/2-plan-workflows/bmad-edit-prd/steps-e/step-e-04-complete.md b/src/bmm-skills/2-plan-workflows/bmad-edit-prd/steps-e/step-e-04-complete.md index 1406e631c..961a2704d 100644 --- a/src/bmm-skills/2-plan-workflows/bmad-edit-prd/steps-e/step-e-04-complete.md +++ b/src/bmm-skills/2-plan-workflows/bmad-edit-prd/steps-e/step-e-04-complete.md @@ -130,11 +130,13 @@ Display: - Before/after comparison (key improvements) - Recommendations for next steps - Display: "**Edit Workflow Complete**" + - 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. - Exit - **IF X (Exit):** - Display summary - Display: "**Edit Workflow Complete**" + - 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. - Exit - **IF Any other:** Help user, then redisplay menu diff --git a/src/bmm-skills/2-plan-workflows/bmad-validate-prd/customize.toml b/src/bmm-skills/2-plan-workflows/bmad-validate-prd/customize.toml index ff8fcb852..15ec851af 100644 --- a/src/bmm-skills/2-plan-workflows/bmad-validate-prd/customize.toml +++ b/src/bmm-skills/2-plan-workflows/bmad-validate-prd/customize.toml @@ -1,14 +1,42 @@ # DO NOT EDIT -- overwritten on every update. # -# Workflow customization surface for bmad-validate-prd. +# Workflow customization surface for bmad-validate-prd. Mirrors the +# agent customization shape under the [workflow] namespace. [workflow] +# --- Configurable below. Overrides merge per BMad structural rules: --- +# scalars: override wins • arrays (persistent_facts, activation_steps_*): append +# arrays-of-tables with `code`/`id`: replace matching items, append new ones. + +# Steps to run before the standard activation (config load, greet). +# Overrides append. Use for pre-flight loads, compliance checks, etc. + activation_steps_prepend = [] + +# Steps to run after greet but before the workflow begins. +# Overrides append. Use for context-heavy setup that should happen +# once the user has been acknowledged. + activation_steps_append = [] +# Persistent facts the workflow keeps in mind for the whole run +# (standards, compliance constraints, stylistic guardrails). +# Distinct from the runtime memory sidecar — these are static context +# loaded on activation. Overrides append. +# +# Each entry is either: +# - a literal sentence, e.g. "All PRDs must include a regulatory-risk section." +# - a file reference prefixed with `file:`, e.g. "file:{project-root}/docs/standards.md" +# (glob patterns are supported; the file's contents are loaded and treated as facts). + persistent_facts = [ "file:{project-root}/**/project-context.md", ] +# Scalar: executed when the workflow reaches Step 13 (Validation Report Complete) and +# the user exits via [X] Exit — not on [E] Use Edit Workflow (which chains to +# bmad-edit-prd), [R] Review (which loops within), or [F] Fix (which loops within). +# Override wins. Leave empty for no custom post-completion behavior. + on_complete = "" diff --git a/src/bmm-skills/2-plan-workflows/bmad-validate-prd/steps-v/step-v-13-report-complete.md b/src/bmm-skills/2-plan-workflows/bmad-validate-prd/steps-v/step-v-13-report-complete.md index 946b5704d..c76378610 100644 --- a/src/bmm-skills/2-plan-workflows/bmad-validate-prd/steps-v/step-v-13-report-complete.md +++ b/src/bmm-skills/2-plan-workflows/bmad-validate-prd/steps-v/step-v-13-report-complete.md @@ -196,6 +196,7 @@ Display: - Display: "**Validation Report Saved:** {validationReportPath}" - Display: "**Summary:** {overall status} - {recommendation}" - PRD Validation complete. Invoke the `bmad-help` skill. + - 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. - **IF Any other:** Help user, then redisplay menu diff --git a/src/bmm-skills/3-solutioning/bmad-check-implementation-readiness/customize.toml b/src/bmm-skills/3-solutioning/bmad-check-implementation-readiness/customize.toml index a54605784..c2301a310 100644 --- a/src/bmm-skills/3-solutioning/bmad-check-implementation-readiness/customize.toml +++ b/src/bmm-skills/3-solutioning/bmad-check-implementation-readiness/customize.toml @@ -1,14 +1,41 @@ # DO NOT EDIT -- overwritten on every update. # -# Workflow customization surface for bmad-check-implementation-readiness. +# Workflow customization surface for bmad-check-implementation-readiness. Mirrors the +# agent customization shape under the [workflow] namespace. [workflow] +# --- Configurable below. Overrides merge per BMad structural rules: --- +# scalars: override wins • arrays (persistent_facts, activation_steps_*): append +# arrays-of-tables with `code`/`id`: replace matching items, append new ones. + +# Steps to run before the standard activation (config load, greet). +# Overrides append. Use for pre-flight loads, compliance checks, etc. + activation_steps_prepend = [] + +# Steps to run after greet but before the workflow begins. +# Overrides append. Use for context-heavy setup that should happen +# once the user has been acknowledged. + activation_steps_append = [] +# Persistent facts the workflow keeps in mind for the whole run +# (standards, compliance constraints, stylistic guardrails). +# Distinct from the runtime memory sidecar — these are static context +# loaded on activation. Overrides append. +# +# Each entry is either: +# - a literal sentence, e.g. "All artifacts must follow org naming conventions." +# - a file reference prefixed with `file:`, e.g. "file:{project-root}/docs/standards.md" +# (glob patterns are supported; the file's contents are loaded and treated as facts). + persistent_facts = [ "file:{project-root}/**/project-context.md", ] +# Scalar: executed when the workflow reaches Step 6 (Final Assessment), +# after the readiness report has been saved and presented. Override wins. +# Leave empty for no custom post-completion behavior. + on_complete = "" diff --git a/src/bmm-skills/3-solutioning/bmad-check-implementation-readiness/steps/step-06-final-assessment.md b/src/bmm-skills/3-solutioning/bmad-check-implementation-readiness/steps/step-06-final-assessment.md index 467864215..ff55ff250 100644 --- a/src/bmm-skills/3-solutioning/bmad-check-implementation-readiness/steps/step-06-final-assessment.md +++ b/src/bmm-skills/3-solutioning/bmad-check-implementation-readiness/steps/step-06-final-assessment.md @@ -124,3 +124,9 @@ Implementation Readiness complete. Invoke the `bmad-help` skill. - Not reviewing previous findings - Incomplete summary - No clear recommendations + +## On Complete + +Run: `python3 {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow.on_complete` + +If the resolved `workflow.on_complete` is non-empty, follow it as the final terminal instruction before exiting. diff --git a/src/bmm-skills/3-solutioning/bmad-create-architecture/customize.toml b/src/bmm-skills/3-solutioning/bmad-create-architecture/customize.toml index 9f80c0fe8..327561200 100644 --- a/src/bmm-skills/3-solutioning/bmad-create-architecture/customize.toml +++ b/src/bmm-skills/3-solutioning/bmad-create-architecture/customize.toml @@ -1,14 +1,41 @@ # DO NOT EDIT -- overwritten on every update. # -# Workflow customization surface for bmad-create-architecture. +# Workflow customization surface for bmad-create-architecture. Mirrors the +# agent customization shape under the [workflow] namespace. [workflow] +# --- Configurable below. Overrides merge per BMad structural rules: --- +# scalars: override wins • arrays (persistent_facts, activation_steps_*): append +# arrays-of-tables with `code`/`id`: replace matching items, append new ones. + +# Steps to run before the standard activation (config load, greet). +# Overrides append. Use for pre-flight loads, compliance checks, etc. + activation_steps_prepend = [] + +# Steps to run after greet but before the workflow begins. +# Overrides append. Use for context-heavy setup that should happen +# once the user has been acknowledged. + activation_steps_append = [] +# Persistent facts the workflow keeps in mind for the whole run +# (standards, compliance constraints, stylistic guardrails). +# Distinct from the runtime memory sidecar — these are static context +# loaded on activation. Overrides append. +# +# Each entry is either: +# - a literal sentence, e.g. "Our org is AWS-only -- do not propose GCP or Azure." +# - a file reference prefixed with `file:`, e.g. "file:{project-root}/docs/standards.md" +# (glob patterns are supported; the file's contents are loaded and treated as facts). + persistent_facts = [ "file:{project-root}/**/project-context.md", ] +# Scalar: executed when the workflow reaches Step 8 (Architecture Completion & Handoff), +# after the architecture document frontmatter is updated and next-steps guidance is given. +# Override wins. Leave empty for no custom post-completion behavior. + on_complete = "" diff --git a/src/bmm-skills/3-solutioning/bmad-create-architecture/steps/step-08-complete.md b/src/bmm-skills/3-solutioning/bmad-create-architecture/steps/step-08-complete.md index e378fc97e..5aaab087e 100644 --- a/src/bmm-skills/3-solutioning/bmad-create-architecture/steps/step-08-complete.md +++ b/src/bmm-skills/3-solutioning/bmad-create-architecture/steps/step-08-complete.md @@ -74,3 +74,9 @@ Upon Completion of task output: offer to answer any questions about the Architec This is the final step of the Architecture workflow. The user now has a complete, validated architecture document ready for AI agent implementation. The architecture will serve as the single source of truth for all technical decisions, ensuring consistent implementation across the entire project development lifecycle. + +## On Complete + +Run: `python3 {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow.on_complete` + +If the resolved `workflow.on_complete` is non-empty, follow it as the final terminal instruction before exiting. diff --git a/src/bmm-skills/3-solutioning/bmad-create-epics-and-stories/customize.toml b/src/bmm-skills/3-solutioning/bmad-create-epics-and-stories/customize.toml index 1f08e3b56..fb05efaf7 100644 --- a/src/bmm-skills/3-solutioning/bmad-create-epics-and-stories/customize.toml +++ b/src/bmm-skills/3-solutioning/bmad-create-epics-and-stories/customize.toml @@ -1,14 +1,41 @@ # DO NOT EDIT -- overwritten on every update. # -# Workflow customization surface for bmad-create-epics-and-stories. +# Workflow customization surface for bmad-create-epics-and-stories. Mirrors the +# agent customization shape under the [workflow] namespace. [workflow] +# --- Configurable below. Overrides merge per BMad structural rules: --- +# scalars: override wins • arrays (persistent_facts, activation_steps_*): append +# arrays-of-tables with `code`/`id`: replace matching items, append new ones. + +# Steps to run before the standard activation (config load, greet). +# Overrides append. Use for pre-flight loads, compliance checks, etc. + activation_steps_prepend = [] + +# Steps to run after greet but before the workflow begins. +# Overrides append. Use for context-heavy setup that should happen +# once the user has been acknowledged. + activation_steps_append = [] +# Persistent facts the workflow keeps in mind for the whole run +# (standards, compliance constraints, stylistic guardrails). +# Distinct from the runtime memory sidecar — these are static context +# loaded on activation. Overrides append. +# +# Each entry is either: +# - a literal sentence, e.g. "All epics must deliver complete end-to-end user value." +# - a file reference prefixed with `file:`, e.g. "file:{project-root}/docs/standards.md" +# (glob patterns are supported; the file's contents are loaded and treated as facts). + persistent_facts = [ "file:{project-root}/**/project-context.md", ] +# Scalar: executed when the workflow reaches Step 4 (Final Validation) and the +# user confirms [C] Complete — after the epics.md is saved and bmad-help is invoked. +# Override wins. Leave empty for no custom post-completion behavior. + on_complete = "" diff --git a/src/bmm-skills/3-solutioning/bmad-create-epics-and-stories/steps/step-04-final-validation.md b/src/bmm-skills/3-solutioning/bmad-create-epics-and-stories/steps/step-04-final-validation.md index d115edcd2..6b6839097 100644 --- a/src/bmm-skills/3-solutioning/bmad-create-epics-and-stories/steps/step-04-final-validation.md +++ b/src/bmm-skills/3-solutioning/bmad-create-epics-and-stories/steps/step-04-final-validation.md @@ -129,3 +129,9 @@ When C is selected, the workflow is complete and the epics.md is ready for devel Epics and Stories complete. Invoke the `bmad-help` skill. Upon Completion of task output: offer to answer any questions about the Epics and Stories. + +## On Complete + +Run: `python3 {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow.on_complete` + +If the resolved `workflow.on_complete` is non-empty, follow it as the final terminal instruction before exiting. diff --git a/src/bmm-skills/3-solutioning/bmad-generate-project-context/customize.toml b/src/bmm-skills/3-solutioning/bmad-generate-project-context/customize.toml index 63274c4b5..8fd329111 100644 --- a/src/bmm-skills/3-solutioning/bmad-generate-project-context/customize.toml +++ b/src/bmm-skills/3-solutioning/bmad-generate-project-context/customize.toml @@ -1,14 +1,41 @@ # DO NOT EDIT -- overwritten on every update. # -# Workflow customization surface for bmad-generate-project-context. +# Workflow customization surface for bmad-generate-project-context. Mirrors the +# agent customization shape under the [workflow] namespace. [workflow] +# --- Configurable below. Overrides merge per BMad structural rules: --- +# scalars: override wins • arrays (persistent_facts, activation_steps_*): append +# arrays-of-tables with `code`/`id`: replace matching items, append new ones. + +# Steps to run before the standard activation (config load, greet). +# Overrides append. Use for pre-flight loads, compliance checks, etc. + activation_steps_prepend = [] + +# Steps to run after greet but before the workflow begins. +# Overrides append. Use for context-heavy setup that should happen +# once the user has been acknowledged. + activation_steps_append = [] +# Persistent facts the workflow keeps in mind for the whole run +# (standards, compliance constraints, stylistic guardrails). +# Distinct from the runtime memory sidecar — these are static context +# loaded on activation. Overrides append. +# +# Each entry is either: +# - a literal sentence, e.g. "All artifacts must follow org naming conventions." +# - a file reference prefixed with `file:`, e.g. "file:{project-root}/docs/standards.md" +# (glob patterns are supported; the file's contents are loaded and treated as facts). + persistent_facts = [ "file:{project-root}/**/project-context.md", ] +# Scalar: executed when the workflow reaches Step 3 (Context Completion & Finalization), +# after the project-context.md file is optimized and saved. Override wins. +# Leave empty for no custom post-completion behavior. + on_complete = "" diff --git a/src/bmm-skills/3-solutioning/bmad-generate-project-context/steps/step-03-complete.md b/src/bmm-skills/3-solutioning/bmad-generate-project-context/steps/step-03-complete.md index 85dd4db7b..c739843f6 100644 --- a/src/bmm-skills/3-solutioning/bmad-generate-project-context/steps/step-03-complete.md +++ b/src/bmm-skills/3-solutioning/bmad-generate-project-context/steps/step-03-complete.md @@ -276,3 +276,9 @@ Your project context will help ensure high-quality, consistent implementation ac This is the final step of the Generate Project Context workflow. The user now has a comprehensive, optimized project context file that will ensure consistent, high-quality implementation across all AI agents working on the project. The project context file serves as the critical "rules of the road" that agents need to implement code consistently with the project's standards and patterns. + +## On Complete + +Run: `python3 {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow.on_complete` + +If the resolved `workflow.on_complete` is non-empty, follow it as the final terminal instruction before exiting. diff --git a/src/bmm-skills/4-implementation/bmad-correct-course/SKILL.md b/src/bmm-skills/4-implementation/bmad-correct-course/SKILL.md index 934479f92..adea0bda0 100644 --- a/src/bmm-skills/4-implementation/bmad-correct-course/SKILL.md +++ b/src/bmm-skills/4-implementation/bmad-correct-course/SKILL.md @@ -295,6 +295,7 @@ Activation is complete. Begin the workflow below. Report workflow completion to user with personalized message: "Correct Course workflow complete, {user_name}!" Remind user of success criteria and next steps for Developer agent +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. diff --git a/src/bmm-skills/4-implementation/bmad-correct-course/customize.toml b/src/bmm-skills/4-implementation/bmad-correct-course/customize.toml index 2eb19ab5f..d23577e4b 100644 --- a/src/bmm-skills/4-implementation/bmad-correct-course/customize.toml +++ b/src/bmm-skills/4-implementation/bmad-correct-course/customize.toml @@ -1,14 +1,41 @@ # DO NOT EDIT -- overwritten on every update. # -# Workflow customization surface for bmad-correct-course. +# Workflow customization surface for bmad-correct-course. Mirrors the +# agent customization shape under the [workflow] namespace. [workflow] +# --- Configurable below. Overrides merge per BMad structural rules: --- +# scalars: override wins • arrays (persistent_facts, activation_steps_*): append +# arrays-of-tables with `code`/`id`: replace matching items, append new ones. + +# Steps to run before the standard activation (config load, greet). +# Overrides append. Use for pre-flight loads, compliance checks, etc. + activation_steps_prepend = [] + +# Steps to run after greet but before the workflow begins. +# Overrides append. Use for context-heavy setup that should happen +# once the user has been acknowledged. + activation_steps_append = [] +# Persistent facts the workflow keeps in mind for the whole run +# (standards, compliance constraints, stylistic guardrails). +# Distinct from the runtime memory sidecar — these are static context +# loaded on activation. Overrides append. +# +# Each entry is either: +# - a literal sentence, e.g. "All sprint changes require PO sign-off before execution." +# - a file reference prefixed with `file:`, e.g. "file:{project-root}/docs/standards.md" +# (glob patterns are supported; the file's contents are loaded and treated as facts). + persistent_facts = [ "file:{project-root}/**/project-context.md", ] +# Scalar: executed when the workflow reaches Step 6 (Workflow Completion), +# after the Sprint Change Proposal is finalized and handoff is confirmed. Override wins. +# Leave empty for no custom post-completion behavior. + on_complete = "" diff --git a/src/bmm-skills/4-implementation/bmad-create-story/SKILL.md b/src/bmm-skills/4-implementation/bmad-create-story/SKILL.md index 5c3b27a07..b746b9f57 100644 --- a/src/bmm-skills/4-implementation/bmad-create-story/SKILL.md +++ b/src/bmm-skills/4-implementation/bmad-create-story/SKILL.md @@ -411,6 +411,7 @@ Activation is complete. Begin the workflow below. **The developer now has everything needed for flawless implementation!** + 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. diff --git a/src/bmm-skills/4-implementation/bmad-create-story/customize.toml b/src/bmm-skills/4-implementation/bmad-create-story/customize.toml index bdd6681a3..fbd4a789a 100644 --- a/src/bmm-skills/4-implementation/bmad-create-story/customize.toml +++ b/src/bmm-skills/4-implementation/bmad-create-story/customize.toml @@ -1,14 +1,41 @@ # DO NOT EDIT -- overwritten on every update. # -# Workflow customization surface for bmad-create-story. +# Workflow customization surface for bmad-create-story. Mirrors the +# agent customization shape under the [workflow] namespace. [workflow] +# --- Configurable below. Overrides merge per BMad structural rules: --- +# scalars: override wins • arrays (persistent_facts, activation_steps_*): append +# arrays-of-tables with `code`/`id`: replace matching items, append new ones. + +# Steps to run before the standard activation (config load, greet). +# Overrides append. Use for pre-flight loads, compliance checks, etc. + activation_steps_prepend = [] + +# Steps to run after greet but before the workflow begins. +# Overrides append. Use for context-heavy setup that should happen +# once the user has been acknowledged. + activation_steps_append = [] +# Persistent facts the workflow keeps in mind for the whole run +# (standards, compliance constraints, stylistic guardrails). +# Distinct from the runtime memory sidecar — these are static context +# loaded on activation. Overrides append. +# +# Each entry is either: +# - a literal sentence, e.g. "All stories must include testable acceptance criteria." +# - a file reference prefixed with `file:`, e.g. "file:{project-root}/docs/standards.md" +# (glob patterns are supported; the file's contents are loaded and treated as facts). + persistent_facts = [ "file:{project-root}/**/project-context.md", ] +# Scalar: executed when the workflow reaches Step 6 (Update sprint status and finalize), +# after the story file is saved and sprint-status.yaml is updated. Override wins. +# Leave empty for no custom post-completion behavior. + on_complete = "" diff --git a/src/bmm-skills/4-implementation/bmad-qa-generate-e2e-tests/SKILL.md b/src/bmm-skills/4-implementation/bmad-qa-generate-e2e-tests/SKILL.md index 8ae544220..ef9d7e87a 100644 --- a/src/bmm-skills/4-implementation/bmad-qa-generate-e2e-tests/SKILL.md +++ b/src/bmm-skills/4-implementation/bmad-qa-generate-e2e-tests/SKILL.md @@ -168,3 +168,9 @@ If the project needs: Save summary to: `{default_output_file}` **Done!** Tests generated and verified. Validate against `./checklist.md`. + +## On Complete + +Run: `python3 {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow.on_complete` + +If the resolved `workflow.on_complete` is non-empty, follow it as the final terminal instruction before exiting. diff --git a/src/bmm-skills/4-implementation/bmad-qa-generate-e2e-tests/customize.toml b/src/bmm-skills/4-implementation/bmad-qa-generate-e2e-tests/customize.toml index 0720cc693..0a2c6fec5 100644 --- a/src/bmm-skills/4-implementation/bmad-qa-generate-e2e-tests/customize.toml +++ b/src/bmm-skills/4-implementation/bmad-qa-generate-e2e-tests/customize.toml @@ -1,14 +1,41 @@ # DO NOT EDIT -- overwritten on every update. # -# Workflow customization surface for bmad-qa-generate-e2e-tests. +# Workflow customization surface for bmad-qa-generate-e2e-tests. Mirrors the +# agent customization shape under the [workflow] namespace. [workflow] +# --- Configurable below. Overrides merge per BMad structural rules: --- +# scalars: override wins • arrays (persistent_facts, activation_steps_*): append +# arrays-of-tables with `code`/`id`: replace matching items, append new ones. + +# Steps to run before the standard activation (config load, greet). +# Overrides append. Use for pre-flight loads, compliance checks, etc. + activation_steps_prepend = [] + +# Steps to run after greet but before the workflow begins. +# Overrides append. Use for context-heavy setup that should happen +# once the user has been acknowledged. + activation_steps_append = [] +# Persistent facts the workflow keeps in mind for the whole run +# (standards, compliance constraints, stylistic guardrails). +# Distinct from the runtime memory sidecar — these are static context +# loaded on activation. Overrides append. +# +# Each entry is either: +# - a literal sentence, e.g. "All tests must follow the project's existing test framework patterns." +# - a file reference prefixed with `file:`, e.g. "file:{project-root}/docs/standards.md" +# (glob patterns are supported; the file's contents are loaded and treated as facts). + persistent_facts = [ "file:{project-root}/**/project-context.md", ] +# Scalar: executed when the workflow reaches Step 5 (Create Summary), +# after all tests pass and the summary document is saved. Override wins. +# Leave empty for no custom post-completion behavior. + on_complete = "" diff --git a/src/bmm-skills/4-implementation/bmad-retrospective/SKILL.md b/src/bmm-skills/4-implementation/bmad-retrospective/SKILL.md index 7634c33bd..b6d0c96c6 100644 --- a/src/bmm-skills/4-implementation/bmad-retrospective/SKILL.md +++ b/src/bmm-skills/4-implementation/bmad-retrospective/SKILL.md @@ -1486,7 +1486,7 @@ Alice (Product Owner): "See you at epic planning!" Charlie (Senior Dev): "Time to knock out that prep work." - +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. diff --git a/src/bmm-skills/4-implementation/bmad-retrospective/customize.toml b/src/bmm-skills/4-implementation/bmad-retrospective/customize.toml index ea2c660f8..2983b9fde 100644 --- a/src/bmm-skills/4-implementation/bmad-retrospective/customize.toml +++ b/src/bmm-skills/4-implementation/bmad-retrospective/customize.toml @@ -1,14 +1,41 @@ # DO NOT EDIT -- overwritten on every update. # -# Workflow customization surface for bmad-retrospective. +# Workflow customization surface for bmad-retrospective. Mirrors the +# agent customization shape under the [workflow] namespace. [workflow] +# --- Configurable below. Overrides merge per BMad structural rules: --- +# scalars: override wins • arrays (persistent_facts, activation_steps_*): append +# arrays-of-tables with `code`/`id`: replace matching items, append new ones. + +# Steps to run before the standard activation (config load, greet). +# Overrides append. Use for pre-flight loads, compliance checks, etc. + activation_steps_prepend = [] + +# Steps to run after greet but before the workflow begins. +# Overrides append. Use for context-heavy setup that should happen +# once the user has been acknowledged. + activation_steps_append = [] +# Persistent facts the workflow keeps in mind for the whole run +# (standards, compliance constraints, stylistic guardrails). +# Distinct from the runtime memory sidecar — these are static context +# loaded on activation. Overrides append. +# +# Each entry is either: +# - a literal sentence, e.g. "All retrospectives must produce SMART action items with named owners." +# - a file reference prefixed with `file:`, e.g. "file:{project-root}/docs/standards.md" +# (glob patterns are supported; the file's contents are loaded and treated as facts). + persistent_facts = [ "file:{project-root}/**/project-context.md", ] +# Scalar: executed when the workflow reaches Step 12 (Final Summary and Handoff), +# after the retrospective document is saved and sprint-status is updated. Override wins. +# Leave empty for no custom post-completion behavior. + on_complete = ""