From 47ab9dd2a12f7fa9c65842fa1517ce3a7753ddf4 Mon Sep 17 00:00:00 2001 From: Brian Madison Date: Sun, 30 Aug 2026 23:05:37 -0500 Subject: [PATCH] fix(skills): pass --project-root to the customization resolver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Core's resolve_customization.py inferred the project root when the flag was absent, and for a skill installed under the user's home that inference walked up to ~ — where a user-level install's ~/_bmad made home look like the project. Team overrides in the real project were silently ignored: no error, no warning, just shipped defaults. The resolver itself is fixed in BMAD-METHOD#2802, which is what actually repairs existing installs since this module ships no copy of the script. This is the hardening half: passing the root explicitly leaves nothing to infer, and matches resolve_config.py, which has always required it. No behaviour change where the inference already landed correctly. The flag has always existed, so new skill text works against an old resolver and old text against the new one. Refs bmad-code-org/BMAD-METHOD#2796 Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01L8Hyqmp2giAVgEAnB49zEQ --- src/agents/gds-agent-game-architect/SKILL.md | 2 +- src/agents/gds-agent-game-designer/SKILL.md | 2 +- src/agents/gds-agent-game-dev/SKILL.md | 2 +- src/agents/gds-agent-game-solo-dev/SKILL.md | 2 +- src/agents/gds-agent-tech-writer/SKILL.md | 2 +- .../1-preproduction/gds-brainstorm-game/SKILL.md | 2 +- .../gds-brainstorm-game/steps/step-04-complete.md | 2 +- .../1-preproduction/gds-create-game-brief/SKILL.md | 2 +- .../1-preproduction/research/gds-domain-research/SKILL.md | 2 +- .../domain-steps/step-06-research-synthesis.md | 2 +- src/workflows/2-design/gds-create-narrative/SKILL.md | 2 +- .../gds-create-narrative/steps/step-11-complete.md | 2 +- src/workflows/2-design/gds-gdd/SKILL.md | 2 +- src/workflows/2-design/gds-prd/SKILL.md | 2 +- src/workflows/2-design/gds-ux/SKILL.md | 2 +- .../gds-check-implementation-readiness/SKILL.md | 2 +- .../steps/step-06-final-assessment.md | 2 +- .../3-technical/gds-create-epics-and-stories/SKILL.md | 2 +- .../steps/step-04-final-validation.md | 2 +- src/workflows/3-technical/gds-game-architecture/SKILL.md | 2 +- .../gds-game-architecture/steps/step-09-complete.md | 2 +- .../3-technical/gds-generate-project-context/SKILL.md | 2 +- .../steps/step-03-complete.md | 2 +- src/workflows/4-production/gds-code-review/SKILL.md | 2 +- .../4-production/gds-code-review/steps/step-04-present.md | 2 +- src/workflows/4-production/gds-correct-course/SKILL.md | 4 ++-- src/workflows/4-production/gds-create-story/SKILL.md | 4 ++-- src/workflows/4-production/gds-dev-story/SKILL.md | 4 ++-- src/workflows/4-production/gds-investigate/SKILL.md | 2 +- src/workflows/4-production/gds-retrospective/SKILL.md | 4 ++-- src/workflows/4-production/gds-sprint-planning/SKILL.md | 4 ++-- src/workflows/4-production/gds-sprint-status/SKILL.md | 8 ++++---- src/workflows/gametest/gds-e2e-scaffold/SKILL.md | 4 ++-- src/workflows/gametest/gds-performance-test/SKILL.md | 4 ++-- src/workflows/gametest/gds-playtest-plan/SKILL.md | 4 ++-- src/workflows/gametest/gds-test-automate/SKILL.md | 4 ++-- src/workflows/gametest/gds-test-design/SKILL.md | 4 ++-- src/workflows/gametest/gds-test-framework/SKILL.md | 4 ++-- src/workflows/gametest/gds-test-review/SKILL.md | 4 ++-- src/workflows/gds-document-project/SKILL.md | 2 +- src/workflows/gds-document-project/instructions.md | 2 +- .../workflows/deep-dive-instructions.md | 2 +- .../workflows/full-scan-instructions.md | 2 +- src/workflows/gds-quick-flow/gds-quick-dev/SKILL.md | 2 +- .../gds-quick-flow/gds-quick-dev/step-05-present.md | 2 +- 45 files changed, 60 insertions(+), 60 deletions(-) diff --git a/src/agents/gds-agent-game-architect/SKILL.md b/src/agents/gds-agent-game-architect/SKILL.md index 7b29438..edb12e1 100644 --- a/src/agents/gds-agent-game-architect/SKILL.md +++ b/src/agents/gds-agent-game-architect/SKILL.md @@ -20,7 +20,7 @@ You are Cloud Dragonborn, the Game Architect. You design scalable game architect ### Step 1: Resolve the Agent Block -Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key agent` +Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-root} --key agent` **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: diff --git a/src/agents/gds-agent-game-designer/SKILL.md b/src/agents/gds-agent-game-designer/SKILL.md index 6a0888f..26e6cf8 100644 --- a/src/agents/gds-agent-game-designer/SKILL.md +++ b/src/agents/gds-agent-game-designer/SKILL.md @@ -20,7 +20,7 @@ You are Samus Shepard, the Game Designer. You drive creative vision, game design ### Step 1: Resolve the Agent Block -Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key agent` +Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-root} --key agent` **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: diff --git a/src/agents/gds-agent-game-dev/SKILL.md b/src/agents/gds-agent-game-dev/SKILL.md index 12a43c7..38a8651 100644 --- a/src/agents/gds-agent-game-dev/SKILL.md +++ b/src/agents/gds-agent-game-dev/SKILL.md @@ -22,7 +22,7 @@ You are Link Freeman, the Game Developer. You implement features, execute dev st ### Step 1: Resolve the Agent Block -Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key agent` +Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-root} --key agent` **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: diff --git a/src/agents/gds-agent-game-solo-dev/SKILL.md b/src/agents/gds-agent-game-solo-dev/SKILL.md index 1278b71..9f08a5a 100644 --- a/src/agents/gds-agent-game-solo-dev/SKILL.md +++ b/src/agents/gds-agent-game-solo-dev/SKILL.md @@ -20,7 +20,7 @@ You are Indie, the Game Solo Dev. You ship complete games from concept to launch ### Step 1: Resolve the Agent Block -Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key agent` +Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-root} --key agent` **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: diff --git a/src/agents/gds-agent-tech-writer/SKILL.md b/src/agents/gds-agent-tech-writer/SKILL.md index 5102970..5fd1cd1 100644 --- a/src/agents/gds-agent-tech-writer/SKILL.md +++ b/src/agents/gds-agent-tech-writer/SKILL.md @@ -20,7 +20,7 @@ You are Paige, the Technical Writer. You transform complex game development conc ### Step 1: Resolve the Agent Block -Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key agent` +Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-root} --key agent` **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: diff --git a/src/workflows/1-preproduction/gds-brainstorm-game/SKILL.md b/src/workflows/1-preproduction/gds-brainstorm-game/SKILL.md index 464a969..61fa7c8 100644 --- a/src/workflows/1-preproduction/gds-brainstorm-game/SKILL.md +++ b/src/workflows/1-preproduction/gds-brainstorm-game/SKILL.md @@ -22,7 +22,7 @@ description: 'Facilitate game brainstorming sessions with game-specific techniqu ### Step 1: Resolve the Workflow Block -Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow` +Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-root} --key workflow` **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: diff --git a/src/workflows/1-preproduction/gds-brainstorm-game/steps/step-04-complete.md b/src/workflows/1-preproduction/gds-brainstorm-game/steps/step-04-complete.md index 91f6a74..8f7ddca 100644 --- a/src/workflows/1-preproduction/gds-brainstorm-game/steps/step-04-complete.md +++ b/src/workflows/1-preproduction/gds-brainstorm-game/steps/step-04-complete.md @@ -277,6 +277,6 @@ This step-file architecture ensures consistent, creative brainstorming with user ## On Complete -Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow.on_complete` +Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-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/workflows/1-preproduction/gds-create-game-brief/SKILL.md b/src/workflows/1-preproduction/gds-create-game-brief/SKILL.md index 2d841fa..69ea5b3 100644 --- a/src/workflows/1-preproduction/gds-create-game-brief/SKILL.md +++ b/src/workflows/1-preproduction/gds-create-game-brief/SKILL.md @@ -15,7 +15,7 @@ At the opening greeting, let the user know they can invoke `bmad-party-mode` for ## On Activation -1. Resolve customization: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow`. On failure, read `{skill-root}/customize.toml` directly and use defaults. +1. Resolve customization: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-root} --key workflow`. On failure, read `{skill-root}/customize.toml` directly and use defaults. 2. Execute each entry in `{workflow.activation_steps_prepend}` in order. 3. Treat every entry in `{workflow.persistent_facts}` as foundational context for the rest of the run. Entries prefixed `file:` are paths or globs under `{project-root}` — load the referenced contents as facts. All other entries are facts verbatim. 4. `{workflow.external_sources}` is an org-configured registry of internal tools (knowledge bases, MCP tools); consult them alongside generic web research on the same triggers in `## Discovery`, org tools preferred when their directive matches. If a named tool is unavailable at runtime, fall back to standard behavior and note the gap when relevant. diff --git a/src/workflows/1-preproduction/research/gds-domain-research/SKILL.md b/src/workflows/1-preproduction/research/gds-domain-research/SKILL.md index 67f176a..9caf81b 100644 --- a/src/workflows/1-preproduction/research/gds-domain-research/SKILL.md +++ b/src/workflows/1-preproduction/research/gds-domain-research/SKILL.md @@ -20,7 +20,7 @@ description: 'Conduct game domain and industry research. Use when the user says ### Step 1: Resolve the Workflow Block -Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow` +Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-root} --key workflow` **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: diff --git a/src/workflows/1-preproduction/research/gds-domain-research/domain-steps/step-06-research-synthesis.md b/src/workflows/1-preproduction/research/gds-domain-research/domain-steps/step-06-research-synthesis.md index 8f20100..4a62d9e 100644 --- a/src/workflows/1-preproduction/research/gds-domain-research/domain-steps/step-06-research-synthesis.md +++ b/src/workflows/1-preproduction/research/gds-domain-research/domain-steps/step-06-research-synthesis.md @@ -446,6 +446,6 @@ Congratulations on completing comprehensive game domain research! ## On Complete -Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow.on_complete` +Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-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/workflows/2-design/gds-create-narrative/SKILL.md b/src/workflows/2-design/gds-create-narrative/SKILL.md index c3d5283..b7c6229 100644 --- a/src/workflows/2-design/gds-create-narrative/SKILL.md +++ b/src/workflows/2-design/gds-create-narrative/SKILL.md @@ -22,7 +22,7 @@ description: 'Create comprehensive narrative documentation with story structure ### Step 1: Resolve the Workflow Block -Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow` +Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-root} --key workflow` **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: diff --git a/src/workflows/2-design/gds-create-narrative/steps/step-11-complete.md b/src/workflows/2-design/gds-create-narrative/steps/step-11-complete.md index 81680cc..65cd04f 100644 --- a/src/workflows/2-design/gds-create-narrative/steps/step-11-complete.md +++ b/src/workflows/2-design/gds-create-narrative/steps/step-11-complete.md @@ -333,6 +333,6 @@ This step-file architecture ensures consistent, thorough narrative design with u ## On Complete -Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow.on_complete` +Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-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/workflows/2-design/gds-gdd/SKILL.md b/src/workflows/2-design/gds-gdd/SKILL.md index a7fd685..59e734d 100644 --- a/src/workflows/2-design/gds-gdd/SKILL.md +++ b/src/workflows/2-design/gds-gdd/SKILL.md @@ -21,7 +21,7 @@ At the opening greeting, let the user know they can invoke the skills `bmad-part ## On Activation -1. Resolve customization: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow`. On failure, surface the diagnostic and halt. +1. Resolve customization: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-root} --key workflow`. On failure, surface the diagnostic and halt. 2. Execute each entry in `{workflow.activation_steps_prepend}` in order. 3. Treat every entry in `{workflow.persistent_facts}` as foundational context. Entries prefixed `file:` are paths or globs under `{project-root}` — load their contents as facts. All others are facts verbatim. 4. Note `{workflow.external_sources}` as a registry to consult on demand when the conversation surfaces a relevant need. Do not query preemptively. If a named tool is unavailable at runtime, fall back to standard behavior and note the gap. diff --git a/src/workflows/2-design/gds-prd/SKILL.md b/src/workflows/2-design/gds-prd/SKILL.md index 53fdea8..869153b 100644 --- a/src/workflows/2-design/gds-prd/SKILL.md +++ b/src/workflows/2-design/gds-prd/SKILL.md @@ -31,7 +31,7 @@ You are a facilitator, not a form. The user is the author; you are the structure ## On Activation -1. Resolve customization: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow`. On failure, read `{skill-root}/customize.toml` directly and proceed with its values. +1. Resolve customization: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-root} --key workflow`. On failure, read `{skill-root}/customize.toml` directly and proceed with its values. 2. Execute each entry in `{workflow.activation_steps_prepend}` in order. 3. Treat every entry in `{workflow.persistent_facts}` as foundational context. Entries prefixed `file:` are paths or globs under `{project-root}` — load their contents as facts. All others are facts verbatim. 4. Note `{workflow.external_sources}` as a registry to consult on demand when the conversation surfaces a relevant need. Do not query preemptively. If a named tool is unavailable at runtime, fall back to standard behavior and note the gap. diff --git a/src/workflows/2-design/gds-ux/SKILL.md b/src/workflows/2-design/gds-ux/SKILL.md index e2d1f1e..33a9848 100644 --- a/src/workflows/2-design/gds-ux/SKILL.md +++ b/src/workflows/2-design/gds-ux/SKILL.md @@ -33,7 +33,7 @@ UX may lead, follow, or stand alone. Inherit `sources:` by reference; the spines ## On Activation -1. Resolve customization: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow`. On failure, read `{skill-root}/customize.toml` directly and use defaults. +1. Resolve customization: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-root} --key workflow`. On failure, read `{skill-root}/customize.toml` directly and use defaults. 2. Run `{workflow.activation_steps_prepend}`. Treat `{workflow.persistent_facts}` as foundational context (entries prefixed `file:` are loaded). `{workflow.external_sources}` is an org-configured registry of internal tools; consult them alongside generic web research on the same triggers, org tools preferred when their directive matches. 3. Load `{project-root}/_bmad/gds/config.yaml` (+ `config.user.yaml` if present). Resolve `{user_name}`, `{communication_language}`, `{document_output_language}`, `{planning_artifacts}`, `{project_name}`, `{date}`. Missing keys → neutral defaults; never block. 4. If headless, follow `references/headless.md` for the whole run. Otherwise greet the user **by name** using `{user_name}` and **in their language** using `{communication_language}` — and stay in `{communication_language}` for every turn. In the greeting, let the user know `bmad-party-mode` and `bmad-advanced-elicitation` are always available. Then scan for misroute on the first message: PRD → `gds-prd`; architecture → `gds-game-architecture`; narrative → `gds-create-narrative`; GDD → `gds-gdd`. diff --git a/src/workflows/3-technical/gds-check-implementation-readiness/SKILL.md b/src/workflows/3-technical/gds-check-implementation-readiness/SKILL.md index d52799b..e3e7109 100644 --- a/src/workflows/3-technical/gds-check-implementation-readiness/SKILL.md +++ b/src/workflows/3-technical/gds-check-implementation-readiness/SKILL.md @@ -20,7 +20,7 @@ description: 'Verify GDD, UX, Architecture, and Epics alignment before productio ### Step 1: Resolve the Workflow Block -Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow` +Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-root} --key workflow` **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: diff --git a/src/workflows/3-technical/gds-check-implementation-readiness/steps/step-06-final-assessment.md b/src/workflows/3-technical/gds-check-implementation-readiness/steps/step-06-final-assessment.md index ae0fb49..1408c88 100644 --- a/src/workflows/3-technical/gds-check-implementation-readiness/steps/step-06-final-assessment.md +++ b/src/workflows/3-technical/gds-check-implementation-readiness/steps/step-06-final-assessment.md @@ -130,6 +130,6 @@ Implementation Readiness complete. Invoke the `gds-help` skill. ## On Complete -Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow.on_complete` +Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-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/workflows/3-technical/gds-create-epics-and-stories/SKILL.md b/src/workflows/3-technical/gds-create-epics-and-stories/SKILL.md index 44f6146..c9b3ba1 100644 --- a/src/workflows/3-technical/gds-create-epics-and-stories/SKILL.md +++ b/src/workflows/3-technical/gds-create-epics-and-stories/SKILL.md @@ -22,7 +22,7 @@ description: 'Create Epics and Stories from GDD requirements for development. Us ### Step 1: Resolve the Workflow Block -Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow` +Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-root} --key workflow` **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: diff --git a/src/workflows/3-technical/gds-create-epics-and-stories/steps/step-04-final-validation.md b/src/workflows/3-technical/gds-create-epics-and-stories/steps/step-04-final-validation.md index 2e28ffc..90acea7 100644 --- a/src/workflows/3-technical/gds-create-epics-and-stories/steps/step-04-final-validation.md +++ b/src/workflows/3-technical/gds-create-epics-and-stories/steps/step-04-final-validation.md @@ -156,6 +156,6 @@ Upon Completion of task output: offer to answer any questions about the Epics an ## On Complete -Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow.on_complete` +Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-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/workflows/3-technical/gds-game-architecture/SKILL.md b/src/workflows/3-technical/gds-game-architecture/SKILL.md index bf25eb1..7f9b0f3 100644 --- a/src/workflows/3-technical/gds-game-architecture/SKILL.md +++ b/src/workflows/3-technical/gds-game-architecture/SKILL.md @@ -22,7 +22,7 @@ description: 'Design scale-adaptive game architecture with engine systems and ne ### Step 1: Resolve the Workflow Block -Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow` +Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-root} --key workflow` **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: diff --git a/src/workflows/3-technical/gds-game-architecture/steps/step-09-complete.md b/src/workflows/3-technical/gds-game-architecture/steps/step-09-complete.md index 4750278..26a9364 100644 --- a/src/workflows/3-technical/gds-game-architecture/steps/step-09-complete.md +++ b/src/workflows/3-technical/gds-game-architecture/steps/step-09-complete.md @@ -376,6 +376,6 @@ This step-file architecture ensures consistent, thorough architecture creation w ## On Complete -Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow.on_complete` +Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-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/workflows/3-technical/gds-generate-project-context/SKILL.md b/src/workflows/3-technical/gds-generate-project-context/SKILL.md index d16e51a..62035b3 100644 --- a/src/workflows/3-technical/gds-generate-project-context/SKILL.md +++ b/src/workflows/3-technical/gds-generate-project-context/SKILL.md @@ -22,7 +22,7 @@ description: 'Create optimized project-context.md for AI agent consistency. Use ### Step 1: Resolve the Workflow Block -Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow` +Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-root} --key workflow` **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: diff --git a/src/workflows/3-technical/gds-generate-project-context/steps/step-03-complete.md b/src/workflows/3-technical/gds-generate-project-context/steps/step-03-complete.md index 7cfd6b9..a64265c 100644 --- a/src/workflows/3-technical/gds-generate-project-context/steps/step-03-complete.md +++ b/src/workflows/3-technical/gds-generate-project-context/steps/step-03-complete.md @@ -281,6 +281,6 @@ The project context file serves as the critical "rules of the road" that agents ## On Complete -Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow.on_complete` +Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-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/workflows/4-production/gds-code-review/SKILL.md b/src/workflows/4-production/gds-code-review/SKILL.md index 434a60e..cda781c 100644 --- a/src/workflows/4-production/gds-code-review/SKILL.md +++ b/src/workflows/4-production/gds-code-review/SKILL.md @@ -20,7 +20,7 @@ description: 'Review code changes adversarially using parallel review layers (Bl ### Step 1: Resolve the Workflow Block -Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow` +Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-root} --key workflow` **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: diff --git a/src/workflows/4-production/gds-code-review/steps/step-04-present.md b/src/workflows/4-production/gds-code-review/steps/step-04-present.md index 5ad0e94..511745c 100644 --- a/src/workflows/4-production/gds-code-review/steps/step-04-present.md +++ b/src/workflows/4-production/gds-code-review/steps/step-04-present.md @@ -127,6 +127,6 @@ Present the user with follow-up options: ## On Complete -Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow.on_complete` +Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-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/workflows/4-production/gds-correct-course/SKILL.md b/src/workflows/4-production/gds-correct-course/SKILL.md index 112be0e..63fef08 100644 --- a/src/workflows/4-production/gds-correct-course/SKILL.md +++ b/src/workflows/4-production/gds-correct-course/SKILL.md @@ -20,7 +20,7 @@ description: 'Manage significant changes during sprint execution. Use when the u ### Step 1: Resolve the Workflow Block -Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow` +Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-root} --key workflow` **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: @@ -309,7 +309,7 @@ Activation is complete. If `activation_steps_prepend` or `activation_steps_appen 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: `uv run {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. +Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-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/workflows/4-production/gds-create-story/SKILL.md b/src/workflows/4-production/gds-create-story/SKILL.md index e5254b2..f6f0267 100644 --- a/src/workflows/4-production/gds-create-story/SKILL.md +++ b/src/workflows/4-production/gds-create-story/SKILL.md @@ -52,7 +52,7 @@ description: 'Creates a dedicated story file with all the context the agent will ### Step 1: Resolve the Workflow Block -Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow` +Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-root} --key workflow` **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: @@ -450,7 +450,7 @@ Activation is complete. If `activation_steps_prepend` or `activation_steps_appen **The developer now has everything needed for flawless implementation!** -Run: `uv run {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. +Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-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/workflows/4-production/gds-dev-story/SKILL.md b/src/workflows/4-production/gds-dev-story/SKILL.md index 23f7f0e..c6fcfed 100644 --- a/src/workflows/4-production/gds-dev-story/SKILL.md +++ b/src/workflows/4-production/gds-dev-story/SKILL.md @@ -39,7 +39,7 @@ description: 'Execute story implementation following a context filled story spec ### Step 1: Resolve the Workflow Block -Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow` +Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-root} --key workflow` **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: @@ -513,7 +513,7 @@ Activation is complete. If `activation_steps_prepend` or `activation_steps_appen Suggest checking {sprint_status} to see project progress Remain flexible - allow user to choose their own path or ask for other assistance -Run: `uv run {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. +Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-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/workflows/4-production/gds-investigate/SKILL.md b/src/workflows/4-production/gds-investigate/SKILL.md index 6ebb5bd..1e4ee73 100644 --- a/src/workflows/4-production/gds-investigate/SKILL.md +++ b/src/workflows/4-production/gds-investigate/SKILL.md @@ -52,7 +52,7 @@ After every outcome, present what was learned and pause for the user before cont ### Step 1: Resolve the workflow block -Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow` +Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-root} --key workflow` If the script fails, stop and surface the error. diff --git a/src/workflows/4-production/gds-retrospective/SKILL.md b/src/workflows/4-production/gds-retrospective/SKILL.md index 0378d99..c25eb83 100644 --- a/src/workflows/4-production/gds-retrospective/SKILL.md +++ b/src/workflows/4-production/gds-retrospective/SKILL.md @@ -63,7 +63,7 @@ description: 'Post-epic review to extract lessons and assess success. Use when t ### Step 1: Resolve the Workflow Block -Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow` +Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-root} --key workflow` **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: @@ -1499,7 +1499,7 @@ Alice (Product Owner): "See you at epic planning!" Charlie (Senior Dev): "Time to knock out that prep work." -Run: `uv run {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. +Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-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/workflows/4-production/gds-sprint-planning/SKILL.md b/src/workflows/4-production/gds-sprint-planning/SKILL.md index 4c34efe..c600594 100644 --- a/src/workflows/4-production/gds-sprint-planning/SKILL.md +++ b/src/workflows/4-production/gds-sprint-planning/SKILL.md @@ -43,7 +43,7 @@ description: 'Generate sprint status tracking from epics. Use when the user says ### Step 1: Resolve the Workflow Block -Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow` +Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-root} --key workflow` **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: @@ -255,7 +255,7 @@ development_status: 2. Use this file to track development progress 3. Agents will update statuses as they work 4. Re-run this workflow to refresh auto-detected statuses -Run: `uv run {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. +Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-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/workflows/4-production/gds-sprint-status/SKILL.md b/src/workflows/4-production/gds-sprint-status/SKILL.md index a9a4bdc..fc18042 100644 --- a/src/workflows/4-production/gds-sprint-status/SKILL.md +++ b/src/workflows/4-production/gds-sprint-status/SKILL.md @@ -37,7 +37,7 @@ description: 'Summarize sprint status and surface risks. Use when the user says ### Step 1: Resolve the Workflow Block -Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow` +Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-root} --key workflow` **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: @@ -228,7 +228,7 @@ If the command targets a story, set `story_key={{next_story_id}}` when prompted. Exit workflow -Run: `uv run {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. +Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-root} --key workflow.on_complete` — if the resolved value is non-empty, follow it as the final terminal instruction before exiting. @@ -252,7 +252,7 @@ If the command targets a story, set `story_key={{next_story_id}}` when prompted. risks = {{risks}} Return to caller -Run: `uv run {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. +Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-root} --key workflow.on_complete` — if the resolved value is non-empty, follow it as the final terminal instruction before exiting. @@ -300,7 +300,7 @@ If the command targets a story, set `story_key={{next_story_id}}` when prompted. is_valid = true message = "sprint-status.yaml valid: metadata complete, all statuses recognized" -Run: `uv run {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. +Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-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/workflows/gametest/gds-e2e-scaffold/SKILL.md b/src/workflows/gametest/gds-e2e-scaffold/SKILL.md index 12e4ad2..5bd4689 100644 --- a/src/workflows/gametest/gds-e2e-scaffold/SKILL.md +++ b/src/workflows/gametest/gds-e2e-scaffold/SKILL.md @@ -22,7 +22,7 @@ description: 'Scaffold end-to-end testing infrastructure. Use when the user says ### Step 1: Resolve the Workflow Block -Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow` +Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-root} --key workflow` **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: @@ -298,7 +298,7 @@ Tests/PlayMode/E2E/ (Unity) 5. Use `automate` workflow to generate E2E tests from scenarios ``` -Run: `uv run {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. +Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-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/workflows/gametest/gds-performance-test/SKILL.md b/src/workflows/gametest/gds-performance-test/SKILL.md index 88037a4..1932d2f 100644 --- a/src/workflows/gametest/gds-performance-test/SKILL.md +++ b/src/workflows/gametest/gds-performance-test/SKILL.md @@ -22,7 +22,7 @@ description: 'Design game performance testing strategy. Use when the user says " ### Step 1: Resolve the Workflow Block -Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow` +Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-root} --key workflow` **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: @@ -374,7 +374,7 @@ func test_performance_entity_stress(): Load and apply `{validation}` checklist to verify all deliverables are complete Present a summary of what was produced and the recommended next steps to the user -Run: `uv run {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. +Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-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/workflows/gametest/gds-playtest-plan/SKILL.md b/src/workflows/gametest/gds-playtest-plan/SKILL.md index 0cc0ef5..cc696d3 100644 --- a/src/workflows/gametest/gds-playtest-plan/SKILL.md +++ b/src/workflows/gametest/gds-playtest-plan/SKILL.md @@ -19,7 +19,7 @@ description: 'Create structured playtesting plans for user feedback. Use when th ### Step 1: Resolve the Workflow Block -Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow` +Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-root} --key workflow` **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: @@ -388,6 +388,6 @@ Refer to `checklist.md` for validation criteria. ## On Complete -Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow.on_complete` +Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-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/workflows/gametest/gds-test-automate/SKILL.md b/src/workflows/gametest/gds-test-automate/SKILL.md index 5ab712f..ec31cc5 100644 --- a/src/workflows/gametest/gds-test-automate/SKILL.md +++ b/src/workflows/gametest/gds-test-automate/SKILL.md @@ -22,7 +22,7 @@ description: 'Generate automated game tests for gameplay systems. Use when the u ### Step 1: Resolve the Workflow Block -Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow` +Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-root} --key workflow` **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: @@ -383,7 +383,7 @@ public IEnumerator Smoke_NewGame_StartsSuccessfully() Load and apply `{validation}` checklist to verify all deliverables are complete Present the automation summary to the user -Run: `uv run {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. +Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-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/workflows/gametest/gds-test-design/SKILL.md b/src/workflows/gametest/gds-test-design/SKILL.md index 4c755b6..e65c6c3 100644 --- a/src/workflows/gametest/gds-test-design/SKILL.md +++ b/src/workflows/gametest/gds-test-design/SKILL.md @@ -19,7 +19,7 @@ description: 'Create comprehensive game test scenarios. Use when the user says " ### Step 1: Resolve the Workflow Block -Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow` +Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-root} --key workflow` **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: @@ -423,6 +423,6 @@ Refer to `checklist.md` for validation criteria. ## On Complete -Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow.on_complete` +Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-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/workflows/gametest/gds-test-framework/SKILL.md b/src/workflows/gametest/gds-test-framework/SKILL.md index 6cc0889..80a2e63 100644 --- a/src/workflows/gametest/gds-test-framework/SKILL.md +++ b/src/workflows/gametest/gds-test-framework/SKILL.md @@ -19,7 +19,7 @@ description: 'Initialize game test framework for Unity, Unreal, or Godot. Use wh ### Step 1: Resolve the Workflow Block -Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow` +Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-root} --key workflow` **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: @@ -437,6 +437,6 @@ Refer to `checklist.md` for comprehensive validation criteria. ## On Complete -Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow.on_complete` +Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-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/workflows/gametest/gds-test-review/SKILL.md b/src/workflows/gametest/gds-test-review/SKILL.md index 8a0a7f4..5607617 100644 --- a/src/workflows/gametest/gds-test-review/SKILL.md +++ b/src/workflows/gametest/gds-test-review/SKILL.md @@ -19,7 +19,7 @@ description: 'Review test quality and coverage. Use when the user says "test rev ### Step 1: Resolve the Workflow Block -Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow` +Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-root} --key workflow` **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: @@ -358,6 +358,6 @@ Refer to `checklist.md` for validation criteria. ## On Complete -Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow.on_complete` +Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-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/workflows/gds-document-project/SKILL.md b/src/workflows/gds-document-project/SKILL.md index ead67c4..7317780 100644 --- a/src/workflows/gds-document-project/SKILL.md +++ b/src/workflows/gds-document-project/SKILL.md @@ -31,7 +31,7 @@ description: 'Analyze existing game projects to produce useful documentation. Us ### Step 1: Resolve the Workflow Block -Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow` +Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-root} --key workflow` **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: diff --git a/src/workflows/gds-document-project/instructions.md b/src/workflows/gds-document-project/instructions.md index ec9efe3..338d4f7 100644 --- a/src/workflows/gds-document-project/instructions.md +++ b/src/workflows/gds-document-project/instructions.md @@ -215,7 +215,7 @@ Since no workflow is in progress: - Or run `workflow-init` to create a workflow path and get guided next steps {{/if}} -Run: `uv run {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. +Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-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/workflows/gds-document-project/workflows/deep-dive-instructions.md b/src/workflows/gds-document-project/workflows/deep-dive-instructions.md index 65ce824..d7ea281 100644 --- a/src/workflows/gds-document-project/workflows/deep-dive-instructions.md +++ b/src/workflows/gds-document-project/workflows/deep-dive-instructions.md @@ -290,7 +290,7 @@ These comprehensive docs are now ready for: Thank you for using the document-project workflow! -Run: `uv run {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. +Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-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/workflows/gds-document-project/workflows/full-scan-instructions.md b/src/workflows/gds-document-project/workflows/full-scan-instructions.md index 1356c8a..0149891 100644 --- a/src/workflows/gds-document-project/workflows/full-scan-instructions.md +++ b/src/workflows/gds-document-project/workflows/full-scan-instructions.md @@ -1103,6 +1103,6 @@ When ready to plan new features, run the PRD workflow and provide this index as Display: "State file saved: {{output_folder}}/project-scan-report.json" -Run: `uv run {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. +Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-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/workflows/gds-quick-flow/gds-quick-dev/SKILL.md b/src/workflows/gds-quick-flow/gds-quick-dev/SKILL.md index 3e51faf..eb2afab 100644 --- a/src/workflows/gds-quick-flow/gds-quick-dev/SKILL.md +++ b/src/workflows/gds-quick-flow/gds-quick-dev/SKILL.md @@ -20,7 +20,7 @@ description: 'Implements any user intent, requirement, story, bug fix or change ### Step 1: Resolve the Workflow Block -Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow` +Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-root} --key workflow` **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: diff --git a/src/workflows/gds-quick-flow/gds-quick-dev/step-05-present.md b/src/workflows/gds-quick-flow/gds-quick-dev/step-05-present.md index c3c7be9..43aa790 100644 --- a/src/workflows/gds-quick-flow/gds-quick-dev/step-05-present.md +++ b/src/workflows/gds-quick-flow/gds-quick-dev/step-05-present.md @@ -73,6 +73,6 @@ Workflow complete. ## On Complete -Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow.on_complete` +Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-root} --key workflow.on_complete` If the resolved `workflow.on_complete` is non-empty, follow it as the final terminal instruction before exiting.