fix(skills): validation pass 2 — fix path, variable, and sequence issues across 32 files
Run skill-validator against all 36 skills on HEAD (42b1d0f6). Fixes:
- PATH-01: relative path corrections in product-brief-preview, brainstorming,
distillator, generate-project-context, edit-prd, quick-dev-new-preview
- PATH-04: remove 5 intra-skill path variables from edit-prd
- REF-01: single-curly template vars → double-curly in create-architecture,
create-epics-and-stories, create-story
- REF-02: fix dangling file refs in advanced-elicitation, validate-prd, edit-prd
- REF-03: update rule to prefer natural language `Invoke the skill` form;
fix stale persona ref in qa-generate-e2e-tests
- SEQ-01: "skip to" → "proceed to" in quick-dev-new-preview
- SEQ-02: remove time estimates from document-project, quick-spec
- SKILL-06: add "Use when" trigger to review-edge-case-hunter
- STEP numbering: renumber step n="0.5" to integer sequence in retrospective
Also updates REF-03 rule in tools/skill-validator.md to clarify that
natural language invocation is canonical — no skill: prefix required.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
42b1d0f657
commit
098c96740c
|
|
@ -84,5 +84,5 @@ Check activation context immediately:
|
||||||
|
|
||||||
## External Skills
|
## External Skills
|
||||||
|
|
||||||
This workflow uses:
|
This workflow may invoke:
|
||||||
- `bmad-init` — Configuration loading (module: bmm)
|
- `bmad-init` — Invoke for configuration loading (module: bmm)
|
||||||
|
|
|
||||||
|
|
@ -12,9 +12,9 @@ Now that you know what the brief is about, fan out subagents in parallel to gath
|
||||||
|
|
||||||
**Launch in parallel:**
|
**Launch in parallel:**
|
||||||
|
|
||||||
1. **Artifact Analyzer** (`agents/artifact-analyzer.md`) — Scans `{planning_artifacts}` and `{project_knowledge}` for relevant documents. Also scans any specific paths the user provided. Returns structured synthesis of what it found.
|
1. **Artifact Analyzer** (`../agents/artifact-analyzer.md`) — Scans `{planning_artifacts}` and `{project_knowledge}` for relevant documents. Also scans any specific paths the user provided. Returns structured synthesis of what it found.
|
||||||
|
|
||||||
2. **Web Researcher** (`agents/web-researcher.md`) — Searches for competitive landscape, market context, trends, and relevant industry data. Returns structured findings scoped to the product domain.
|
2. **Web Researcher** (`../agents/web-researcher.md`) — Searches for competitive landscape, market context, trends, and relevant industry data. Returns structured findings scoped to the product domain.
|
||||||
|
|
||||||
### Graceful Degradation
|
### Graceful Degradation
|
||||||
|
|
||||||
|
|
@ -38,20 +38,20 @@ Once subagent results return (or inline scanning completes):
|
||||||
- Highlight anything surprising or worth discussing
|
- Highlight anything surprising or worth discussing
|
||||||
- Share the gaps you've identified
|
- Share the gaps you've identified
|
||||||
- Ask: "Anything else you'd like to add, or shall we move on to filling in the details?"
|
- Ask: "Anything else you'd like to add, or shall we move on to filling in the details?"
|
||||||
- Route to `prompts/guided-elicitation.md`
|
- Route to `guided-elicitation.md`
|
||||||
|
|
||||||
**Yolo mode:**
|
**Yolo mode:**
|
||||||
- Absorb all findings silently
|
- Absorb all findings silently
|
||||||
- Skip directly to `prompts/draft-and-review.md` — you have enough to draft
|
- Skip directly to `draft-and-review.md` — you have enough to draft
|
||||||
- The user will refine later
|
- The user will refine later
|
||||||
|
|
||||||
**Headless mode:**
|
**Headless mode:**
|
||||||
- Absorb all findings
|
- Absorb all findings
|
||||||
- Skip directly to `prompts/draft-and-review.md`
|
- Skip directly to `draft-and-review.md`
|
||||||
- No interaction
|
- No interaction
|
||||||
|
|
||||||
## Stage Complete
|
## Stage Complete
|
||||||
|
|
||||||
This stage is complete when subagent results (or inline scanning fallback) have returned and findings are merged with user context. Route per mode:
|
This stage is complete when subagent results (or inline scanning fallback) have returned and findings are merged with user context. Route per mode:
|
||||||
- **Guided** → `prompts/guided-elicitation.md`
|
- **Guided** → `guided-elicitation.md`
|
||||||
- **Yolo / Headless** → `prompts/draft-and-review.md`
|
- **Yolo / Headless** → `draft-and-review.md`
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@
|
||||||
|
|
||||||
## Step 1: Draft the Executive Brief
|
## Step 1: Draft the Executive Brief
|
||||||
|
|
||||||
Use `resources/brief-template.md` as a guide — adapt structure to fit the product's story.
|
Use `../resources/brief-template.md` as a guide — adapt structure to fit the product's story.
|
||||||
|
|
||||||
**Writing principles:**
|
**Writing principles:**
|
||||||
- **Executive audience** — persuasive, clear, concise. 1-2 pages.
|
- **Executive audience** — persuasive, clear, concise. 1-2 pages.
|
||||||
|
|
@ -36,9 +36,9 @@ Before showing the draft to the user, run it through multiple review lenses in p
|
||||||
|
|
||||||
**Launch in parallel:**
|
**Launch in parallel:**
|
||||||
|
|
||||||
1. **Skeptic Reviewer** (`agents/skeptic-reviewer.md`) — "What's missing? What assumptions are untested? What could go wrong? Where is the brief vague or hand-wavy?"
|
1. **Skeptic Reviewer** (`../agents/skeptic-reviewer.md`) — "What's missing? What assumptions are untested? What could go wrong? Where is the brief vague or hand-wavy?"
|
||||||
|
|
||||||
2. **Opportunity Reviewer** (`agents/opportunity-reviewer.md`) — "What adjacent value propositions are being missed? What market angles or partnerships could strengthen this? What's underemphasized?"
|
2. **Opportunity Reviewer** (`../agents/opportunity-reviewer.md`) — "What adjacent value propositions are being missed? What market angles or partnerships could strengthen this? What's underemphasized?"
|
||||||
|
|
||||||
3. **Contextual Reviewer** — You (the main agent) pick the most useful third lens based on THIS specific product. Choose the lens that addresses the SINGLE BIGGEST RISK that the skeptic and opportunity reviewers won't naturally catch. Examples:
|
3. **Contextual Reviewer** — You (the main agent) pick the most useful third lens based on THIS specific product. Choose the lens that addresses the SINGLE BIGGEST RISK that the skeptic and opportunity reviewers won't naturally catch. Examples:
|
||||||
- For healthtech: "Regulatory and compliance risk reviewer"
|
- For healthtech: "Regulatory and compliance risk reviewer"
|
||||||
|
|
@ -65,7 +65,7 @@ After all reviews complete:
|
||||||
|
|
||||||
## Step 4: Present to User
|
## Step 4: Present to User
|
||||||
|
|
||||||
**Headless mode:** Skip to `prompts/finalize.md` — no user interaction. Save the improved draft directly.
|
**Headless mode:** Skip to `finalize.md` — no user interaction. Save the improved draft directly.
|
||||||
|
|
||||||
**Yolo and Guided modes:**
|
**Yolo and Guided modes:**
|
||||||
|
|
||||||
|
|
@ -83,4 +83,4 @@ Present reviewer findings with brief rationale, then offer: "Want me to dig into
|
||||||
|
|
||||||
## Stage Complete
|
## Stage Complete
|
||||||
|
|
||||||
This stage is complete when: (a) the draft has been reviewed by all three lenses and improvements integrated, AND either (autonomous) save and route directly, or (guided/yolo) the user is satisfied. Route to `prompts/finalize.md`.
|
This stage is complete when: (a) the draft has been reviewed by all three lenses and improvements integrated, AND either (autonomous) save and route directly, or (guided/yolo) the user is satisfied. Route to `finalize.md`.
|
||||||
|
|
|
||||||
|
|
@ -72,4 +72,4 @@ purpose: "Token-efficient context for downstream PRD creation"
|
||||||
|
|
||||||
## Stage Complete
|
## Stage Complete
|
||||||
|
|
||||||
This is the terminal stage. After delivering the completion message and file paths, the workflow is done. If the user requests further revisions, loop back to `prompts/draft-and-review.md`. Otherwise, exit.
|
This is the terminal stage. After delivering the completion message and file paths, the workflow is done. If the user requests further revisions, loop back to `draft-and-review.md`. Otherwise, exit.
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
**Goal:** Fill the gaps in what you know. By now you have the user's brain dump, artifact analysis, and web research. This stage is about smart, targeted questioning — not rote section-by-section interrogation.
|
**Goal:** Fill the gaps in what you know. By now you have the user's brain dump, artifact analysis, and web research. This stage is about smart, targeted questioning — not rote section-by-section interrogation.
|
||||||
|
|
||||||
**Skip this stage entirely in Yolo and Autonomous modes** — go directly to `prompts/draft-and-review.md`.
|
**Skip this stage entirely in Yolo and Autonomous modes** — go directly to `draft-and-review.md`.
|
||||||
|
|
||||||
## Approach
|
## Approach
|
||||||
|
|
||||||
|
|
@ -67,4 +67,4 @@ If the user is providing complete, confident answers and you have solid coverage
|
||||||
|
|
||||||
## Stage Complete
|
## Stage Complete
|
||||||
|
|
||||||
This stage is complete when sufficient substance exists to draft a compelling brief and the user confirms readiness. Route to `prompts/draft-and-review.md`.
|
This stage is complete when sufficient substance exists to draft a compelling brief and the user confirms readiness. Route to `draft-and-review.md`.
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,6 @@ name: 'step-e-01-discovery'
|
||||||
description: 'Discovery & Understanding - Understand what user wants to edit and detect PRD format'
|
description: 'Discovery & Understanding - Understand what user wants to edit and detect PRD format'
|
||||||
|
|
||||||
# File references (ONLY variables used in this step)
|
# File references (ONLY variables used in this step)
|
||||||
altStepFile: './step-e-01b-legacy-conversion.md'
|
|
||||||
prdPurpose: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/data/prd-purpose.md'
|
prdPurpose: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/data/prd-purpose.md'
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
@ -188,7 +187,7 @@ Display: "**Edit Requirements Understood**
|
||||||
|
|
||||||
**Proceeding to deep review and analysis...**"
|
**Proceeding to deep review and analysis...**"
|
||||||
|
|
||||||
Read fully and follow: next step (step-e-02-review.md)
|
Read fully and follow: [step-e-02-review.md](step-e-02-review.md)
|
||||||
|
|
||||||
**IF PRD is Legacy (Non-Standard) AND no validation report:**
|
**IF PRD is Legacy (Non-Standard) AND no validation report:**
|
||||||
|
|
||||||
|
|
@ -215,7 +214,7 @@ Present MENU OPTIONS below for user selection
|
||||||
|
|
||||||
#### Menu Handling Logic:
|
#### Menu Handling Logic:
|
||||||
|
|
||||||
- IF C (Convert): Read fully and follow: {altStepFile} (step-e-01b-legacy-conversion.md)
|
- IF C (Convert): Read fully and follow: [step-e-01b-legacy-conversion.md](step-e-01b-legacy-conversion.md)
|
||||||
- IF E (Edit As-Is): Display "Proceeding with edits..." then load next step
|
- IF E (Edit As-Is): Display "Proceeding with edits..." then load next step
|
||||||
- IF X (Exit): Display summary and exit
|
- IF X (Exit): Display summary and exit
|
||||||
- IF Any other: help user, then redisplay menu
|
- IF Any other: help user, then redisplay menu
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,6 @@ name: 'step-e-01b-legacy-conversion'
|
||||||
description: 'Legacy PRD Conversion Assessment - Analyze legacy PRD and propose conversion strategy'
|
description: 'Legacy PRD Conversion Assessment - Analyze legacy PRD and propose conversion strategy'
|
||||||
|
|
||||||
# File references (ONLY variables used in this step)
|
# File references (ONLY variables used in this step)
|
||||||
nextStepFile: './step-e-02-review.md'
|
|
||||||
prdFile: '{prd_file_path}'
|
prdFile: '{prd_file_path}'
|
||||||
prdPurpose: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/data/prd-purpose.md'
|
prdPurpose: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/data/prd-purpose.md'
|
||||||
---
|
---
|
||||||
|
|
@ -182,7 +181,7 @@ Edit goals: {summary}
|
||||||
|
|
||||||
**Proceeding to deep review...**"
|
**Proceeding to deep review...**"
|
||||||
|
|
||||||
Read fully and follow: {nextStepFile} (step-e-02-review.md)
|
Read fully and follow: [step-e-02-review.md](step-e-02-review.md)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,6 @@ name: 'step-e-02-review'
|
||||||
description: 'Deep Review & Analysis - Thoroughly review existing PRD and prepare detailed change plan'
|
description: 'Deep Review & Analysis - Thoroughly review existing PRD and prepare detailed change plan'
|
||||||
|
|
||||||
# File references (ONLY variables used in this step)
|
# File references (ONLY variables used in this step)
|
||||||
nextStepFile: './step-e-03-edit.md'
|
|
||||||
prdFile: '{prd_file_path}'
|
prdFile: '{prd_file_path}'
|
||||||
validationReport: '{validation_report_path}' # If provided
|
validationReport: '{validation_report_path}' # If provided
|
||||||
prdPurpose: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/data/prd-purpose.md'
|
prdPurpose: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/data/prd-purpose.md'
|
||||||
|
|
@ -204,7 +203,7 @@ Display: "**Change Plan Approved**
|
||||||
|
|
||||||
**Proceeding to edit step...**"
|
**Proceeding to edit step...**"
|
||||||
|
|
||||||
Read fully and follow: {nextStepFile} (step-e-03-edit.md)
|
Read fully and follow: [step-e-03-edit.md](step-e-03-edit.md)
|
||||||
|
|
||||||
### 7. Present MENU OPTIONS (If User Wants Discussion)
|
### 7. Present MENU OPTIONS (If User Wants Discussion)
|
||||||
|
|
||||||
|
|
@ -221,7 +220,7 @@ Read fully and follow: {nextStepFile} (step-e-03-edit.md)
|
||||||
|
|
||||||
- IF A: Invoke the `bmad-advanced-elicitation` skill, then return to discussion
|
- IF A: Invoke the `bmad-advanced-elicitation` skill, then return to discussion
|
||||||
- IF P: Invoke the `bmad-party-mode` skill, then return to discussion
|
- IF P: Invoke the `bmad-party-mode` skill, then return to discussion
|
||||||
- IF C: Document approval, then load {nextStepFile}
|
- IF C: Document approval, then load [step-e-03-edit.md](step-e-03-edit.md)
|
||||||
- IF Any other: discuss, then redisplay menu
|
- IF Any other: discuss, then redisplay menu
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,6 @@ name: 'step-e-03-edit'
|
||||||
description: 'Edit & Update - Apply changes to PRD following approved change plan'
|
description: 'Edit & Update - Apply changes to PRD following approved change plan'
|
||||||
|
|
||||||
# File references (ONLY variables used in this step)
|
# File references (ONLY variables used in this step)
|
||||||
nextStepFile: './step-e-04-complete.md'
|
|
||||||
prdFile: '{prd_file_path}'
|
prdFile: '{prd_file_path}'
|
||||||
prdPurpose: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/data/prd-purpose.md'
|
prdPurpose: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/data/prd-purpose.md'
|
||||||
---
|
---
|
||||||
|
|
@ -211,10 +210,8 @@ Display:
|
||||||
|
|
||||||
### 8. Present MENU OPTIONS
|
### 8. Present MENU OPTIONS
|
||||||
|
|
||||||
**[V] Run Validation** - Execute full validation workflow (steps-v/step-v-01-discovery.md)
|
**[C] Continue** - Proceed to completion and next steps
|
||||||
**[S] Summary Only** - End with summary of changes (no validation)
|
|
||||||
**[A] Adjust** - Make additional edits
|
**[A] Adjust** - Make additional edits
|
||||||
**[X] Exit** - Exit edit workflow
|
|
||||||
|
|
||||||
#### EXECUTION RULES:
|
#### EXECUTION RULES:
|
||||||
|
|
||||||
|
|
@ -223,10 +220,8 @@ Display:
|
||||||
|
|
||||||
#### Menu Handling Logic:
|
#### Menu Handling Logic:
|
||||||
|
|
||||||
- IF V (Validate): Display "Starting validation workflow..." then read fully and follow: steps-v/step-v-01-discovery.md
|
- IF C (Continue): Read fully and follow: [step-e-04-complete.md](step-e-04-complete.md)
|
||||||
- IF S (Summary): Present edit summary and exit
|
|
||||||
- IF A (Adjust): Accept additional requirements, loop back to editing
|
- IF A (Adjust): Accept additional requirements, loop back to editing
|
||||||
- IF X (Exit): Display summary and exit
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
@ -239,8 +234,7 @@ Display:
|
||||||
- Restructuring completed (if needed)
|
- Restructuring completed (if needed)
|
||||||
- Frontmatter updated accurately
|
- Frontmatter updated accurately
|
||||||
- Final verification confirms changes
|
- Final verification confirms changes
|
||||||
- User can proceed to validation or exit with summary
|
- User can proceed to completion step or adjust edits
|
||||||
- Option to run validation seamlessly integrates edit and validate modes
|
|
||||||
|
|
||||||
### ❌ SYSTEM FAILURE:
|
### ❌ SYSTEM FAILURE:
|
||||||
|
|
||||||
|
|
@ -251,4 +245,4 @@ Display:
|
||||||
- No final verification
|
- No final verification
|
||||||
- Not saving updated PRD
|
- Not saving updated PRD
|
||||||
|
|
||||||
**Master Rule:** Execute the plan exactly as approved. PRD is now ready for validation or downstream use. Validation integration ensures quality.
|
**Master Rule:** Execute the plan exactly as approved. PRD is now ready for validation or downstream use.
|
||||||
|
|
|
||||||
|
|
@ -127,7 +127,7 @@ Display:
|
||||||
- Display: "**Additional Edits**"
|
- Display: "**Additional Edits**"
|
||||||
- Ask: "What additional edits would you like to make?"
|
- Ask: "What additional edits would you like to make?"
|
||||||
- Accept input, then display: "**Returning to edit step...**"
|
- Accept input, then display: "**Returning to edit step...**"
|
||||||
- Read fully and follow: step-e-03-edit.md again
|
- Read fully and follow: [step-e-03-edit.md](step-e-03-edit.md) again
|
||||||
|
|
||||||
- **IF S (Summary):**
|
- **IF S (Summary):**
|
||||||
- Display detailed summary including:
|
- Display detailed summary including:
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
---
|
---
|
||||||
main_config: '{project-root}/_bmad/bmm/config.yaml'
|
main_config: '{project-root}/_bmad/bmm/config.yaml'
|
||||||
editWorkflow: './steps-e/step-e-01-discovery.md'
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# PRD Edit Workflow
|
# PRD Edit Workflow
|
||||||
|
|
@ -61,4 +60,4 @@ Load and read full config from {main_config} and resolve:
|
||||||
|
|
||||||
Prompt for PRD path: "Which PRD would you like to edit? Please provide the path to the PRD.md file."
|
Prompt for PRD path: "Which PRD would you like to edit? Please provide the path to the PRD.md file."
|
||||||
|
|
||||||
Then read fully and follow: `{editWorkflow}` (steps-e/step-e-01-discovery.md)
|
Then read fully and follow: [steps-e/step-e-01-discovery.md](steps-e/step-e-01-discovery.md)
|
||||||
|
|
|
||||||
|
|
@ -180,9 +180,9 @@ Display:
|
||||||
- After review, return to menu
|
- After review, return to menu
|
||||||
|
|
||||||
- **IF E (Use Edit Workflow):**
|
- **IF E (Use Edit Workflow):**
|
||||||
- Explain: "The Edit workflow (steps-e/) can use this validation report to systematically address issues. Edit mode will guide you through discovering what to edit, reviewing the PRD, and applying targeted improvements."
|
- Explain: "The Edit workflow can use this validation report to systematically address issues. Edit mode will guide you through discovering what to edit, reviewing the PRD, and applying targeted improvements."
|
||||||
- Offer: "Would you like to launch Edit mode now? It will help you fix validation findings systematically."
|
- Offer: "Would you like to launch Edit mode now? It will help you fix validation findings systematically."
|
||||||
- If yes: Read fully and follow: steps-e/step-e-01-discovery.md
|
- If yes: Invoke the `bmad-edit-prd` skill, passing the validation report path as context
|
||||||
- If no: Return to menu
|
- If no: Return to menu
|
||||||
|
|
||||||
- **IF F (Fix Simpler Items):**
|
- **IF F (Fix Simpler Items):**
|
||||||
|
|
|
||||||
|
|
@ -112,13 +112,13 @@ Report what was found:
|
||||||
|
|
||||||
**Documents Found:**
|
**Documents Found:**
|
||||||
|
|
||||||
- PRD: {number of PRD files loaded or "None found - REQUIRED"}
|
- PRD: {{number_of_prd_files_loaded_or_none}}
|
||||||
- UX Design: {number of UX files loaded or "None found"}
|
- UX Design: {{number_of_ux_files_loaded_or_none}}
|
||||||
- Research: {number of research files loaded or "None found"}
|
- Research: {{number_of_research_files_loaded_or_none}}
|
||||||
- Project docs: {number of project files loaded or "None found"}
|
- Project docs: {{number_of_project_files_loaded_or_none}}
|
||||||
- Project context: {project_context_rules count of rules for AI agents found}
|
- Project context: {{project_context_rules_count}}
|
||||||
|
|
||||||
**Files loaded:** {list of specific file names or "No additional documents found"}
|
**Files loaded:** {{list_of_loaded_file_names}}
|
||||||
|
|
||||||
Ready to begin architectural decision making. Do you have any other documents you'd like me to include?
|
Ready to begin architectural decision making. Do you have any other documents you'd like me to include?
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -64,13 +64,13 @@ Show the user their current progress:
|
||||||
- Input documents loaded: {{number of inputDocuments}} files
|
- Input documents loaded: {{number of inputDocuments}} files
|
||||||
|
|
||||||
**Document Sections Found:**
|
**Document Sections Found:**
|
||||||
{list all H2/H3 sections found in the document}
|
{{list_of_h2_h3_sections_found_in_document}}
|
||||||
|
|
||||||
{if_incomplete_sections}
|
{{if_incomplete_sections}}
|
||||||
**Incomplete Areas:**
|
**Incomplete Areas:**
|
||||||
|
|
||||||
- {areas that appear incomplete or have placeholders}
|
- {{areas_that_appear_incomplete_or_have_placeholders}}
|
||||||
{/if_incomplete_sections}
|
{{/if_incomplete_sections}}
|
||||||
|
|
||||||
**What would you like to do?**
|
**What would you like to do?**
|
||||||
[R] Resume from where we left off
|
[R] Resume from where we left off
|
||||||
|
|
|
||||||
|
|
@ -96,15 +96,15 @@ Present your analysis back to user for validation:
|
||||||
|
|
||||||
"I'm reviewing your project documentation for {{project_name}}.
|
"I'm reviewing your project documentation for {{project_name}}.
|
||||||
|
|
||||||
{if_epics_loaded}I see {{epic_count}} epics with {{story_count}} total stories.{/if_epics_loaded}
|
{{if_epics_loaded}}I see {{epic_count}} epics with {{story_count}} total stories.{{/if_epics_loaded}}
|
||||||
{if_no_epics}I found {{fr_count}} functional requirements organized into {{fr_category_list}}.{/if_no_epics}
|
{{if_no_epics}}I found {{fr_count}} functional requirements organized into {{fr_category_list}}.{{/if_no_epics}}
|
||||||
{if_ux_loaded}I also found your UX specification which defines the user experience requirements.{/if_ux_loaded}
|
{{if_ux_loaded}}I also found your UX specification which defines the user experience requirements.{{/if_ux_loaded}}
|
||||||
|
|
||||||
**Key architectural aspects I notice:**
|
**Key architectural aspects I notice:**
|
||||||
|
|
||||||
- [Summarize core functionality from FRs]
|
- [Summarize core functionality from FRs]
|
||||||
- [Note critical NFRs that will shape architecture]
|
- [Note critical NFRs that will shape architecture]
|
||||||
- {if_ux_loaded}[Note UX complexity and technical requirements]{/if_ux_loaded}
|
- {{if_ux_loaded}}[Note UX complexity and technical requirements]{{/if_ux_loaded}}
|
||||||
- [Identify unique technical challenges or constraints]
|
- [Identify unique technical challenges or constraints]
|
||||||
- [Highlight any regulatory or compliance requirements]
|
- [Highlight any regulatory or compliance requirements]
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -79,18 +79,18 @@ Stories must be independently completable in sequence:
|
||||||
**STORY FORMAT (from template):**
|
**STORY FORMAT (from template):**
|
||||||
|
|
||||||
```
|
```
|
||||||
### Story {N}.{M}: {story_title}
|
### Story {{N}}.{{M}}: {{story_title}}
|
||||||
|
|
||||||
As a {user_type},
|
As a {{user_type}},
|
||||||
I want {capability},
|
I want {{capability}},
|
||||||
So that {value_benefit}.
|
So that {{value_benefit}}.
|
||||||
|
|
||||||
**Acceptance Criteria:**
|
**Acceptance Criteria:**
|
||||||
|
|
||||||
**Given** {precondition}
|
**Given** {{precondition}}
|
||||||
**When** {action}
|
**When** {{action}}
|
||||||
**Then** {expected_outcome}
|
**Then** {{expected_outcome}}
|
||||||
**And** {additional_criteria}
|
**And** {{additional_criteria}}
|
||||||
```
|
```
|
||||||
|
|
||||||
**✅ GOOD STORY EXAMPLES:**
|
**✅ GOOD STORY EXAMPLES:**
|
||||||
|
|
|
||||||
|
|
@ -344,7 +344,7 @@ Load config from `{project-root}/_bmad/bmm/config.yaml` and resolve:
|
||||||
</step>
|
</step>
|
||||||
|
|
||||||
<step n="6" goal="Update sprint status and finalize">
|
<step n="6" goal="Update sprint status and finalize">
|
||||||
<action>Validate the newly created story file {story_file} against `./checklist.md` and apply any required fixes before finalizing</action>
|
<action>Validate the newly created story file {default_output_file} against `./checklist.md` and apply any required fixes before finalizing</action>
|
||||||
<action>Save story document unconditionally</action>
|
<action>Save story document unconditionally</action>
|
||||||
|
|
||||||
<!-- Update sprint status -->
|
<!-- Update sprint status -->
|
||||||
|
|
|
||||||
|
|
@ -192,12 +192,12 @@ Bob (Scrum Master): "Perfect. Epic {{epic_number}} is complete and ready for ret
|
||||||
|
|
||||||
</step>
|
</step>
|
||||||
|
|
||||||
<step n="0.5" goal="Discover and load project documents">
|
<step n="2" goal="Discover and load project documents">
|
||||||
<action>Load input files according to the Input Files table in INITIALIZATION. For SELECTIVE_LOAD inputs, load only the epic matching {{epic_number}}. For FULL_LOAD inputs, load the complete document. For INDEX_GUIDED inputs, check the index first and load relevant sections. After discovery, these content variables are available: {epics_content} (selective load for this epic), {architecture_content}, {prd_content}, {document_project_content}</action>
|
<action>Load input files according to the Input Files table in INITIALIZATION. For SELECTIVE_LOAD inputs, load only the epic matching {{epic_number}}. For FULL_LOAD inputs, load the complete document. For INDEX_GUIDED inputs, check the index first and load relevant sections. After discovery, these content variables are available: {epics_content} (selective load for this epic), {architecture_content}, {prd_content}, {document_project_content}</action>
|
||||||
<note>After discovery, these content variables are available: {epics_content} (selective load for this epic), {architecture_content}, {prd_content}, {document_project_content}</note>
|
<note>After discovery, these content variables are available: {epics_content} (selective load for this epic), {architecture_content}, {prd_content}, {document_project_content}</note>
|
||||||
</step>
|
</step>
|
||||||
|
|
||||||
<step n="2" goal="Deep Story Analysis - Extract Lessons from Implementation">
|
<step n="3" goal="Deep Story Analysis - Extract Lessons from Implementation">
|
||||||
|
|
||||||
<output>
|
<output>
|
||||||
Bob (Scrum Master): "Before we start the team discussion, let me review all the story records to surface key themes. This'll help us have a richer conversation."
|
Bob (Scrum Master): "Before we start the team discussion, let me review all the story records to surface key themes. This'll help us have a richer conversation."
|
||||||
|
|
@ -291,7 +291,7 @@ Bob (Scrum Master): "We'll get to all of it. But first, let me load the previous
|
||||||
|
|
||||||
</step>
|
</step>
|
||||||
|
|
||||||
<step n="3" goal="Load and Integrate Previous Epic Retrospective">
|
<step n="4" goal="Load and Integrate Previous Epic Retrospective">
|
||||||
|
|
||||||
<action>Calculate previous epic number: {{prev_epic_num}} = {{epic_number}} - 1</action>
|
<action>Calculate previous epic number: {{prev_epic_num}} = {{epic_number}} - 1</action>
|
||||||
|
|
||||||
|
|
@ -387,7 +387,7 @@ Charlie (Senior Dev): "First epic, first retro. Let's make it count."
|
||||||
|
|
||||||
</step>
|
</step>
|
||||||
|
|
||||||
<step n="4" goal="Preview Next Epic with Change Detection">
|
<step n="5" goal="Preview Next Epic with Change Detection">
|
||||||
|
|
||||||
<action>Calculate next epic number: {{next_epic_num}} = {{epic_number}} + 1</action>
|
<action>Calculate next epic number: {{next_epic_num}} = {{epic_number}} + 1</action>
|
||||||
|
|
||||||
|
|
@ -476,7 +476,7 @@ Bob (Scrum Master): "No problem. We'll still do a thorough retro on Epic {{epic_
|
||||||
|
|
||||||
</step>
|
</step>
|
||||||
|
|
||||||
<step n="5" goal="Initialize Retrospective with Rich Context">
|
<step n="6" goal="Initialize Retrospective with Rich Context">
|
||||||
|
|
||||||
<action>Load agent configurations from {agent_manifest}</action>
|
<action>Load agent configurations from {agent_manifest}</action>
|
||||||
<action>Identify which agents participated in Epic {{epic_number}} based on story records</action>
|
<action>Identify which agents participated in Epic {{epic_number}} based on story records</action>
|
||||||
|
|
@ -566,7 +566,7 @@ Bob (Scrum Master): "Exactly. {user_name}, any questions before we dive in?"
|
||||||
|
|
||||||
</step>
|
</step>
|
||||||
|
|
||||||
<step n="6" goal="Epic Review Discussion - What Went Well, What Didn't">
|
<step n="7" goal="Epic Review Discussion - What Went Well, What Didn't">
|
||||||
|
|
||||||
<output>
|
<output>
|
||||||
Bob (Scrum Master): "Let's start with the good stuff. What went well in Epic {{epic_number}}?"
|
Bob (Scrum Master): "Let's start with the good stuff. What went well in Epic {{epic_number}}?"
|
||||||
|
|
@ -711,13 +711,13 @@ Bob (Scrum Master): "Does that capture it? Anyone have something important we mi
|
||||||
|
|
||||||
</step>
|
</step>
|
||||||
|
|
||||||
<step n="7" goal="Next Epic Preparation Discussion - Interactive and Collaborative">
|
<step n="8" goal="Next Epic Preparation Discussion - Interactive and Collaborative">
|
||||||
|
|
||||||
<check if="{{next_epic_exists}} == false">
|
<check if="{{next_epic_exists}} == false">
|
||||||
<output>
|
<output>
|
||||||
Bob (Scrum Master): "Normally we'd discuss preparing for the next epic, but since Epic {{next_epic_num}} isn't defined yet, let's skip to action items."
|
Bob (Scrum Master): "Normally we'd discuss preparing for the next epic, but since Epic {{next_epic_num}} isn't defined yet, let's skip to action items."
|
||||||
</output>
|
</output>
|
||||||
<action>Skip to Step 8</action>
|
<action>Skip to Step 9</action>
|
||||||
</check>
|
</check>
|
||||||
|
|
||||||
<output>
|
<output>
|
||||||
|
|
@ -835,7 +835,7 @@ Bob (Scrum Master): "{user_name}, does this preparation plan work for you?"
|
||||||
|
|
||||||
</step>
|
</step>
|
||||||
|
|
||||||
<step n="8" goal="Synthesize Action Items with Significant Change Detection">
|
<step n="9" goal="Synthesize Action Items with Significant Change Detection">
|
||||||
|
|
||||||
<output>
|
<output>
|
||||||
Bob (Scrum Master): "Let's capture concrete action items from everything we've discussed."
|
Bob (Scrum Master): "Let's capture concrete action items from everything we've discussed."
|
||||||
|
|
@ -1076,7 +1076,7 @@ Bob (Scrum Master): "Everyone clear on what they own?"
|
||||||
|
|
||||||
</step>
|
</step>
|
||||||
|
|
||||||
<step n="9" goal="Critical Readiness Exploration - Interactive Deep Dive">
|
<step n="10" goal="Critical Readiness Exploration - Interactive Deep Dive">
|
||||||
|
|
||||||
<output>
|
<output>
|
||||||
Bob (Scrum Master): "Before we close, I want to do a final readiness check."
|
Bob (Scrum Master): "Before we close, I want to do a final readiness check."
|
||||||
|
|
@ -1259,7 +1259,7 @@ Charlie (Senior Dev): "Better to catch this now than three stories into the next
|
||||||
|
|
||||||
</step>
|
</step>
|
||||||
|
|
||||||
<step n="10" goal="Retrospective Closure with Celebration and Commitment">
|
<step n="11" goal="Retrospective Closure with Celebration and Commitment">
|
||||||
|
|
||||||
<output>
|
<output>
|
||||||
Bob (Scrum Master): "We've covered a lot of ground today. Let me bring this retrospective to a close."
|
Bob (Scrum Master): "We've covered a lot of ground today. Let me bring this retrospective to a close."
|
||||||
|
|
@ -1335,7 +1335,7 @@ Bob (Scrum Master): "See you all when prep work is done. Meeting adjourned!"
|
||||||
|
|
||||||
</step>
|
</step>
|
||||||
|
|
||||||
<step n="11" goal="Save Retrospective and Update Sprint Status">
|
<step n="12" goal="Save Retrospective and Update Sprint Status">
|
||||||
|
|
||||||
<action>Ensure retrospectives folder exists: {implementation_artifacts}</action>
|
<action>Ensure retrospectives folder exists: {implementation_artifacts}</action>
|
||||||
<action>Create folder if it doesn't exist</action>
|
<action>Create folder if it doesn't exist</action>
|
||||||
|
|
@ -1392,7 +1392,7 @@ Retrospective document was saved successfully, but {sprint_status_file} may need
|
||||||
|
|
||||||
</step>
|
</step>
|
||||||
|
|
||||||
<step n="12" goal="Final Summary and Handoff">
|
<step n="13" goal="Final Summary and Handoff">
|
||||||
|
|
||||||
<output>
|
<output>
|
||||||
**✅ Retrospective Complete, {user_name}!**
|
**✅ Retrospective Complete, {user_name}!**
|
||||||
|
|
|
||||||
|
|
@ -89,21 +89,21 @@ Your choice [1/2/3]:
|
||||||
<check if="workflow_mode == initial_scan OR workflow_mode == full_rescan">
|
<check if="workflow_mode == initial_scan OR workflow_mode == full_rescan">
|
||||||
<ask>Choose your scan depth level:
|
<ask>Choose your scan depth level:
|
||||||
|
|
||||||
**1. Quick Scan** (2-5 minutes) [DEFAULT]
|
**1. Quick Scan** [DEFAULT]
|
||||||
|
|
||||||
- Pattern-based analysis without reading source files
|
- Pattern-based analysis without reading source files
|
||||||
- Scans: Config files, package manifests, directory structure
|
- Scans: Config files, package manifests, directory structure
|
||||||
- Best for: Quick project overview, initial understanding
|
- Best for: Quick project overview, initial understanding
|
||||||
- File reading: Minimal (configs, README, package.json, etc.)
|
- File reading: Minimal (configs, README, package.json, etc.)
|
||||||
|
|
||||||
**2. Deep Scan** (10-30 minutes)
|
**2. Deep Scan**
|
||||||
|
|
||||||
- Reads files in critical directories based on project type
|
- Reads files in critical directories based on project type
|
||||||
- Scans: All critical paths from documentation requirements
|
- Scans: All critical paths from documentation requirements
|
||||||
- Best for: Comprehensive documentation for brownfield PRD
|
- Best for: Comprehensive documentation for brownfield PRD
|
||||||
- File reading: Selective (key files in critical directories)
|
- File reading: Selective (key files in critical directories)
|
||||||
|
|
||||||
**3. Exhaustive Scan** (30-120 minutes)
|
**3. Exhaustive Scan**
|
||||||
|
|
||||||
- Reads ALL source files in project
|
- Reads ALL source files in project
|
||||||
- Scans: Every source file (excludes node_modules, dist, build)
|
- Scans: Every source file (excludes node_modules, dist, build)
|
||||||
|
|
|
||||||
|
|
@ -123,7 +123,7 @@ Based on discovery, create or update the context document:
|
||||||
|
|
||||||
#### A. Fresh Document Setup (if no existing context)
|
#### A. Fresh Document Setup (if no existing context)
|
||||||
|
|
||||||
Copy template from `./project-context-template.md` to `{output_folder}/project-context.md`
|
Copy template from `../project-context-template.md` to `{output_folder}/project-context.md`
|
||||||
Initialize frontmatter fields.
|
Initialize frontmatter fields.
|
||||||
|
|
||||||
#### B. Existing Document Update
|
#### B. Existing Document Update
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
**Goal:** Generate automated API and E2E tests for implemented code.
|
**Goal:** Generate automated API and E2E tests for implemented code.
|
||||||
|
|
||||||
**Your Role:** You are a QA automation engineer. You generate tests ONLY — no code review or story validation (use Code Review `CR` for that).
|
**Your Role:** You are a QA automation engineer. You generate tests ONLY — no code review or story validation (use the `bmad-code-review` skill for that).
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -18,8 +18,8 @@ spec_file: '' # set at runtime before leaving this step
|
||||||
|
|
||||||
- `{wipFile}` exists? → Offer resume or archive.
|
- `{wipFile}` exists? → Offer resume or archive.
|
||||||
- Active specs (`ready-for-dev`, `in-progress`, `in-review`) in `{implementation_artifacts}`? → List them and HALT. Ask user which to resume (or `[N]` for new).
|
- Active specs (`ready-for-dev`, `in-progress`, `in-review`) in `{implementation_artifacts}`? → List them and HALT. Ask user which to resume (or `[N]` for new).
|
||||||
- If `ready-for-dev` or `in-progress` selected: Set `spec_file`, set `execution_mode = "plan-code-review"`, skip to step 3.
|
- If `ready-for-dev` or `in-progress` selected: Set `spec_file`, set `execution_mode = "plan-code-review"`, proceed to step 3.
|
||||||
- If `in-review` selected: Set `spec_file`, set `execution_mode = "plan-code-review"`, skip to step 4.
|
- If `in-review` selected: Set `spec_file`, set `execution_mode = "plan-code-review"`, proceed to step 4.
|
||||||
- Unformatted spec or intent file lacking `status` frontmatter in `{implementation_artifacts}`? → Suggest to the user to treat its contents as the starting intent for this workflow. DO NOT attempt to infer a state and resume it.
|
- Unformatted spec or intent file lacking `status` frontmatter in `{implementation_artifacts}`? → Suggest to the user to treat its contents as the starting intent for this workflow. DO NOT attempt to infer a state and resume it.
|
||||||
|
|
||||||
## INSTRUCTIONS
|
## INSTRUCTIONS
|
||||||
|
|
|
||||||
|
|
@ -26,8 +26,8 @@ Do NOT `git add` anything — this is read-only inspection.
|
||||||
|
|
||||||
**Plan-code-review:** Launch three subagents without conversation context. If no sub-agents are available, generate three review prompt files in `{implementation_artifacts}` — one per reviewer role below — and HALT. Ask the human to run each in a separate session (ideally a different LLM) and paste back the findings.
|
**Plan-code-review:** Launch three subagents without conversation context. If no sub-agents are available, generate three review prompt files in `{implementation_artifacts}` — one per reviewer role below — and HALT. Ask the human to run each in a separate session (ideally a different LLM) and paste back the findings.
|
||||||
|
|
||||||
- **Blind hunter** — receives `{diff_output}` only. No spec, no context docs, no project access. Invoke via the `bmad-review-adversarial-general` skill.
|
- **Blind hunter** — receives `{diff_output}` only. No spec, no context docs, no project access. Invoke the `bmad-review-adversarial-general` skill.
|
||||||
- **Edge case hunter** — receives `{diff_output}` and read access to the project. Invoke via the `bmad-review-edge-case-hunter` skill.
|
- **Edge case hunter** — receives `{diff_output}` and read access to the project. Invoke the `bmad-review-edge-case-hunter` skill.
|
||||||
- **Acceptance auditor** — receives `{diff_output}`, `{spec_file}`, and read access to the project. Must also read the docs listed in `{spec_file}` frontmatter `context`. Checks for violations of acceptance criteria, rules, and principles from the spec and context docs.
|
- **Acceptance auditor** — receives `{diff_output}`, `{spec_file}`, and read access to the project. Must also read the docs listed in `{spec_file}` frontmatter `context`. Checks for violations of acceptance criteria, rules, and principles from the spec and context docs.
|
||||||
|
|
||||||
### Classify
|
### Classify
|
||||||
|
|
|
||||||
|
|
@ -86,7 +86,7 @@ d) **Build mental model:**
|
||||||
- What's the likely scope based on what you found?
|
- What's the likely scope based on what you found?
|
||||||
- What questions do you NOW have, informed by the code?
|
- What questions do you NOW have, informed by the code?
|
||||||
|
|
||||||
**This scan should take < 30 seconds. Just enough to ask smart questions.**
|
**Just enough to ask smart questions.**
|
||||||
|
|
||||||
### 3. Ask Informed Questions
|
### 3. Ask Informed Questions
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
---
|
---
|
||||||
name: bmad-advanced-elicitation
|
name: bmad-advanced-elicitation
|
||||||
description: 'Push the LLM to reconsider refine and improve its recent output.'
|
description: 'Push the LLM to reconsider, refine, and improve its recent output.'
|
||||||
---
|
---
|
||||||
|
|
||||||
Follow the instructions in [workflow.md](workflow.md).
|
Follow the instructions in [workflow.md](workflow.md).
|
||||||
|
|
|
||||||
|
|
@ -96,9 +96,9 @@ x. Proceed / No Further Actions
|
||||||
**Case x (Proceed):**
|
**Case x (Proceed):**
|
||||||
|
|
||||||
- Complete elicitation and proceed
|
- Complete elicitation and proceed
|
||||||
- Return the fully enhanced content back to create-doc.md
|
- Return the fully enhanced content back to the invoking skill
|
||||||
- The enhanced content becomes the final version for that section
|
- The enhanced content becomes the final version for that section
|
||||||
- Signal completion back to create-doc.md to continue with next section
|
- Signal completion back to the invoking skill to continue with next section
|
||||||
|
|
||||||
**Case a (List All):**
|
**Case a (List All):**
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -40,7 +40,7 @@ Load techniques from CSV on-demand:
|
||||||
|
|
||||||
**Load CSV and parse:**
|
**Load CSV and parse:**
|
||||||
|
|
||||||
- Read `brain-methods.csv`
|
- Read `../brain-methods.csv`
|
||||||
- Parse: category, technique_name, description, facilitation_prompts, best_for, energy_level, typical_duration
|
- Parse: category, technique_name, description, facilitation_prompts, best_for, energy_level, typical_duration
|
||||||
- Organize by categories for browsing
|
- Organize by categories for browsing
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -47,7 +47,7 @@ Load techniques from CSV for analysis:
|
||||||
|
|
||||||
**Load CSV and parse:**
|
**Load CSV and parse:**
|
||||||
|
|
||||||
- Read `brain-methods.csv`
|
- Read `../brain-methods.csv`
|
||||||
- Parse: category, technique_name, description, facilitation_prompts, best_for, energy_level, typical_duration
|
- Parse: category, technique_name, description, facilitation_prompts, best_for, energy_level, typical_duration
|
||||||
|
|
||||||
### 2. Context Analysis for Technique Matching
|
### 2. Context Analysis for Technique Matching
|
||||||
|
|
|
||||||
|
|
@ -47,7 +47,7 @@ Create anticipation for serendipitous technique discovery:
|
||||||
|
|
||||||
**Load CSV and parse:**
|
**Load CSV and parse:**
|
||||||
|
|
||||||
- Read `brain-methods.csv`
|
- Read `../brain-methods.csv`
|
||||||
- Parse: category, technique_name, description, facilitation_prompts, best_for, energy_level, typical_duration
|
- Parse: category, technique_name, description, facilitation_prompts, best_for, energy_level, typical_duration
|
||||||
- Prepare for intelligent random selection
|
- Prepare for intelligent random selection
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -66,7 +66,7 @@ Explain the value of systematic creative progression:
|
||||||
|
|
||||||
**Load CSV and parse:**
|
**Load CSV and parse:**
|
||||||
|
|
||||||
- Read `brain-methods.csv`
|
- Read `../brain-methods.csv`
|
||||||
- Parse: category, technique_name, description, facilitation_prompts, best_for, energy_level, typical_duration
|
- Parse: category, technique_name, description, facilitation_prompts, best_for, energy_level, typical_duration
|
||||||
- Map techniques to each phase of the creative journey
|
- Map techniques to each phase of the creative journey
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ Act as an information extraction and compression specialist. Your sole purpose i
|
||||||
|
|
||||||
You receive: source document file paths, an optional downstream_consumer context, and a splitting decision.
|
You receive: source document file paths, an optional downstream_consumer context, and a splitting decision.
|
||||||
|
|
||||||
You must load and apply `resources/compression-rules.md` before producing output. Reference `resources/distillate-format-reference.md` for the expected output format.
|
You must load and apply `../resources/compression-rules.md` before producing output. Reference `../resources/distillate-format-reference.md` for the expected output format.
|
||||||
|
|
||||||
## Compression Process
|
## Compression Process
|
||||||
|
|
||||||
|
|
@ -31,7 +31,7 @@ Treat this as entity extraction — pull out every distinct piece of information
|
||||||
|
|
||||||
### Step 3: Deduplicate
|
### Step 3: Deduplicate
|
||||||
|
|
||||||
Apply the deduplication rules from `resources/compression-rules.md`.
|
Apply the deduplication rules from `../resources/compression-rules.md`.
|
||||||
|
|
||||||
### Step 4: Filter (only if downstream_consumer is specified)
|
### Step 4: Filter (only if downstream_consumer is specified)
|
||||||
|
|
||||||
|
|
@ -58,7 +58,7 @@ Common groupings (use what fits, omit what doesn't, add what's needed):
|
||||||
|
|
||||||
### Step 6: Compress Language
|
### Step 6: Compress Language
|
||||||
|
|
||||||
For each item, apply the compression rules from `resources/compression-rules.md`:
|
For each item, apply the compression rules from `../resources/compression-rules.md`:
|
||||||
- Strip prose transitions and connective tissue
|
- Strip prose transitions and connective tissue
|
||||||
- Remove hedging and rhetoric
|
- Remove hedging and rhetoric
|
||||||
- Remove explanations of common knowledge
|
- Remove explanations of common knowledge
|
||||||
|
|
@ -80,7 +80,7 @@ Do NOT include frontmatter — the calling skill handles that.
|
||||||
|
|
||||||
## Semantic Splitting
|
## Semantic Splitting
|
||||||
|
|
||||||
If the splitting decision indicates splitting is needed, load `resources/splitting-strategy.md` and follow it.
|
If the splitting decision indicates splitting is needed, load `../resources/splitting-strategy.md` and follow it.
|
||||||
|
|
||||||
When splitting:
|
When splitting:
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
---
|
---
|
||||||
name: bmad-review-edge-case-hunter
|
name: bmad-review-edge-case-hunter
|
||||||
description: 'Walk every branching path and boundary condition in content, report only unhandled edge cases. Orthogonal to adversarial review - method-driven not attitude-driven.'
|
description: 'Walk every branching path and boundary condition in content, report only unhandled edge cases. Orthogonal to adversarial review - method-driven not attitude-driven. Use when you need exhaustive edge-case analysis of code, specs, or diffs.'
|
||||||
---
|
---
|
||||||
|
|
||||||
Follow the instructions in [workflow.md](workflow.md).
|
Follow the instructions in [workflow.md](workflow.md).
|
||||||
|
|
|
||||||
|
|
@ -274,9 +274,9 @@ If no findings are generated, the skill passes validation.
|
||||||
|
|
||||||
- **Severity:** HIGH
|
- **Severity:** HIGH
|
||||||
- **Applies to:** all files
|
- **Applies to:** all files
|
||||||
- **Rule:** When a skill references another skill via `skill:skill-name`, the surrounding instruction must use the word "invoke" (e.g., `Invoke skill:bmad-party-mode`). Phrases like "Read fully and follow", "Execute", "Run", "Load", "Open", or "Follow" are invalid — they imply file-level operations on a document, not skill invocation. A skill is a unit that is invoked, not a file that is read.
|
- **Rule:** When a skill references another skill by name, the surrounding instruction must use the word "invoke". The canonical form is `Invoke the \`skill-name\` skill`. Phrases like "Read fully and follow", "Execute", "Run", "Load", "Open", or "Follow" are invalid — they imply file-level operations on a document, not skill invocation. A skill is a unit that is invoked, not a file that is read.
|
||||||
- **Detection:** Find all `skill:` references in body text and frontmatter. Check the surrounding instruction text (same sentence or directive) for file-oriented verbs: "read", "follow", "load", "execute", "run", "open". Flag any that do not use "invoke" (or a close synonym like "activate" or "launch").
|
- **Detection:** Find all references to other skills by name (typically backtick-quoted skill names like \`bmad-foo\`). Check the surrounding instruction text (same sentence or directive) for file-oriented verbs: "read", "follow", "load", "execute", "run", "open". Flag any that do not use "invoke" (or a close synonym like "activate" or "launch").
|
||||||
- **Fix:** Replace the instruction with `Invoke skill:skill-name` or `Invoke the \`skill-name\` skill`. Remove any "read fully and follow" or similar file-oriented phrasing.
|
- **Fix:** Replace the instruction with `Invoke the \`skill-name\` skill`. Remove any "read fully and follow" or similar file-oriented phrasing. Do NOT add a `skill:` prefix to the name — use natural language.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue