fix(skills): strengthen activation guardrails to prevent LLM short-circuiting (#2398)
* fix(skills): strengthen activation guardrails for all workflow skills
Add explicit "Activation is complete" boundary markers that require
confirming activation_steps_prepend and activation_steps_append were
fully executed before beginning the main workflow.
Previously, the guardrail was either missing (bmad-product-brief,
bmad-prd, bmad-investigate) or too weak ("Begin the workflow below").
LLM agents would short-circuit complex activation sequences (INCLUDE →
READ → RUN → CHECK → FILTER → CD) by guessing variables instead of
executing steps in order, causing append steps and on_complete hooks
to be silently skipped.
The new guardrail explicitly names both prepend and append steps,
requiring confirmation before proceeding. This prevents agents from
starting the main workflow in parallel with activation.
23 skills updated: bmad-product-brief, bmad-prd, bmad-prfaq,
bmad-investigate, bmad-create-story, bmad-dev-story,
bmad-quick-dev, bmad-code-review, bmad-correct-course,
bmad-sprint-planning, bmad-sprint-status, bmad-retrospective,
bmad-qa-generate-e2e-tests, bmad-checkpoint-preview,
bmad-check-implementation-readiness, bmad-create-architecture,
bmad-create-epics-and-stories, bmad-generate-project-context,
bmad-create-ux-design, bmad-document-project, bmad-market-research,
bmad-technical-research, bmad-domain-research.
* fix(skills): extend activation gate to agent + new skills, refine placement
- bmad-product-brief / bmad-prd: pull activation_steps_append out of
the numbered list so the sentinel reads as a paragraph break, not
as the next list item.
- bmad-investigate: move the sentinel above Step 7 (routing) — Step 7
is workflow routing, not activation; the gate must fire first.
- bmad-agent-{analyst,tech-writer,pm,ux-designer,architect,dev}: add
the same gate between Step 7 (append) and Step 8 (menu dispatch).
Persona skills had the same short-circuit risk but no sentinel.
- bmad-ux, bmad-spec: new skills introduced on main after this branch
forked; apply the same gate so the pattern stays consistent.
- removals.txt: register bmad-create-ux-design as renamed to bmad-ux.
---------
Co-authored-by: Brian Madison <bmadcode@gmail.com>
This commit is contained in:
parent
1a5df418b3
commit
436845493f
|
|
@ -57,3 +57,6 @@ bmad-bmm-validate-prd
|
||||||
# bmad-distillator: superseded by bmad-spec (universal intent distiller with
|
# bmad-distillator: superseded by bmad-spec (universal intent distiller with
|
||||||
# preservation-validated contract for downstream skills).
|
# preservation-validated contract for downstream skills).
|
||||||
bmad-distillator
|
bmad-distillator
|
||||||
|
# bmad-create-ux-design: renamed to bmad-ux (spine-based skill with separate
|
||||||
|
# DESIGN.md and EXPERIENCE.md outputs).
|
||||||
|
bmad-create-ux-design
|
||||||
|
|
|
||||||
|
|
@ -63,6 +63,8 @@ Continue to prefix your messages with `{agent.icon}` throughout the session so t
|
||||||
|
|
||||||
Execute each entry in `{agent.activation_steps_append}` in order.
|
Execute each entry in `{agent.activation_steps_append}` in order.
|
||||||
|
|
||||||
|
Activation is complete. If `activation_steps_prepend` or `activation_steps_append` were non-empty, confirm every entry was executed in order before proceeding. Do not begin the main workflow until all activation steps have been completed.
|
||||||
|
|
||||||
### Step 8: Dispatch or Present the Menu
|
### Step 8: Dispatch or Present the Menu
|
||||||
|
|
||||||
If the user's initial message already names an intent that clearly maps to a menu item (e.g. "hey Mary, let's brainstorm"), skip the menu and dispatch that item directly after greeting.
|
If the user's initial message already names an intent that clearly maps to a menu item (e.g. "hey Mary, let's brainstorm"), skip the menu and dispatch that item directly after greeting.
|
||||||
|
|
|
||||||
|
|
@ -63,6 +63,8 @@ Continue to prefix your messages with `{agent.icon}` throughout the session so t
|
||||||
|
|
||||||
Execute each entry in `{agent.activation_steps_append}` in order.
|
Execute each entry in `{agent.activation_steps_append}` in order.
|
||||||
|
|
||||||
|
Activation is complete. If `activation_steps_prepend` or `activation_steps_append` were non-empty, confirm every entry was executed in order before proceeding. Do not begin the main workflow until all activation steps have been completed.
|
||||||
|
|
||||||
### Step 8: Dispatch or Present the Menu
|
### Step 8: Dispatch or Present the Menu
|
||||||
|
|
||||||
If the user's initial message already names an intent that clearly maps to a menu item (e.g. "hey Paige, let's document this codebase"), skip the menu and dispatch that item directly after greeting.
|
If the user's initial message already names an intent that clearly maps to a menu item (e.g. "hey Paige, let's document this codebase"), skip the menu and dispatch that item directly after greeting.
|
||||||
|
|
|
||||||
|
|
@ -55,7 +55,7 @@ Greet `{user_name}` (if you have not already), speaking in `{communication_langu
|
||||||
|
|
||||||
Execute each entry in `{workflow.activation_steps_append}` in order.
|
Execute each entry in `{workflow.activation_steps_append}` in order.
|
||||||
|
|
||||||
Activation is complete. Begin the workflow below.
|
Activation is complete. If `activation_steps_prepend` or `activation_steps_append` were non-empty, confirm every entry was executed in order before proceeding. Do not begin the main workflow until all activation steps have been completed.
|
||||||
|
|
||||||
## Execution
|
## Execution
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -65,7 +65,7 @@ Greet `{user_name}`, speaking in `{communication_language}`. Be warm but efficie
|
||||||
|
|
||||||
Execute each entry in `{workflow.activation_steps_append}` in order.
|
Execute each entry in `{workflow.activation_steps_append}` in order.
|
||||||
|
|
||||||
Activation is complete. Continue below.
|
Activation is complete. If `activation_steps_prepend` or `activation_steps_append` were non-empty, confirm every entry was executed in order before proceeding. Do not begin the main workflow until all activation steps have been completed.
|
||||||
|
|
||||||
## Pre-workflow Setup
|
## Pre-workflow Setup
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,10 @@ At the opening greeting, let the user know they can invoke `bmad-party-mode` for
|
||||||
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.
|
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.
|
||||||
5. Load `{project-root}/_bmad/bmm/config.yaml` (and `config.user.yaml` if present). Resolve `{user_name}`, `{communication_language}`, `{document_output_language}`, `{planning_artifacts}`, `{project_name}`, `{date}`.
|
5. Load `{project-root}/_bmad/bmm/config.yaml` (and `config.user.yaml` if present). Resolve `{user_name}`, `{communication_language}`, `{document_output_language}`, `{planning_artifacts}`, `{project_name}`, `{date}`.
|
||||||
6. Greet `{user_name}` in `{communication_language}` — and stay in `{communication_language}` for every turn for the entire run, not just the greeting. Detect intent (create / update / validate). If interactive and intent is unclear, ask; for headless behavior see `## Headless Mode`.
|
6. Greet `{user_name}` in `{communication_language}` — and stay in `{communication_language}` for every turn for the entire run, not just the greeting. Detect intent (create / update / validate). If interactive and intent is unclear, ask; for headless behavior see `## Headless Mode`.
|
||||||
7. Execute each entry in `{workflow.activation_steps_append}` in order.
|
|
||||||
|
Execute each entry in `{workflow.activation_steps_append}` in order.
|
||||||
|
|
||||||
|
Activation is complete. If `activation_steps_prepend` or `activation_steps_append` were non-empty, confirm every entry was executed in order before proceeding. Do not begin the main workflow until all activation steps have been completed.
|
||||||
|
|
||||||
## Intent Operating Modes
|
## Intent Operating Modes
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -59,7 +59,7 @@ Greet `{user_name}`, speaking in `{communication_language}`.
|
||||||
|
|
||||||
Execute each entry in `{workflow.activation_steps_append}` in order.
|
Execute each entry in `{workflow.activation_steps_append}` in order.
|
||||||
|
|
||||||
Activation is complete. Begin the workflow below.
|
Activation is complete. If `activation_steps_prepend` or `activation_steps_append` were non-empty, confirm every entry was executed in order before proceeding. Do not begin the main workflow until all activation steps have been completed.
|
||||||
|
|
||||||
## QUICK TOPIC DISCOVERY
|
## QUICK TOPIC DISCOVERY
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -59,7 +59,7 @@ Greet `{user_name}`, speaking in `{communication_language}`.
|
||||||
|
|
||||||
Execute each entry in `{workflow.activation_steps_append}` in order.
|
Execute each entry in `{workflow.activation_steps_append}` in order.
|
||||||
|
|
||||||
Activation is complete. Begin the workflow below.
|
Activation is complete. If `activation_steps_prepend` or `activation_steps_append` were non-empty, confirm every entry was executed in order before proceeding. Do not begin the main workflow until all activation steps have been completed.
|
||||||
|
|
||||||
## QUICK TOPIC DISCOVERY
|
## QUICK TOPIC DISCOVERY
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -59,7 +59,7 @@ Greet `{user_name}`, speaking in `{communication_language}`.
|
||||||
|
|
||||||
Execute each entry in `{workflow.activation_steps_append}` in order.
|
Execute each entry in `{workflow.activation_steps_append}` in order.
|
||||||
|
|
||||||
Activation is complete. Begin the workflow below.
|
Activation is complete. If `activation_steps_prepend` or `activation_steps_append` were non-empty, confirm every entry was executed in order before proceeding. Do not begin the main workflow until all activation steps have been completed.
|
||||||
|
|
||||||
## QUICK TOPIC DISCOVERY
|
## QUICK TOPIC DISCOVERY
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -63,6 +63,8 @@ Continue to prefix your messages with `{agent.icon}` throughout the session so t
|
||||||
|
|
||||||
Execute each entry in `{agent.activation_steps_append}` in order.
|
Execute each entry in `{agent.activation_steps_append}` in order.
|
||||||
|
|
||||||
|
Activation is complete. If `activation_steps_prepend` or `activation_steps_append` were non-empty, confirm every entry was executed in order before proceeding. Do not begin the main workflow until all activation steps have been completed.
|
||||||
|
|
||||||
### Step 8: Dispatch or Present the Menu
|
### Step 8: Dispatch or Present the Menu
|
||||||
|
|
||||||
If the user's initial message already names an intent that clearly maps to a menu item (e.g. "hey John, let's write the PRD"), skip the menu and dispatch that item directly after greeting.
|
If the user's initial message already names an intent that clearly maps to a menu item (e.g. "hey John, let's write the PRD"), skip the menu and dispatch that item directly after greeting.
|
||||||
|
|
|
||||||
|
|
@ -63,6 +63,8 @@ Continue to prefix your messages with `{agent.icon}` throughout the session so t
|
||||||
|
|
||||||
Execute each entry in `{agent.activation_steps_append}` in order.
|
Execute each entry in `{agent.activation_steps_append}` in order.
|
||||||
|
|
||||||
|
Activation is complete. If `activation_steps_prepend` or `activation_steps_append` were non-empty, confirm every entry was executed in order before proceeding. Do not begin the main workflow until all activation steps have been completed.
|
||||||
|
|
||||||
### Step 8: Dispatch or Present the Menu
|
### Step 8: Dispatch or Present the Menu
|
||||||
|
|
||||||
If the user's initial message already names an intent that clearly maps to a menu item (e.g. "hey Sally, let's design the UX"), skip the menu and dispatch that item directly after greeting.
|
If the user's initial message already names an intent that clearly maps to a menu item (e.g. "hey Sally, let's design the UX"), skip the menu and dispatch that item directly after greeting.
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,10 @@ You are a master facilitator and coach helping the user create, edit, or validat
|
||||||
3. Load `{project-root}/_bmad/bmm/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.
|
3. Load `{project-root}/_bmad/bmm/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 for the entire run, not just the greeting. In the greeting, let the user know that at any point they can invoke `bmad-party-mode` for multi-agent perspectives or `bmad-advanced-elicitation` for deeper exploration on a specific section. Then scan for misroute on the first message: if the signal points elsewhere (game → BMad GDS; express build → `bmad-quick-dev`; one-pager → `bmad-product-brief`; vet product idea → `bmad-prfaq`; agent skill or custom agent → `bmad-workflow-builder`), suggest they might want the other options before continuing.
|
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 for the entire run, not just the greeting. In the greeting, let the user know that at any point they can invoke `bmad-party-mode` for multi-agent perspectives or `bmad-advanced-elicitation` for deeper exploration on a specific section. Then scan for misroute on the first message: if the signal points elsewhere (game → BMad GDS; express build → `bmad-quick-dev`; one-pager → `bmad-product-brief`; vet product idea → `bmad-prfaq`; agent skill or custom agent → `bmad-workflow-builder`), suggest they might want the other options before continuing.
|
||||||
5. Detect intent: **Create** (no PRD), **Update** (existing PRD), **Validate** (critique only). If ambiguous, ask. For Create intent, before binding a fresh workspace, scan `{workflow.prd_output_path}` for prior in-progress runs (folders matching `{workflow.run_folder_pattern}` whose `prd.md` frontmatter `status` is not `final`); if any exist, offer to resume rather than starting over.
|
5. Detect intent: **Create** (no PRD), **Update** (existing PRD), **Validate** (critique only). If ambiguous, ask. For Create intent, before binding a fresh workspace, scan `{workflow.prd_output_path}` for prior in-progress runs (folders matching `{workflow.run_folder_pattern}` whose `prd.md` frontmatter `status` is not `final`); if any exist, offer to resume rather than starting over.
|
||||||
6. Run `{workflow.activation_steps_append}`.
|
|
||||||
|
Run `{workflow.activation_steps_append}`.
|
||||||
|
|
||||||
|
Activation is complete. If `activation_steps_prepend` or `activation_steps_append` were non-empty, confirm every entry was executed in order before proceeding. Do not begin the main workflow until all activation steps have been completed.
|
||||||
|
|
||||||
## Intent Modes
|
## Intent Modes
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -35,7 +35,10 @@ UX may lead, follow, or stand alone. Inherit `sources:` by reference; the spines
|
||||||
3. Load `{project-root}/_bmad/bmm/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.
|
3. Load `{project-root}/_bmad/bmm/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 → `bmad-prd`; architecture → `bmad-create-architecture`; game UX → BMad GDS; agent/skill → `bmad-workflow-builder`; brief → `bmad-product-brief`.
|
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 → `bmad-prd`; architecture → `bmad-create-architecture`; game UX → BMad GDS; agent/skill → `bmad-workflow-builder`; brief → `bmad-product-brief`.
|
||||||
5. Detect intent: **Create**, **Update**, **Validate**. For Create, before binding a fresh workspace, scan `{workflow.ux_output_path}` for prior in-progress runs (folders matching `{workflow.run_folder_pattern}` whose `DESIGN.md` frontmatter `status` is not `final`) and offer to resume rather than starting over.
|
5. Detect intent: **Create**, **Update**, **Validate**. For Create, before binding a fresh workspace, scan `{workflow.ux_output_path}` for prior in-progress runs (folders matching `{workflow.run_folder_pattern}` whose `DESIGN.md` frontmatter `status` is not `final`) and offer to resume rather than starting over.
|
||||||
6. Run `{workflow.activation_steps_append}`.
|
|
||||||
|
Run `{workflow.activation_steps_append}`.
|
||||||
|
|
||||||
|
Activation is complete. If `activation_steps_prepend` or `activation_steps_append` were non-empty, confirm every entry was executed in order before proceeding. Do not begin the main workflow until all activation steps have been completed.
|
||||||
|
|
||||||
## Modes
|
## Modes
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -63,6 +63,8 @@ Continue to prefix your messages with `{agent.icon}` throughout the session so t
|
||||||
|
|
||||||
Execute each entry in `{agent.activation_steps_append}` in order.
|
Execute each entry in `{agent.activation_steps_append}` in order.
|
||||||
|
|
||||||
|
Activation is complete. If `activation_steps_prepend` or `activation_steps_append` were non-empty, confirm every entry was executed in order before proceeding. Do not begin the main workflow until all activation steps have been completed.
|
||||||
|
|
||||||
### Step 8: Dispatch or Present the Menu
|
### Step 8: Dispatch or Present the Menu
|
||||||
|
|
||||||
If the user's initial message already names an intent that clearly maps to a menu item (e.g. "hey Winston, let's architect this"), skip the menu and dispatch that item directly after greeting.
|
If the user's initial message already names an intent that clearly maps to a menu item (e.g. "hey Winston, let's architect this"), skip the menu and dispatch that item directly after greeting.
|
||||||
|
|
|
||||||
|
|
@ -84,7 +84,7 @@ Greet `{user_name}`, speaking in `{communication_language}`.
|
||||||
|
|
||||||
Execute each entry in `{workflow.activation_steps_append}` in order.
|
Execute each entry in `{workflow.activation_steps_append}` in order.
|
||||||
|
|
||||||
Activation is complete. Begin the workflow below.
|
Activation is complete. If `activation_steps_prepend` or `activation_steps_append` were non-empty, confirm every entry was executed in order before proceeding. Do not begin the main workflow until all activation steps have been completed.
|
||||||
|
|
||||||
## Execution
|
## Execution
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -65,7 +65,7 @@ Greet `{user_name}`, speaking in `{communication_language}`.
|
||||||
|
|
||||||
Execute each entry in `{workflow.activation_steps_append}` in order.
|
Execute each entry in `{workflow.activation_steps_append}` in order.
|
||||||
|
|
||||||
Activation is complete. Begin the workflow below.
|
Activation is complete. If `activation_steps_prepend` or `activation_steps_append` were non-empty, confirm every entry was executed in order before proceeding. Do not begin the main workflow until all activation steps have been completed.
|
||||||
|
|
||||||
## Execution
|
## Execution
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -86,7 +86,7 @@ Greet `{user_name}`, speaking in `{communication_language}`.
|
||||||
|
|
||||||
Execute each entry in `{workflow.activation_steps_append}` in order.
|
Execute each entry in `{workflow.activation_steps_append}` in order.
|
||||||
|
|
||||||
Activation is complete. Begin the workflow below.
|
Activation is complete. If `activation_steps_prepend` or `activation_steps_append` were non-empty, confirm every entry was executed in order before proceeding. Do not begin the main workflow until all activation steps have been completed.
|
||||||
|
|
||||||
## Execution
|
## Execution
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -65,7 +65,7 @@ Greet `{user_name}`, speaking in `{communication_language}`.
|
||||||
|
|
||||||
Execute each entry in `{workflow.activation_steps_append}` in order.
|
Execute each entry in `{workflow.activation_steps_append}` in order.
|
||||||
|
|
||||||
Activation is complete. Begin the workflow below.
|
Activation is complete. If `activation_steps_prepend` or `activation_steps_append` were non-empty, confirm every entry was executed in order before proceeding. Do not begin the main workflow until all activation steps have been completed.
|
||||||
|
|
||||||
## Paths
|
## Paths
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -63,6 +63,8 @@ Continue to prefix your messages with `{agent.icon}` throughout the session so t
|
||||||
|
|
||||||
Execute each entry in `{agent.activation_steps_append}` in order.
|
Execute each entry in `{agent.activation_steps_append}` in order.
|
||||||
|
|
||||||
|
Activation is complete. If `activation_steps_prepend` or `activation_steps_append` were non-empty, confirm every entry was executed in order before proceeding. Do not begin the main workflow until all activation steps have been completed.
|
||||||
|
|
||||||
### Step 8: Dispatch or Present the Menu
|
### Step 8: Dispatch or Present the Menu
|
||||||
|
|
||||||
If the user's initial message already names an intent that clearly maps to a menu item (e.g. "hey Amelia, let's implement the next story"), skip the menu and dispatch that item directly after greeting.
|
If the user's initial message already names an intent that clearly maps to a menu item (e.g. "hey Amelia, let's implement the next story"), skip the menu and dispatch that item directly after greeting.
|
||||||
|
|
|
||||||
|
|
@ -55,7 +55,7 @@ Greet the user, speaking in `{communication_language}`.
|
||||||
|
|
||||||
Execute each entry in `{workflow.activation_steps_append}` in order.
|
Execute each entry in `{workflow.activation_steps_append}` in order.
|
||||||
|
|
||||||
Activation is complete. Begin the workflow below.
|
Activation is complete. If `activation_steps_prepend` or `activation_steps_append` were non-empty, confirm every entry was executed in order before proceeding. Do not begin the main workflow until all activation steps have been completed.
|
||||||
|
|
||||||
## Global Step Rules (apply to every step)
|
## Global Step Rules (apply to every step)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -58,7 +58,7 @@ Greet `{user_name}`, speaking in `{communication_language}`.
|
||||||
|
|
||||||
Execute each entry in `{workflow.activation_steps_append}` in order.
|
Execute each entry in `{workflow.activation_steps_append}` in order.
|
||||||
|
|
||||||
Activation is complete. Begin the workflow below.
|
Activation is complete. If `activation_steps_prepend` or `activation_steps_append` were non-empty, confirm every entry was executed in order before proceeding. Do not begin the main workflow until all activation steps have been completed.
|
||||||
|
|
||||||
## WORKFLOW ARCHITECTURE
|
## WORKFLOW ARCHITECTURE
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -62,7 +62,7 @@ Greet `{user_name}`, speaking in `{communication_language}`.
|
||||||
|
|
||||||
Execute each entry in `{workflow.activation_steps_append}` in order.
|
Execute each entry in `{workflow.activation_steps_append}` in order.
|
||||||
|
|
||||||
Activation is complete. Begin the workflow below.
|
Activation is complete. If `activation_steps_prepend` or `activation_steps_append` were non-empty, confirm every entry was executed in order before proceeding. Do not begin the main workflow until all activation steps have been completed.
|
||||||
|
|
||||||
## Paths
|
## Paths
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -63,7 +63,7 @@ Greet `{user_name}`, speaking in `{communication_language}`.
|
||||||
|
|
||||||
Execute each entry in `{workflow.activation_steps_append}` in order.
|
Execute each entry in `{workflow.activation_steps_append}` in order.
|
||||||
|
|
||||||
Activation is complete. Begin the workflow below.
|
Activation is complete. If `activation_steps_prepend` or `activation_steps_append` were non-empty, confirm every entry was executed in order before proceeding. Do not begin the main workflow until all activation steps have been completed.
|
||||||
|
|
||||||
## Paths
|
## Paths
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -64,7 +64,7 @@ Greet `{user_name}`, speaking in `{communication_language}`.
|
||||||
|
|
||||||
Execute each entry in `{workflow.activation_steps_append}` in order.
|
Execute each entry in `{workflow.activation_steps_append}` in order.
|
||||||
|
|
||||||
Activation is complete. Begin the workflow below.
|
Activation is complete. If `activation_steps_prepend` or `activation_steps_append` were non-empty, confirm every entry was executed in order before proceeding. Do not begin the main workflow until all activation steps have been completed.
|
||||||
|
|
||||||
## Paths
|
## Paths
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -79,6 +79,8 @@ Greet `{user_name}` in `{communication_language}`.
|
||||||
|
|
||||||
Run each entry in `{workflow.activation_steps_append}` in order.
|
Run each entry in `{workflow.activation_steps_append}` in order.
|
||||||
|
|
||||||
|
Activation is complete. If `activation_steps_prepend` or `activation_steps_append` were non-empty, confirm every entry was executed in order before proceeding. Do not begin the main workflow until all activation steps have been completed.
|
||||||
|
|
||||||
### Step 7: Acknowledge and route
|
### Step 7: Acknowledge and route
|
||||||
|
|
||||||
Acknowledge the input as a reference (record paths and IDs; don't read raw content). Path to an existing case file →
|
Acknowledge the input as a reference (record paths and IDs; don't read raw content). Path to an existing case file →
|
||||||
|
|
|
||||||
|
|
@ -56,7 +56,7 @@ Greet `{user_name}`, speaking in `{communication_language}`.
|
||||||
|
|
||||||
Execute each entry in `{workflow.activation_steps_append}` in order.
|
Execute each entry in `{workflow.activation_steps_append}` in order.
|
||||||
|
|
||||||
Activation is complete. Begin the workflow below.
|
Activation is complete. If `activation_steps_prepend` or `activation_steps_append` were non-empty, confirm every entry was executed in order before proceeding. Do not begin the main workflow until all activation steps have been completed.
|
||||||
|
|
||||||
## Paths
|
## Paths
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -79,7 +79,7 @@ Greet `{user_name}`, speaking in `{communication_language}`.
|
||||||
|
|
||||||
Execute each entry in `{workflow.activation_steps_append}` in order.
|
Execute each entry in `{workflow.activation_steps_append}` in order.
|
||||||
|
|
||||||
Activation is complete. Begin the workflow below.
|
Activation is complete. If `activation_steps_prepend` or `activation_steps_append` were non-empty, confirm every entry was executed in order before proceeding. Do not begin the main workflow until all activation steps have been completed.
|
||||||
|
|
||||||
## WORKFLOW ARCHITECTURE
|
## WORKFLOW ARCHITECTURE
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -73,7 +73,7 @@ Greet `{user_name}`, speaking in `{communication_language}`.
|
||||||
|
|
||||||
Execute each entry in `{workflow.activation_steps_append}` in order.
|
Execute each entry in `{workflow.activation_steps_append}` in order.
|
||||||
|
|
||||||
Activation is complete. Begin the workflow below.
|
Activation is complete. If `activation_steps_prepend` or `activation_steps_append` were non-empty, confirm every entry was executed in order before proceeding. Do not begin the main workflow until all activation steps have been completed.
|
||||||
|
|
||||||
## Paths
|
## Paths
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -59,7 +59,7 @@ Greet `{user_name}`, speaking in `{communication_language}`.
|
||||||
|
|
||||||
Execute each entry in `{workflow.activation_steps_append}` in order.
|
Execute each entry in `{workflow.activation_steps_append}` in order.
|
||||||
|
|
||||||
Activation is complete. Begin the workflow below.
|
Activation is complete. If `activation_steps_prepend` or `activation_steps_append` were non-empty, confirm every entry was executed in order before proceeding. Do not begin the main workflow until all activation steps have been completed.
|
||||||
|
|
||||||
## Paths
|
## Paths
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -57,7 +57,7 @@ Greet `{user_name}`, speaking in `{communication_language}`.
|
||||||
|
|
||||||
Execute each entry in `{workflow.activation_steps_append}` in order.
|
Execute each entry in `{workflow.activation_steps_append}` in order.
|
||||||
|
|
||||||
Activation is complete. Begin the workflow below.
|
Activation is complete. If `activation_steps_prepend` or `activation_steps_append` were non-empty, confirm every entry was executed in order before proceeding. Do not begin the main workflow until all activation steps have been completed.
|
||||||
|
|
||||||
## Paths
|
## Paths
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,10 @@ Multiple skills may call to update the same spec over time.
|
||||||
2. Run `{workflow.activation_steps_prepend}`. Treat `{workflow.persistent_facts}` as foundational context (`file:` entries are loaded).
|
2. Run `{workflow.activation_steps_prepend}`. Treat `{workflow.persistent_facts}` as foundational context (`file:` entries are loaded).
|
||||||
3. Load `{project-root}/_bmad/core/config.yaml` (and `config.user.yaml` if present), root level and `bmm` section. Resolve `{user_name}`, `{communication_language}`, `{document_output_language}`, `{planning_artifacts}`, `{project_name}`, `{date}`.
|
3. Load `{project-root}/_bmad/core/config.yaml` (and `config.user.yaml` if present), root level and `bmm` section. Resolve `{user_name}`, `{communication_language}`, `{document_output_language}`, `{planning_artifacts}`, `{project_name}`, `{date}`.
|
||||||
4. Detect mode. **Headless** when any of: no TTY, programmatic caller (another skill or non-interactive runner), or the first message pre-supplies all inputs and asks for an artifact path back. **Interactive** otherwise. In interactive mode, greet by `{user_name}` in `{communication_language}`, stay in that language, and mention that `bmad-party-mode` and `bmad-advanced-elicitation` are available for deeper exploration on any field.
|
4. Detect mode. **Headless** when any of: no TTY, programmatic caller (another skill or non-interactive runner), or the first message pre-supplies all inputs and asks for an artifact path back. **Interactive** otherwise. In interactive mode, greet by `{user_name}` in `{communication_language}`, stay in that language, and mention that `bmad-party-mode` and `bmad-advanced-elicitation` are available for deeper exploration on any field.
|
||||||
5. Run `{workflow.activation_steps_append}`.
|
|
||||||
|
Run `{workflow.activation_steps_append}`.
|
||||||
|
|
||||||
|
Activation is complete. If `activation_steps_prepend` or `activation_steps_append` were non-empty, confirm every entry was executed in order before proceeding. Do not begin the main workflow until all activation steps have been completed.
|
||||||
|
|
||||||
## Workspace
|
## Workspace
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue