Convert sprint-status workflow to native skill packaging#1945
Conversation
🤖 Augment PR SummarySummary: Converts the existing 🤖 Was this summary useful? React with 👍 or 👎 |
📝 WalkthroughWalkthroughThis PR reorganizes the sprint-status workflow into a new bmad-sprint-status skill structure. It introduces a new SKILL.md documentation file, adds a manifest file in the new directory, updates the workflow metadata and path reference, and removes the old manifest from the original sprint-status location. Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~8 minutes Possibly related PRs
Suggested reviewers
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
📝 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. Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
🧹 Nitpick comments (5)
src/bmm/workflows/4-implementation/bmad-sprint-status/SKILL.md (3)
1-6: Document the non-interactive entry modes somewhere discoverable.This skill supports
mode=dataandmode=validate, but the entrypoint gives callers no hint that those machine-oriented modes exist. A short note or example here would make the skill composable instead of looking interactive-only.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@src/bmm/workflows/4-implementation/bmad-sprint-status/SKILL.md` around lines 1 - 6, Add a short discoverable note in SKILL.md for the bmad-sprint-status skill that documents the non-interactive entry modes `mode=data` and `mode=validate`; update the top description (near "Summarize sprint status...") to mention these machine-oriented modes and include a brief example call or usage line showing how to invoke the skill with mode=data and mode=validate so callers know the skill is composable and not interactive-only.
2-3: The description undersells what this skill actually does.
workflow.mddoes more than “check/show sprint status” — it also selects the next recommended workflow action. If you want natural-language matching to work well, the description should advertise that next-step guidance explicitly.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@src/bmm/workflows/4-implementation/bmad-sprint-status/SKILL.md` around lines 2 - 3, The SKILL.md description for the skill "bmad-sprint-status" currently only says it summarizes sprint status; update the description string in SKILL.md (the value under name: bmad-sprint-status) to explicitly mention that the skill also recommends the next workflow action (next-step guidance) and surfaces risks — e.g., add phrasing like "summarize sprint status, surface risks, and recommend the next workflow action" so natural-language matching covers requests for both status and next-step guidance; also ensure any README/workflow.md references to this skill reflect the expanded capability.
6-6: Add a packaging test for theSKILL.md→workflow.mdhandoff.With native-skill packaging, this file is now the permanent entrypoint and
workflow.mdis the real body. A small install fixture that asserts the generated skill remains discoverable and still hands off toworkflow.mdwould catch packaging regressions early.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@src/bmm/workflows/4-implementation/bmad-sprint-status/SKILL.md` at line 6, Add a unit/integration test that verifies the SKILL.md → workflow.md handoff in the native-skill packaging process: create an install fixture that packages the skill using the same packaging path as the build, installs the generated artifact, then asserts the skill is discoverable and that invoking the skill's entrypoint from SKILL.md results in workflow.md being executed (check for an expected marker or output emitted by workflow.md). Put this test alongside existing packaging tests and name it to reflect SKILL_to_workflow_handoff so it runs in CI and will catch regressions in the packaging pipeline.src/bmm/workflows/4-implementation/bmad-sprint-status/bmad-skill-manifest.yaml (1)
1-1: Add a regression fixture for the one-line skill manifest.This conversion now depends on
bmad-skill-manifest.yamlbeing discoverable fromtype: skillalone. That works today, but it is an easy silent failure ifloadSkillManifest()orcollectSkills()ever tighten their parsing. A tiny installer/manifest-generator fixture for this exact shape would keep the skill from disappearing unnoticed.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@src/bmm/workflows/4-implementation/bmad-sprint-status/bmad-skill-manifest.yaml` at line 1, Add a regression fixture containing the minimal one-line skill manifest so the conversion/tests don't silently break; create a test fixture file named bmad-skill-manifest.yaml whose contents match the single-line shape used in the repo (type: skill) and ensure test helpers that exercise loadSkillManifest() and collectSkills() can discover and load this fixture (update the test fixture registry or manifest-generator helper if necessary) so the one-line manifest remains covered by CI even if parsing is later tightened.src/bmm/workflows/4-implementation/bmad-sprint-status/workflow.md (1)
2-2: Add a rename-invariant test across directory,SKILL.md, andworkflow.md.For skills, canonical identity comes from the directory name, while execution/help text reads from
SKILL.mdandworkflow.md. This rename now has three separate name sources for the same artifact; a cheap fixture asserting they stay identical would catch the next half-completed rename before it ships.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@src/bmm/workflows/4-implementation/bmad-sprint-status/workflow.md` at line 2, Add a rename-invariant test that asserts the canonical skill identity (the directory name, e.g., "bmad-sprint-status") matches the declared name in SKILL.md and the frontmatter "name:" value in workflow.md; implement a test (e.g., test_rename_invariant or similar) that reads the current directory basename, parses SKILL.md (plain text/title) and workflow.md frontmatter (the "name:" key), and asserts all three strings are identical so future partial renames fail the CI.
🤖 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/4-implementation/bmad-sprint-status/SKILL.md`:
- Around line 1-6: The bmad-sprint-status skill is not listed in the Scrum
Master menu so it’s undiscoverable; add a menu entry for the workflow name
"bmad-sprint-status" into the SM agent configuration (the same section that
currently wires sibling workflows in sm.agent.yaml around the existing entries
at the block that includes the other implementation workflows), ensuring the
entry references the workflow id "bmad-sprint-status", provides a short
label/help text matching SKILL.md, and follows the same YAML structure/keys as
the other menu items so it appears in the SM interface.
In `@src/bmm/workflows/4-implementation/bmad-sprint-status/workflow.md`:
- Line 2: The workflow was renamed to bmad-sprint-status but user-facing text
still references the old name "sprint-status" (notably in Step 1 and the first
failure path); search this file for the literal "sprint-status" and replace
those occurrences with "bmad-sprint-status" so instructions, error/failure
messages, and any rerun guidance (Step 1, failure path messages) point to the
new workflow name and avoid sending users back to the retired skill.
---
Nitpick comments:
In
`@src/bmm/workflows/4-implementation/bmad-sprint-status/bmad-skill-manifest.yaml`:
- Line 1: Add a regression fixture containing the minimal one-line skill
manifest so the conversion/tests don't silently break; create a test fixture
file named bmad-skill-manifest.yaml whose contents match the single-line shape
used in the repo (type: skill) and ensure test helpers that exercise
loadSkillManifest() and collectSkills() can discover and load this fixture
(update the test fixture registry or manifest-generator helper if necessary) so
the one-line manifest remains covered by CI even if parsing is later tightened.
In `@src/bmm/workflows/4-implementation/bmad-sprint-status/SKILL.md`:
- Around line 1-6: Add a short discoverable note in SKILL.md for the
bmad-sprint-status skill that documents the non-interactive entry modes
`mode=data` and `mode=validate`; update the top description (near "Summarize
sprint status...") to mention these machine-oriented modes and include a brief
example call or usage line showing how to invoke the skill with mode=data and
mode=validate so callers know the skill is composable and not interactive-only.
- Around line 2-3: The SKILL.md description for the skill "bmad-sprint-status"
currently only says it summarizes sprint status; update the description string
in SKILL.md (the value under name: bmad-sprint-status) to explicitly mention
that the skill also recommends the next workflow action (next-step guidance) and
surfaces risks — e.g., add phrasing like "summarize sprint status, surface
risks, and recommend the next workflow action" so natural-language matching
covers requests for both status and next-step guidance; also ensure any
README/workflow.md references to this skill reflect the expanded capability.
- Line 6: Add a unit/integration test that verifies the SKILL.md → workflow.md
handoff in the native-skill packaging process: create an install fixture that
packages the skill using the same packaging path as the build, installs the
generated artifact, then asserts the skill is discoverable and that invoking the
skill's entrypoint from SKILL.md results in workflow.md being executed (check
for an expected marker or output emitted by workflow.md). Put this test
alongside existing packaging tests and name it to reflect
SKILL_to_workflow_handoff so it runs in CI and will catch regressions in the
packaging pipeline.
In `@src/bmm/workflows/4-implementation/bmad-sprint-status/workflow.md`:
- Line 2: Add a rename-invariant test that asserts the canonical skill identity
(the directory name, e.g., "bmad-sprint-status") matches the declared name in
SKILL.md and the frontmatter "name:" value in workflow.md; implement a test
(e.g., test_rename_invariant or similar) that reads the current directory
basename, parses SKILL.md (plain text/title) and workflow.md frontmatter (the
"name:" key), and asserts all three strings are identical so future partial
renames fail the CI.
🪄 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: 0f231248-a2d7-4309-bdce-8bf3e4a85fbe
⛔ Files ignored due to path filters (1)
src/bmm/module-help.csvis excluded by!**/*.csv
📒 Files selected for processing (4)
src/bmm/workflows/4-implementation/bmad-sprint-status/SKILL.mdsrc/bmm/workflows/4-implementation/bmad-sprint-status/bmad-skill-manifest.yamlsrc/bmm/workflows/4-implementation/bmad-sprint-status/workflow.mdsrc/bmm/workflows/4-implementation/sprint-status/bmad-skill-manifest.yaml
💤 Files with no reviewable changes (1)
- src/bmm/workflows/4-implementation/sprint-status/bmad-skill-manifest.yaml
| --- | ||
| name: bmad-sprint-status | ||
| description: 'Summarize sprint status and surface risks. Use when the user says "check sprint status" or "show sprint status"' | ||
| --- | ||
|
|
||
| Follow the instructions in [workflow.md](workflow.md). |
There was a problem hiding this comment.
This skill is still missing an SM menu entry.
src/bmm/agents/sm.agent.yaml:20-26 wires sibling implementation workflows into the Scrum Master menu, but not sprint status. Converting this to a native skill and updating help text still leaves it effectively undiscoverable from the main SM interface.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@src/bmm/workflows/4-implementation/bmad-sprint-status/SKILL.md` around lines
1 - 6, The bmad-sprint-status skill is not listed in the Scrum Master menu so
it’s undiscoverable; add a menu entry for the workflow name "bmad-sprint-status"
into the SM agent configuration (the same section that currently wires sibling
workflows in sm.agent.yaml around the existing entries at the block that
includes the other implementation workflows), ensuring the entry references the
workflow id "bmad-sprint-status", provides a short label/help text matching
SKILL.md, and follows the same YAML structure/keys as the other menu items so it
appears in the SM interface.
| @@ -1,5 +1,5 @@ | |||
| --- | |||
| name: sprint-status | |||
| name: bmad-sprint-status | |||
There was a problem hiding this comment.
The rename is still leaking the retired skill name.
After renaming this workflow to bmad-sprint-status, Step 1 still tells the user to “rerun sprint-status”. The first failure path sends people straight back to the old name.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@src/bmm/workflows/4-implementation/bmad-sprint-status/workflow.md` at line 2,
The workflow was renamed to bmad-sprint-status but user-facing text still
references the old name "sprint-status" (notably in Step 1 and the first failure
path); search this file for the literal "sprint-status" and replace those
occurrences with "bmad-sprint-status" so instructions, error/failure messages,
and any rerun guidance (Step 1, failure path messages) point to the new workflow
name and avoid sending users back to the retired skill.
5584a69 to
6691376
Compare
6691376 to
aecead2
Compare
Summary
src/bmm/workflows/4-implementation/sprint-statusinto native skill directorysrc/bmm/workflows/4-implementation/bmad-sprint-statustype: skilland addSKILL.mdmodule-help.csvValidation
node tools/cli/bmad-cli.js install --directory /Users/alex/src/bmad --modules bmm --tools claude-code --yes/Users/alex/src/bmad/.claude/skills/bmad-sprint-status/_bmad/_config/skill-manifest.csv; absent from_bmad/_config/workflow-manifest.csvworkflow.mdnpm test