Skip to content

refactor(bmm): convert create-product-brief to native skill package#1933

Merged
alexeyv merged 4 commits intobmad-code-org:mainfrom
alexeyv:convert-create-product-brief-skill
Mar 13, 2026
Merged

refactor(bmm): convert create-product-brief to native skill package#1933
alexeyv merged 4 commits intobmad-code-org:mainfrom
alexeyv:convert-create-product-brief-skill

Conversation

@alexeyv
Copy link
Copy Markdown
Collaborator

@alexeyv alexeyv commented Mar 12, 2026

Summary

  • mechanically convert src/bmm/workflows/1-analysis/create-product-brief into native skill package src/bmm/workflows/1-analysis/bmad-create-product-brief
  • switch manifest to type: skill and add SKILL.md
  • preserve workflow and step behavior, updating only required name/path references for native-skill packaging
  • update dependent references:
    • src/bmm/module-help.csv -> skill:bmad-create-product-brief
    • src/bmm/agents/analyst.agent.yaml CB exec path -> new folder name

Validation

  • full mechanical equivalence check old vs new (normalized only for required path/name changes): workflow + all step files + template parity (9/9 pass)
  • npm test in worktree passes
  • installer run passes:
    • node tools/cli/bmad-cli.js install --directory /Users/alex/src/bmad --modules bmm --tools claude-code --yes
  • install verification:
    • present in _bmad/_config/skill-manifest.csv
    • absent from _bmad/_config/workflow-manifest.csv
    • native skill files installed under .claude/skills/bmad-create-product-brief

Notes

  • interactive simulated-human before/after runs were not executable in this terminal pass; deferral recorded in _bmad-output/implementation-artifacts/deferred-work.md.

@augmentcode
Copy link
Copy Markdown

augmentcode bot commented Mar 12, 2026

🤖 Augment PR Summary

Summary: Refactors the BMM “create product brief” workflow into a native, verbatim skill package.

Changes:

  • Renames the workflow folder to bmad-create-product-brief and updates workflow.md frontmatter accordingly
  • Adds SKILL.md plus a type: skill manifest to enable native skill installation
  • Updates step/workflow internal references to align with the new packaged layout
  • Updates dependent references (Analyst agent CB exec path and module help entry) to point at the new skill

Technical Notes: Intended to preserve existing behavior while shifting from workflow-manifest driven installation to skill-manifest driven installation.

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


# File References
nextStepFile: '{project-root}/_bmad/bmm/workflows/1-analysis/create-product-brief/steps/step-02-vision.md'
nextStepFile: './steps/step-02-vision.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.

Since this file already lives under steps/, nextStepFile: './steps/... (and the ./steps/step-01b-continue.md load directive below) will resolve to steps/steps/... for tooling that resolves paths relative to the current file, and likely won’t be found. Consider switching these to be step-file-relative (e.g., ./step-02-vision.md).

Severity: medium

Other Locations
  • src/bmm/workflows/1-analysis/bmad-create-product-brief/steps/step-01-init.md:76
  • src/bmm/workflows/1-analysis/bmad-create-product-brief/steps/step-02-vision.md:6
  • src/bmm/workflows/1-analysis/bmad-create-product-brief/steps/step-03-users.md:6
  • src/bmm/workflows/1-analysis/bmad-create-product-brief/steps/step-04-metrics.md:6
  • src/bmm/workflows/1-analysis/bmad-create-product-brief/steps/step-05-scope.md:6
  • src/bmm/workflows/1-analysis/bmad-create-product-brief/steps/step-01b-continue.md:98

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

The PR reorganizes the create-product-brief workflow by renaming it to bmad-create-product-brief, migrating its directory structure, and converting all absolute project-root path references to relative paths throughout the workflow steps. The analyst agent configuration is updated to point to the new workflow location, and associated skill manifest files are added to the new directory while being removed from the old one.

Changes

Cohort / File(s) Summary
Agent Configuration
src/bmm/agents/analyst.agent.yaml
Updated exec path to reference the new bmad-create-product-brief workflow location instead of create-product-brief.
New Workflow Skill Registration
src/bmm/workflows/1-analysis/bmad-create-product-brief/SKILL.md, src/bmm/workflows/1-analysis/bmad-create-product-brief/bmad-skill-manifest.yaml
Added new skill documentation and manifest files to register the bmad-create-product-brief workflow as a documented skill entry point.
Workflow Definition & Step Path Refactoring
src/bmm/workflows/1-analysis/bmad-create-product-brief/workflow.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
Renamed workflow from create-product-brief to bmad-create-product-brief and converted all absolute {project-root} path references to relative ./steps/ paths for step navigation and loading.
Old Manifest Cleanup
src/bmm/workflows/1-analysis/create-product-brief/bmad-skill-manifest.yaml
Removed manifest file contents from the original workflow location, cleaning up the old directory structure.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Possibly related PRs

Suggested reviewers

  • bmadcode
🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The PR title accurately describes the main change: converting a workflow to a native skill package, which is the core objective of all the file modifications.
Description check ✅ Passed The PR description directly relates to the changeset, clearly explaining the mechanical conversion, manifest changes, path updates, and validation steps performed.
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
📝 Coding Plan for PR comments
  • Generate coding plan

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: 3

Caution

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

⚠️ Outside diff range comments (2)
src/bmm/workflows/1-analysis/bmad-create-product-brief/steps/step-01-init.md (1)

6-10: ⚠️ Potential issue | 🟠 Major

Relative path bases are mixed inside the same skill.

nextStepFile was switched to skill-root style (./steps/...), but productBriefTemplate still climbs out with ../product-brief.template.md. Under the native-skill resolution convention, that escapes the skill directory instead of pointing at the template beside workflow.md. Update the template reference to the same base as the step links. Based on learnings, ./ relative path references in skill step files are resolved relative to the skill root directory, not the step file's own directory.

Suggested fix
 # File References
 nextStepFile: './steps/step-02-vision.md'
 outputFile: '{planning_artifacts}/product-brief-{{project_name}}-{{date}}.md'
 
 # Template References
-productBriefTemplate: '../product-brief.template.md'
+productBriefTemplate: './product-brief.template.md'
🤖 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 6 - 10, The productBriefTemplate path is using a different relative
base than nextStepFile which causes it to escape the skill directory; update
productBriefTemplate to use the same skill-root relative form as nextStepFile
(e.g., change productBriefTemplate: '../product-brief.template.md' to
productBriefTemplate: './product-brief.template.md') so both nextStepFile and
productBriefTemplate resolve from the skill root.
src/bmm/workflows/1-analysis/bmad-create-product-brief/steps/step-04-metrics.md (1)

57-57: 🛠️ Refactor suggestion | 🟠 Major

Dependency assertion without enforcement mechanism.

Line 57 states: "Dependencies: Product vision and user personas from previous steps must be complete." However, there's no validation logic anywhere in the step file to verify that steps 1, 2, and 3 were actually completed or that their required outputs exist.

While line 49 mentions updating frontmatter with stepsCompleted: [1, 2, 3, 4], this only records completion of the current step; it doesn't verify that previous steps were completed before allowing step 4 to proceed.

If a user manually invokes step-04-metrics.md (or the workflow jumps to this step due to a bug), the agent would proceed without the required context from prior steps, leading to incomplete or incorrect metrics.

Add a validation check at the start of the execution sequence (before "### 1. Begin Success Metrics Discovery") that verifies stepsCompleted includes [1, 2, 3] before proceeding. If not, HALT and instruct the user to complete prior steps.

🤖 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-04-metrics.md`
at line 57, Add a pre-execution validation in step-04-metrics.md that reads the
frontmatter "stepsCompleted" array and verifies it contains 1, 2, and 3 before
running the content under the "### 1. Begin Success Metrics Discovery" section;
if the check fails, HALT execution and return a clear instruction message
telling the user to complete steps 1–3 (do not proceed), and ensure the
validation is run at the very start of the step's execution sequence so the
agent cannot continue without the required prior outputs.
🧹 Nitpick comments (9)
src/bmm/workflows/1-analysis/bmad-create-product-brief/steps/step-01b-continue.md (1)

98-100: Move the resume targets out of inline prose.

This manual map duplicates step filenames in yet another place. This PR already had to touch each of them during the rename, so the next file move will break resume routing unless someone also remembers to edit this prompt text. Prefer a small machine-readable mapping or frontmatter variables the executor can validate.

🤖 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 - 100, The resume-target filenames currently embedded in prose
(the lines referencing lastStep = 1 → ./steps/step-02-vision.md, lastStep = 2 →
./steps/step-03-users.md, lastStep = 3 → ./steps/step-04-metrics.md) must be
moved into a machine-readable mapping or frontmatter so the executor can
validate and update them programmatically; add a small mapping object or YAML
frontmatter (e.g., resume_map or resumeTargets) that maps lastStep values to
step filenames, update any executor code to read that mapping instead of parsing
prose, and remove the inline filename list from the markdown body so future
renames only require changing the single mapping symbol
(resume_map/resumeTargets).
src/bmm/workflows/1-analysis/bmad-create-product-brief/workflow.md (1)

55-57: Add a cheap installed-skill smoke check for step traversal.

The only deferred validation in the PR notes is the interactive run, and that's exactly where these relative path rewrites are exercised. A small fixture that walks installed workflow.md -> step-01-init.md -> nextStepFile would catch future packaging regressions without needing a human in the loop.

🤖 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/workflow.md` around
lines 55 - 57, Add an automated "installed-skill smoke" test that
programmatically reads this workflow.md, resolves the relative step path
`./steps/step-01-init.md`, opens that file and follows its referenced
`nextStepFile` to ensure installed-package path rewrites work; implement the
fixture as a unit/integration test executed in CI (e.g.,
tests/bmm/smoke_installed_skill_test) that loads `workflow.md`, parses the step
link, asserts each referenced file exists and is readable, and fails the run if
any traversal/relative-path resolution breaks (target symbols: workflow.md,
./steps/step-01-init.md, and the step’s nextStepFile reference).
src/bmm/workflows/1-analysis/bmad-create-product-brief/steps/step-01-init.md (1)

74-76: Use continueStepFile instead of burying the handoff in prose.

The repo already has machine-readable step metadata for continuation targets, but this one is hidden in free text. Moving it into frontmatter makes the path checkable and avoids another rename-sensitive literal.

Suggested refactor
 # File References
 nextStepFile: './steps/step-02-vision.md'
+continueStepFile: './steps/step-01b-continue.md'
 outputFile: '{planning_artifacts}/product-brief-{{project_name}}-{{date}}.md'
@@
-- **STOP immediately** and load `./steps/step-01b-continue.md`
+- **STOP immediately** and load `{continueStepFile}`
🤖 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 74 - 76, Replace the prose continuation instruction with a
machine-readable frontmatter field named continueStepFile and set it to the
continuation markdown file (e.g. "steps/step-01b-continue.md"); update the top
YAML/frontmatter of the step-01-init markdown to include continueStepFile:
"steps/step-01b-continue.md" (instead of embedding the handoff in free text) so
the pipeline can programmatically detect continuation targets.
src/bmm/workflows/1-analysis/bmad-create-product-brief/SKILL.md (1)

3-3: Skill trigger relies solely on example phrases without fallback guidance.

Line 3 states: Use when the user says "let's create a product brief" or "help me create a project brief"

This pattern assumes the agent (or help mechanism) will invoke the skill only when the user says one of these exact phrases. But what if the user says:

  • "I need to document my product strategy"
  • "How do I write a product brief?"
  • "Can you help me with product planning?"

None of these match the example phrases, but they clearly indicate a need for this skill. The description doesn't provide fallback guidance (e.g., "or any similar request for product brief creation").

While the help mechanism may handle fuzzy matching, the skill description should be more inclusive to avoid false negatives where users need this skill but don't trigger it.

Broaden the trigger guidance: Use when the user requests help creating a product brief, documenting product strategy, or planning a new product.

🤖 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/SKILL.md` at line 3,
Update the skill description line that currently reads 'Use when the user says
"let's create a product brief" or "help me create a project brief"' to broader
trigger guidance: change it to something like "Use when the user requests help
creating a product brief, documenting product strategy, or planning a new
product (or any similar request for product brief creation)" so the SKILL.md
description for "Create product brief through collaborative discovery" captures
synonymous intents and fallback cases.
src/bmm/workflows/1-analysis/bmad-create-product-brief/steps/step-04-metrics.md (5)

168-168: Ambiguous re-display instruction after user chat.

Line 168: "IF Any other comments or queries: help user respond then Redisplay Menu Options"

The phrasing "help user respond then [Redisplay Menu Options]" is unclear:

  • Does "help user respond" mean the agent answers the user's question and then immediately redisplays the menu?
  • Or does the agent engage in a back-and-forth dialogue until the user is satisfied, and only then redisplay the menu?

The lack of a termination condition for the "help user respond" state could lead to the agent redisplaying the menu prematurely (after a single response) or getting stuck in an open-ended dialogue without a clear path back to the menu.

Clarify the instruction: "IF Any other comments or queries: answer the user's question or respond to their comment, then immediately redisplay Menu Options at step 7. Continue this pattern (answer → redisplay menu) until user selects A, P, or C."

🤖 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-04-metrics.md`
at line 168, Update the ambiguous branch in step-04-metrics: change the "IF Any
other comments or queries" behavior to explicitly answer the user's question
once, then immediately redisplay the menu at step 7 (Present Menu Options), and
repeat this answer→redisplay loop each time until the user selects one of the
terminal options (A, P, or C); locate the instruction in step-04-metrics and
replace the unclear phrasing with this deterministic loop behavior referencing
"step 7 - Present Menu Options" and the terminal choices "A, P, C".

40-43: Vague constraint: "vague metrics that can't be measured" is itself vague.

Lines 41-43 state:

  • 🚫 FORBIDDEN to create vague metrics that can't be measured or tracked
  • 💬 Approach: Systematic metric definition that connects user value to business success
  • 📋 COLLABORATIVE metric definition that drives actionable decisions

But line 41's prohibition on "vague metrics" lacks a concrete definition of what constitutes "vague." The step provides examples later (line 87-88: "Users are happy" → "Users complete [key action] within [timeframe]"), but the opening constraint doesn't reference these examples or provide rubrics.

An agent executing this step might interpret "measurable" differently than intended (e.g., "75% of users report satisfaction" is technically measurable but could still be a vanity metric per line 132).

Strengthen the constraint by linking it to the examples: "🚫 FORBIDDEN to create vague metrics that can't be measured or tracked (see Step 2, line 87-88 for RIGHT vs. WRONG patterns)."

🤖 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-04-metrics.md`
around lines 40 - 43, Update the vague prohibition line to explicitly reference
the concrete RIGHT vs WRONG examples later in this step so agents know the
intended standard; change the "🚫 FORBIDDEN to create vague metrics that can't
be measured or tracked" sentence in step-04-metrics.md to something like "🚫
FORBIDDEN to create vague metrics that can't be measured or tracked (see RIGHT
vs WRONG examples below, e.g., lines showing 'Users are happy' → 'Users complete
[key action] within [timeframe]')" so readers and automated agents are directed
to the rubric and examples for correct patterns.

118-123: KPI examples use placeholder variables without defining them.

Lines 118-123 provide KPI examples:

  • "X new users per month"
  • "Y% of users complete core journey weekly"
  • "$Z in cost savings or revenue generation"

The use of X, Y, Z as placeholders is clear in context, but the examples don't clarify whether these are meant to be filled in during the conversation with actual numeric targets, or whether they should remain as symbolic placeholders in the final document.

If the agent is supposed to elicit actual values (e.g., "50 new users per month"), the examples should state that. If symbolic placeholders are acceptable, the SYSTEM SUCCESS/FAILURE METRICS (lines 189-190) should explicitly allow "Specific, measurable KPIs with defined targets and timeframes" to include placeholder-based KPIs awaiting target definition.

Clarify the intent: "KPI Examples (fill in actual targets during conversation, or use placeholders if targets are TBD):"

🤖 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-04-metrics.md`
around lines 118 - 123, The KPI examples under the "KPI Examples" section use
placeholders X/Y/Z but don't state whether they should be replaced with concrete
targets during the conversation or left as placeholders; update the "KPI
Examples" heading or add a clarifying sentence (e.g., "KPI Examples — fill in
actual numeric targets during discovery, or keep as placeholders if targets are
TBD") and also adjust the "SYSTEM SUCCESS/FAILURE METRICS" wording to explicitly
allow both fully specified KPIs and placeholder-based KPIs awaiting definition
so agents know to elicit numeric values when available; target the "KPI
Examples" block and the "SYSTEM SUCCESS/FAILURE METRICS" text in
step-04-metrics.md.

193-193: Duplicate criterion in SUCCESS metrics.

Line 193 states: "Frontmatter updated with stepsCompleted: [1, 2, 3, 4]"

However, line 49 in the EXECUTION PROTOCOLS section already specifies the same requirement: "📖 Update frontmatter stepsCompleted: [1, 2, 3, 4] before loading next step"

The duplication in the SUCCESS metrics is redundant. While repetition for emphasis can be useful, the SUCCESS section should focus on outcome-level criteria (e.g., "Metrics that connect user value to business success") rather than repeating mechanical execution steps already covered in EXECUTION PROTOCOLS.

Remove the duplicated frontmatter criterion from line 193 or reword it as a verification: "Frontmatter correctly records completion (stepsCompleted: [1, 2, 3, 4])."

🤖 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-04-metrics.md`
at line 193, In the SUCCESS metrics section remove the redundant criterion that
repeats "Frontmatter updated with stepsCompleted: [1, 2, 3, 4]" (or replace it
with a concise verification line) so the execution detail already covered in the
EXECUTION PROTOCOLS ("📖 Update frontmatter `stepsCompleted: [1, 2, 3, 4]`
before loading next step") is not duplicated; update the SUCCESS entry to either
be removed or reworded as a verification like "Frontmatter correctly records
completion (stepsCompleted: [1, 2, 3, 4])."

165-167: Incomplete error handling for menu option execution failures.

Lines 165-167 define menu handling logic:

  • IF A: Read and follow advancedElicitationTask
  • IF P: Read and follow partyModeWorkflow
  • IF C: Save, update frontmatter, then follow nextStepFile

None of these branches include error handling if the referenced file is missing, unreadable, or if the save operation fails. According to the MANDATORY EXECUTION RULES (line 50), the agent must not proceed without user confirmation via menu, but there's no guidance on what to do if the selected option fails to execute.

For example, if {advancedElicitationTask} resolves to a missing or malformed file, should the agent HALT, or fall back to re-displaying the menu?

Add explicit error-handling guidance: "IF any menu option fails to execute (file not found, save error, etc.), HALT, display error details to user, and re-display menu options."

🤖 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-04-metrics.md`
around lines 165 - 167, The menu branches using advancedElicitationTask,
partyModeWorkflow, and the save to outputFile followed by nextStepFile must
include explicit failure handling: if loading/reading any referenced file
(advancedElicitationTask, partyModeWorkflow, nextStepFile) or saving to
outputFile fails (file missing, unreadable, malformed, or write error),
immediately HALT the automated progression, surface a clear error message with
the failure details to the user, and re-display the menu for user
confirmation/choice; implement this behavior wherever those symbols are invoked
so the agent does not continue without user re-confirmation.
🤖 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/1-analysis/bmad-create-product-brief/SKILL.md`:
- Line 3: Update the description string in SKILL.md to include the missing
article so it reads "Create a product brief..." instead of "Create product
brief...", ensuring consistency with the example user inputs; locate and modify
the description field text labeled "description" in the file to add "a" after
"Create".
- Line 3: Update the user-facing description string in SKILL.md to fix the typo:
change the word "lets" to the contraction "let's" inside the description value
(the line starting with description: 'Create product brief... "lets create a
product brief"...'). Ensure the corrected string preserves the existing
punctuation and quotes and only replaces that single token so the manifest/help
text reads "let's create a product brief".
- Line 3: The description in SKILL.md for the bmad-create-product-brief skill is
inconsistent—one example says "product brief" and the other says "project
brief"; update the text to be consistent by either (A) replacing "help me create
a project brief" with "help me create a product brief" so all examples and the
skill name (bmad-create-product-brief) match, or (B) explicitly state that both
"product brief" and "project brief" are supported (e.g., add "supports synonyms:
project brief") so intent matching is clear.

---

Outside diff comments:
In
`@src/bmm/workflows/1-analysis/bmad-create-product-brief/steps/step-01-init.md`:
- Around line 6-10: The productBriefTemplate path is using a different relative
base than nextStepFile which causes it to escape the skill directory; update
productBriefTemplate to use the same skill-root relative form as nextStepFile
(e.g., change productBriefTemplate: '../product-brief.template.md' to
productBriefTemplate: './product-brief.template.md') so both nextStepFile and
productBriefTemplate resolve from the skill root.

In
`@src/bmm/workflows/1-analysis/bmad-create-product-brief/steps/step-04-metrics.md`:
- Line 57: Add a pre-execution validation in step-04-metrics.md that reads the
frontmatter "stepsCompleted" array and verifies it contains 1, 2, and 3 before
running the content under the "### 1. Begin Success Metrics Discovery" section;
if the check fails, HALT execution and return a clear instruction message
telling the user to complete steps 1–3 (do not proceed), and ensure the
validation is run at the very start of the step's execution sequence so the
agent cannot continue without the required prior outputs.

---

Nitpick comments:
In `@src/bmm/workflows/1-analysis/bmad-create-product-brief/SKILL.md`:
- Line 3: Update the skill description line that currently reads 'Use when the
user says "let's create a product brief" or "help me create a project brief"' to
broader trigger guidance: change it to something like "Use when the user
requests help creating a product brief, documenting product strategy, or
planning a new product (or any similar request for product brief creation)" so
the SKILL.md description for "Create product brief through collaborative
discovery" captures synonymous intents and fallback cases.

In
`@src/bmm/workflows/1-analysis/bmad-create-product-brief/steps/step-01-init.md`:
- Around line 74-76: Replace the prose continuation instruction with a
machine-readable frontmatter field named continueStepFile and set it to the
continuation markdown file (e.g. "steps/step-01b-continue.md"); update the top
YAML/frontmatter of the step-01-init markdown to include continueStepFile:
"steps/step-01b-continue.md" (instead of embedding the handoff in free text) so
the pipeline can programmatically detect continuation targets.

In
`@src/bmm/workflows/1-analysis/bmad-create-product-brief/steps/step-01b-continue.md`:
- Around line 98-100: The resume-target filenames currently embedded in prose
(the lines referencing lastStep = 1 → ./steps/step-02-vision.md, lastStep = 2 →
./steps/step-03-users.md, lastStep = 3 → ./steps/step-04-metrics.md) must be
moved into a machine-readable mapping or frontmatter so the executor can
validate and update them programmatically; add a small mapping object or YAML
frontmatter (e.g., resume_map or resumeTargets) that maps lastStep values to
step filenames, update any executor code to read that mapping instead of parsing
prose, and remove the inline filename list from the markdown body so future
renames only require changing the single mapping symbol
(resume_map/resumeTargets).

In
`@src/bmm/workflows/1-analysis/bmad-create-product-brief/steps/step-04-metrics.md`:
- Line 168: Update the ambiguous branch in step-04-metrics: change the "IF Any
other comments or queries" behavior to explicitly answer the user's question
once, then immediately redisplay the menu at step 7 (Present Menu Options), and
repeat this answer→redisplay loop each time until the user selects one of the
terminal options (A, P, or C); locate the instruction in step-04-metrics and
replace the unclear phrasing with this deterministic loop behavior referencing
"step 7 - Present Menu Options" and the terminal choices "A, P, C".
- Around line 40-43: Update the vague prohibition line to explicitly reference
the concrete RIGHT vs WRONG examples later in this step so agents know the
intended standard; change the "🚫 FORBIDDEN to create vague metrics that can't
be measured or tracked" sentence in step-04-metrics.md to something like "🚫
FORBIDDEN to create vague metrics that can't be measured or tracked (see RIGHT
vs WRONG examples below, e.g., lines showing 'Users are happy' → 'Users complete
[key action] within [timeframe]')" so readers and automated agents are directed
to the rubric and examples for correct patterns.
- Around line 118-123: The KPI examples under the "KPI Examples" section use
placeholders X/Y/Z but don't state whether they should be replaced with concrete
targets during the conversation or left as placeholders; update the "KPI
Examples" heading or add a clarifying sentence (e.g., "KPI Examples — fill in
actual numeric targets during discovery, or keep as placeholders if targets are
TBD") and also adjust the "SYSTEM SUCCESS/FAILURE METRICS" wording to explicitly
allow both fully specified KPIs and placeholder-based KPIs awaiting definition
so agents know to elicit numeric values when available; target the "KPI
Examples" block and the "SYSTEM SUCCESS/FAILURE METRICS" text in
step-04-metrics.md.
- Line 193: In the SUCCESS metrics section remove the redundant criterion that
repeats "Frontmatter updated with stepsCompleted: [1, 2, 3, 4]" (or replace it
with a concise verification line) so the execution detail already covered in the
EXECUTION PROTOCOLS ("📖 Update frontmatter `stepsCompleted: [1, 2, 3, 4]`
before loading next step") is not duplicated; update the SUCCESS entry to either
be removed or reworded as a verification like "Frontmatter correctly records
completion (stepsCompleted: [1, 2, 3, 4])."
- Around line 165-167: The menu branches using advancedElicitationTask,
partyModeWorkflow, and the save to outputFile followed by nextStepFile must
include explicit failure handling: if loading/reading any referenced file
(advancedElicitationTask, partyModeWorkflow, nextStepFile) or saving to
outputFile fails (file missing, unreadable, malformed, or write error),
immediately HALT the automated progression, surface a clear error message with
the failure details to the user, and re-display the menu for user
confirmation/choice; implement this behavior wherever those symbols are invoked
so the agent does not continue without user re-confirmation.

In `@src/bmm/workflows/1-analysis/bmad-create-product-brief/workflow.md`:
- Around line 55-57: Add an automated "installed-skill smoke" test that
programmatically reads this workflow.md, resolves the relative step path
`./steps/step-01-init.md`, opens that file and follows its referenced
`nextStepFile` to ensure installed-package path rewrites work; implement the
fixture as a unit/integration test executed in CI (e.g.,
tests/bmm/smoke_installed_skill_test) that loads `workflow.md`, parses the step
link, asserts each referenced file exists and is readable, and fails the run if
any traversal/relative-path resolution breaks (target symbols: workflow.md,
./steps/step-01-init.md, and the step’s nextStepFile reference).
🪄 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: c051f71a-5726-4f8a-9585-476af1bcb41d

📥 Commits

Reviewing files that changed from the base of the PR and between 7b4875b and e868138.

⛔ Files ignored due to path filters (1)
  • src/bmm/module-help.csv is excluded by !**/*.csv
📒 Files selected for processing (13)
  • src/bmm/agents/analyst.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
💤 Files with no reviewable changes (1)
  • src/bmm/workflows/1-analysis/create-product-brief/bmad-skill-manifest.yaml

@alexeyv alexeyv force-pushed the convert-create-product-brief-skill branch from 6fd601a to c8916a4 Compare March 13, 2026 12:13
@alexeyv alexeyv merged commit 8067165 into bmad-code-org:main Mar 13, 2026
5 checks passed
alexeyv added a commit that referenced this pull request Mar 14, 2026
…1933)

* refactor(bmm): convert create-product-brief to native skill package

* fix(skills): normalize create-product-brief metadata refs

* fix(skills): normalize create-product-brief step links
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