feat(bmm): add deprecation shims for retired PRD skills
Re-adds bmad-create-prd, bmad-edit-prd, bmad-validate-prd as thin
compatibility shims so existing invocations by name and
_bmad/custom/bmad-{create,edit,validate}-prd.toml override files keep
working post-consolidation. Each shim contains only SKILL.md and
customize.toml — no steps, data, or templates.
On activation, each shim:
1. Resolves customization via resolve_customization.py, picking up any
legacy override files for the four legacy fields (activation_steps_*,
persistent_facts, on_complete).
2. Emits a one-time deprecation notice in {communication_language},
pointing at bmad-prd and the migration path for override files.
3. Invokes bmad-prd with the appropriate intent (create / update /
validate), passes through the resolved legacy customization with
instruction to use these values instead of re-resolving from
bmad-prd's own customize.toml, and forwards the original user input
verbatim.
bmad-prd continues to read its own customize.toml + bmad-prd.toml
overrides for the new-only fields (prd_template, validation_checklist,
doc_standards, output_dir, output_folder_name, external_sources,
external_handoffs, validation_report_template). Users wanting those
fields must migrate to invoking bmad-prd directly.
This commit is contained in:
parent
51a93daba1
commit
00f42947da
|
|
@ -0,0 +1,30 @@
|
||||||
|
---
|
||||||
|
name: bmad-create-prd
|
||||||
|
description: 'DEPRECATED — consolidated into bmad-prd. Forwards to bmad-prd with create intent. Use when the user invokes bmad-create-prd by name, has a {project-root}/_bmad/custom/bmad-create-prd.toml override file, or asks for the legacy PRD-create workflow specifically.'
|
||||||
|
---
|
||||||
|
|
||||||
|
# DEPRECATED — forwards to bmad-prd (create intent)
|
||||||
|
|
||||||
|
This skill was consolidated into `bmad-prd`. It is retained as a thin compatibility shim so existing invocations by name and `_bmad/custom/bmad-create-prd.toml` override files keep working. New work should invoke `bmad-prd` directly — it detects create / update / validate intent from the conversation.
|
||||||
|
|
||||||
|
## On Activation
|
||||||
|
|
||||||
|
1. Resolve customization: `python3 {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow`. This picks up any `{project-root}/_bmad/custom/bmad-create-prd.toml` and `bmad-create-prd.user.toml` overrides for the legacy fields (`activation_steps_prepend`, `activation_steps_append`, `persistent_facts`, `on_complete`). On failure, surface the diagnostic and halt.
|
||||||
|
|
||||||
|
2. Load `{project-root}/_bmad/bmm/config.yaml` (and `config.user.yaml` if present) to resolve `{user_name}` and `{communication_language}`.
|
||||||
|
|
||||||
|
3. Emit a deprecation notice to the user in `{communication_language}`:
|
||||||
|
|
||||||
|
> Notice: `bmad-create-prd` is deprecated and will be removed in a future release. It now forwards to `bmad-prd` with create intent. To silence this notice and access the full new customization surface (`prd_template`, `validation_checklist`, `doc_standards`, `external_sources`, `external_handoffs`, `output_dir`, `output_folder_name`), migrate `_bmad/custom/bmad-create-prd.toml` to `_bmad/custom/bmad-prd.toml` and invoke `bmad-prd` directly next time.
|
||||||
|
|
||||||
|
4. Invoke `bmad-prd` with the following context. Pass these as the activating context so `bmad-prd` honors them instead of resolving its own customization from scratch:
|
||||||
|
|
||||||
|
- **Intent:** `create` — skip `bmad-prd`'s usual intent detection step.
|
||||||
|
- **Pre-resolved legacy customization** — use these in place of resolving from `bmad-prd`'s own `customize.toml` for the four legacy fields. For everything else (`prd_template`, `validation_checklist`, `validation_report_template`, `doc_standards`, `output_dir`, `output_folder_name`, `external_sources`, `external_handoffs`), use `bmad-prd`'s own defaults and overrides as normal:
|
||||||
|
- `activation_steps_prepend` = the resolved value from step 1
|
||||||
|
- `activation_steps_append` = the resolved value from step 1
|
||||||
|
- `persistent_facts` = the resolved value from step 1
|
||||||
|
- `on_complete` = the resolved value from step 1
|
||||||
|
- **Original user input:** forward whatever the user said when invoking this skill verbatim.
|
||||||
|
|
||||||
|
`bmad-prd` takes the workflow from here. Do not execute any further steps in this shim.
|
||||||
|
|
@ -0,0 +1,41 @@
|
||||||
|
# DO NOT EDIT -- overwritten on every update.
|
||||||
|
#
|
||||||
|
# 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 = ""
|
||||||
|
|
@ -0,0 +1,30 @@
|
||||||
|
---
|
||||||
|
name: bmad-edit-prd
|
||||||
|
description: 'DEPRECATED — consolidated into bmad-prd. Forwards to bmad-prd with update intent. Use when the user invokes bmad-edit-prd by name, has a {project-root}/_bmad/custom/bmad-edit-prd.toml override file, or asks for the legacy PRD-edit workflow specifically.'
|
||||||
|
---
|
||||||
|
|
||||||
|
# DEPRECATED — forwards to bmad-prd (update intent)
|
||||||
|
|
||||||
|
This skill was consolidated into `bmad-prd`. It is retained as a thin compatibility shim so existing invocations by name and `_bmad/custom/bmad-edit-prd.toml` override files keep working. New work should invoke `bmad-prd` directly — it detects create / update / validate intent from the conversation.
|
||||||
|
|
||||||
|
## On Activation
|
||||||
|
|
||||||
|
1. Resolve customization: `python3 {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow`. This picks up any `{project-root}/_bmad/custom/bmad-edit-prd.toml` and `bmad-edit-prd.user.toml` overrides for the legacy fields (`activation_steps_prepend`, `activation_steps_append`, `persistent_facts`, `on_complete`). On failure, surface the diagnostic and halt.
|
||||||
|
|
||||||
|
2. Load `{project-root}/_bmad/bmm/config.yaml` (and `config.user.yaml` if present) to resolve `{user_name}` and `{communication_language}`.
|
||||||
|
|
||||||
|
3. Emit a deprecation notice to the user in `{communication_language}`:
|
||||||
|
|
||||||
|
> Notice: `bmad-edit-prd` is deprecated and will be removed in a future release. It now forwards to `bmad-prd` with update intent. To silence this notice and access the full new customization surface (`prd_template`, `validation_checklist`, `doc_standards`, `external_sources`, `external_handoffs`, `output_dir`, `output_folder_name`), migrate `_bmad/custom/bmad-edit-prd.toml` to `_bmad/custom/bmad-prd.toml` and invoke `bmad-prd` directly next time.
|
||||||
|
|
||||||
|
4. Invoke `bmad-prd` with the following context. Pass these as the activating context so `bmad-prd` honors them instead of resolving its own customization from scratch:
|
||||||
|
|
||||||
|
- **Intent:** `update` — skip `bmad-prd`'s usual intent detection step.
|
||||||
|
- **Pre-resolved legacy customization** — use these in place of resolving from `bmad-prd`'s own `customize.toml` for the four legacy fields. For everything else (`prd_template`, `validation_checklist`, `validation_report_template`, `doc_standards`, `output_dir`, `output_folder_name`, `external_sources`, `external_handoffs`), use `bmad-prd`'s own defaults and overrides as normal:
|
||||||
|
- `activation_steps_prepend` = the resolved value from step 1
|
||||||
|
- `activation_steps_append` = the resolved value from step 1
|
||||||
|
- `persistent_facts` = the resolved value from step 1
|
||||||
|
- `on_complete` = the resolved value from step 1
|
||||||
|
- **Original user input:** forward whatever the user said when invoking this skill verbatim (the target PRD path, the change signal, etc.).
|
||||||
|
|
||||||
|
`bmad-prd` takes the workflow from here. Do not execute any further steps in this shim.
|
||||||
|
|
@ -0,0 +1,42 @@
|
||||||
|
# DO NOT EDIT -- overwritten on every update.
|
||||||
|
#
|
||||||
|
# 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 = ""
|
||||||
|
|
@ -0,0 +1,30 @@
|
||||||
|
---
|
||||||
|
name: bmad-validate-prd
|
||||||
|
description: 'DEPRECATED — consolidated into bmad-prd. Forwards to bmad-prd with validate intent. Use when the user invokes bmad-validate-prd by name, has a {project-root}/_bmad/custom/bmad-validate-prd.toml override file, or asks for the legacy PRD-validate workflow specifically.'
|
||||||
|
---
|
||||||
|
|
||||||
|
# DEPRECATED — forwards to bmad-prd (validate intent)
|
||||||
|
|
||||||
|
This skill was consolidated into `bmad-prd`. It is retained as a thin compatibility shim so existing invocations by name and `_bmad/custom/bmad-validate-prd.toml` override files keep working. New work should invoke `bmad-prd` directly — it detects create / update / validate intent from the conversation.
|
||||||
|
|
||||||
|
## On Activation
|
||||||
|
|
||||||
|
1. Resolve customization: `python3 {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow`. This picks up any `{project-root}/_bmad/custom/bmad-validate-prd.toml` and `bmad-validate-prd.user.toml` overrides for the legacy fields (`activation_steps_prepend`, `activation_steps_append`, `persistent_facts`, `on_complete`). On failure, surface the diagnostic and halt.
|
||||||
|
|
||||||
|
2. Load `{project-root}/_bmad/bmm/config.yaml` (and `config.user.yaml` if present) to resolve `{user_name}` and `{communication_language}`.
|
||||||
|
|
||||||
|
3. Emit a deprecation notice to the user in `{communication_language}`:
|
||||||
|
|
||||||
|
> Notice: `bmad-validate-prd` is deprecated and will be removed in a future release. It now forwards to `bmad-prd` with validate intent. To silence this notice and access the full new customization surface (`prd_template`, `validation_checklist`, `doc_standards`, `external_sources`, `external_handoffs`, `output_dir`, `output_folder_name`), migrate `_bmad/custom/bmad-validate-prd.toml` to `_bmad/custom/bmad-prd.toml` and invoke `bmad-prd` directly next time.
|
||||||
|
|
||||||
|
4. Invoke `bmad-prd` with the following context. Pass these as the activating context so `bmad-prd` honors them instead of resolving its own customization from scratch:
|
||||||
|
|
||||||
|
- **Intent:** `validate` — skip `bmad-prd`'s usual intent detection step.
|
||||||
|
- **Pre-resolved legacy customization** — use these in place of resolving from `bmad-prd`'s own `customize.toml` for the four legacy fields. For everything else (`prd_template`, `validation_checklist`, `validation_report_template`, `doc_standards`, `output_dir`, `output_folder_name`, `external_sources`, `external_handoffs`), use `bmad-prd`'s own defaults and overrides as normal:
|
||||||
|
- `activation_steps_prepend` = the resolved value from step 1
|
||||||
|
- `activation_steps_append` = the resolved value from step 1
|
||||||
|
- `persistent_facts` = the resolved value from step 1
|
||||||
|
- `on_complete` = the resolved value from step 1
|
||||||
|
- **Original user input:** forward whatever the user said when invoking this skill verbatim (the target PRD path, etc.).
|
||||||
|
|
||||||
|
`bmad-prd` takes the workflow from here. Do not execute any further steps in this shim.
|
||||||
|
|
@ -0,0 +1,42 @@
|
||||||
|
# DO NOT EDIT -- overwritten on every update.
|
||||||
|
#
|
||||||
|
# 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 = ""
|
||||||
Loading…
Reference in New Issue