Skip to content

Move module skills to repo-root skills/ for the Vercel skills CLI - #995

Merged
pbean merged 1 commit into
mainfrom
feat/root-skills-dir
Oct 19, 2026
Merged

pbean merged 1 commit into
mainfrom
feat/root-skills-dir

Conversation

@pbean

@pbean pbean commented Oct 19, 2026

Copy link
Copy Markdown
Collaborator

Summary

Moves the bmad-loop-* skills and the bmod-bmad-loop module record from src/bmad_loop/data/skills/ to a repo-root skills/ directory. skills/ is a default discovery path of the Vercel skills CLI, so npx skills add bmad-code-org/bmad-loop finds them without going through .claude-plugin/marketplace.json.

  • Wheel bundling kept: [tool.hatch.build.targets.wheel.force-include] maps skills/ to bmad_loop/data/skills, so bmad-loop init still installs the skills from the package.
  • install.skills_root(): one lookup for the bundled skills. An editable install (uv sync) skips force-include, so in a source checkout it falls back to the repo's skills/. Every former resources.files("bmad_loop.data").joinpath("skills") site now goes through it.
  • Paths updated:
    • bmod.toml source/update_source now point to github:bmad-code-org/bmad-loop/skills.
    • marketplace.json uses the new paths.
    • So do seed_skills.py, sync_version.py, release.py, the tests, the ruff exclude, AGENTS.md/CONTRIBUTING/setup and sweep guides, and skills/README.md.
  • Root module.yaml mirror dropped: it existed only because the old canonical copy was nested too deep for the BMAD installer. skills/bmad-loop-setup/assets/module.yaml is a path the installer discovers directly. sync_version.py no longer stamps or checks the mirror, and release.py no longer stages it.

Verification

  • npx skills@1.7.2 add <clean tracked-files export> --list finds all 4 skills, both with and without .claude-plugin/.
  • npx skills add … --skill '*' -a claude-code --copy -y installs every file, including assets/ and help/.
  • A built wheel in a fresh venv resolves skills_root() to site-packages/bmad_loop/data/skills.
  • uv run pytest -n logical: 16691 passed, 116 skipped.
  • uv run pyright: 0 errors.
  • trunk check: clean.
  • sync_version.py --check and release.py check pass.

npx skills add bmad-code-org/bmad-loop reads the default branch, so the new layout takes effect for installers once this merges.

The bmad-loop-* skills and the bmod-bmad-loop record move from
src/bmad_loop/data/skills/ to skills/, a default discovery path of
`npx skills add`, so the repo installs without relying on the
.claude-plugin manifest.

- pyproject: wheel force-include maps skills/ to bmad_loop/data/skills,
  so `bmad-loop init` still lays them down from the installed package.
- install.skills_root(): single lookup for the bundled skills; falls
  back to the checkout's skills/ in an editable install, where
  force-include does not apply. All call sites route through it.
- bmod.toml sources, marketplace.json, seed/sync/release scripts,
  tests and docs point at the new path.
- Drop the repo-root module.yaml mirror; the BMAD installer finds
  skills/bmad-loop-setup/assets/module.yaml directly.
@pbean
pbean merged commit f82dcd8 into main Oct 19, 2026
14 checks passed
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