Skill Tracer
Skills › BMAD Method › bmad-toolsmith › package.md

package.md

26 lines · skills/bmad-toolsmith/modes/package.md at bd70c64

Open on GitHub

Most marks come from matching words in the file, so treat them as pointers.

1# Package
2
3Wrap one skill or several that already exist into a module, so `bmad` sets them up, answers help about them and checks them for updates. The outcome: a record, a `[skill]` file in each member, and skills that read their config through it, all approved before anything is written.
4

Package

Wrap one skill or several that already exist into a module, so bmad sets them up, answers help about them and checks them for updates. The outcome: a record, a [skill] file in each member, and skills that read their config through it, all approved before anything is written.

Raw lines 1 to 4
Names a skill bmad :3
5## Read what exists
6
7The user points at a folder of skills or at one skill. Run `uv run {skill-root}/scripts/prepass.py <skill>` for each and take its facts: shape hint, description length and `Use when`, customize and scripts, path findings. Read raw files only for what it does not give: the `[agent]` block in `customize.toml`, each path or value the skill hardcodes or reads from config, and the skills it invokes. A skill whose `bmod.toml` already carries `[skill]` belongs to another module: it can be a dependency here, not a member. Say so.
8

Read what exists

The user points at a folder of skills or at one skill. Run uv run {skill-root}/scripts/prepass.py <skill> for each and take its facts: shape hint, description length and Use when, customize and scripts, path findings. Read raw files only for what it does not give: the [agent] block in customize.toml, each path or value the skill hardcodes or reads from config, and the skills it invokes. A skill whose bmod.toml already carries [skill] belongs to another module: it can be a dependency here, not a member. Say so.

Raw lines 5 to 8
Runs code scripts/prepass.py :7
9## Propose
11Show one plan and wait for a yes or changes:
13- The shape: one skill with its own answers is the single-skill module; two or more, or a skill joining an existing record, is the multi-skill module. Load the shape file at the write step, not now.
14- The code: short, lowercase, the user's org or the module's purpose, and not a module the user already has. Members carry it as prefix (`acme-...`, agents `acme-agent-...`); `bmad-` belongs to the bmad-code-org. Offer a rename for a member that lacks it, say that renaming changes how the skill is invoked, and let the user decline.
15- `update_source`: the pushed repo, `github:<owner>/<repo>` or `github:<owner>/<repo>/<path>`; ask when it is not in the conversation.
16- The config questions, one per path or setting the skills hardcode or share, each with `key`, `prompt`, `default` and `scope`. A value several skills read the same way is one question.
17- The roster entries for agents, from each `customize.toml` `[agent]`.
18- `help.md` drafted from each description: what it gives, when to recommend it, what to offer next.
19- Dependencies: `bmad` required at the installed `bmod-core-tools` version; skills a member invokes as required or recommended, in the record when module-wide, in the member otherwise.
20- The files it will write and the config reads it will change, by file.

Propose

Show one plan and wait for a yes or changes:

  • The shape: one skill with its own answers is the single-skill module; two or more, or a skill joining an existing record, is the multi-skill module. Load the shape file at the write step, not now.
  • The code: short, lowercase, the user's org or the module's purpose, and not a module the user already has. Members carry it as prefix (acme-..., agents acme-agent-...); bmad- belongs to the bmad-code-org. Offer a rename for a member that lacks it, say that renaming changes how the skill is invoked, and let the user decline.
  • update_source: the pushed repo, github:<owner>/<repo> or github:<owner>/<repo>/<path>; ask when it is not in the conversation.
  • The config questions, one per path or setting the skills hardcode or share, each with key, prompt, default and scope. A value several skills read the same way is one question.
  • The roster entries for agents, from each customize.toml [agent].
  • help.md drafted from each description: what it gives, when to recommend it, what to offer next.
  • Dependencies: bmad required at the installed bmod-core-tools version; skills a member invokes as required or recommended, in the record when module-wide, in the member otherwise.
  • The files it will write and the config reads it will change, by file.
Raw lines 9 to 21
Involves a person and wait :11
Names a skill bmad :19
Names a skill bmod-core-tools :19
22## Write
24On approval set `{target}`: the record folder `bmod-<code>/` for a multi-skill module, the skill folder for a single-skill one. Load `shapes/single-skill-module/shape.md` or `shapes/multi-skill-module/shape.md` and emit its files. Then rewrite each skill's config reads to `uv run {project-root}/_bmad/scripts/resolve_config.py --project-root {project-root} --key modules.<code>.<key>`, one call per skill with every key it needs, dropping the hardcoded value each replaces. Touch nothing else in the skills.
26Load `ship.md`.

Write

On approval set {target}: the record folder bmod-<code>/ for a multi-skill module, the skill folder for a single-skill one. Load shapes/single-skill-module/shape.md or shapes/multi-skill-module/shape.md and emit its files. Then rewrite each skill's config reads to uv run {project-root}/_bmad/scripts/resolve_config.py --project-root {project-root} --key modules.<code>.<key>, one call per skill with every key it needs, dropping the hardcoded value each replaces. Touch nothing else in the skills.

Load ship.md.

Raw lines 22 to 26
Runs code scripts/resolve_config.py :24