Skip to content

chore(bmm): convert document-project to native skill packaging#1949

Merged
alexeyv merged 3 commits intomainfrom
convert-document-project-skill
Mar 14, 2026
Merged

chore(bmm): convert document-project to native skill packaging#1949
alexeyv merged 3 commits intomainfrom
convert-document-project-skill

Conversation

@alexeyv
Copy link
Copy Markdown
Collaborator

@alexeyv alexeyv commented Mar 12, 2026

Summary

  • mechanically convert document-project into native skill packaging at src/bmm/workflows/bmad-document-project/
  • switch manifest from type: workflow to type: skill
  • add SKILL.md with name/description frontmatter
  • preserve workflow logic/assets; only adjust required name/path references

Mechanical Conversion Changes

  • renamed workflow directory:
    • src/bmm/workflows/document-project -> src/bmm/workflows/bmad-document-project
  • updated workflow.md frontmatter name:
    • document-project -> bmad-document-project
  • updated internal self-references from _bmad/.../document-project to relative local paths
  • updated module and agent references:
    • src/bmm/module-help.csv: workflow-file -> skill:bmad-document-project
    • src/bmm/agents/analyst.agent.yaml: DP exec -> skill:bmad-document-project
    • src/bmm/agents/tech-writer/tech-writer.agent.yaml: DP exec -> skill:bmad-document-project

Validation

  • installer:
    • node tools/cli/bmad-cli.js install --directory /Users/alex/src/bmad --modules bmm --tools claude-code --yes
    • verified .claude/skills/bmad-document-project/ contains workflow + sub-workflows + templates + SKILL.md
    • verified _bmad/_config/skill-manifest.csv contains bmad-document-project
    • verified no bmad-document-project entry in _bmad/_config/workflow-manifest.csv
  • repo checks:
    • npm test passed

Functional Equivalence (Before/After)

  • preserved-file hash equivalence:
    • unchanged SHA-256 for instructions.md, checklist.md, documentation-requirements.csv, both sub-workflow instruction files, and all templates
  • workflow file diffs:
    • workflow.md, workflows/full-scan-workflow.md, and workflows/deep-dive-workflow.md differ only in mechanical name/path rewiring (installed_path and path references), with no instruction/step logic changes

Deferred Findings

  • no new pre-existing issues discovered during this conversion pass

@augmentcode
Copy link
Copy Markdown

augmentcode bot commented Mar 12, 2026

🤖 Augment PR Summary

Summary: Converts the legacy document-project workflow into native skill packaging so it can be installed and invoked as bmad-document-project.

Changes:

  • Moved the workflow directory to src/bmm/workflows/bmad-document-project/ and updated workflow.md frontmatter name.
  • Added SKILL.md + bmad-skill-manifest.yaml (type: skill) to register the directory as a skill.
  • Rewired internal workflow path references to use local relative paths (e.g., ., ../templates/...).
  • Updated Analyst and Tech Writer agent menu entries to execute via skill:bmad-document-project.

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 👎

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 12, 2026

📝 Walkthrough

Walkthrough

This 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

Cohort / File(s) Summary
Agent Workflow References
src/bmm/agents/analyst.agent.yaml, src/bmm/agents/tech-writer/tech-writer.agent.yaml
Updated DP workflow execution target from file-based path to skill invocation skill:bmad-document-project.
Skill Definition
src/bmm/workflows/bmad-document-project/SKILL.md, src/bmm/workflows/bmad-document-project/bmad-skill-manifest.yaml
Added new skill entrypoint and manifest files for bmad-document-project skill.
Workflow Path Migrations
src/bmm/workflows/bmad-document-project/workflow.md, src/bmm/workflows/bmad-document-project/workflows/deep-dive-workflow.md, src/bmm/workflows/bmad-document-project/workflows/full-scan-workflow.md
Renamed workflow to bmad-document-project and converted absolute project-root paths to relative paths (e.g., {project-root}/_bmad/...., ../checklist.md).
Legacy Cleanup
src/bmm/workflows/document-project/bmad-skill-manifest.yaml
Removed canonicalId, type, and description fields from deprecated manifest.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

Suggested reviewers

  • bmadcode
🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly describes the main change: converting the document-project workflow into native skill packaging, which is the primary objective of the changeset.
Description check ✅ Passed The description is directly related to the changeset, providing detailed context about the mechanical conversion, validation steps performed, and functional equivalence verification.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch convert-document-project-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.

🧹 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_mode and scan_level are "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

📥 Commits

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

⛔ Files ignored due to path filters (2)
  • src/bmm/module-help.csv is excluded by !**/*.csv
  • src/bmm/workflows/bmad-document-project/documentation-requirements.csv is excluded by !**/*.csv
📒 Files selected for processing (17)
  • src/bmm/agents/analyst.agent.yaml
  • src/bmm/agents/tech-writer/tech-writer.agent.yaml
  • src/bmm/workflows/bmad-document-project/SKILL.md
  • src/bmm/workflows/bmad-document-project/bmad-skill-manifest.yaml
  • src/bmm/workflows/bmad-document-project/checklist.md
  • src/bmm/workflows/bmad-document-project/instructions.md
  • src/bmm/workflows/bmad-document-project/templates/deep-dive-template.md
  • src/bmm/workflows/bmad-document-project/templates/index-template.md
  • src/bmm/workflows/bmad-document-project/templates/project-overview-template.md
  • src/bmm/workflows/bmad-document-project/templates/project-scan-report-schema.json
  • src/bmm/workflows/bmad-document-project/templates/source-tree-template.md
  • src/bmm/workflows/bmad-document-project/workflow.md
  • src/bmm/workflows/bmad-document-project/workflows/deep-dive-instructions.md
  • src/bmm/workflows/bmad-document-project/workflows/deep-dive-workflow.md
  • src/bmm/workflows/bmad-document-project/workflows/full-scan-instructions.md
  • src/bmm/workflows/bmad-document-project/workflows/full-scan-workflow.md
  • src/bmm/workflows/document-project/bmad-skill-manifest.yaml
💤 Files with no reviewable changes (1)
  • src/bmm/workflows/document-project/bmad-skill-manifest.yaml

@alexeyv alexeyv force-pushed the convert-document-project-skill branch from a94b3cd to cf0d9b0 Compare March 14, 2026 18:26
alexeyv added 2 commits March 14, 2026 14:18
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.
@alexeyv alexeyv force-pushed the convert-document-project-skill branch from cf0d9b0 to cc2a414 Compare March 14, 2026 20:20
@alexeyv alexeyv merged commit 8886805 into main Mar 14, 2026
5 checks passed
@alexeyv alexeyv deleted the convert-document-project-skill branch March 15, 2026 02:50
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