Skip to content

chore(bmm): convert quick-dev workflow to native skill#1948

Merged
alexeyv merged 4 commits intomainfrom
convert-quick-dev-skill
Mar 13, 2026
Merged

chore(bmm): convert quick-dev workflow to native skill#1948
alexeyv merged 4 commits intomainfrom
convert-quick-dev-skill

Conversation

@alexeyv
Copy link
Copy Markdown
Collaborator

@alexeyv alexeyv commented Mar 12, 2026

Summary

  • mechanically converted quick-dev from workflow package to native type: skill
  • renamed workflow directory to canonical skill directory: quick-dev -> bmad-quick-dev
  • added SKILL.md, switched manifest to type: skill, and preserved workflow/step behavior with path/name-only updates
  • updated dependent references:
    • src/bmm/module-help.csv (workflow-file -> skill:bmad-quick-dev)
    • src/bmm/agents/quick-flow-solo-dev.agent.yaml (new workflow path)
    • src/bmm/workflows/bmad-quick-flow/quick-spec/workflow.md (new quick-dev path)

Validation

  • normalized old-vs-new mechanical parity check passed for:
    • workflow.md
    • all 6 step files (step-01 through step-06)
  • installer run:
    • node tools/cli/bmad-cli.js install --directory /Users/alex/src/bmad --modules bmm --tools claude-code --yes
  • install verification:
    • .claude/skills/bmad-quick-dev/ contains workflow + step files + generated SKILL.md
    • _bmad/_config/skill-manifest.csv includes bmad-quick-dev
    • _bmad/_config/workflow-manifest.csv has no bmad-quick-dev entry
  • full repo test suite passed via npm test

Equivalence protocol note

  • full interactive before/after simulated-human runs were not executable in this non-interactive terminal pass
  • recorded in _bmad-output/implementation-artifacts/deferred-work.md with completed mechanical equivalence checks

@augmentcode
Copy link
Copy Markdown

augmentcode bot commented Mar 12, 2026

🤖 Augment PR Summary

Summary: This PR migrates the quick-dev workflow package to a native type: skill and renames the directory to the canonical bmad-quick-dev.

Changes:

  • Moved the workflow and all 6 step files into src/bmm/workflows/bmad-quick-flow/bmad-quick-dev/
  • Added SKILL.md and updated the manifest to type: skill
  • Updated agent and workflow references to the new on-disk path
  • Updated Quick-Spec to route to the new Quick-Dev workflow location

Technical Notes: The migration aims to preserve existing step behavior while using path/name-only updates so the installer registers it as a skill rather than a workflow.

🤖 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.

- Set `{execution_mode}` = "tech-spec"
- Set `{tech_spec_path}` = provided path
- **NEXT:** Read fully and follow: `{project-root}/_bmad/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-03-execute.md`
- **NEXT:** Read fully and follow: `./steps/step-03-execute.md`
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

The step files now instruct loading ./steps/... even though they already live inside steps/, which can resolve to a non-existent steps/steps/... and also conflicts with the nextStepFile_* frontmatter values.
This likely breaks sequential navigation; consider making the NEXT directives consistent (e.g., sibling ./step-XX-...md within steps/, or consistently {installed_path}/steps/...). (Guideline: valid_step_references)

Severity: high

Other Locations
  • src/bmm/workflows/bmad-quick-flow/bmad-quick-dev/steps/step-01-mode-detection.md:94
  • src/bmm/workflows/bmad-quick-flow/bmad-quick-dev/steps/step-01-mode-detection.md:117
  • src/bmm/workflows/bmad-quick-flow/bmad-quick-dev/steps/step-01-mode-detection.md:140
  • src/bmm/workflows/bmad-quick-flow/bmad-quick-dev/steps/step-02-context-gathering.md:100
  • src/bmm/workflows/bmad-quick-flow/bmad-quick-dev/steps/step-03-execute.md:92
  • src/bmm/workflows/bmad-quick-flow/bmad-quick-dev/steps/step-04-self-check.md:92
  • src/bmm/workflows/bmad-quick-flow/bmad-quick-dev/steps/step-05-adversarial-review.md:80

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 PR restructures the Quick-Flow Quick-Dev workflow from quick-dev/ into a nested bmad-quick-dev/ directory. It adds SKILL.md and manifest files to establish the new skill directory structure, updates the agent configuration to point to the new location, converts absolute paths to relative paths throughout workflow steps, and updates dependent workflow references.

Changes

Cohort / File(s) Summary
Agent Configuration
src/bmm/agents/quick-flow-solo-dev.agent.yaml
Updated the QD trigger's exec target path from quick-dev/workflow.md to bmad-quick-dev/workflow.md to point to the restructured workflow location.
New bmad-quick-dev Workflow Structure
src/bmm/workflows/bmad-quick-flow/bmad-quick-dev/SKILL.md, src/bmm/workflows/bmad-quick-flow/bmad-quick-dev/bmad-skill-manifest.yaml, src/bmm/workflows/bmad-quick-flow/bmad-quick-dev/workflow.md
Added SKILL.md entrypoint, created bmad-skill-manifest.yaml manifest, and updated workflow.md with corrected name, installed_path set to ".", and relative path reference for the first step.
Workflow Step Path Updates
src/bmm/workflows/bmad-quick-flow/bmad-quick-dev/steps/step-01-mode-detection.md, src/bmm/workflows/bmad-quick-flow/bmad-quick-dev/steps/step-02-context-gathering.md, src/bmm/workflows/bmad-quick-flow/bmad-quick-dev/steps/step-03-execute.md, src/bmm/workflows/bmad-quick-flow/bmad-quick-dev/steps/step-04-self-check.md, src/bmm/workflows/bmad-quick-flow/bmad-quick-dev/steps/step-05-adversarial-review.md
Converted absolute project-root path references to relative paths (./steps/...) in NEXT STEP directives across all workflow steps to align with the new directory structure.
Legacy Manifest Cleanup
src/bmm/workflows/bmad-quick-flow/quick-dev/bmad-skill-manifest.yaml
Removed canonicalId, type, and description keys from the legacy manifest to deprecate the old quick-dev location.
Dependent Workflow Update
src/bmm/workflows/bmad-quick-flow/quick-spec/workflow.md
Updated quick_dev_workflow reference to point from quick-dev/workflow.md to bmad-quick-flow/bmad-quick-dev/workflow.md to maintain the workflow chain.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Possibly related PRs

  • BMAD-METHOD#1868: Both PRs introduce SKILL.md entrypoints and bmad-skill-manifest.yaml files for bmad-quick-flow skill directories with path updates.
  • BMAD-METHOD#1858: Both PRs update agent workflow path references to point to relocated/renamed workflow.md files in the Quick Flow configuration.
  • BMAD-METHOD#1182: Both PRs refactor the quick-dev workflow into a bmad-quick-dev directory structure with updated step file paths and workflow references.

Suggested reviewers

  • bmadcode
  • muratkeremozcan
  • cecil-the-coder
🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The PR title accurately describes the main change: converting the quick-dev workflow to a native skill, which aligns with the primary objective.
Description check ✅ Passed The PR description is comprehensive and directly related to the changeset, detailing the conversion process, validation steps, and dependent reference updates.
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-dev-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: 4

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (4)
src/bmm/workflows/bmad-quick-flow/bmad-quick-dev/workflow.md (1)

37-50: 🛠️ Refactor suggestion | 🟠 Major

Inconsistent path resolution styles create confusion and fragility.

Lines 42-44 reference related workflows using explicit absolute paths with {project-root}, while line 50 references the first step using a relative path ./steps/.... Within the same workflow file, you're mixing two completely different path resolution paradigms:

  • Absolute style: {project-root}/_bmad/bmm/workflows/bmad-quick-flow/quick-spec/workflow.md
  • Relative style: ./steps/step-01-mode-detection.md

This inconsistency makes it unclear which pattern is canonical and requires readers (and potentially the runtime) to track multiple resolution contexts. If the conversion to native skill means all internal references should be relative, why weren't the related workflows also converted? If absolute paths are still valid, why change the step references?

Consider standardizing on one path resolution style throughout the file, or add explicit documentation explaining when each style should be used.

🤖 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-dev/workflow.md` around lines 37
- 50, The file mixes absolute `{project-root}` paths (e.g.
`{project-root}/_bmad/bmm/workflows/bmad-quick-flow/quick-spec/workflow.md`,
`{project-root}/_bmad/core/workflows/…`) and a relative step path
(`./steps/step-01-mode-detection.md`), causing ambiguity; pick one canonical
resolution style and apply it consistently: either convert the `Related
Workflows` entries to relative paths from this file (e.g. adjust the three
`{project-root}/...` references to the correct `../`/`./` relative locations) or
change the `Read fully and follow: ./steps/step-01-mode-detection.md` line to
use the `{project-root}` absolute pattern to match the others, and add a short
comment at the top of the file stating the chosen convention; update all path
strings (those exact quoted path literals) to the chosen style so every internal
reference in this file follows the same resolution pattern.
src/bmm/workflows/bmad-quick-flow/bmad-quick-dev/steps/step-01-mode-detection.md (3)

89-100: ⚠️ Potential issue | 🟡 Minor

The menu handling logic lacks enforcement of the "ALWAYS halt" requirement.

Lines 98-100 state:

  • "ALWAYS halt and wait for user input after presenting menu"
  • "ONLY proceed when user makes a selection"

But there's no mechanism shown that enforces this halt. The agent is trusted to follow the instruction, but there's no validation that:

  • The agent actually stopped and waited
  • The user actually made a valid selection (P or E)
  • The agent didn't proceed with a default or assumed choice

If the agent misinterprets the instruction or if the runtime doesn't properly support blocking for user input, the workflow could silently skip the escalation decision and proceed incorrectly.

Document what the agent runtime's input-blocking mechanism is (e.g., does it emit a special marker that the IDE intercepts?), or add a post-condition check that verifies user_selection was captured before executing the IF P/E logic.

🤖 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-dev/steps/step-01-mode-detection.md`
around lines 89 - 100, The menu lacks enforcement that the agent halts and
captures a valid selection; add a runtime-blocking mechanism or an explicit
post-condition check around the menu presentation so execution cannot continue
until a valid user_selection (one of "P" or "E") is present; specifically, after
displaying "**Select:** [P] Plan first (tech-spec) [E] Execute directly" ensure
the runtime emits/awaits an input marker and then validate user_selection is set
and matches /^(P|E)$/ before executing the IF branches that redirect to
quick_spec_workflow or to step-02-context-gathering.md, and if validation fails
loop back to prompt the user rather than proceeding.

67-80: ⚠️ Potential issue | 🟠 Major

The escalation trigger logic is under-specified and likely produces false negatives.

The escalation threshold (lines 67-80) requires "2+ signals present" from the trigger list, but:

  1. The trigger list is illustrative, not exhaustive: The bullets are prefaced with generic examples like "Multiple components mentioned" without defining what counts as "multiple" or what constitutes a "component". Does "update the button and its tooltip" count as multiple components? Does "refactor the dashboard" count if it touches multiple files?

  2. The "Reduces signal" list is asymmetric: Adding simplicity markers reduces signal strength, but there's no corresponding "Increases signal" mechanism for complexity markers. A request like "architect a new microservice with API gateway integration, database schema, and async worker queue" could also include the word "just" ("just need a new microservice..."), which would reduce signal and potentially prevent escalation despite obvious complexity.

  3. No tie-breaker for exactly 2 signals: If exactly 2 trigger signals are present but 1+ reduction signal is also present, what happens? Does the reduction cancel one trigger, dropping below the 2-signal threshold?

  4. "Holistic judgment" undercuts the 2-signal threshold: Line 81 says "Use holistic judgment, not mechanical keyword matching", which seems to contradict the mechanical "2+ signals present" rule. If judgment overrides the count, why have the count?

Refactor the escalation logic to either:

  • Provide a clear scoring algorithm (triggers +1, reductions -1, total >= 2 → escalate)
  • Remove the numeric threshold and use purely qualitative guidance ("If the request seems to span multiple systems or architectural layers, escalate")
  • Add worked examples covering edge cases (e.g., "This counts as 3 signals", "This has 2 triggers but 2 reductions so no escalation")

5-6: ⚠️ Potential issue | 🟡 Minor

Remove unused frontmatter variables nextStepFile_modeA and nextStepFile_modeB from lines 5–6.

These variables are defined in the frontmatter but are never referenced by the execution logic or validated by any tooling. The actual NEXT directives at lines 53, 94, 117, 140, 153, and 154 hardcode step file paths directly (./steps/step-03-execute.md, ./steps/step-02-context-gathering.md) instead of consuming these metadata variables. Additionally, the frontmatter paths (./step-03-execute.md) do not match the actual paths used in the instructions (./steps/step-03-execute.md), making them misleading documentation. Remove these variables entirely to avoid confusion.

🤖 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-dev/steps/step-01-mode-detection.md`
around lines 5 - 6, Remove the unused frontmatter variables nextStepFile_modeA
and nextStepFile_modeB from the top of step-01-mode-detection.md; delete their
declarations entirely and ensure no other code or tooling references them
(search for nextStepFile_modeA/nextStepFile_modeB to confirm). Do not replace
them with new values—keep the NEXT directives that already hardcode the correct
paths (e.g., ./steps/step-03-execute.md and
./steps/step-02-context-gathering.md) so documentation matches execution. Update
nothing else and ensure frontmatter remains valid YAML after removal.
🧹 Nitpick comments (7)
src/bmm/workflows/bmad-quick-flow/quick-spec/workflow.md (1)

9-9: Config key name still reflects legacy workflow-path semantics.

Consider renaming quick_dev_workflow to something skill-oriented (quick_dev_skill) to prevent future path-coupled usage patterns.

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

In `@src/bmm/workflows/bmad-quick-flow/quick-spec/workflow.md` at line 9, Rename
the config key quick_dev_workflow to a skill-oriented name such as
quick_dev_skill across the repo and update any code that reads or writes this
key; specifically, change the key in the workflow.md entry (quick_dev_workflow:
'{project-root}/_bmad/...') to quick_dev_skill and update any configuration
loaders, validators, or consumers that reference quick_dev_workflow (search for
the symbol quick_dev_workflow) so they now reference quick_dev_skill to avoid
coupling the config name to a file path.
src/bmm/workflows/bmad-quick-flow/bmad-quick-dev/steps/step-03-execute.md (1)

92-92: NEXT directive duplicates and diverges from frontmatter.

Line 92 points to ./steps/step-04-self-check.md, but frontmatter already defines navigation via nextStepFile (Line 5). This split contract is fragile and can desynchronize behavior.

Proposed fix
-When ALL tasks are complete (or halted on blocker), read fully and follow: `./steps/step-04-self-check.md`.
+When ALL tasks are complete (or halted on blocker), read fully and follow: `{nextStepFile}`.
🤖 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-dev/steps/step-03-execute.md` at
line 92, The "NEXT" directive in the body duplicates and can diverge from the
frontmatter navigation; remove or update the inline sentence "When ALL tasks are
complete (or halted on blocker), read fully and follow:
`./steps/step-04-self-check.md`" and instead rely on (or synchronize) the
frontmatter key nextStepFile to control navigation (update nextStepFile if the
intended target is different), ensuring only the frontmatter defines the next
step and the markdown body contains no conflicting NEXT directive.
src/bmm/workflows/bmad-quick-flow/bmad-quick-dev/steps/step-05-adversarial-review.md (1)

80-80: Use one canonical next-step reference here.

Line 80 hardcodes ./steps/step-06-resolve-findings.md, while frontmatter already declares nextStepFile (Line 5) as ./step-06-resolve-findings.md. Keeping both forms invites routing drift between tooling and agent prompt flow.

Proposed fix
-With findings in hand, read fully and follow: `./steps/step-06-resolve-findings.md` for user to choose resolution approach.
+With findings in hand, read fully and follow: `{nextStepFile}` for user to choose resolution approach.
🤖 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-dev/steps/step-05-adversarial-review.md`
at line 80, The markdown contains a hardcoded next-step link
'./steps/step-06-resolve-findings.md' that conflicts with the frontmatter key
nextStepFile which is './step-06-resolve-findings.md'; update the content in
step-05-adversarial-review.md to use the canonical reference (either reference
the frontmatter variable if the build supports it, or change the hardcoded link
to './step-06-resolve-findings.md') so the link matches nextStepFile and avoids
routing drift.
src/bmm/agents/quick-flow-solo-dev.agent.yaml (1)

27-27: QD still targets a filesystem workflow path instead of the skill entrypoint.

After converting quick-dev to a native skill, path-bound exec keeps this agent coupled to directory layout changes. Route via the skill entry to keep this stable through future relocations.

Based on learnings: “In BMAD-METHOD, agents and skills have a defined architectural relationship: agents are invoked via their skill entry point.”

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

In `@src/bmm/agents/quick-flow-solo-dev.agent.yaml` at line 27, The agent's exec
is hard-coded to a filesystem path
("{project-root}/_bmad/.../bmad-quick-dev/workflow.md"); update the exec field
to invoke the skill entrypoint instead of a file path so the agent calls the
native skill (e.g., replace the exec value with the skill entry reference for
the quick-dev skill—use the repository's agent-to-skill invocation format to
point at the bmad-quick-dev skill entrypoint such as bmad-quick-dev.<entrypoint>
or the equivalent skill: bmad-quick-dev reference) so the agent is decoupled
from directory layout changes.
src/bmm/workflows/bmad-quick-flow/bmad-quick-dev/steps/step-01-mode-detection.md (3)

153-154: Inconsistent capitalization in NEXT directive instructions undermines reliability.

Line 153 uses lowercase "read fully and follow" while line 154 uses capitalized "Read fully and follow". If these are processing markers parsed by the agent runtime, inconsistent capitalization could cause one directive to be recognized and the other to be ignored, leading to unpredictable workflow progression.

If these are free-text instructions for the LLM agent (not parsed markers), the inconsistency is harmless but sloppy. Either way, standardize the capitalization.

Standardize directive capitalization
-- Mode A (tech-spec): "**NEXT:** read fully and follow: `./steps/step-03-execute.md`"
+- Mode A (tech-spec): "**NEXT:** Read fully and follow: `./steps/step-03-execute.md`"
🤖 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-dev/steps/step-01-mode-detection.md`
around lines 153 - 154, The two NEXT directives under Mode A (tech-spec) and
Mode B (direct, [E] selected) use inconsistent capitalization ("read fully and
follow" vs "Read fully and follow"); update both NEXT lines so the directive
phrase is identical (for example, change both to "**NEXT:** Read fully and
follow: `./steps/step-03-execute.md`" and "**NEXT:** Read fully and follow:
`./steps/step-02-context-gathering.md`") to ensure the agent runtime/parser sees
the same marker text.

53-53: The step reference pattern breaks if step files are reorganized or renamed.

Lines 53, 153, and 154 hardcode step file names as string literals in NEXT directives. If the team decides to:

  • Rename steps (e.g., step-03-execute.mdstep-03-implementation.md)
  • Reorganize the directory structure (e.g., move steps to subdirectories)
  • Merge or split steps (e.g., combine step-02 and step-03)

...every NEXT directive across all step files must be manually updated. There's no type safety, no link validation, and no automated refactoring support.

The frontmatter variables nextStepFile_modeA and nextStepFile_modeB could serve as a single source of truth, but they're unused. Alternatively, the workflow could use symbolic step names (e.g., NEXT_STEP: execute) that map to file paths in a central configuration.

Consider either:

  1. Using the frontmatter variables in the NEXT directive text (e.g., "Read fully and follow: {nextStepFile_modeA}")
  2. Adding a build-time validation that checks all hardcoded step references resolve to actual files
  3. Documenting that step file renames require a global search-and-replace across all NEXT directives

Also applies to: 153-154

🤖 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-dev/steps/step-01-mode-detection.md`
at line 53, The NEXT directives currently hardcode step filenames which breaks
on renames; replace the string literals in the NEXT lines with the frontmatter
variables nextStepFile_modeA and nextStepFile_modeB (e.g., "Read fully and
follow: {nextStepFile_modeA}" / "{nextStepFile_modeB}") and ensure your markdown
rendering/template pipeline performs variable interpolation for those
frontmatter names; additionally add a small build-time validator that scans all
NEXT directives and resolves the referenced frontmatter-derived paths to actual
files to catch broken references during CI.

94-94: Excessive duplication of the step-02 reference path creates maintenance burden.

The path ./steps/step-02-context-gathering.md appears identically at lines 94, 117, 140, and 154. While the micro-file design pattern intentionally duplicates context for readability, duplicating the exact same path four times in a single file means any future refactoring (e.g., renaming step-02) requires finding and updating four identical string literals.

The frontmatter already defines nextStepFile_modeB: './step-02-context-gathering.md' (line 6) but that variable isn't used. If the frontmatter variable exists specifically to avoid this duplication, use it. If not, consider whether four hardcoded references to the same path in one file crosses the threshold from "self-contained readability" into "fragile maintenance burden."

Either reference the frontmatter variable in the NEXT directives, or consolidate the duplication with a markdown reference-style link that can be reused.

Also applies to: 117-117, 140-140, 154-154

🤖 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-dev/steps/step-01-mode-detection.md`
at line 94, Replace the four hardcoded NEXT references to
'./steps/step-02-context-gathering.md' in step-01-mode-detection.md with the
frontmatter variable nextStepFile_modeB (or a single markdown reference-style
link) so they all source the path from one place; locate the NEXT directives
(the lines containing "NEXT:" and the literal
'./steps/step-02-context-gathering.md') and update them to use
nextStepFile_modeB (or change to a reference link defined once near the top that
points to nextStepFile_modeB) to eliminate the duplicated string and ensure
future renames only need a single change.
🤖 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-dev/steps/step-02-context-gathering.md`:
- Line 100: The inline routing link "./steps/step-03-execute.md" in the body
should match the frontmatter key nextStepFile which is declared as
"./step-03-execute.md"; update either the frontmatter nextStepFile or the inline
link so both use the exact same path (prefer changing the body link
"./steps/step-03-execute.md" to "./step-03-execute.md") to eliminate routing
ambiguity and ensure step navigation is consistent across the file.

In
`@src/bmm/workflows/bmad-quick-flow/bmad-quick-dev/steps/step-04-self-check.md`:
- Line 92: The step transition is duplicated: the frontmatter key nextStepFile
uses "./step-05-adversarial-review.md" while the body hardcodes a link
"./steps/step-05-adversarial-review.md"; pick one canonical source (prefer the
frontmatter nextStepFile) and update the hardcoded line in step-04-self-check.md
to match nextStepFile exactly (or vice versa), ensuring both reference the same
relative path string so parsers and prompts use a single source of truth.

In `@src/bmm/workflows/bmad-quick-flow/bmad-quick-dev/workflow.md`:
- Line 37: The `installed_path` variable in the bmad-quick-dev workflow is
inconsistent and unused; either remove the `installed_path = "."` declaration
from the bmad-quick-dev workflow if it is not required, or restore it to the
standard explicit path pattern (e.g., `{project-root}/_bmad/...`) and update any
steps that should reference `{installed_path}` (mirroring how create-story uses
it for template.md, checklist.md, discover-inputs.md); if you intentionally keep
`"."`, add a short comment in the bmad-quick-dev workflow explaining why `"."`
is appropriate and when/where the value will be consumed.

In `@src/bmm/workflows/bmad-quick-flow/quick-spec/workflow.md`:
- Line 9: The quick_dev_workflow entry currently hardcodes a post-conversion
filesystem path; replace this raw path value for the quick_dev_workflow key with
a skill-resolved reference (e.g., the skill identity/name or token used by your
skill registry) so callers resolve the native quick-dev skill rather than
depending on "{project-root}/_bmad/…/workflow.md"; if any consumer only accepts
paths, implement a small resolver function on that consumer side that maps the
quick_dev_workflow skill identity to the actual file path at runtime instead of
embedding filesystem paths in this workflow config.

---

Outside diff comments:
In
`@src/bmm/workflows/bmad-quick-flow/bmad-quick-dev/steps/step-01-mode-detection.md`:
- Around line 89-100: The menu lacks enforcement that the agent halts and
captures a valid selection; add a runtime-blocking mechanism or an explicit
post-condition check around the menu presentation so execution cannot continue
until a valid user_selection (one of "P" or "E") is present; specifically, after
displaying "**Select:** [P] Plan first (tech-spec) [E] Execute directly" ensure
the runtime emits/awaits an input marker and then validate user_selection is set
and matches /^(P|E)$/ before executing the IF branches that redirect to
quick_spec_workflow or to step-02-context-gathering.md, and if validation fails
loop back to prompt the user rather than proceeding.
- Around line 5-6: Remove the unused frontmatter variables nextStepFile_modeA
and nextStepFile_modeB from the top of step-01-mode-detection.md; delete their
declarations entirely and ensure no other code or tooling references them
(search for nextStepFile_modeA/nextStepFile_modeB to confirm). Do not replace
them with new values—keep the NEXT directives that already hardcode the correct
paths (e.g., ./steps/step-03-execute.md and
./steps/step-02-context-gathering.md) so documentation matches execution. Update
nothing else and ensure frontmatter remains valid YAML after removal.

In `@src/bmm/workflows/bmad-quick-flow/bmad-quick-dev/workflow.md`:
- Around line 37-50: The file mixes absolute `{project-root}` paths (e.g.
`{project-root}/_bmad/bmm/workflows/bmad-quick-flow/quick-spec/workflow.md`,
`{project-root}/_bmad/core/workflows/…`) and a relative step path
(`./steps/step-01-mode-detection.md`), causing ambiguity; pick one canonical
resolution style and apply it consistently: either convert the `Related
Workflows` entries to relative paths from this file (e.g. adjust the three
`{project-root}/...` references to the correct `../`/`./` relative locations) or
change the `Read fully and follow: ./steps/step-01-mode-detection.md` line to
use the `{project-root}` absolute pattern to match the others, and add a short
comment at the top of the file stating the chosen convention; update all path
strings (those exact quoted path literals) to the chosen style so every internal
reference in this file follows the same resolution pattern.

---

Nitpick comments:
In `@src/bmm/agents/quick-flow-solo-dev.agent.yaml`:
- Line 27: The agent's exec is hard-coded to a filesystem path
("{project-root}/_bmad/.../bmad-quick-dev/workflow.md"); update the exec field
to invoke the skill entrypoint instead of a file path so the agent calls the
native skill (e.g., replace the exec value with the skill entry reference for
the quick-dev skill—use the repository's agent-to-skill invocation format to
point at the bmad-quick-dev skill entrypoint such as bmad-quick-dev.<entrypoint>
or the equivalent skill: bmad-quick-dev reference) so the agent is decoupled
from directory layout changes.

In
`@src/bmm/workflows/bmad-quick-flow/bmad-quick-dev/steps/step-01-mode-detection.md`:
- Around line 153-154: The two NEXT directives under Mode A (tech-spec) and Mode
B (direct, [E] selected) use inconsistent capitalization ("read fully and
follow" vs "Read fully and follow"); update both NEXT lines so the directive
phrase is identical (for example, change both to "**NEXT:** Read fully and
follow: `./steps/step-03-execute.md`" and "**NEXT:** Read fully and follow:
`./steps/step-02-context-gathering.md`") to ensure the agent runtime/parser sees
the same marker text.
- Line 53: The NEXT directives currently hardcode step filenames which breaks on
renames; replace the string literals in the NEXT lines with the frontmatter
variables nextStepFile_modeA and nextStepFile_modeB (e.g., "Read fully and
follow: {nextStepFile_modeA}" / "{nextStepFile_modeB}") and ensure your markdown
rendering/template pipeline performs variable interpolation for those
frontmatter names; additionally add a small build-time validator that scans all
NEXT directives and resolves the referenced frontmatter-derived paths to actual
files to catch broken references during CI.
- Line 94: Replace the four hardcoded NEXT references to
'./steps/step-02-context-gathering.md' in step-01-mode-detection.md with the
frontmatter variable nextStepFile_modeB (or a single markdown reference-style
link) so they all source the path from one place; locate the NEXT directives
(the lines containing "NEXT:" and the literal
'./steps/step-02-context-gathering.md') and update them to use
nextStepFile_modeB (or change to a reference link defined once near the top that
points to nextStepFile_modeB) to eliminate the duplicated string and ensure
future renames only need a single change.

In `@src/bmm/workflows/bmad-quick-flow/bmad-quick-dev/steps/step-03-execute.md`:
- Line 92: The "NEXT" directive in the body duplicates and can diverge from the
frontmatter navigation; remove or update the inline sentence "When ALL tasks are
complete (or halted on blocker), read fully and follow:
`./steps/step-04-self-check.md`" and instead rely on (or synchronize) the
frontmatter key nextStepFile to control navigation (update nextStepFile if the
intended target is different), ensuring only the frontmatter defines the next
step and the markdown body contains no conflicting NEXT directive.

In
`@src/bmm/workflows/bmad-quick-flow/bmad-quick-dev/steps/step-05-adversarial-review.md`:
- Line 80: The markdown contains a hardcoded next-step link
'./steps/step-06-resolve-findings.md' that conflicts with the frontmatter key
nextStepFile which is './step-06-resolve-findings.md'; update the content in
step-05-adversarial-review.md to use the canonical reference (either reference
the frontmatter variable if the build supports it, or change the hardcoded link
to './step-06-resolve-findings.md') so the link matches nextStepFile and avoids
routing drift.

In `@src/bmm/workflows/bmad-quick-flow/quick-spec/workflow.md`:
- Line 9: Rename the config key quick_dev_workflow to a skill-oriented name such
as quick_dev_skill across the repo and update any code that reads or writes this
key; specifically, change the key in the workflow.md entry (quick_dev_workflow:
'{project-root}/_bmad/...') to quick_dev_skill and update any configuration
loaders, validators, or consumers that reference quick_dev_workflow (search for
the symbol quick_dev_workflow) so they now reference quick_dev_skill to avoid
coupling the config name to a file path.
🪄 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: 6eb49c29-a114-4fee-8fed-af5a6e919ffd

📥 Commits

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

⛔ Files ignored due to path filters (1)
  • src/bmm/module-help.csv is excluded by !**/*.csv
📒 Files selected for processing (12)
  • src/bmm/agents/quick-flow-solo-dev.agent.yaml
  • src/bmm/workflows/bmad-quick-flow/bmad-quick-dev/SKILL.md
  • src/bmm/workflows/bmad-quick-flow/bmad-quick-dev/bmad-skill-manifest.yaml
  • src/bmm/workflows/bmad-quick-flow/bmad-quick-dev/steps/step-01-mode-detection.md
  • src/bmm/workflows/bmad-quick-flow/bmad-quick-dev/steps/step-02-context-gathering.md
  • src/bmm/workflows/bmad-quick-flow/bmad-quick-dev/steps/step-03-execute.md
  • src/bmm/workflows/bmad-quick-flow/bmad-quick-dev/steps/step-04-self-check.md
  • src/bmm/workflows/bmad-quick-flow/bmad-quick-dev/steps/step-05-adversarial-review.md
  • src/bmm/workflows/bmad-quick-flow/bmad-quick-dev/steps/step-06-resolve-findings.md
  • src/bmm/workflows/bmad-quick-flow/bmad-quick-dev/workflow.md
  • src/bmm/workflows/bmad-quick-flow/quick-dev/bmad-skill-manifest.yaml
  • src/bmm/workflows/bmad-quick-flow/quick-spec/workflow.md
💤 Files with no reviewable changes (1)
  • src/bmm/workflows/bmad-quick-flow/quick-dev/bmad-skill-manifest.yaml

**CRITICAL:** When user confirms ready, explicitly state:

- **y:** "**NEXT:** Read fully and follow: `{project-root}/_bmad/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-03-execute.md`"
- **y:** "**NEXT:** Read fully and follow: `./steps/step-03-execute.md`"
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

Routing instruction diverges from declared nextStepFile.

Line 100 uses ./steps/step-03-execute.md, while frontmatter already declares next-step routing as ./step-03-execute.md. This creates maintainability and execution ambiguity.

Proposed fix
-- **y:** "**NEXT:** Read fully and follow: `./steps/step-03-execute.md`"
+- **y:** "**NEXT:** Read fully and follow: `{nextStepFile}`"
🤖 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-dev/steps/step-02-context-gathering.md`
at line 100, The inline routing link "./steps/step-03-execute.md" in the body
should match the frontmatter key nextStepFile which is declared as
"./step-03-execute.md"; update either the frontmatter nextStepFile or the inline
link so both use the exact same path (prefer changing the body link
"./steps/step-03-execute.md" to "./step-03-execute.md") to eliminate routing
ambiguity and ensure step navigation is consistent across the file.

## NEXT STEP

Proceed immediately to `{project-root}/_bmad/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-05-adversarial-review.md`.
Proceed immediately to `./steps/step-05-adversarial-review.md`.
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

Step transition path is duplicated in two incompatible forms.

Line 92 hardcodes ./steps/step-05-adversarial-review.md while frontmatter has nextStepFile set differently (./step-05-adversarial-review.md). Keep one source of truth to avoid parser/prompt mismatch.

Proposed fix
-Proceed immediately to `./steps/step-05-adversarial-review.md`.
+Proceed immediately to `{nextStepFile}`.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
Proceed immediately to `./steps/step-05-adversarial-review.md`.
Proceed immediately to `{nextStepFile}`.
🤖 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-dev/steps/step-04-self-check.md`
at line 92, The step transition is duplicated: the frontmatter key nextStepFile
uses "./step-05-adversarial-review.md" while the body hardcodes a link
"./steps/step-05-adversarial-review.md"; pick one canonical source (prefer the
frontmatter nextStepFile) and update the hardcoded line in step-04-self-check.md
to match nextStepFile exactly (or vice versa), ensuring both reference the same
relative path string so parsers and prompts use a single source of truth.

### Paths

- `installed_path` = `{project-root}/_bmad/bmm/workflows/bmad-quick-flow/quick-dev`
- `installed_path` = `.`
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

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Find all usages of installed_path variable to understand resolution context

# Search for installed_path references in workflow steps
rg -nP '\{installed_path\}' src/bmm/workflows/bmad-quick-flow/bmad-quick-dev/

# Search for installed_path in the installer/agent runtime
rg -nP 'installed_path' tools/cli/

# Check if other skill-type workflows use "." pattern
fd -e md -x grep -l "^- \`installed_path\` = \`\.\`" {} \; src/bmm/workflows/

Repository: bmad-code-org/BMAD-METHOD

Length of output: 446


🏁 Script executed:

#!/bin/bash
# Fixed script to find installed_path usage

echo "=== Searching for {installed_path} references in bmad-quick-dev workflow ==="
rg -nP '\{installed_path\}' src/bmm/workflows/bmad-quick-flow/bmad-quick-dev/

echo ""
echo "=== Searching for installed_path in tools/cli ==="
rg -n 'installed_path' tools/cli/ | head -50

echo ""
echo "=== Checking installed_path values across all skill workflows ==="
rg -n 'installed_path.*=' src/bmm/workflows/ --type md | head -30

echo ""
echo "=== Finding the workflow.md file to inspect its content ==="
cat -n src/bmm/workflows/bmad-quick-flow/bmad-quick-dev/workflow.md | sed -n '30,45p'

Repository: bmad-code-org/BMAD-METHOD

Length of output: 3297


🏁 Script executed:

#!/bin/bash
echo "=== Searching for variable consumption in installer/agent runtime ==="
rg -n 'installed_path' tools/ --type js --type ts -B2 -A2 | head -80

echo ""
echo "=== Checking how workflow variables are parsed and used ==="
rg -n 'UNRESOLVABLE_VARS|installed_path|project-root' tools/cli/installers/lib/ --type js | head -50

echo ""
echo "=== Checking if variables from workflow.md are used elsewhere ==="
rg -n 'variables|paths.*installed_path' src/ --type md | head -20

echo ""
echo "=== Looking at skill manifest generation to understand variable usage ==="
rg -n 'skill.*variables|getWorkflow|parseVariables' tools/cli/installers/lib/ --type js | head -40

Repository: bmad-code-org/BMAD-METHOD

Length of output: 11062


🏁 Script executed:

#!/bin/bash
echo "=== Finding all {installed_path} references across entire codebase ==="
rg -rn '\{installed_path\}' src/ --type md | head -50

echo ""
echo "=== Looking at create-story workflow that references installed_path ==="
rg -B5 -A5 '\{installed_path\}' src/bmm/workflows/4-implementation/create-story/

echo ""
echo "=== Checking if installed_path is used in bmad-quick-dev steps ==="
ls -la src/bmm/workflows/bmad-quick-flow/bmad-quick-dev/steps/ 2>/dev/null | head -20
rg '\{installed_path\}' src/bmm/workflows/bmad-quick-flow/bmad-quick-dev/steps/ --type md

echo ""
echo "=== Understanding skill installation and path resolution ==="
rg -n 'installVerbatimSkills|installed.*skill|skill.*directory' tools/cli/installers/lib/ide/_config-driven.js -A3 -B1 | head -60

Repository: bmad-code-org/BMAD-METHOD

Length of output: 13154


🏁 Script executed:

#!/bin/bash
echo "=== Comprehensive check for {installed_path} in bmad-quick-dev workflow and steps ==="
rg '\{installed_path\}' src/bmm/workflows/bmad-quick-flow/bmad-quick-dev/ -A2 -B2

echo ""
echo "=== Checking all step files explicitly ==="
for file in src/bmm/workflows/bmad-quick-flow/bmad-quick-dev/steps/*.md; do
  echo "=== File: $(basename $file) ==="
  grep -i 'installed_path\|{.*}' "$file" | head -5
done

echo ""
echo "=== Compare: checking create-story which DOES use installed_path ==="
echo "Number of {installed_path} references in create-story:"
rg '\{installed_path\}' src/bmm/workflows/4-implementation/create-story/ --type md | wc -l

echo ""
echo "=== Check the actual workflow.md content around line 37 in bmad-quick-dev ==="
sed -n '30,50p' src/bmm/workflows/bmad-quick-flow/bmad-quick-dev/workflow.md

Repository: bmad-code-org/BMAD-METHOD

Length of output: 2875


🏁 Script executed:

#!/bin/bash
# One final check: is installed_path used by framework code for any workflow?
echo "=== Checking if framework interprets/consumes installed_path from workflow metadata ==="
rg -n 'installed_path' tools/cli/installers/lib/ --type js -B2 -A2 | head -40

Repository: bmad-code-org/BMAD-METHOD

Length of output: 156


Inconsistent and apparently unused installed_path declaration.

The installed_path = "." value breaks the established pattern: all 14+ other workflows declare installed_path with an explicit {project-root}/_bmad/... path. More critically, {installed_path} is not referenced anywhere in the bmad-quick-dev workflow steps—whereas other workflows like create-story use it 6+ times to resolve local files (template.md, checklist.md, discover-inputs.md).

The variable appears to be unused metadata, yet its value has been changed from an explicit absolute path to a bare .. This suggests either incomplete refactoring or deferred usage that requires clarification. If this variable is truly not needed for this workflow, remove the declaration. If it's intentionally deferred, document why . is the appropriate value and when it will be consumed.

🤖 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-dev/workflow.md` at line 37, The
`installed_path` variable in the bmad-quick-dev workflow is inconsistent and
unused; either remove the `installed_path = "."` declaration from the
bmad-quick-dev workflow if it is not required, or restore it to the standard
explicit path pattern (e.g., `{project-root}/_bmad/...`) and update any steps
that should reference `{installed_path}` (mirroring how create-story uses it for
template.md, checklist.md, discover-inputs.md); if you intentionally keep `"."`,
add a short comment in the bmad-quick-dev workflow explaining why `"."` is
appropriate and when/where the value will be consumed.

advanced_elicitation: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md'
party_mode_exec: '{project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md'
quick_dev_workflow: '{project-root}/_bmad/bmm/workflows/bmad-quick-flow/quick-dev/workflow.md'
quick_dev_workflow: '{project-root}/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-dev/workflow.md'
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

quick_dev_workflow still hardcodes internal file layout post-conversion.

Now that quick-dev is a native skill, Line 9 should resolve via skill identity rather than a raw workflow path. This path already changed once in this PR; keeping it path-bound invites repeat breakage.

Proposed direction
-quick_dev_workflow: '{project-root}/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-dev/workflow.md'
+quick_dev_workflow: 'skill:bmad-quick-dev'

If this key is consumed by a path-only caller, then introduce a resolver layer there rather than hardcoding filesystem paths in workflow config.

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

In `@src/bmm/workflows/bmad-quick-flow/quick-spec/workflow.md` at line 9, The
quick_dev_workflow entry currently hardcodes a post-conversion filesystem path;
replace this raw path value for the quick_dev_workflow key with a skill-resolved
reference (e.g., the skill identity/name or token used by your skill registry)
so callers resolve the native quick-dev skill rather than depending on
"{project-root}/_bmad/…/workflow.md"; if any consumer only accepts paths,
implement a small resolver function on that consumer side that maps the
quick_dev_workflow skill identity to the actual file path at runtime instead of
embedding filesystem paths in this workflow config.

@alexeyv alexeyv force-pushed the convert-quick-dev-skill branch from 1944489 to 6609667 Compare March 13, 2026 05:32
@alexeyv alexeyv merged commit 75867b0 into main Mar 13, 2026
5 checks passed
@alexeyv alexeyv deleted the convert-quick-dev-skill branch March 13, 2026 06:11
alexeyv added a commit to alexeyv/BMAD-METHOD that referenced this pull request Mar 13, 2026
…#1948)

* chore(bmm): convert quick-dev workflow to native skill package

* fix(bmm): normalize quick-dev skill references

* fix(bmm): remove duplicate quick-dev workflow metadata

* fix(bmm): inline quick-dev skill handoff references
alexeyv added a commit that referenced this pull request Mar 14, 2026
* chore(bmm): convert quick-dev workflow to native skill package

* fix(bmm): normalize quick-dev skill references

* fix(bmm): remove duplicate quick-dev workflow metadata

* fix(bmm): inline quick-dev skill handoff references
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