Skip to content

feat!: replace per-skill module metadata with a bmod module record - #47

Merged
bmadcode merged 2 commits into
devfrom
bmad-bmod
Sep 21, 2026
Merged

bmadcode merged 2 commits into
devfrom
bmad-bmod

Conversation

@bmadcode

Copy link
Copy Markdown
Contributor

What

Converts CIS to the bmod layout that BMAD-METHOD merged in bmad-code-org/BMAD-METHOD#2916.

  • skills/bmod-cis/ is the module's record: bmod.toml, a stub SKILL.md, help/help.md with three topic files, and roster.toml.
  • Each of the ten skills carries a bmod.toml with a [skill] table.
  • Removed: root bmad-meta/, its 26 per-skill copies, ten module-manifest.toml files, tools/sync_knowledge.py.

Help

help.md leads with the six agents, then the four sessions with what each works through and writes. Topic files cover getting a good session, techniques, and changing a session or persona. The help no longer points at the documentation site, which is wrong about configuration and commands.

Skill changes

  • bmad-brainstorming is recommended by the module and is on the menus of Maya, Dr. Quinn and Victor as well as Carson. Carson no longer requires it.
  • Caravaggio: the Excalidraw wording is gone and the menu goes from seven prompts to four (PL plan, CR critique, EX video explainer, VM visual).
  • Storytelling offers all 25 frameworks in its library instead of a fixed ten, and reads the key_questions column the file actually has.
  • Session documents are named <stem>-{topic_slug}-{date}.md, and a session never overwrites an earlier one.
  • Sessions read a document the user names instead of a "data attribute". The storytelling "sidecar memory" line is removed.
  • Agents hand off to the bmad skill instead of bmad-help.

Tooling

  • tools/stamp_release.py stamps the [bmod] version and checks every bmod.toml, the record folder, the help topics and the roster. npm test runs it with --check.
  • The CI bmod job also checks out BMAD-METHOD dev and runs its tools/validate_manifests.py --project-root ., so this repo carries no copy of the runtime's checks.
  • tools/release.md and the README are updated.

Breaking

  • Installs need bmod-cis and bmad 6.13.0.
  • Caravaggio's menu codes SD, PD, CT, IN, CV are removed. An override keyed to one of them now adds an item.
  • Session output file names include the topic.

Verified

  • npm test, and BMAD-METHOD's validator against this tree.
  • Scratch project with BMM and CIS skills side by side: bmad setup cis and status, help lists the CIS document and topics, party mode shows all agents and the creative-studio and midnight-salon groups, an absent agent keeps its seat with its install command, a missing bmod-cis makes status name the install command.
  • The stamper on scratch copies: stamp changes only the version line, CRLF and trailing comments survive, a member missing from the record, an unnamed topic file and a version in another table are handled.

Not in this PR

The docs/ site rewrite, the changelog entry (written at release), and the 1.0 agent rework.

The module is now one folder, skills/bmod-cis, holding bmod.toml, a stub SKILL.md, help/help.md with three topic files, and roster.toml. Each member skill carries a bmod.toml with a [skill] table. The root bmad-meta folder, its 26 per-skill copies, the ten module-manifest.toml files and tools/sync_knowledge.py are removed.

- help.md leads with the six agents, then the four sessions with what each works through and writes. It no longer points at the documentation site, which is out of date.
- bmad-brainstorming is recommended by the module and is on the menus of Maya, Dr. Quinn and Victor as well as Carson, who no longer requires it.
- Caravaggio's menu drops the Excalidraw wording and goes from seven prompts to four: plan (PL), critique (CR), video explainer (EX), visual (VM).
- Storytelling offers all 25 frameworks in its library instead of a fixed ten, and reads the key_questions column the file actually has.
- Session documents are named <stem>-{topic_slug}-{date}.md and a session never overwrites an earlier one.
- Sessions read a document the user names instead of a "data attribute".
- Agents hand off to the bmad skill instead of bmad-help.
- tools/stamp_release.py stamps the [bmod] version and has a --check mode that npm test runs. CI also runs BMAD-METHOD's validate_manifests.py against this repository.

BREAKING CHANGE: module-manifest.toml and bmad-meta are gone; installs need bmod-cis and bmad 6.13.0. Caravaggio's menu codes SD, PD, CT, IN and CV are removed. Session output file names now include the topic.
@coderabbitai

coderabbitai Bot commented Sep 21, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Advanced

Run ID: 19c55fe7-85b4-40bb-9f3e-82f223c245ee

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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.

…cies, and handle a missing pause skill

- stamp_release.py compares each stamped file with what it should be before anything is written, so a bad stamp never reaches disk.
- A table-form required or recommended skill must give a source, as the runtime requires. Only a plain name of a skill in this repository goes without one.
- The four sessions say so and offer the install command when the user picks advanced elicitation or party mode and that skill is not installed.
- The help no longer says a persona's name and title can be customized.
@bmadcode
bmadcode merged commit ddb0d12 into dev Sep 21, 2026
5 checks passed
bmadcode added a commit that referenced this pull request Sep 21, 2026
* feat: distribute CIS as plain skills through npx skills (#45)

* feat: distribute CIS as plain skills through npx skills

CIS becomes a module that installs and updates through `npx skills`, with no
installer. This includes the work from #43, rebased onto main, plus the
module help, roster, and dependency declarations that followed it.

Layout
- Move the ten skills from src/skills/ to a repo-root skills/ tree, which is
  the only place `npx skills` installs from.
- Delete src/module.yaml, src/module-help.csv and the plugin marketplace
  manifest. Nothing reads them on the new path.
- Prune eslint ignores and sixteen devDependencies inherited from
  BMAD-METHOD that had no counterpart or importer here.

Manifests
- Every skill carries module-manifest.toml: module, version, update_source,
  knowledge, roster, requires and recommends.
- Every skill requires the bmad hub skill 6.13.0 or later.
- Every skill recommends bmad-advanced-elicitation, bmad-customize,
  bmad-forge-idea and bmad-party-mode. Personas also recommend the skill
  behind their menu.

Help and roster live in the skills
- knowledge was a link to the docs site llms.txt, so help had nothing local
  to read. It is now a list of documents each skill carries:
  bmad-meta/cis-help.md in all ten skills, bmad-meta/agents-help.md in the
  six personas. The content replaces what module-help.csv held.
- bmad-meta/cis-roster.toml, named by the new roster key, holds what
  module.yaml's agents list held: the six personas as party members, four
  guest members, and two groups (creative-studio, midnight-salon). It uses
  the fields bmad-party-mode already uses. Party mode does not read it yet.
- These files are edited once in bmad-meta/ at the repo root.
  tools/sync_knowledge.py copies each into the skills whose manifests name
  it, under any key, and removes a shared copy a manifest stops naming.
  npm test fails when the copies drift or a roster group names a member
  nobody defines.

Skills
- Resolve central config through _bmad/scripts/resolve_config.py instead of
  the module-era _bmad/cis/config.yaml.
- When the resolver script is missing, offer the bmad skill's setup,
  installing bmad first when the agent has no such skill. Personas offer to
  install a menu skill that is not present.
- Drop user name and language config from skill prose.

Release tooling
- tools/stamp_release.py writes a version into every manifest and
  tools/release.md is the runbook. The stamper validates knowledge and
  roster files, requires and recommends entries, and accepts manifest keys
  it does not know, since the runtime ignores them. Only the top-level
  version line is rewritten, and the stamp fails if anything else changed.

Still open: update_source points at the cis-skills mirror repository.

Co-authored-by: Alex Verkhovsky <alexey.verkhovsky@gmail.com>

* chore(release): release from this repository with a dev branch

The cis-skills mirror is being removed. update_source now names this
repository in every manifest and in the stamper.

tools/release.md follows the BMAD-METHOD procedure: dev receives PRs, main
is release-only and is what npx skills installs, and a release
fast-forwards main to a stamped commit on dev and tags it.

* chore: remove the npm release workflow and version field

Releases are now a stamped commit promoted from dev to main, so the workflow
that ran npm version and pushed to main can no longer be used, and would
break main staying an ancestor of dev. package.json loses its release
scripts, publishConfig, empty main and bin, and its version: the manifests
are the only version source.

* chore: set the placeholder to 0.4.0-next and check bmad-meta copies in CI

- README installs CIS with npx skills and names the real skills; the old
  installer command and /cis-* commands no longer exist.
- quality.yaml runs tools/sync_knowledge.py, which until now only ran in the
  local hook, so a PR with stale bmad-meta copies can no longer merge.
- 0.3.2 is already released, so the placeholder becomes 0.4.0-next and
  personas recommend their menu skill at 0.4.0.

---------

Co-authored-by: Alex Verkhovsky <alexey.verkhovsky@gmail.com>

* feat!: replace per-skill module metadata with a bmod module record (#47)

* feat!: replace per-skill module metadata with a bmod module record

The module is now one folder, skills/bmod-cis, holding bmod.toml, a stub SKILL.md, help/help.md with three topic files, and roster.toml. Each member skill carries a bmod.toml with a [skill] table. The root bmad-meta folder, its 26 per-skill copies, the ten module-manifest.toml files and tools/sync_knowledge.py are removed.

- help.md leads with the six agents, then the four sessions with what each works through and writes. It no longer points at the documentation site, which is out of date.
- bmad-brainstorming is recommended by the module and is on the menus of Maya, Dr. Quinn and Victor as well as Carson, who no longer requires it.
- Caravaggio's menu drops the Excalidraw wording and goes from seven prompts to four: plan (PL), critique (CR), video explainer (EX), visual (VM).
- Storytelling offers all 25 frameworks in its library instead of a fixed ten, and reads the key_questions column the file actually has.
- Session documents are named <stem>-{topic_slug}-{date}.md and a session never overwrites an earlier one.
- Sessions read a document the user names instead of a "data attribute".
- Agents hand off to the bmad skill instead of bmad-help.
- tools/stamp_release.py stamps the [bmod] version and has a --check mode that npm test runs. CI also runs BMAD-METHOD's validate_manifests.py against this repository.

BREAKING CHANGE: module-manifest.toml and bmad-meta are gone; installs need bmod-cis and bmad 6.13.0. Caravaggio's menu codes SD, PD, CT, IN and CV are removed. Session output file names now include the topic.

* fix: check a stamp before writing, require a source on table dependencies, and handle a missing pause skill

- stamp_release.py compares each stamped file with what it should be before anything is written, so a bad stamp never reaches disk.
- A table-form required or recommended skill must give a source, as the runtime requires. Only a plain name of a skill in this repository goes without one.
- The four sessions say so and offer the install command when the user picks advanced elicitation or party mode and that skill is not installed.
- The help no longer says a persona's name and title can be customized.

---------

Co-authored-by: Alex Verkhovsky <alexey.verkhovsky@gmail.com>
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