fix(skill): validation cleanup for quick-flow skills

bmad-quick-dev-new-preview: fix wrong step-to-step path references
from within steps/ directory, remove step frontmatter metadata and
intra-skill path variables.

bmad-quick-dev: remove step frontmatter metadata, inline nextStepFile
path variables as literal relative paths.

bmad-quick-spec: remove name/description from workflow.md frontmatter,
fix absolute self-references using {project-root} for intra-skill
paths, remove step frontmatter metadata.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Alex Verkhovsky 2026-03-14 17:02:08 -06:00
parent 4cbbeb6602
commit b1209a97da
16 changed files with 19 additions and 70 deletions

View File

@ -1,7 +1,4 @@
--- ---
name: 'step-01-clarify-and-route'
description: 'Capture intent, route to execution path'
wipFile: '{implementation_artifacts}/tech-spec-wip.md' wipFile: '{implementation_artifacts}/tech-spec-wip.md'
deferred_work_file: '{implementation_artifacts}/deferred-work.md' deferred_work_file: '{implementation_artifacts}/deferred-work.md'
spec_file: '' # set at runtime before leaving this step spec_file: '' # set at runtime before leaving this step
@ -50,5 +47,5 @@ spec_file: '' # set at runtime before leaving this step
## NEXT ## NEXT
- One-shot / ready-for-dev: Read fully and follow `./steps/step-03-implement.md` - One-shot / ready-for-dev: Read fully and follow `./step-03-implement.md`
- Plan-code-review: Read fully and follow `./steps/step-02-plan.md` - Plan-code-review: Read fully and follow `./step-02-plan.md`

View File

@ -1,8 +1,4 @@
--- ---
name: 'step-02-plan'
description: 'Investigate, generate spec, present for approval'
templateFile: '../tech-spec-template.md'
wipFile: '{implementation_artifacts}/tech-spec-wip.md' wipFile: '{implementation_artifacts}/tech-spec-wip.md'
deferred_work_file: '{implementation_artifacts}/deferred-work.md' deferred_work_file: '{implementation_artifacts}/deferred-work.md'
--- ---
@ -17,7 +13,7 @@ deferred_work_file: '{implementation_artifacts}/deferred-work.md'
## INSTRUCTIONS ## INSTRUCTIONS
1. Investigate codebase. _Isolate deep exploration in sub-agents/tasks where available. To prevent context snowballing, instruct subagents to give you distilled summaries only._ 1. Investigate codebase. _Isolate deep exploration in sub-agents/tasks where available. To prevent context snowballing, instruct subagents to give you distilled summaries only._
2. Read `{templateFile}` fully. Fill it out based on the intent and investigation, and write the result to `{wipFile}`. 2. Read `../tech-spec-template.md` fully. Fill it out based on the intent and investigation, and write the result to `{wipFile}`.
3. Self-review against READY FOR DEVELOPMENT standard. 3. Self-review against READY FOR DEVELOPMENT standard.
4. If intent gaps exist, do not fantasize, do not leave open questions, HALT and ask the human. 4. If intent gaps exist, do not fantasize, do not leave open questions, HALT and ask the human.
5. Token count check (see SCOPE STANDARD). If spec exceeds 1600 tokens: 5. Token count check (see SCOPE STANDARD). If spec exceeds 1600 tokens:
@ -36,4 +32,4 @@ Present summary. If token count exceeded 1600 and user chose [K], include the to
## NEXT ## NEXT
Read fully and follow `./steps/step-03-implement.md` Read fully and follow `./step-03-implement.md`

View File

@ -1,6 +1,4 @@
--- ---
name: 'step-03-implement'
description: 'Execute implementation directly or via sub-agent. Local only.'
--- ---
# Step 3: Implement # Step 3: Implement
@ -32,4 +30,4 @@ Otherwise (`execution_mode = "plan-code-review"`): hand `{spec_file}` to a sub-a
## NEXT ## NEXT
Read fully and follow `./steps/step-04-review.md` Read fully and follow `./step-04-review.md`

View File

@ -1,7 +1,4 @@
--- ---
name: 'step-04-review'
description: 'Adversarial review, classify findings, optional spec loop'
deferred_work_file: '{implementation_artifacts}/deferred-work.md' deferred_work_file: '{implementation_artifacts}/deferred-work.md'
specLoopIteration: 1 specLoopIteration: 1
--- ---
@ -43,11 +40,11 @@ Do NOT `git add` anything — this is read-only inspection.
- **defer** — pre-existing issue not caused by this story, surfaced incidentally by the review. Collect for later focused attention. - **defer** — pre-existing issue not caused by this story, surfaced incidentally by the review. Collect for later focused attention.
- **reject** — noise. Drop silently. When unsure between defer and reject, prefer reject — only defer findings you are confident are real. - **reject** — noise. Drop silently. When unsure between defer and reject, prefer reject — only defer findings you are confident are real.
3. Process findings in cascading order. If intent_gap or bad_spec findings exist, they trigger a loopback — lower findings are moot since code will be re-derived. If neither exists, process patch and defer normally. Increment `{specLoopIteration}` on each loopback. If it exceeds 5, HALT and escalate to the human. On any loopback, re-evaluate routing — if scope has grown beyond one-shot, escalate `execution_mode` to plan-code-review. 3. Process findings in cascading order. If intent_gap or bad_spec findings exist, they trigger a loopback — lower findings are moot since code will be re-derived. If neither exists, process patch and defer normally. Increment `{specLoopIteration}` on each loopback. If it exceeds 5, HALT and escalate to the human. On any loopback, re-evaluate routing — if scope has grown beyond one-shot, escalate `execution_mode` to plan-code-review.
- **intent_gap** — Root cause is inside `<frozen-after-approval>`. Revert code changes. Loop back to the human to resolve. Once resolved, read fully and follow `./steps/step-02-plan.md` to re-run steps 24. - **intent_gap** — Root cause is inside `<frozen-after-approval>`. Revert code changes. Loop back to the human to resolve. Once resolved, read fully and follow `./step-02-plan.md` to re-run steps 24.
- **bad_spec** — Root cause is outside `<frozen-after-approval>`. Before reverting code: extract KEEP instructions for positive preservation (what worked well and must survive re-derivation). Revert code changes. Read the `## Spec Change Log` in `{spec_file}` and strictly respect all logged constraints when amending the non-frozen sections that contain the root cause. Append a new change-log entry recording: the triggering finding, what was amended, the known-bad state avoided, and the KEEP instructions. Read fully and follow `./steps/step-03-implement.md` to re-derive the code, then this step will run again. - **bad_spec** — Root cause is outside `<frozen-after-approval>`. Before reverting code: extract KEEP instructions for positive preservation (what worked well and must survive re-derivation). Revert code changes. Read the `## Spec Change Log` in `{spec_file}` and strictly respect all logged constraints when amending the non-frozen sections that contain the root cause. Append a new change-log entry recording: the triggering finding, what was amended, the known-bad state avoided, and the KEEP instructions. Read fully and follow `./step-03-implement.md` to re-derive the code, then this step will run again.
- **patch** — Auto-fix. These are the only findings that survive loopbacks. - **patch** — Auto-fix. These are the only findings that survive loopbacks.
- **defer** — Append to `{deferred_work_file}`. - **defer** — Append to `{deferred_work_file}`.
- **reject** — Drop silently. - **reject** — Drop silently.
## NEXT ## NEXT
Read fully and follow `./steps/step-05-present.md` Read fully and follow `./step-05-present.md`

View File

@ -1,6 +1,4 @@
--- ---
name: 'step-05-present'
description: 'Present findings, get approval, create PR'
--- ---
# Step 5: Present # Step 5: Present

View File

@ -72,7 +72,6 @@ YOU MUST ALWAYS SPEAK OUTPUT in your Agent communication style with the config `
### 2. Paths ### 2. Paths
- `templateFile` = `./tech-spec-template.md`
- `wipFile` = `{implementation_artifacts}/tech-spec-wip.md` - `wipFile` = `{implementation_artifacts}/tech-spec-wip.md`
### 3. First Step Execution ### 3. First Step Execution

View File

@ -1,9 +1,4 @@
--- ---
name: 'step-01-mode-detection'
description: 'Determine execution mode (tech-spec vs direct), handle escalation, set state variables'
nextStepFile_modeA: './step-03-execute.md'
nextStepFile_modeB: './step-02-context-gathering.md'
--- ---
# Step 1: Mode Detection # Step 1: Mode Detection
@ -50,7 +45,7 @@ Analyze the user's input to determine mode:
- Load the spec, extract tasks/context/AC - Load the spec, extract tasks/context/AC
- Set `{execution_mode}` = "tech-spec" - Set `{execution_mode}` = "tech-spec"
- Set `{tech_spec_path}` = provided path - Set `{tech_spec_path}` = provided path
- **NEXT:** Read fully and follow: `{nextStepFile_modeA}` - **NEXT:** Read fully and follow: `./step-03-execute.md`
**Mode B: Direct Instructions** **Mode B: Direct Instructions**
@ -91,7 +86,7 @@ Display: "**Select:** [P] Plan first (tech-spec) [E] Execute directly"
#### Menu Handling Logic: #### Menu Handling Logic:
- IF P: Direct user to `{quick_spec_workflow}`. **EXIT Quick Dev.** - IF P: Direct user to `{quick_spec_workflow}`. **EXIT Quick Dev.**
- IF E: Ask for any additional guidance, then **NEXT:** Read fully and follow: `{nextStepFile_modeB}` - IF E: Ask for any additional guidance, then **NEXT:** Read fully and follow: `./step-02-context-gathering.md`
#### EXECUTION RULES: #### EXECUTION RULES:
@ -114,7 +109,7 @@ Display:
- IF P: Direct to `{quick_spec_workflow}`. **EXIT Quick Dev.** - IF P: Direct to `{quick_spec_workflow}`. **EXIT Quick Dev.**
- IF W: Direct user to run the PRD workflow instead. **EXIT Quick Dev.** - IF W: Direct user to run the PRD workflow instead. **EXIT Quick Dev.**
- IF E: Ask for guidance, then **NEXT:** Read fully and follow: `{nextStepFile_modeB}` - IF E: Ask for guidance, then **NEXT:** Read fully and follow: `./step-02-context-gathering.md`
#### EXECUTION RULES: #### EXECUTION RULES:
@ -137,7 +132,7 @@ Display:
- IF P: Direct to `{quick_spec_workflow}`. **EXIT Quick Dev.** - IF P: Direct to `{quick_spec_workflow}`. **EXIT Quick Dev.**
- IF W: Direct user to run the PRD workflow instead. **EXIT Quick Dev.** - IF W: Direct user to run the PRD workflow instead. **EXIT Quick Dev.**
- IF E: Ask for guidance, then **NEXT:** Read fully and follow: `{nextStepFile_modeB}` - IF E: Ask for guidance, then **NEXT:** Read fully and follow: `./step-02-context-gathering.md`
#### EXECUTION RULES: #### EXECUTION RULES:
@ -150,8 +145,8 @@ Display:
**CRITICAL:** When this step completes, explicitly state which step to load: **CRITICAL:** When this step completes, explicitly state which step to load:
- Mode A (tech-spec): "**NEXT:** read fully and follow: `{nextStepFile_modeA}`" - Mode A (tech-spec): "**NEXT:** read fully and follow: `./step-03-execute.md`"
- Mode B (direct, [E] selected): "**NEXT:** Read fully and follow: `{nextStepFile_modeB}`" - Mode B (direct, [E] selected): "**NEXT:** Read fully and follow: `./step-02-context-gathering.md`"
- Escalation ([P] or [W]): "**EXITING Quick Dev.** Follow the directed workflow." - Escalation ([P] or [W]): "**EXITING Quick Dev.** Follow the directed workflow."
--- ---

View File

@ -1,8 +1,4 @@
--- ---
name: 'step-02-context-gathering'
description: 'Quick context gathering for direct mode - identify files, patterns, dependencies'
nextStepFile: './step-03-execute.md'
--- ---
# Step 2: Context Gathering (Direct Mode) # Step 2: Context Gathering (Direct Mode)
@ -97,7 +93,7 @@ Ready to execute? (y/n/adjust)
**CRITICAL:** When user confirms ready, explicitly state: **CRITICAL:** When user confirms ready, explicitly state:
- **y:** "**NEXT:** Read fully and follow: `{nextStepFile}`" - **y:** "**NEXT:** Read fully and follow: `./step-03-execute.md`"
- **n/adjust:** Continue gathering context, then re-present plan - **n/adjust:** Continue gathering context, then re-present plan
--- ---

View File

@ -1,8 +1,4 @@
--- ---
name: 'step-03-execute'
description: 'Execute implementation - iterate through tasks, write code, run tests'
nextStepFile: './step-04-self-check.md'
--- ---
# Step 3: Execute Implementation # Step 3: Execute Implementation
@ -89,7 +85,7 @@ For each task:
## NEXT STEP ## NEXT STEP
When ALL tasks are complete (or halted on blocker), read fully and follow: `{nextStepFile}`. When ALL tasks are complete (or halted on blocker), read fully and follow: `./step-04-self-check.md`.
--- ---

View File

@ -1,8 +1,4 @@
--- ---
name: 'step-04-self-check'
description: 'Self-audit implementation against tasks, tests, AC, and patterns'
nextStepFile: './step-05-adversarial-review.md'
--- ---
# Step 4: Self-Check # Step 4: Self-Check
@ -89,7 +85,7 @@ Proceeding to adversarial code review...
## NEXT STEP ## NEXT STEP
Proceed immediately to `{nextStepFile}`. Proceed immediately to `./step-05-adversarial-review.md`.
--- ---

View File

@ -1,8 +1,4 @@
--- ---
name: 'step-05-adversarial-review'
description: 'Construct diff and invoke adversarial review skill'
nextStepFile: './step-06-resolve-findings.md'
--- ---
# Step 5: Adversarial Code Review # Step 5: Adversarial Code Review
@ -77,7 +73,7 @@ If TodoWrite or similar tool is available, turn each finding into a TODO, includ
## NEXT STEP ## NEXT STEP
With findings in hand, read fully and follow: `{nextStepFile}` for user to choose resolution approach. With findings in hand, read fully and follow: `./step-06-resolve-findings.md` for user to choose resolution approach.
--- ---

View File

@ -1,6 +1,4 @@
--- ---
name: 'step-06-resolve-findings'
description: 'Handle review findings interactively, apply fixes, update tech-spec with final status'
--- ---
# Step 6: Resolve Findings # Step 6: Resolve Findings

View File

@ -1,8 +1,4 @@
--- ---
name: 'step-01-understand'
description: 'Analyze the requirement delta between current state and what user wants to build'
templateFile: '../tech-spec-template.md'
wipFile: '{implementation_artifacts}/tech-spec-wip.md' wipFile: '{implementation_artifacts}/tech-spec-wip.md'
--- ---
@ -125,7 +121,7 @@ b) **Ask the user to confirm the captured understanding before proceeding.**
a) **Create the tech-spec WIP file:** a) **Create the tech-spec WIP file:**
1. Copy template from `{templateFile}` 1. Copy template from `../tech-spec-template.md`
2. Write to `{wipFile}` 2. Write to `{wipFile}`
3. Update frontmatter with captured values: 3. Update frontmatter with captured values:
```yaml ```yaml

View File

@ -1,7 +1,4 @@
--- ---
name: 'step-02-investigate'
description: 'Map technical constraints and anchor points within the codebase'
wipFile: '{implementation_artifacts}/tech-spec-wip.md' wipFile: '{implementation_artifacts}/tech-spec-wip.md'
--- ---

View File

@ -1,7 +1,4 @@
--- ---
name: 'step-03-generate'
description: 'Build the implementation plan based on the technical mapping of constraints'
wipFile: '{implementation_artifacts}/tech-spec-wip.md' wipFile: '{implementation_artifacts}/tech-spec-wip.md'
--- ---

View File

@ -1,7 +1,4 @@
--- ---
name: 'step-04-review'
description: 'Review and finalize the tech-spec'
wipFile: '{implementation_artifacts}/tech-spec-wip.md' wipFile: '{implementation_artifacts}/tech-spec-wip.md'
--- ---