chore(bmm): convert document-project to native skill packaging#1949
chore(bmm): convert document-project to native skill packaging#1949
Conversation
🤖 Augment PR SummarySummary: Converts the legacy Changes:
Technical Notes: Intended to be a mechanical conversion with workflow logic/templates preserved; only naming/path references were adjusted. 🤖 Was this summary useful? React with 👍 or 👎 |
📝 WalkthroughWalkthroughThis change converts the document-project workflow from file-based execution to a skill-based invocation model. It creates a new bmad-document-project skill with manifest and entrypoint files, updates agent references to use skill invocation syntax, migrates workflow paths from absolute project-root references to relative paths, and depreciates the legacy skill manifest. Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 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.
🧹 Nitpick comments (2)
src/bmm/agents/analyst.agent.yaml (1)
41-43: Skill invocation pattern applied, but inconsistent with sibling menu items.The DP menu item now uses
skill:bmad-document-project, but other menu items (BP, MR, DR, TR, CB on lines 21-39) still use{project-root}/_bmad/...filesystem paths. This creates an inconsistent execution pattern within the same agent.If other workflows will eventually be converted to skills, consider noting this as tech debt to track. Otherwise, document why DP uses skill invocation while others use direct paths.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@src/bmm/agents/analyst.agent.yaml` around lines 41 - 43, The DP menu item uses exec "skill:bmad-document-project" while sibling menu items (BP, MR, DR, TR, CB) still execute local filesystem handlers like "{project-root}/_bmad/…", causing inconsistency; update the DP entry in analyst.agent.yaml so its exec matches the pattern used by the others (change "skill:bmad-document-project" to the same "{project-root}/_bmad/bmad-document-project" path used by BP/MR/DR/TR/CB) or, if the intent is to migrate all to skill invocations, update the other menu items' exec values to "skill:..." for consistency and add a short comment noting this as tech debt/intent (referencing the exec field and the bmad-document-project identifier).src/bmm/workflows/bmad-document-project/workflows/full-scan-workflow.md (1)
33-36: Runtime inputs lack validation for parent-set values.The runtime inputs document that
workflow_modeandscan_levelare "set by parent" but have empty string defaults. If the parent router fails to set these values, the workflow would proceed with empty strings rather than failing fast.Per learnings, runtime inputs are declarative defaults that don't clobber router-set state, so this is acceptable. However, consider whether the workflow execution logic handles the empty-string case gracefully.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@src/bmm/workflows/bmad-document-project/workflows/full-scan-workflow.md` around lines 33 - 36, The runtime inputs `workflow_mode` and `scan_level` currently default to empty strings and must be validated at workflow start: add a validation step (e.g., validateRuntimeInputs or in the workflow initializer/entry method) that checks `workflow_mode` is one of ["initial_scan","full_rescan"] and `scan_level` is one of ["quick","deep","exhaustive"], and if they are empty/invalid either throw a clear error to fail-fast or set a safe default; also ensure `resume_mode` and `autonomous` are coerced to booleans before use so downstream logic that reads `resume_mode`/`autonomous` handles missing or wrong types gracefully.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Nitpick comments:
In `@src/bmm/agents/analyst.agent.yaml`:
- Around line 41-43: The DP menu item uses exec "skill:bmad-document-project"
while sibling menu items (BP, MR, DR, TR, CB) still execute local filesystem
handlers like "{project-root}/_bmad/…", causing inconsistency; update the DP
entry in analyst.agent.yaml so its exec matches the pattern used by the others
(change "skill:bmad-document-project" to the same
"{project-root}/_bmad/bmad-document-project" path used by BP/MR/DR/TR/CB) or, if
the intent is to migrate all to skill invocations, update the other menu items'
exec values to "skill:..." for consistency and add a short comment noting this
as tech debt/intent (referencing the exec field and the bmad-document-project
identifier).
In `@src/bmm/workflows/bmad-document-project/workflows/full-scan-workflow.md`:
- Around line 33-36: The runtime inputs `workflow_mode` and `scan_level`
currently default to empty strings and must be validated at workflow start: add
a validation step (e.g., validateRuntimeInputs or in the workflow
initializer/entry method) that checks `workflow_mode` is one of
["initial_scan","full_rescan"] and `scan_level` is one of
["quick","deep","exhaustive"], and if they are empty/invalid either throw a
clear error to fail-fast or set a safe default; also ensure `resume_mode` and
`autonomous` are coerced to booleans before use so downstream logic that reads
`resume_mode`/`autonomous` handles missing or wrong types gracefully.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: 848b00cb-5a96-47fa-bc09-464f3393bfd3
⛔ Files ignored due to path filters (2)
src/bmm/module-help.csvis excluded by!**/*.csvsrc/bmm/workflows/bmad-document-project/documentation-requirements.csvis excluded by!**/*.csv
📒 Files selected for processing (17)
src/bmm/agents/analyst.agent.yamlsrc/bmm/agents/tech-writer/tech-writer.agent.yamlsrc/bmm/workflows/bmad-document-project/SKILL.mdsrc/bmm/workflows/bmad-document-project/bmad-skill-manifest.yamlsrc/bmm/workflows/bmad-document-project/checklist.mdsrc/bmm/workflows/bmad-document-project/instructions.mdsrc/bmm/workflows/bmad-document-project/templates/deep-dive-template.mdsrc/bmm/workflows/bmad-document-project/templates/index-template.mdsrc/bmm/workflows/bmad-document-project/templates/project-overview-template.mdsrc/bmm/workflows/bmad-document-project/templates/project-scan-report-schema.jsonsrc/bmm/workflows/bmad-document-project/templates/source-tree-template.mdsrc/bmm/workflows/bmad-document-project/workflow.mdsrc/bmm/workflows/bmad-document-project/workflows/deep-dive-instructions.mdsrc/bmm/workflows/bmad-document-project/workflows/deep-dive-workflow.mdsrc/bmm/workflows/bmad-document-project/workflows/full-scan-instructions.mdsrc/bmm/workflows/bmad-document-project/workflows/full-scan-workflow.mdsrc/bmm/workflows/document-project/bmad-skill-manifest.yaml
💤 Files with no reviewable changes (1)
- src/bmm/workflows/document-project/bmad-skill-manifest.yaml
a94b3cd to
cf0d9b0
Compare
Remove name/description frontmatter from workflow.md and sub-workflow files (deep-dive-workflow.md, full-scan-workflow.md). Metadata belongs exclusively in SKILL.md for native skill packages.
cf0d9b0 to
cc2a414
Compare
Summary
document-projectinto native skill packaging atsrc/bmm/workflows/bmad-document-project/type: workflowtotype: skillSKILL.mdwith name/description frontmatterMechanical Conversion Changes
src/bmm/workflows/document-project->src/bmm/workflows/bmad-document-projectworkflow.mdfrontmatter name:document-project->bmad-document-project_bmad/.../document-projectto relative local pathssrc/bmm/module-help.csv:workflow-file->skill:bmad-document-projectsrc/bmm/agents/analyst.agent.yaml: DP exec ->skill:bmad-document-projectsrc/bmm/agents/tech-writer/tech-writer.agent.yaml: DP exec ->skill:bmad-document-projectValidation
node tools/cli/bmad-cli.js install --directory /Users/alex/src/bmad --modules bmm --tools claude-code --yes.claude/skills/bmad-document-project/contains workflow + sub-workflows + templates +SKILL.md_bmad/_config/skill-manifest.csvcontainsbmad-document-projectbmad-document-projectentry in_bmad/_config/workflow-manifest.csvnpm testpassedFunctional Equivalence (Before/After)
instructions.md,checklist.md,documentation-requirements.csv, both sub-workflow instruction files, and all templatesworkflow.md,workflows/full-scan-workflow.md, andworkflows/deep-dive-workflow.mddiffer only in mechanical name/path rewiring (installed_pathand path references), with no instruction/step logic changesDeferred Findings