Skip to content

fix(create-story): normalize internal path refs to relative#1975

Merged
alexeyv merged 1 commit intomainfrom
convert-create-story-skill
Mar 14, 2026
Merged

fix(create-story): normalize internal path refs to relative#1975
alexeyv merged 1 commit intomainfrom
convert-create-story-skill

Conversation

@alexeyv
Copy link
Copy Markdown
Collaborator

@alexeyv alexeyv commented Mar 14, 2026

Summary

Post-conversion cleanup for the create-story native skill:

  • Remove name/description frontmatter from workflow.md (metadata belongs in SKILL.md)
  • Replace {installed_path}/ references with ./ relative paths in workflow.md and checklist.md

These are mechanical fixes per the workflow-to-skill conversion patch process — no behavior changes.

Files changed

  • src/bmm/workflows/4-implementation/bmad-create-story/workflow.md
  • src/bmm/workflows/4-implementation/bmad-create-story/checklist.md

@augmentcode
Copy link
Copy Markdown

augmentcode bot commented Mar 14, 2026

🤖 Augment PR Summary

Summary: This PR normalizes how “native” workflow skills are referenced and packaged, with a focus on the create-story skill.

Changes:

  • Switches multiple agent menu entries from direct workflow file paths to skill:<canonicalId> references (e.g., create-story, dev-story, create-architecture, domain-research).
  • Promotes several workflows into explicit “skill directories” by adding SKILL.md (name/description frontmatter) and a minimal bmad-skill-manifest.yaml (type: skill).
  • Renames/re-homes workflow directories to canonical skill IDs (e.g., create-storybmad-create-story) and updates intra-skill references to use relative paths (./…).
  • Removes legacy workflow frontmatter and legacy per-workflow entries from older bmad-skill-manifest.yaml locations where the directory is now treated as a skill.
  • Updates quick-flow handoffs so Quick-Spec can direct execution by invoking the bmad-quick-dev skill instead of pointing at a workflow file path.
  • Adds an npm quality script mirroring the repo’s standard validation/lint/docs/test checks.
  • Adds AGENTS.md with repo contribution/run-quality expectations.
  • Adjusts a workflow-path regex test fixture and updates an installer comment example to match the new workflow path naming.

Technical Notes: Skill discovery appears to rely on bmad-skill-manifest.yaml (type: skill) plus SKILL.md frontmatter (validated to match the directory name), and relative ./ references are used to keep same-skill links portable across installs.

🤖 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. No suggestions at this time.

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

@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Mar 14, 2026

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 56bf3631-e74e-4636-9b27-4de3b18804e0

📥 Commits

Reviewing files that changed from the base of the PR and between 66e66cc and 8265153.

📒 Files selected for processing (2)
  • src/bmm/workflows/4-implementation/bmad-create-story/checklist.md
  • src/bmm/workflows/4-implementation/bmad-create-story/workflow.md

📝 Walkthrough

Walkthrough

Updated path references in the bmad-create-story workflow from hardcoded installed_path variables to relative paths. Simplified workflow file structure by removing header metadata and converting action references to use relative directory notation (./). Minor language update replacing informal terminology with standard phrasing.

Changes

Cohort / File(s) Summary
Workflow Path Reference Updates
src/bmm/workflows/4-implementation/bmad-create-story/checklist.md, src/bmm/workflows/4-implementation/bmad-create-story/workflow.md
Updated path references from {installed_path}/ variables to relative ./ paths for workflow configuration loading. Removed header metadata block. Changed informal language ("fuckups") to standard terminology ("mistakes"). Consolidated hardcoded absolute-like paths to project-relative references.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~5 minutes

Possibly related PRs

Suggested reviewers

  • pbean
  • muratkeremozcan
  • cecil-the-coder
🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Title check ✅ Passed The pull request title clearly describes the primary change: normalizing internal path references in the create-story workflow to relative paths as part of native skill conversion cleanup.
Description check ✅ Passed The pull request description is directly related to the changeset, explaining the post-conversion cleanup including removal of frontmatter metadata and normalization of path references from {installed_path}/ to relative ./ paths.

✏️ 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-create-story-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: 7

Caution

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

⚠️ Outside diff range comments (11)
src/bmm/agents/quick-flow-solo-dev.agent.yaml (1)

22-35: ⚠️ Potential issue | 🟡 Minor

Use consistent skill: reference pattern for all registered skills in this agent menu.

All four menu items (quick-spec, bmad-quick-dev, bmad-quick-dev-new-preview, code-review) are registered skills (each has a bmad-skill-manifest.yaml), yet three use file-path references while only bmad-quick-dev uses the skill: pattern. Standardize on skill:quick-spec, skill:bmad-quick-dev-new-preview, and skill:code-review for consistency with the modern pattern used across other agents.

🤖 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` around lines 22 - 35, The menu
uses mixed exec references: change the exec values for the QS (quick-spec), QQ
(bmad-quick-dev-new-preview), and CR (code-review) entries from file-paths
("{project-root}/.../workflow.md") to the skill: pattern to match the existing
QD entry; specifically replace the exec strings for trigger "QS" with
"skill:quick-spec", for trigger "QQ" with "skill:bmad-quick-dev-new-preview",
and for trigger "CR" with "skill:code-review" while leaving the existing "QD" /
"skill:bmad-quick-dev" entry unchanged.
src/bmm/workflows/2-plan-workflows/bmad-create-ux-design/steps/step-01b-continue.md (1)

34-34: ⚠️ Potential issue | 🟠 Major

Inconsistent protocol reference: bmad-party-mode still uses project-root path.

This file uses skill:bmad-advanced-elicitation on line 33, but line 34 references bmad-party-mode with the old {project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md pattern. The PR objective is to "normalize references," yet protocol invocations remain split between two resolution schemes.

Why wasn't this normalized to a skill reference like the other protocol?

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

In
`@src/bmm/workflows/2-plan-workflows/bmad-create-ux-design/steps/step-01b-continue.md`
at line 34, The step references are inconsistent: replace the legacy
project-root protocol invocation of bmad-party-mode with the normalized skill
reference to match skill:bmad-advanced-elicitation; edit step-01b-continue.md to
change the old {project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md
invocation to skill:bmad-party-mode (and verify any parameters/inputs used by
the workflow match the skill's interface).
src/bmm/workflows/3-solutioning/bmad-create-architecture/steps/step-02-context.md (1)

34-35: ⚠️ Potential issue | 🟠 Major

Protocol invocation inconsistency in create-architecture workflow.

Line 34 says "Invoke the bmad-advanced-elicitation skill" (descriptive text, not a structured invocation), while line 35 uses the old {project-root} path for bmad-party-mode. This file doesn't even use the skill: prefix pattern seen in the UX design steps, which adds a third variation to the inconsistency.

The PR touches multiple workflows but normalizes them to different invocation patterns. Why?

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

In
`@src/bmm/workflows/3-solutioning/bmad-create-architecture/steps/step-02-context.md`
around lines 34 - 35, The step-02-context.md text mixes invocation styles: a
bare descriptive "Invoke the `bmad-advanced-elicitation` skill" and an old
`{project-root}/_bmad/.../workflow.md` path for `bmad-party-mode`, and omits the
standardized "skill:" prefix used elsewhere; update this file to use the same
protocol invocation pattern as other UX steps by replacing the descriptive line
with a structured invocation (e.g., use the "skill:bmad-advanced-elicitation"
form) and replace the legacy path with "skill:bmad-party-mode" (or the project's
canonical skill identifier) so both branches use the identical "skill:" prefix
convention consistent with other workflows.
src/bmm/workflows/2-plan-workflows/bmad-create-ux-design/steps/step-12-ux-patterns.md (1)

33-34: ⚠️ Potential issue | 🟠 Major

Protocol invocation inconsistency continues.

Sixth occurrence: skill:bmad-advanced-elicitation (line 33) vs. {project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md (line 34). At this point, it's clear the refactoring is incomplete.

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

In
`@src/bmm/workflows/2-plan-workflows/bmad-create-ux-design/steps/step-12-ux-patterns.md`
around lines 33 - 34, The two protocol invocation forms are inconsistent:
"skill:bmad-advanced-elicitation" vs
"{project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md"; pick the
canonical invocation style used across the repo (either the skill: namespace or
the file-path workflow reference) and update the step text to match it—replace
"skill:bmad-advanced-elicitation" with the equivalent file path if the repo
standard is file paths, or replace
"{project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md" with
"skill:bmad-advanced-elicitation" if the canonical form is skill:; ensure both
branches (the 'A' and 'P' lines) use the same format so the protocol invocation
is consistent.
src/bmm/workflows/2-plan-workflows/bmad-create-ux-design/steps/step-13-responsive-accessibility.md (1)

33-34: ⚠️ Potential issue | 🟠 Major

Protocol invocation inconsistency (again).

Same split: skill:bmad-advanced-elicitation vs. {project-root} for bmad-party-mode. This is now the fifth file with this exact issue, confirming it's a systematic gap in the refactoring.

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

In
`@src/bmm/workflows/2-plan-workflows/bmad-create-ux-design/steps/step-13-responsive-accessibility.md`
around lines 33 - 34, The two protocol invocation formats in
step-13-responsive-accessibility.md are inconsistent:
`skill:bmad-advanced-elicitation` vs
`{project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md`; pick the
canonical invocation style used elsewhere (e.g., `skill:<name>`), and update the
bmad-party-mode reference to match (replace the filesystem path with
`skill:bmad-party-mode`), ensuring both entries use the same format and run a
quick search to fix the same inconsistency in other files if present.
src/bmm/workflows/2-plan-workflows/bmad-create-ux-design/steps/step-03-core-experience.md (1)

33-34: ⚠️ Potential issue | 🟠 Major

Protocol invocation inconsistency persists.

Identical issue: bmad-advanced-elicitation uses the modern skill: prefix (line 33), but bmad-party-mode still uses the legacy {project-root} path (line 34). This undermines the PR's stated goal to "normalize references."

This pattern repeats across every UX design step file in this PR, which suggests a systematic gap in the refactoring scope.

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

In
`@src/bmm/workflows/2-plan-workflows/bmad-create-ux-design/steps/step-03-core-experience.md`
around lines 33 - 34, The comment flags mixed protocol usage: replace the legacy
reference "{project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md" with
the normalized modern protocol "skill:bmad-party-mode" in
step-03-core-experience.md so it matches the existing
"skill:bmad-advanced-elicitation" usage; then sweep other UX design step files
in the PR and update any remaining "{project-root}/_bmad/..." workflow paths to
the corresponding "skill:<workflow-name>" form to normalize all references.
src/bmm/workflows/2-plan-workflows/bmad-create-ux-design/steps/step-02-discovery.md (1)

33-34: ⚠️ Potential issue | 🟠 Major

Same protocol invocation inconsistency.

Yet another instance: skill:bmad-advanced-elicitation on line 33, but {project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md on line 34. The PR normalizes step-to-step references but leaves protocol references fragmented.

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

In
`@src/bmm/workflows/2-plan-workflows/bmad-create-ux-design/steps/step-02-discovery.md`
around lines 33 - 34, The two protocol references in step-02-discovery.md are
inconsistent: one uses the "skill:" invocation (skill:bmad-advanced-elicitation)
while the other uses a file path
({project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md); standardize
them to the same protocol style. Replace the filesystem path reference with the
normalized protocol form (e.g., skill:bmad-party-mode) so both branches use
"skill:..." style, and verify similar step references follow this pattern
elsewhere in the file (look for skill:bmad-advanced-elicitation and the
party-mode workflow reference).
src/bmm/workflows/3-solutioning/bmad-create-architecture/steps/step-01-init.md (1)

98-98: ⚠️ Potential issue | 🟠 Major

No fallback if template file is missing.

Line 98 copies {installed_path}/architecture-decision-template.md to create the initial document, but there's no validation that the template exists or is readable. If the installation is corrupted, the file is deleted, or the path variable is wrong, the workflow fails immediately with no recovery path.

Add a pre-flight check: verify the template file exists and is readable before attempting the copy. HALT with a clear error ("Template file not found at {installed_path}/architecture-decision-template.md. Re-install BMAD or check installation integrity.") if validation fails.

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

In
`@src/bmm/workflows/3-solutioning/bmad-create-architecture/steps/step-01-init.md`
at line 98, Add a pre-flight validation before the copy step that checks that
`{installed_path}/architecture-decision-template.md` exists and is readable; if
the check fails, HALT the workflow and emit the exact error message "Template
file not found at {installed_path}/architecture-decision-template.md. Re-install
BMAD or check installation integrity." instead of attempting the copy to
`{planning_artifacts}/architecture.md`; ensure the check runs immediately prior
to the copy operation in step-01-init.md so the workflow doesn't proceed on a
missing or unreadable template.
src/bmm/workflows/2-plan-workflows/bmad-create-ux-design/steps/step-01-init.md (1)

83-83: ⚠️ Potential issue | 🟠 Major

Template path inconsistency (same pattern as architecture workflow).

Line 83 still uses {installed_path}/ux-design-template.md, mirroring the same inconsistency flagged in bmad-create-architecture/steps/step-01-init.md line 98. The PR normalizes step-to-step references to relative paths but leaves template references pointing to {installed_path}.

This pattern appears across multiple workflows. If the goal is to eliminate {installed_path} dependencies, ALL template references must be updated, not just step-to-step navigation. If templates are intentionally kept as external dependencies, document why step files are treated differently from templates in the path normalization strategy.

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

In
`@src/bmm/workflows/2-plan-workflows/bmad-create-ux-design/steps/step-01-init.md`
at line 83, The step file still references the template via the external
placeholder `{installed_path}/ux-design-template.md` while other steps were
normalized to relative paths; update this template reference in step-01-init.md
to the same normalized pattern used elsewhere (e.g., replace
`{installed_path}/ux-design-template.md` with the relative template path pattern
used across workflows, ensuring the copy command targets the repository-local
template and not an external installed path), and audit other workflow step
files for the same `{installed_path}` occurrences to convert them consistently
or add a short comment documenting why templates remain external if that is
intentional (look for the exact string `{installed_path}/ux-design-template.md`
and the target `{planning_artifacts}/ux-design-specification.md` to apply the
change).
src/bmm/workflows/bmad-quick-flow/bmad-quick-dev/steps/step-05-adversarial-review.md (1)

69-80: ⚠️ Potential issue | 🟠 Major

HALT on zero findings conflicts with unconditional step transition.

Line [69] mandates halting when findings are zero, but Line [80] still unconditionally advances. That ambiguity can bypass the intended re-analysis gate.

Proposed update
-**If zero findings:** HALT - this is suspicious. Re-analyze or request user guidance.
+**If zero findings:** HALT and ask the user whether to re-run review or continue explicitly.

 ...
-With findings in hand, read fully and follow: `{nextStepFile}` for user to choose resolution approach.
+If findings exist, or the user explicitly confirms continuing after a zero-findings halt, 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`
around lines 69 - 80, The step currently conflicts because the "If zero
findings: HALT" rule (the HALT branch in step-05-adversarial-review.md) is
incompatible with the unconditional NEXT STEP transition to `{nextStepFile}`;
update the step so advancing to `{nextStepFile}` only occurs when findings exist
(e.g., findings count > 0) or when the user explicitly opts to continue after a
zero-findings result, otherwise stop and require re-analysis or user guidance;
modify the text around the "If zero findings: HALT" and the "NEXT STEP"
paragraph so the transition is conditional and add a short user
prompt/instruction to request re-analysis or confirmation before continuing.
src/bmm/workflows/1-analysis/bmad-create-product-brief/steps/step-01-init.md (1)

76-80: ⚠️ Potential issue | 🟠 Major

Continuation routing conflicts with the step’s confirmation gate.

Line [76] declares an automatic handoff with no user choice. Elsewhere in this step, progression is described as C-gated. Keep one explicit rule (or clearly document the continuation exception) to avoid nondeterministic behavior across agents.

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

In `@src/bmm/workflows/1-analysis/bmad-create-product-brief/steps/step-01-init.md`
around lines 76 - 80, Resolve the contradiction between the automatic handoff
and the step’s confirmation gate by choosing one behavior and making it
explicit: either remove the automatic "STOP immediately" /
"./step-01b-continue.md" routing so the step remains C-gated, or keep the
auto-proceed but clearly document an exception to the confirmation gate (e.g.,
only auto-proceed when an explicit continuation flag is present). Update the
text in step-01-init.md to remove the conflicting line or add a precise
conditional rule referencing "STOP immediately", "./step-01b-continue.md", and
the step’s C-gated confirmation so agents have a single deterministic
progression rule.
🧹 Nitpick comments (25)
src/bmm/workflows/1-analysis/research/bmad-domain-research/SKILL.md (1)

3-3: Description is overly narrow for intent routing.

Line 3 only keys off one exact utterance pattern ("lets create a research report on..."). Broaden the trigger language to include equivalent intents (e.g., “research [industry]”, “industry report”, “market/domain analysis”) so skill selection is less brittle.

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

In `@src/bmm/workflows/1-analysis/research/bmad-domain-research/SKILL.md` at line
3, The skill description field is too narrow and only matches the exact phrase
"lets create a research report on ..."; update the description (the
'description' value in SKILL.md) to include a broader set of trigger phrases and
synonyms such as "research [industry/domain]", "industry report", "market
analysis", "domain analysis", "create a research report", and "conduct research
on [domain]" so intent routing is less brittle; ensure the new description lists
several example utterances or patterns and keeps the original example for
backwards-compatibility.
src/bmm/workflows/1-analysis/research/bmad-domain-research/domain-steps/step-01-init.md (1)

81-81: Duplicate transition target can drift.

Lines 81 and 135 repeat the same next-step path literal. Keep a single source of truth (e.g., frontmatter variable) to prevent one side being updated without the other.

Also applies to: 135-135

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

In
`@src/bmm/workflows/1-analysis/research/bmad-domain-research/domain-steps/step-01-init.md`
at line 81, The markdown repeats the next-step path literal "Load:
`./step-02-domain-analysis.md`" in multiple places; introduce a single
frontmatter variable (e.g., next_step: "./step-02-domain-analysis.md") in the
document frontmatter and replace both inline literals with that variable
reference (for example use a template or include syntax your site generator
supports) so "Load: `./step-02-domain-analysis.md`" is derived from next_step
and cannot drift out of sync.
src/bmm/workflows/1-analysis/research/bmad-domain-research/research.template.md (1)

15-15: Report title is too generic for artifact identification.

Line 15 titles by {{research_type}} only. Include {{research_topic}} in the heading so multi-report repositories can distinguish artifacts quickly.

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

In
`@src/bmm/workflows/1-analysis/research/bmad-domain-research/research.template.md`
at line 15, The template heading only uses {{research_type}} which is too
generic; update the heading in research.template.md to include both
{{research_type}} and {{research_topic}} (e.g., combine them with a separator
like " - " or parentheses) so generated report filenames and headings uniquely
identify the artifact; locate the heading line containing {{research_type}} and
modify it to incorporate {{research_topic}} as well.
src/bmm/workflows/1-analysis/research/bmad-domain-research/domain-steps/step-02-domain-analysis.md (1)

174-174: Avoid repeated hardcoded next-step paths.

Lines 174 and 227 duplicate the same target. Consolidate into a single reference to prevent silent routing inconsistencies later.

Also applies to: 227-227

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

In
`@src/bmm/workflows/1-analysis/research/bmad-domain-research/domain-steps/step-02-domain-analysis.md`
at line 174, The repeated hardcoded next-step path "Load:
`./step-03-competitive-landscape.md`" in step-02-domain-analysis.md should be
consolidated: create a single reusable reference (for example a top-of-file
constant or a markdown reference link like `[next-step]:
./step-03-competitive-landscape.md`) and replace each hardcoded "Load:
`./step-03-competitive-landscape.md`" occurrence with that reference (e.g.,
"Load: [next-step]") so both places (the duplicated Load lines) point to the
single source of truth and avoid routing drift.
src/bmm/workflows/1-analysis/research/bmad-domain-research/domain-steps/step-04-regulatory-focus.md (1)

158-158: Transition target is duplicated across instruction blocks.

Lines 158 and 204 carry the same hardcoded next-step value. Consider defining the next-step file once and reusing it to reduce mismatch risk during future edits.

Also applies to: 204-204

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

In
`@src/bmm/workflows/1-analysis/research/bmad-domain-research/domain-steps/step-04-regulatory-focus.md`
at line 158, The next-step target './step-05-technical-trends.md' is duplicated
in this markdown (appearing in the transition blocks at the two locations), so
extract that target into a single reusable definition (for example a frontmatter
key like next_step or a single variable at the top of the document) and replace
both hardcoded "Load: `./step-05-technical-trends.md`" occurrences in
step-04-regulatory-focus with references to that single definition to ensure
future edits only require one change.
src/bmm/workflows/1-analysis/research/bmad-domain-research/domain-steps/step-03-competitive-landscape.md (1)

183-183: Use one canonical next-step reference.

Lines 183 and 236 duplicate the same transition value. Centralizing this reference will make future renames/reordering safer.

Also applies to: 236-236

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

In
`@src/bmm/workflows/1-analysis/research/bmad-domain-research/domain-steps/step-03-competitive-landscape.md`
at line 183, The file step-03-competitive-landscape.md contains two duplicate
transition lines "Load: `./step-04-regulatory-focus.md`"; centralize this by
defining a single canonical next-step reference (for example add a frontmatter
key next_step: ./step-04-regulatory-focus.md at the top of
step-03-competitive-landscape.md) and replace both occurrences of "Load:
`./step-04-regulatory-focus.md`" with a reference to that canonical key (e.g.,
use the next_step variable or a single include) so future renames only need one
change.
src/bmm/workflows/1-analysis/research/bmad-domain-research/domain-steps/step-05-technical-trends.md (1)

177-177: Externalize next-step target to reduce step-graph drift.

Line 177 hardcodes a transition target directly in prose/instruction text. This pattern is brittle during future renumbering/reordering. Consider a single next_step variable/frontmatter field and reference it consistently.

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

In
`@src/bmm/workflows/1-analysis/research/bmad-domain-research/domain-steps/step-05-technical-trends.md`
at line 177, Replace the hardcoded transition text "Load:
`./step-06-research-synthesis.md`" with a frontmatter-driven reference: add a
YAML frontmatter key (e.g., next_step: ./step-06-research-synthesis.md) at the
top of the document and update the prose to reference that variable (for example
using your repo’s templating convention such as Load: `{{ next_step }}` or
inserting the value programmatically during rendering). Ensure the frontmatter
key name is consistent across other step files so the step graph generator can
read next_step from the document instead of parsing inline prose.
AGENTS.md (1)

8-9: Consider adding failure handling guidance.

The quality check instruction tells agents what to run but not what to do if it fails. For completeness, consider adding guidance on how to interpret failures or where to find logs.

💡 Suggested addition
 - Before pushing, run `npm ci && npm run quality` on `HEAD` in the exact checkout you are about to push.
   `quality` mirrors the checks in `.github/workflows/quality.yaml`.
+  If any check fails, fix the issues before pushing.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@AGENTS.md` around lines 8 - 9, Add a short failure-handling paragraph after
the npm ci && npm run quality instruction explaining what to do if the checks
fail: instruct users to run the failing commands locally (npm ci && npm run
quality), inspect the output for linter/test errors, run targeted fixes (e.g.,
eslint --fix, prettier --write, or the failing test command), and if unclear,
view the full GitHub Actions logs referenced in .github/workflows/quality.yaml
for detailed output and re-run the workflow from the Actions UI after fixes;
mention checking HEAD is the exact commit being tested.
src/bmm/workflows/3-solutioning/bmad-create-architecture/steps/step-06-structure.md (1)

345-345: Hardcoded step progression array is fragile.

Line 345 hardcodes stepsCompleted: [1, 2, 3, 4, 5, 6]. If the workflow is refactored (steps renumbered, reordered, or a step inserted between 3 and 4), this hardcoded array becomes stale. The agent doesn't derive the progression dynamically — it's manually maintained in every step file.

This pattern appears across all step files. If step numbering changes, you must hunt down and update every stepsCompleted assignment. That's brittle and error-prone.

Consider deriving the step number from the filename (step-06-*.md → step 6) or from frontmatter in the step file itself, then append dynamically. Or track a "current step name" instead of a numeric progression.

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

In
`@src/bmm/workflows/3-solutioning/bmad-create-architecture/steps/step-06-structure.md`
at line 345, The frontmatter key stepsCompleted currently contains a hardcoded
array (stepsCompleted: [1, 2, 3, 4, 5, 6]) which is brittle; change the logic
that builds frontmatter in step files (e.g., step-06-*.md) to compute the
progression dynamically by deriving the current step number from the filename
(parse "step-06-..." → 6) or from an explicit frontmatter field like
currentStep, then generate stepsCompleted programmatically (e.g., range
1..currentStep or append currentStep to the previous list) instead of hardcoding
the array; update any code that writes or validates the frontmatter to use this
dynamic derivation and remove the manual stepsCompleted arrays across step
files.
src/bmm/workflows/2-plan-workflows/bmad-create-ux-design/steps/step-09-design-directions.md (1)

69-69: No cleanup for orphaned artifacts if workflow fails.

Line 69 creates {planning_artifacts}/ux-design-directions.html as part of step 9's work. If the workflow fails after creating the HTML but before the user selects [C] Continue (e.g., the agent crashes, the user cancels, or step 10 load fails), the HTML artifact is left orphaned on disk with no reference in the frontmatter.

On workflow resumption, there's no mechanism to detect or clean up these partial artifacts. The user's planning artifacts directory accumulates cruft.

Add artifact tracking to frontmatter (e.g., artifactsCreated: [ux-design-directions.html]) and implement cleanup logic in the continuation handler to detect and offer to remove orphaned artifacts from incomplete steps.

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

In
`@src/bmm/workflows/2-plan-workflows/bmad-create-ux-design/steps/step-09-design-directions.md`
at line 69, Update the step that writes
`{planning_artifacts}/ux-design-directions.html` to record created files in the
step's frontmatter (add an artifactsCreated array containing
"ux-design-directions.html") and modify the workflow resumption/continuation
handler (e.g., the function that processes the "Continue" action or
resumeWorkflow/handleContinue logic) to detect artifacts in frontmatter vs
actual files on disk, identify orphaned files from incomplete steps, and offer
to remove or re-associate them; ensure the creation path (where
ux-design-directions.html is generated) appends to artifactsCreated and the
continuation handler performs cleanup or prompts the user when mismatch is
detected.
src/bmm/workflows/bmad-quick-flow/bmad-quick-dev/steps/step-04-self-check.md (1)

92-92: Use explicit load semantics for step transitions.

Line 92 says “Proceed immediately,” but this step engine generally relies on explicit load phrasing. Make the transition directive unambiguous (Read fully and follow) to reduce agent interpretation variance.

Suggested wording
-Proceed immediately to `{nextStepFile}`.
+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-04-self-check.md`
at line 92, Change the ambiguous transition sentence "Proceed immediately to
`{nextStepFile}`." in step-04-self-check.md to use explicit load semantics used
by the step engine — replace it with a directive like "Read fully and follow
`{nextStepFile}`." so the agent knows to load and execute the next step
explicitly rather than proceeding ambiguously.
src/bmm/workflows/3-solutioning/bmad-create-architecture/steps/step-07-validation.md (1)

326-357: Next-step target is duplicated and prone to mismatch.

Line 326 and Line 357 duplicate the same control-flow path. One source of truth (e.g., {nextStepFile}) would prevent accidental divergence.

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

In
`@src/bmm/workflows/3-solutioning/bmad-create-architecture/steps/step-07-validation.md`
around lines 326 - 357, The file duplicates the next-step target string ("load
`./step-08-complete.md`") in two places which risks divergence; introduce a
single source-of-truth variable (e.g., {nextStepFile}) and replace both literal
occurrences with that variable reference so the control-flow target is defined
once (update the header/metadata where {nextStepFile} is declared and change the
lines that currently say "Load `./step-08-complete.md`" and "After user selects
'C' ... load `./step-08-complete.md`" to reference {nextStepFile} instead).
src/bmm/workflows/2-plan-workflows/bmad-create-ux-design/steps/step-08-visual-foundation.md (1)

190-222: Duplicate next-step literal creates control-flow drift risk.

Line 190 and Line 222 repeat the same step target. If one gets updated later and the other doesn’t, this workflow silently diverges.

Suggested refactor
-- Load `./step-09-design-directions.md`
+- Load `{nextStepFile}`
...
-After user selects 'C' and content is saved to document, load `./step-09-design-directions.md` to generate design direction mockups.
+After user selects 'C' and content is saved to document, load `{nextStepFile}` to generate design direction mockups.
# add near frontmatter/header section
nextStepFile: './step-09-design-directions.md'
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@src/bmm/workflows/2-plan-workflows/bmad-create-ux-design/steps/step-08-visual-foundation.md`
around lines 190 - 222, The file contains duplicated literal references to
"./step-09-design-directions.md" causing control-flow drift; add a single
canonical frontmatter/header key nextStepFile: './step-09-design-directions.md'
near the top of step-08-visual-foundation.md, remove the repeated inline "Load
`./step-09-design-directions.md`" occurrences, and update any code/path usages
to read from the new nextStepFile symbol so all flow control and automatic
loaders use that single source of truth.
package.json (1)

42-42: The inline quality chain is brittle; centralize orchestration.

Line 42 hardcodes a long sequence. This is likely to drift from other entrypoints over time. Prefer composing from one shared script (single source of truth) rather than repeating command lists.

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

In `@package.json` at line 42, The "quality" script currently hardcodes the full
chain of checks; add a single orchestrator script (e.g., "quality:all" or
"quality:orchestrator") that composes the existing scripts (format:check, lint,
lint:md, docs:build, validate:schemas, test:schemas, test:install,
validate:refs) and then update the "quality" entry to simply run that
orchestrator (npm run quality:all) so the sequence is maintained in one place
and easier to update.
src/bmm/workflows/1-analysis/bmad-create-product-brief/steps/step-01-init.md (1)

6-6: Add a short note clarifying nextStepFile path semantics.

Line [6] uses ./step-02-vision.md; given mixed conventions across workflow families, add an inline note that this converted-workflow step resolves ./ relative to the current steps/ directory.

Based on learnings: "For converted-workflow skills ... step files under steps/ resolve relative to the file's own directory."

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

In `@src/bmm/workflows/1-analysis/bmad-create-product-brief/steps/step-01-init.md`
at line 6, Add a one-line inline note next to the nextStepFile entry clarifying
that the './' prefix in nextStepFile (e.g., nextStepFile: './step-02-vision.md')
is resolved relative to the current step's directory inside steps/ for
converted-workflow skills; update the markdown in step-01-init.md to state that
'./' paths point to files under the same steps/ directory so readers understand
path semantics for nextStepFile.
src/bmm/workflows/bmad-quick-flow/bmad-quick-dev/steps/step-05-adversarial-review.md (1)

80-80: Add a guard before dereferencing {nextStepFile}.

Line [80] now depends on indirection. Add an explicit “resolve-and-validate target step file” check before handoff to avoid dead-end transitions when metadata drifts.

🤖 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, Add a guard that resolves and validates the target step file before
dereferencing `{nextStepFile}`: resolve the indirection (e.g., map/lookup the
referenced step id/path), confirm the resolved file exists and its required
metadata (title, nextStep or content) is present and valid, and only then
proceed to the handoff; if resolution/validation fails, log or surface a clear
error and route to a safe fallback (error or index step) instead of using
`{nextStepFile}` directly.
src/bmm/workflows/1-analysis/bmad-create-product-brief/steps/step-03-users.md (1)

6-6: Document the nextStepFile resolution contract to prevent regressions.

Line [6] is correct for this workflow shape, but the repo has mixed ./ semantics across skill types. Add a one-line note near this field that this step file resolves ./ relative to the steps/ directory, so future edits don’t accidentally reintroduce skill-root assumptions.

Proposed update
 # File References
+# NOTE: In this converted-workflow skill, `./` resolves relative to this `steps/` directory.
 nextStepFile: './step-04-metrics.md'
 outputFile: '{planning_artifacts}/product-brief-{{project_name}}-{{date}}.md'

Based on learnings: "For converted-workflow skills ... step files located under a steps/ subdirectory resolve relative to the file's own directory, not the skill root."

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

In
`@src/bmm/workflows/1-analysis/bmad-create-product-brief/steps/step-03-users.md`
at line 6, Add a one-line annotation next to the existing nextStepFile field in
step-03-users.md explaining that the './' path is resolved relative to the
steps/ directory (i.e., step files under steps/ resolve './' to their own
directory, not the skill root); update the comment close to the nextStepFile
entry (reference: nextStepFile: './step-04-metrics.md') so future edits won’t
assume skill-root resolution.
src/bmm/workflows/1-analysis/bmad-create-product-brief/bmad-skill-manifest.yaml (1)

1-1: This manifest should include a concise description.

Line [1] is functionally minimal but loses useful context in generated indexes and reviews. Add a short action-oriented description.

Proposed update
 type: skill
+description: 'Guide collaborative creation of a product brief from discovery to scope'

Based on learnings: "In all bmad-skill-manifest.yaml files, use a concise, action-oriented description ... Keep descriptions brief and consistent across manifests."

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

In
`@src/bmm/workflows/1-analysis/bmad-create-product-brief/bmad-skill-manifest.yaml`
at line 1, The manifest currently only has "type: skill" and lacks a concise
action-oriented description; update bmad-skill-manifest.yaml to add a short
"description" field (one sentence, imperative voice) immediately under "type:
skill" that summarizes the skill's purpose (e.g., "Create a product brief from
input details"), keeping it brief and consistent with other bmad manifests.
src/bmm/agents/dev.agent.yaml (1)

33-38: Normalize menu executors to skills; mixed path/skill routing is brittle.

Line [33] moved DS to skill: but CR on Line [37] still hardcodes a filesystem path. Keep one invocation model in this menu (prefer skill refs) to reduce install-path coupling.

Proposed update
-    - trigger: CR or fuzzy match on code-review
-      exec: "{project-root}/_bmad/bmm/workflows/4-implementation/code-review/workflow.md"
+    - trigger: CR or fuzzy match on code-review
+      exec: "skill:bmad-code-review"
       description: "[CR] Code Review: Initiate a comprehensive code review across multiple quality facets. For best results, use a fresh context and a different quality LLM if available"

Based on learnings: "agents are invoked via their skill entry point ... there is no ambiguity or overlap between agent skills and workflow skills."

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

In `@src/bmm/agents/dev.agent.yaml` around lines 33 - 38, The menu mixes executor
invocation styles—DS uses "skill:bmad-dev-story" while the CR entry still points
to a filesystem workflow
("{project-root}/_bmad/bmm/workflows/4-implementation/code-review/workflow.md");
change the CR entry's exec to a skill-style reference (e.g.,
"skill:<code-review-skill-name>") so both entries use the same skill invocation
model, update the CR exec value in the dev.agent.yaml entry with the chosen
skill identifier, and ensure the corresponding skill exists/exports the
code-review workflow (adjust manifests or registrations where the skill is
declared).
src/bmm/workflows/4-implementation/bmad-dev-story/bmad-skill-manifest.yaml (1)

1-1: Add a concise description to this skill manifest.

Line [1] alone is too thin for manifest-level discoverability. Add a short action-focused description to align with existing manifest conventions.

Proposed update
 type: skill
+description: 'Execute approved stories with tests and implementation in order'

Based on learnings: "In all bmad-skill-manifest.yaml files, use a concise, action-oriented description ... Keep descriptions brief and consistent across manifests."

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

In `@src/bmm/workflows/4-implementation/bmad-dev-story/bmad-skill-manifest.yaml`
at line 1, Add a concise, action-oriented manifest description by adding a
top-level "description" field next to the existing "type: skill" entry; the
description should be a short phrase (one sentence or fragment) that states what
the skill does or the primary action it performs to improve discoverability and
match other bmad-skill-manifest.yaml conventions.
src/bmm/workflows/1-analysis/bmad-create-product-brief/steps/step-02-vision.md (1)

6-6: Make path resolution semantics explicit next to nextStepFile.

Line [6] now uses a local relative path. Add an inline note clarifying resolution is step-directory-relative for this converted workflow; that avoids future edits applying the wrong convention.

Based on learnings: "Only workflow.md at the skill root needs the ./steps/ prefix; step files under steps/ resolve relative to their own directory."

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

In
`@src/bmm/workflows/1-analysis/bmad-create-product-brief/steps/step-02-vision.md`
at line 6, The nextStepFile entry currently uses a local relative path but lacks
clarification of how it resolves; update the step-02-vision.md near the
nextStepFile field to add a short inline note that explains resolution is
step-directory-relative for converted workflows (i.e., paths are resolved
relative to the current step file's directory, not the workflow root), so future
editors know to use ./ or sibling/parent paths accordingly; reference the
nextStepFile key in step-02-vision.md when adding this note.
src/bmm/workflows/4-implementation/bmad-create-story/bmad-skill-manifest.yaml (1)

1-1: Add a manifest description; type-only entries are too opaque.

Line [1] leaves this skill non-descriptive in manifest-level listings. Add a concise action-oriented description field for consistency and discoverability.

Proposed update
 type: skill
+description: 'Create implementation-ready stories from approved planning artifacts'

Based on learnings: "In all bmad-skill-manifest.yaml files, use a concise, action-oriented description ... Keep descriptions brief and consistent across manifests."

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

In
`@src/bmm/workflows/4-implementation/bmad-create-story/bmad-skill-manifest.yaml`
at line 1, The manifest currently only has "type: skill" which is too opaque;
add a top-level "description" field alongside the existing "type: skill" in
bmad-skill-manifest.yaml containing a concise, action-oriented sentence (e.g.,
"Create short narrative stories from user prompts") to improve discoverability
and consistency; ensure the description is brief, imperative, and follows the
same placement/indentation as "type: skill" so tooling that reads top-level keys
(e.g., the skill loader) picks it up.
src/bmm/workflows/2-plan-workflows/bmad-create-ux-design/steps/step-05-inspiration.md (1)

34-34: Inconsistent path style: Party Mode still uses absolute project-root reference.

Lines 34 and 190 reference Party Mode using {project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md while this PR normalizes other paths to relative or skill-based references. Consider whether Party Mode should be invoked via skill:bmad-party-mode for consistency with the skill-based execution pattern seen in other changes (e.g., sm.agent.yaml).

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

In
`@src/bmm/workflows/2-plan-workflows/bmad-create-ux-design/steps/step-05-inspiration.md`
at line 34, The reference to Party Mode uses an absolute project-root path
"{project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md" which is
inconsistent with the skill-based path style used elsewhere; change this
reference in step-05-inspiration.md (and the duplicate occurrence later) to the
skill-style invocation "skill:bmad-party-mode" so it aligns with the other
normalized references (see sm.agent.yaml for examples) and ensure any
surrounding instructions still make sense when invoking the skill instead of
pointing to a file.
src/bmm/agents/sm.agent.yaml (1)

22-37: Inconsistent execution patterns within same agent.

The CS trigger now uses skill:bmad-create-story while SP, ER, and CC triggers still use {project-root} filesystem paths. This creates a mixed execution model in a single agent definition. If those workflows are also being converted to native skills, their references should be updated for consistency.

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

In `@src/bmm/agents/sm.agent.yaml` around lines 22 - 37, The agent manifest mixes
execution models: the CS trigger uses "skill:bmad-create-story" while SP, ER,
and CC use filesystem paths ("{project-root}/..."); make them consistent by
either converting SP, ER, and CC triggers to native skill references (e.g.,
replace exec values for triggers SP, ER, CC with the corresponding "skill:..."
identifiers) or by reverting CS to the same "{project-root}/..." pattern—update
any associated data fields (like the ER data entry) to match the chosen model
and ensure the skill names or file-based paths correspond to the actual
converted artifacts.
src/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-04-review.md (1)

119-145: Fresh context warning may confuse the agent about execution responsibility.

Line 141 says "in a fresh context if possible (warn: fresh context is better)" but doesn't clarify:

  1. Who is responsible for creating the fresh context (the current agent, the user, or the system)?
  2. What should happen if a fresh context isn't possible?
  3. Whether the current agent should HALT after invocation or wait for the skill to complete.

The existing logic for option [B] previously had clear file-based execution. The new skill-based approach needs clearer execution semantics.

🤖 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/steps/step-04-review.md` around
lines 119 - 145, Clarify the fresh-context semantics for the "B" option and
overall menu by explicitly stating who creates the fresh context (system/service
by default, fall back to user prompt if unavailable), what to do if a fresh
context can't be created (proceed in current context with a warning and request
confirmation), and whether the current agent should HALT or wait (agent should
invoke the bmad-quick-dev skill and wait for completion unless unable to create
a fresh context, in which case it should ask the user whether to proceed in
current context or retry). Update the menu text referencing "bmad-quick-dev" and
the B branch logic to include these three points and a short in-line warning
message "fresh context preferred — created by system; if unavailable you will be
prompted" so callers know execution responsibility and fallback behavior.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 69b1ed78-9296-4b9a-a322-2dae4a461a45

📥 Commits

Reviewing files that changed from the base of the PR and between 405fd93 and 66e66cc.

⛔ Files ignored due to path filters (3)
  • src/bmm/module-help.csv is excluded by !**/*.csv
  • src/bmm/workflows/3-solutioning/bmad-create-architecture/data/domain-complexity.csv is excluded by !**/*.csv
  • src/bmm/workflows/3-solutioning/bmad-create-architecture/data/project-types.csv is excluded by !**/*.csv
📒 Files selected for processing (92)
  • .github/workflows/quality.yaml
  • AGENTS.md
  • package.json
  • src/bmm/agents/analyst.agent.yaml
  • src/bmm/agents/architect.agent.yaml
  • src/bmm/agents/dev.agent.yaml
  • src/bmm/agents/quick-flow-solo-dev.agent.yaml
  • src/bmm/agents/sm.agent.yaml
  • src/bmm/agents/ux-designer.agent.yaml
  • src/bmm/workflows/1-analysis/bmad-create-product-brief/SKILL.md
  • src/bmm/workflows/1-analysis/bmad-create-product-brief/bmad-skill-manifest.yaml
  • src/bmm/workflows/1-analysis/bmad-create-product-brief/product-brief.template.md
  • src/bmm/workflows/1-analysis/bmad-create-product-brief/steps/step-01-init.md
  • src/bmm/workflows/1-analysis/bmad-create-product-brief/steps/step-01b-continue.md
  • src/bmm/workflows/1-analysis/bmad-create-product-brief/steps/step-02-vision.md
  • src/bmm/workflows/1-analysis/bmad-create-product-brief/steps/step-03-users.md
  • src/bmm/workflows/1-analysis/bmad-create-product-brief/steps/step-04-metrics.md
  • src/bmm/workflows/1-analysis/bmad-create-product-brief/steps/step-05-scope.md
  • src/bmm/workflows/1-analysis/bmad-create-product-brief/steps/step-06-complete.md
  • src/bmm/workflows/1-analysis/bmad-create-product-brief/workflow.md
  • src/bmm/workflows/1-analysis/create-product-brief/bmad-skill-manifest.yaml
  • src/bmm/workflows/1-analysis/research/bmad-domain-research/SKILL.md
  • src/bmm/workflows/1-analysis/research/bmad-domain-research/bmad-skill-manifest.yaml
  • src/bmm/workflows/1-analysis/research/bmad-domain-research/domain-steps/step-01-init.md
  • src/bmm/workflows/1-analysis/research/bmad-domain-research/domain-steps/step-02-domain-analysis.md
  • src/bmm/workflows/1-analysis/research/bmad-domain-research/domain-steps/step-03-competitive-landscape.md
  • src/bmm/workflows/1-analysis/research/bmad-domain-research/domain-steps/step-04-regulatory-focus.md
  • src/bmm/workflows/1-analysis/research/bmad-domain-research/domain-steps/step-05-technical-trends.md
  • src/bmm/workflows/1-analysis/research/bmad-domain-research/domain-steps/step-06-research-synthesis.md
  • src/bmm/workflows/1-analysis/research/bmad-domain-research/research.template.md
  • src/bmm/workflows/1-analysis/research/bmad-domain-research/workflow.md
  • src/bmm/workflows/1-analysis/research/bmad-skill-manifest.yaml
  • src/bmm/workflows/2-plan-workflows/bmad-create-ux-design/SKILL.md
  • src/bmm/workflows/2-plan-workflows/bmad-create-ux-design/bmad-skill-manifest.yaml
  • src/bmm/workflows/2-plan-workflows/bmad-create-ux-design/steps/step-01-init.md
  • src/bmm/workflows/2-plan-workflows/bmad-create-ux-design/steps/step-01b-continue.md
  • src/bmm/workflows/2-plan-workflows/bmad-create-ux-design/steps/step-02-discovery.md
  • src/bmm/workflows/2-plan-workflows/bmad-create-ux-design/steps/step-03-core-experience.md
  • src/bmm/workflows/2-plan-workflows/bmad-create-ux-design/steps/step-04-emotional-response.md
  • src/bmm/workflows/2-plan-workflows/bmad-create-ux-design/steps/step-05-inspiration.md
  • src/bmm/workflows/2-plan-workflows/bmad-create-ux-design/steps/step-06-design-system.md
  • src/bmm/workflows/2-plan-workflows/bmad-create-ux-design/steps/step-07-defining-experience.md
  • src/bmm/workflows/2-plan-workflows/bmad-create-ux-design/steps/step-08-visual-foundation.md
  • src/bmm/workflows/2-plan-workflows/bmad-create-ux-design/steps/step-09-design-directions.md
  • src/bmm/workflows/2-plan-workflows/bmad-create-ux-design/steps/step-10-user-journeys.md
  • src/bmm/workflows/2-plan-workflows/bmad-create-ux-design/steps/step-11-component-strategy.md
  • src/bmm/workflows/2-plan-workflows/bmad-create-ux-design/steps/step-12-ux-patterns.md
  • src/bmm/workflows/2-plan-workflows/bmad-create-ux-design/steps/step-13-responsive-accessibility.md
  • src/bmm/workflows/2-plan-workflows/bmad-create-ux-design/steps/step-14-complete.md
  • src/bmm/workflows/2-plan-workflows/bmad-create-ux-design/ux-design-template.md
  • src/bmm/workflows/2-plan-workflows/bmad-create-ux-design/workflow.md
  • src/bmm/workflows/2-plan-workflows/create-ux-design/bmad-skill-manifest.yaml
  • src/bmm/workflows/3-solutioning/bmad-create-architecture/SKILL.md
  • src/bmm/workflows/3-solutioning/bmad-create-architecture/architecture-decision-template.md
  • src/bmm/workflows/3-solutioning/bmad-create-architecture/bmad-skill-manifest.yaml
  • src/bmm/workflows/3-solutioning/bmad-create-architecture/steps/step-01-init.md
  • src/bmm/workflows/3-solutioning/bmad-create-architecture/steps/step-01b-continue.md
  • src/bmm/workflows/3-solutioning/bmad-create-architecture/steps/step-02-context.md
  • src/bmm/workflows/3-solutioning/bmad-create-architecture/steps/step-03-starter.md
  • src/bmm/workflows/3-solutioning/bmad-create-architecture/steps/step-04-decisions.md
  • src/bmm/workflows/3-solutioning/bmad-create-architecture/steps/step-05-patterns.md
  • src/bmm/workflows/3-solutioning/bmad-create-architecture/steps/step-06-structure.md
  • src/bmm/workflows/3-solutioning/bmad-create-architecture/steps/step-07-validation.md
  • src/bmm/workflows/3-solutioning/bmad-create-architecture/steps/step-08-complete.md
  • src/bmm/workflows/3-solutioning/bmad-create-architecture/workflow.md
  • src/bmm/workflows/3-solutioning/create-architecture/bmad-skill-manifest.yaml
  • src/bmm/workflows/4-implementation/bmad-create-story/SKILL.md
  • src/bmm/workflows/4-implementation/bmad-create-story/bmad-skill-manifest.yaml
  • src/bmm/workflows/4-implementation/bmad-create-story/checklist.md
  • src/bmm/workflows/4-implementation/bmad-create-story/discover-inputs.md
  • src/bmm/workflows/4-implementation/bmad-create-story/template.md
  • src/bmm/workflows/4-implementation/bmad-create-story/workflow.md
  • src/bmm/workflows/4-implementation/bmad-dev-story/SKILL.md
  • src/bmm/workflows/4-implementation/bmad-dev-story/bmad-skill-manifest.yaml
  • src/bmm/workflows/4-implementation/bmad-dev-story/checklist.md
  • src/bmm/workflows/4-implementation/bmad-dev-story/workflow.md
  • src/bmm/workflows/4-implementation/create-story/bmad-skill-manifest.yaml
  • src/bmm/workflows/4-implementation/dev-story/bmad-skill-manifest.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/steps/step-04-review.md
  • src/bmm/workflows/bmad-quick-flow/quick-spec/workflow.md
  • test/test-workflow-path-regex.js
  • tools/cli/installers/lib/modules/manager.js
💤 Files with no reviewable changes (9)
  • src/bmm/workflows/3-solutioning/create-architecture/bmad-skill-manifest.yaml
  • src/bmm/workflows/1-analysis/research/bmad-skill-manifest.yaml
  • src/bmm/workflows/bmad-quick-flow/quick-dev/bmad-skill-manifest.yaml
  • src/bmm/workflows/4-implementation/dev-story/bmad-skill-manifest.yaml
  • src/bmm/workflows/bmad-quick-flow/quick-spec/workflow.md
  • src/bmm/workflows/4-implementation/create-story/bmad-skill-manifest.yaml
  • src/bmm/workflows/1-analysis/create-product-brief/bmad-skill-manifest.yaml
  • src/bmm/workflows/1-analysis/research/bmad-domain-research/workflow.md
  • src/bmm/workflows/2-plan-workflows/create-ux-design/bmad-skill-manifest.yaml

Comment on lines +98 to 102
- If `lastStep = 1` → Load `./step-02-vision.md`
- If `lastStep = 2` → Load `./step-03-users.md`
- If `lastStep = 3` → Load `./step-04-metrics.md`
- Continue this pattern for all steps
- If `lastStep = 6` → Workflow already complete
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 | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Check which step files exist in the product-brief steps directory
echo "=== Step files in bmad-create-product-brief/steps ==="
fd -t f "step-*.md" src/bmm/workflows/1-analysis/bmad-create-product-brief/steps/ | sort

Repository: bmad-code-org/BMAD-METHOD

Length of output: 122


🏁 Script executed:

#!/bin/bash
# Check if the directory exists and list contents
echo "=== Checking directory existence ==="
if [ -d "src/bmm/workflows/1-analysis/bmad-create-product-brief/steps" ]; then
  echo "Directory exists. Contents:"
  ls -la src/bmm/workflows/1-analysis/bmad-create-product-brief/steps/
else
  echo "Directory does not exist"
fi

echo ""
echo "=== Checking parent directory ==="
ls -la src/bmm/workflows/1-analysis/bmad-create-product-brief/

echo ""
echo "=== Searching for step files with different patterns ==="
fd -t f ".*step.*\.md" src/bmm/workflows/1-analysis/bmad-create-product-brief/ 2>/dev/null || echo "No files found"

Repository: bmad-code-org/BMAD-METHOD

Length of output: 1799


🏁 Script executed:

#!/bin/bash
# Read the specific section of the file
echo "=== Content around lines 95-105 ==="
sed -n '95,105p' src/bmm/workflows/1-analysis/bmad-create-product-brief/steps/step-01b-continue.md | cat -n

echo ""
echo "=== Full file for context ==="
wc -l src/bmm/workflows/1-analysis/bmad-create-product-brief/steps/step-01b-continue.md

Repository: bmad-code-org/BMAD-METHOD

Length of output: 651


🏁 Script executed:

#!/bin/bash
# Read more context (lines 80-120) to understand the full logic
echo "=== Broader context (lines 80-120) ==="
sed -n '80,120p' src/bmm/workflows/1-analysis/bmad-create-product-brief/steps/step-01b-continue.md | cat -n

Repository: bmad-code-org/BMAD-METHOD

Length of output: 1604


Add explicit path mappings for steps 4 and 5.

The continuation logic provides explicit paths only for lastStep values 1–3, then uses a generic "Continue this pattern for all steps" placeholder. This leaves steps 4 and 5 without explicit mappings before jumping to the lastStep = 6 completion check. An LLM agent following this instruction may not reliably load the correct next step for those values.

All six step files exist in the directory (steps 02 through 06 exist after step 01/01b), so explicit mappings should be provided:

🛠️ Proposed fix
 - If `lastStep = 1` → Load `./step-02-vision.md`
 - If `lastStep = 2` → Load `./step-03-users.md`
 - If `lastStep = 3` → Load `./step-04-metrics.md`
-- Continue this pattern for all steps
+- If `lastStep = 4` → Load `./step-05-scope.md`
+- If `lastStep = 5` → Load `./step-06-complete.md`
 - If `lastStep = 6` → Workflow already complete
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@src/bmm/workflows/1-analysis/bmad-create-product-brief/steps/step-01b-continue.md`
around lines 98 - 102, The checklist misses explicit branches for lastStep
values 4 and 5; update the continuation mapping that checks the lastStep
variable to add two explicit entries so an agent will deterministically load the
next files: add "If lastStep = 4 → Load ./step-05-*.md" and "If lastStep = 5 →
Load ./step-06-*.md" (matching the existing naming pattern used for
./step-02-vision.md, ./step-03-users.md, ./step-04-metrics.md) so all
transitions from lastStep 1–6 are spelled out.

Comment on lines +6 to +10
research_type: '{{research_type}}'
research_topic: '{{research_topic}}'
research_goals: '{{research_goals}}'
user_name: '{{user_name}}'
date: '{{date}}'
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

Frontmatter placeholders are not YAML-safe for arbitrary user input.

Single-quoted interpolations for research_topic, research_goals, and user_name can break YAML if input includes apostrophes/newlines. Use escaped serialization or block scalars.

Safer pattern example
-research_type: '{{research_type}}'
-research_topic: '{{research_topic}}'
-research_goals: '{{research_goals}}'
-user_name: '{{user_name}}'
-date: '{{date}}'
+research_type: "{{research_type}}"
+research_topic: |-
+  {{research_topic}}
+research_goals: |-
+  {{research_goals}}
+user_name: "{{user_name}}"
+date: "{{date}}"
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@src/bmm/workflows/1-analysis/research/bmad-domain-research/research.template.md`
around lines 6 - 10, The frontmatter in research.template.md is unsafe for
arbitrary input because single-quoted interpolations for research_topic,
research_goals, and user_name can break YAML with apostrophes/newlines; update
the template to serialize those fields as YAML block scalars or otherwise escape
them (e.g., replace the single-quoted '{{research_goals}}',
'{{research_topic}}', and '{{user_name}}' with a block scalar form like using |
or > for multi-line values or by emitting a JSON/YAML-escaped string) so
multi-line text and embedded quotes are preserved; keep research_type and date
as simple scalars if they remain single-line.


- Confirm: "This will delete all existing architectural decisions. Are you sure? (y/n)"
- If confirmed: Delete existing document and read fully and follow: `{project-root}/_bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-01-init.md`
- If confirmed: Delete existing document and read fully and follow: `./step-01-init.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 | 🔴 Critical

Referenced step file not in valid-steps list.

Line 106 loads ./step-01-init.md when the user chooses "Start over", but the "Valid step files to load" list at lines 165-171 does NOT include step-01-init.md. Either the list is incomplete (missing the init step), or the "Start over" path at line 106 is loading an invalid step file.

Which is it? If step-01-init.md is a valid resumption target, add it to the list. If not, the "Start over" logic at line 106 is broken.

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

In
`@src/bmm/workflows/3-solutioning/bmad-create-architecture/steps/step-01b-continue.md`
at line 106, The "Start over" branch references './step-01-init.md' but that
filename is missing from the "Valid step files to load" list; update the list of
valid step files (the "Valid step files to load" array/constant) to include
'step-01-init.md' or, if that file is not intended to be a resume target, change
the "Start over" logic to load an existing valid step filename instead—look for
the "Start over" branch that loads './step-01-init.md' and the "Valid step files
to load" declaration and make them consistent.

- Append the final content to `{planning_artifacts}/architecture.md`
- Update frontmatter: `stepsCompleted: [1, 2]`
- Load `{project-root}/_bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-03-starter.md`
- Load `./step-03-starter.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 | 🟡 Minor

No validation that step-03-starter.md can be resolved.

Like the other relative path changes, this assumes the target file exists and is reachable via ./step-03-starter.md. There's no error handling, no fallback, and no verification at build/install time.

What happens if someone renames or moves step-03-starter.md? The workflow breaks at runtime with no helpful diagnostic.

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

In
`@src/bmm/workflows/3-solutioning/bmad-create-architecture/steps/step-02-context.md`
at line 191, The reference "Load `./step-03-starter.md`" in step-02-context.md
lacks validation; add explicit resolution and error handling where the file is
loaded (the code/path that attempts to load "./step-03-starter.md") by verifying
the file exists (e.g., resolve the relative path and check presence at build or
startup), and if it cannot be found emit a clear diagnostic message that
includes the attempted path and suggested remedies (rename/move info) and
provide a fallback behavior (skip with warning or use a bundled/default starter)
so the workflow doesn't fail silently at runtime.

## NEXT STEP

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

No safety check for unresolved or invalid {nextStepFile}.

Line 92 assumes the variable is always present and valid. Add a guard/fallback so the workflow halts clearly instead of attempting a broken transition.

Suggested hardening
-Proceed immediately to `{nextStepFile}`.
+If `{nextStepFile}` is empty or invalid, HALT and request operator correction.
+Then proceed 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 `{nextStepFile}`.
If `{nextStepFile}` is empty or invalid, HALT and request operator correction.
Then proceed 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 assumes `{nextStepFile}` is always present; add a guard in
step-04-self-check (around the transition text) to validate that `nextStepFile`
is non-empty and points to an existing/valid step before proceeding—if it is
missing/invalid, emit a clear error message and halt the workflow (or provide a
fallback step) instead of rendering "Proceed immediately to `{nextStepFile}`";
ensure the check references the same `nextStepFile` variable and short-circuits
the transition path when invalid.

@alexeyv alexeyv marked this pull request as draft March 14, 2026 12:07
@alexeyv alexeyv changed the title fix(create-story): normalize native skill metadata refs fix(create-story): normalize internal path refs to relative Mar 14, 2026
@alexeyv alexeyv force-pushed the convert-create-story-skill branch from 66e66cc to 06c3296 Compare March 14, 2026 16:55
@alexeyv alexeyv force-pushed the convert-create-story-skill branch from 06c3296 to 8265153 Compare March 14, 2026 16:59
@alexeyv alexeyv marked this pull request as ready for review March 14, 2026 17:00
@alexeyv alexeyv merged commit bc8d239 into main Mar 14, 2026
6 checks passed
@github-actions
Copy link
Copy Markdown
Contributor

@coderabbitai review

@alexeyv alexeyv deleted the convert-create-story-skill branch March 14, 2026 17:01
@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Mar 14, 2026

✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

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