Skip to content

Convert quick-spec workflow to native skill package#1946

Merged
alexeyv merged 3 commits intomainfrom
convert-quick-spec-skill
Mar 14, 2026
Merged

Convert quick-spec workflow to native skill package#1946
alexeyv merged 3 commits intomainfrom
convert-quick-spec-skill

Conversation

@alexeyv
Copy link
Copy Markdown
Collaborator

@alexeyv alexeyv commented Mar 12, 2026

Summary

  • mechanically converted src/bmm/workflows/bmad-quick-flow/quick-spec to native skill package src/bmm/workflows/bmad-quick-flow/bmad-quick-spec
  • updated package metadata for native-skill install (type: skill) and added SKILL.md
  • kept workflow behavior/instructions intact while applying only required path/name normalization
  • updated external references:
    • src/bmm/module-help.csv (workflow-file to skill:bmad-quick-spec)
    • src/bmm/agents/quick-flow-solo-dev.agent.yaml (exec to skill:bmad-quick-spec)
    • src/bmm/workflows/bmad-quick-flow/quick-dev/workflow.md quick-spec cross-reference to renamed path

Validation

  • equivalence protocol (mechanical):
    • normalized old-vs-new parity passed for workflow.md and all four step files (metadata/path deltas only)
    • exact parity passed for tech-spec-template.md
  • installer:
    • node tools/cli/bmad-cli.js install --directory /Users/alex/src/bmad --modules bmm --tools claude-code --yes
    • verified installed .claude/skills/bmad-quick-spec/ with generated SKILL.md
    • verified _bmad/_config/skill-manifest.csv contains bmad-quick-spec
    • verified _bmad/_config/workflow-manifest.csv has no bmad-quick-spec entry
  • repo checks:
    • npm test (passes)

Deferrals

  • recorded interactive equivalence-test deferral in /Users/alex/src/bmad/_bmad-output/implementation-artifacts/deferred-work.md for this conversion pass (non-interactive terminal execution)

@augmentcode
Copy link
Copy Markdown

augmentcode bot commented Mar 12, 2026

🤖 Augment PR Summary

Summary: Converts the Quick Spec workflow into a native skill package so it can be installed/discovered as a skill.

Changes:

  • Renamed/moved the quick-spec workflow to bmad-quick-spec and added SKILL.md + a type: skill manifest
  • Updated agent/workflow references to point at the renamed package path
  • Normalized internal references to use relative paths while keeping step content/behavior otherwise equivalent

Technical Notes: Skill discovery relies on bmad-skill-manifest.yaml + SKILL.md frontmatter; the workflow entry is now treated as internal skill content.

🤖 Was this summary useful? React with 👍 or 👎

Copy link
Copy Markdown

@augmentcode augmentcode bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review completed. 1 suggestion posted.

Fix All in Augment

Comment augment review to trigger a new review at any time.

- `[1]` → Read fully and follow: `{project-root}/_bmad/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-02-investigate.md` (Step 2)
- `[1, 2]` → Read fully and follow: `{project-root}/_bmad/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-03-generate.md` (Step 3)
- `[1, 2, 3]` → Read fully and follow: `{project-root}/_bmad/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-04-review.md` (Step 4)
- `[1]` → Read fully and follow: `./steps/step-02-investigate.md` (Step 2)
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These ./steps/... references are inside a file that already lives under steps/, so when resolved relative to this file they point to steps/steps/... (non-existent) and can break the continue/jump flow. This also appears in other step files, so it may be worth ensuring next-step references are expressed in a way that resolves correctly from the current step file. (Guideline: valid_file_references)

Severity: high

Other Locations
  • src/bmm/workflows/bmad-quick-flow/bmad-quick-spec/steps/step-01-understand.md:58
  • src/bmm/workflows/bmad-quick-flow/bmad-quick-spec/steps/step-01-understand.md:59
  • src/bmm/workflows/bmad-quick-flow/bmad-quick-spec/steps/step-01-understand.md:170
  • src/bmm/workflows/bmad-quick-flow/bmad-quick-spec/steps/step-02-investigate.md:124
  • src/bmm/workflows/bmad-quick-flow/bmad-quick-spec/steps/step-03-generate.md:115

Fix This in Augment

🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.

@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Mar 12, 2026

📝 Walkthrough

Walkthrough

This change reorganizes the quick-spec workflow by moving it to a new bmad-quick-spec directory, updating all internal path references from absolute to relative paths, creating supporting manifest and skill definition files, and removing outdated manifest entries from the original location.

Changes

Cohort / File(s) Summary
Agent and Workflow Configuration
src/bmm/agents/quick-flow-solo-dev.agent.yaml, src/bmm/workflows/bmad-quick-flow/quick-dev/workflow.md
Updated executable and reference paths from quick-spec to bmad-quick-spec directory locations.
New bmad-quick-spec Workflow Skill Files
src/bmm/workflows/bmad-quick-flow/bmad-quick-spec/SKILL.md, src/bmm/workflows/bmad-quick-flow/bmad-quick-spec/bmad-skill-manifest.yaml
Added new skill specification and manifest files defining the bmad-quick-spec workflow as a skill artifact.
Workflow Path Normalization
src/bmm/workflows/bmad-quick-flow/bmad-quick-spec/steps/step-01-understand.md, src/bmm/workflows/bmad-quick-flow/bmad-quick-spec/steps/step-02-investigate.md, src/bmm/workflows/bmad-quick-flow/bmad-quick-spec/steps/step-03-generate.md
Converted absolute project-root paths to relative paths (./steps/...) for inter-step navigation references.
Primary Workflow Definition
src/bmm/workflows/bmad-quick-flow/bmad-quick-spec/workflow.md
Removed front matter metadata keys, updated entry step reference to use relative path.
Legacy Manifest Cleanup
src/bmm/workflows/bmad-quick-flow/quick-spec/bmad-skill-manifest.yaml
Removed manifest entries (canonicalId, type, description) from the original quick-spec location.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Suggested reviewers

  • bmadcode
🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and accurately summarizes the main change: converting the quick-spec workflow to a native skill package, which is reflected throughout the changeset.
Description check ✅ Passed The description is directly related to the changeset, providing detailed context about the mechanical conversion, validation steps, and external references updated as part of this change.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch convert-quick-spec-skill
📝 Coding Plan
  • Generate coding plan for human review comments

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (6)
src/bmm/workflows/bmad-quick-flow/bmad-quick-spec/SKILL.md (1)

6-6: Use the canonical action-instruction verb for delegation.

Prefer Read fully and follow: workflow.md for consistency with workflow action directives.

Based on learnings: when standardizing action instructions, use “load/read and follow” phrasing for executable directives.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/bmm/workflows/bmad-quick-flow/bmad-quick-spec/SKILL.md` at line 6,
Replace the existing directive "Follow the instructions in [workflow.md]." in
SKILL.md with the canonical action-instruction phrasing "Read fully and follow:
workflow.md" so the delegation uses the standardized "load/read and follow"
verb; update the sentence in
src/bmm/workflows/bmad-quick-flow/bmad-quick-spec/SKILL.md (the line containing
that directive) to exactly use "Read fully and follow: workflow.md".
src/bmm/workflows/bmad-quick-flow/bmad-quick-spec/steps/step-01-understand.md (1)

57-59: Transition targets are repeated literals across the step file.

Consolidate next-step targets into reusable variables to reduce maintenance drift during future renames/moves.

Also applies to: 170-170

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@src/bmm/workflows/bmad-quick-flow/bmad-quick-spec/steps/step-01-understand.md`
around lines 57 - 59, The transition links in step-01-understand.md repeatedly
inline the same next-step paths (`./steps/step-02-investigate.md`,
`./steps/step-03-generate.md`, `./steps/step-04-review.md`); replace these
repeated literal targets with single reusable variables/constants (e.g.,
NEXT_STEP_2, NEXT_STEP_3, NEXT_STEP_4) declared at the top of the spec or in a
shared include and then reference those variables in the three list items so
future renames/moves require changing only the variable definitions rather than
each occurrence.
src/bmm/workflows/bmad-quick-flow/bmad-quick-spec/workflow.md (1)

77-77: Entry-step target should be a declared variable, not an inline literal.

Declare a first_step variable in frontmatter and reference it here to reduce path-coupling during future reorganizations.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/bmm/workflows/bmad-quick-flow/bmad-quick-spec/workflow.md` at line 77,
Declare a frontmatter variable named first_step in this workflow's YAML
frontmatter set to the step path (e.g., "./steps/step-01-understand.md") and
then replace the inline literal in the entry-step reference ("Read fully and
follow: `./steps/step-01-understand.md`") with a reference to that variable
(first_step) so the entry-target uses the declared first_step instead of a
hard-coded path; update any other occurrences in workflow.md that reference the
same path to use first_step as well.
src/bmm/workflows/bmad-quick-flow/bmad-quick-spec/steps/step-03-generate.md (1)

115-115: Step transition target is hardcoded and brittle.

The next-step path is duplicated across step files. Consider a shared transition variable (frontmatter/workflow-level constant) to reduce rename drift.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/bmm/workflows/bmad-quick-flow/bmad-quick-spec/steps/step-03-generate.md`
at line 115, This step file hardcodes the next-step path
("./steps/step-04-review.md"), causing duplication and rename drift; replace the
literal path with a shared transition variable defined in frontmatter (e.g.,
next_step: step_04_review) or a workflow-level constant (e.g., NEXT_STEP_REVIEW)
and update all step files that reference "./steps/step-04-review.md" to use that
variable (look for occurrences in step-03-generate.md and other step-*.md files)
so renames only need a single change.
src/bmm/workflows/bmad-quick-flow/bmad-quick-spec/bmad-skill-manifest.yaml (1)

1-1: Skill identity is implicitly tied to directory name without a guardrail.

This works, but a future directory rename will silently change canonical identity. Add a lightweight CI/assertion check in manifest-generation tests to lock expected quick-flow skill IDs.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/bmm/workflows/bmad-quick-flow/bmad-quick-spec/bmad-skill-manifest.yaml`
at line 1, Add a CI-level assertion in the manifest-generation tests to prevent
silent identity drift: update the test suite that validates manifests to open
bmad-skill-manifest.yaml (the file containing "type: skill") and assert that the
computed/declared skill ID equals the canonical expected ID (e.g., the known
quick-flow ID for this repo); if the code derives IDs from directory names,
compare the derived value to a hard-coded expected string (e.g.,
"bmad-quick-spec" or the repo's canonical skill id) and fail the test if they
differ so future renames will surface as test failures.
src/bmm/workflows/bmad-quick-flow/bmad-quick-spec/steps/step-02-investigate.md (1)

124-124: Continue target should be indirected, not literal.

Use a variable for the Step 3 target to avoid hardcoded path churn across Step 1/2/3 files.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@src/bmm/workflows/bmad-quick-flow/bmad-quick-spec/steps/step-02-investigate.md`
at line 124, The continue target is hardcoded as "./steps/step-03-generate.md";
replace that literal with a reusable variable (e.g., a frontmatter key like
"nextStep3" or "step3Target") and update the line "IF C: Verify frontmatter
updated with `stepsCompleted: [1, 2]`, then read fully and follow:
`./steps/step-03-generate.md`" to reference the variable (e.g., "...follow:
`{{nextStep3}}`"); ensure the frontmatter in this file defines that variable and
that Step 1/3 files use the same variable name for consistency.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In
`@src/bmm/workflows/bmad-quick-flow/bmad-quick-spec/steps/step-01-understand.md`:
- Around line 57-59: The menu logic that branches on stepsCompleted (currently
handling only [1], [1, 2], [1, 2, 3]) needs an explicit fallback for malformed
or out-of-order states: update the decision code that determines next step (the
same logic that maps stepsCompleted to links like
./steps/step-02-investigate.md, ./steps/step-03-generate.md,
./steps/step-04-review.md) to detect unexpected arrays/values and present a
repair/reset/archive prompt (e.g., “Reset progress / Repair state / Archive
session”) with a safe default action; implement this as an else/catch branch
that logs the anomaly and routes the user to a clear recovery flow.

---

Nitpick comments:
In `@src/bmm/workflows/bmad-quick-flow/bmad-quick-spec/bmad-skill-manifest.yaml`:
- Line 1: Add a CI-level assertion in the manifest-generation tests to prevent
silent identity drift: update the test suite that validates manifests to open
bmad-skill-manifest.yaml (the file containing "type: skill") and assert that the
computed/declared skill ID equals the canonical expected ID (e.g., the known
quick-flow ID for this repo); if the code derives IDs from directory names,
compare the derived value to a hard-coded expected string (e.g.,
"bmad-quick-spec" or the repo's canonical skill id) and fail the test if they
differ so future renames will surface as test failures.

In `@src/bmm/workflows/bmad-quick-flow/bmad-quick-spec/SKILL.md`:
- Line 6: Replace the existing directive "Follow the instructions in
[workflow.md]." in SKILL.md with the canonical action-instruction phrasing "Read
fully and follow: workflow.md" so the delegation uses the standardized
"load/read and follow" verb; update the sentence in
src/bmm/workflows/bmad-quick-flow/bmad-quick-spec/SKILL.md (the line containing
that directive) to exactly use "Read fully and follow: workflow.md".

In
`@src/bmm/workflows/bmad-quick-flow/bmad-quick-spec/steps/step-01-understand.md`:
- Around line 57-59: The transition links in step-01-understand.md repeatedly
inline the same next-step paths (`./steps/step-02-investigate.md`,
`./steps/step-03-generate.md`, `./steps/step-04-review.md`); replace these
repeated literal targets with single reusable variables/constants (e.g.,
NEXT_STEP_2, NEXT_STEP_3, NEXT_STEP_4) declared at the top of the spec or in a
shared include and then reference those variables in the three list items so
future renames/moves require changing only the variable definitions rather than
each occurrence.

In
`@src/bmm/workflows/bmad-quick-flow/bmad-quick-spec/steps/step-02-investigate.md`:
- Line 124: The continue target is hardcoded as "./steps/step-03-generate.md";
replace that literal with a reusable variable (e.g., a frontmatter key like
"nextStep3" or "step3Target") and update the line "IF C: Verify frontmatter
updated with `stepsCompleted: [1, 2]`, then read fully and follow:
`./steps/step-03-generate.md`" to reference the variable (e.g., "...follow:
`{{nextStep3}}`"); ensure the frontmatter in this file defines that variable and
that Step 1/3 files use the same variable name for consistency.

In `@src/bmm/workflows/bmad-quick-flow/bmad-quick-spec/steps/step-03-generate.md`:
- Line 115: This step file hardcodes the next-step path
("./steps/step-04-review.md"), causing duplication and rename drift; replace the
literal path with a shared transition variable defined in frontmatter (e.g.,
next_step: step_04_review) or a workflow-level constant (e.g., NEXT_STEP_REVIEW)
and update all step files that reference "./steps/step-04-review.md" to use that
variable (look for occurrences in step-03-generate.md and other step-*.md files)
so renames only need a single change.

In `@src/bmm/workflows/bmad-quick-flow/bmad-quick-spec/workflow.md`:
- Line 77: Declare a frontmatter variable named first_step in this workflow's
YAML frontmatter set to the step path (e.g., "./steps/step-01-understand.md")
and then replace the inline literal in the entry-step reference ("Read fully and
follow: `./steps/step-01-understand.md`") with a reference to that variable
(first_step) so the entry-target uses the declared first_step instead of a
hard-coded path; update any other occurrences in workflow.md that reference the
same path to use first_step as well.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 22461fcb-743b-4153-af46-cff66bd1f173

📥 Commits

Reviewing files that changed from the base of the PR and between 75ec4aa and 3d1f282.

⛔ Files ignored due to path filters (1)
  • src/bmm/module-help.csv is excluded by !**/*.csv
📒 Files selected for processing (11)
  • src/bmm/agents/quick-flow-solo-dev.agent.yaml
  • src/bmm/workflows/bmad-quick-flow/bmad-quick-spec/SKILL.md
  • src/bmm/workflows/bmad-quick-flow/bmad-quick-spec/bmad-skill-manifest.yaml
  • src/bmm/workflows/bmad-quick-flow/bmad-quick-spec/steps/step-01-understand.md
  • src/bmm/workflows/bmad-quick-flow/bmad-quick-spec/steps/step-02-investigate.md
  • src/bmm/workflows/bmad-quick-flow/bmad-quick-spec/steps/step-03-generate.md
  • src/bmm/workflows/bmad-quick-flow/bmad-quick-spec/steps/step-04-review.md
  • src/bmm/workflows/bmad-quick-flow/bmad-quick-spec/tech-spec-template.md
  • src/bmm/workflows/bmad-quick-flow/bmad-quick-spec/workflow.md
  • src/bmm/workflows/bmad-quick-flow/quick-dev/workflow.md
  • src/bmm/workflows/bmad-quick-flow/quick-spec/bmad-skill-manifest.yaml
💤 Files with no reviewable changes (1)
  • src/bmm/workflows/bmad-quick-flow/quick-spec/bmad-skill-manifest.yaml

Comment on lines +57 to +59
- `[1]` → Read fully and follow: `./steps/step-02-investigate.md` (Step 2)
- `[1, 2]` → Read fully and follow: `./steps/step-03-generate.md` (Step 3)
- `[1, 2, 3]` → Read fully and follow: `./steps/step-04-review.md` (Step 4)
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Resume routing has no safe default for unexpected stepsCompleted states.

The menu only enumerates [1], [1, 2], [1, 2, 3]. Add an explicit fallback branch (repair/reset/archive prompt) for malformed or out-of-order state.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@src/bmm/workflows/bmad-quick-flow/bmad-quick-spec/steps/step-01-understand.md`
around lines 57 - 59, The menu logic that branches on stepsCompleted (currently
handling only [1], [1, 2], [1, 2, 3]) needs an explicit fallback for malformed
or out-of-order states: update the decision code that determines next step (the
same logic that maps stepsCompleted to links like
./steps/step-02-investigate.md, ./steps/step-03-generate.md,
./steps/step-04-review.md) to detect unexpected arrays/values and present a
repair/reset/archive prompt (e.g., “Reset progress / Repair state / Archive
session”) with a safe default action; implement this as an else/catch branch
that logs the anomaly and routes the user to a clear recovery flow.

@alexeyv alexeyv force-pushed the convert-quick-spec-skill branch 2 times, most recently from f5c75e9 to 813089a Compare March 14, 2026 20:20
alexeyv and others added 3 commits March 14, 2026 14:58
The agent menu entry for QS was still using a raw file path
instead of the skill dispatcher, inconsistent with module-help.csv.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Step files are inside steps/ so inter-step references must be
./step-NN.md not ./steps/step-NN.md (which would double-nest).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@alexeyv alexeyv force-pushed the convert-quick-spec-skill branch from 813089a to 3678dbe Compare March 14, 2026 21:09
@alexeyv alexeyv merged commit 4cbbeb6 into main Mar 14, 2026
5 checks passed
@alexeyv alexeyv deleted the convert-quick-spec-skill branch March 14, 2026 21:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant