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

validate.md

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

Open on GitHub

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

1# Validate
2
3Check a skill or a module and report what would stop it installing, loading or firing, with the fix for each. This mode writes nothing.
4

Validate

Check a skill or a module and report what would stop it installing, loading or firing, with the fix for each. This mode writes nothing.

Raw lines 1 to 4
5## Target
6
7A path to a skill, a record folder, or a repository. A folder holding `module.yaml`, `module-help.csv` or a `<code>-setup` skill is the old module format: report one line, "old-format module: convert it with the migrate mode", and stop, because none of the checks below apply to it.
8

Target

A path to a skill, a record folder, or a repository. A folder holding module.yaml, module-help.csv or a <code>-setup skill is the old module format: report one line, "old-format module: convert it with the migrate mode", and stop, because none of the checks below apply to it.

Raw lines 5 to 8
9## Checks
11Run them all, then report; do not stop at the first failure.
13- In a repository with `skills/*/bmod.toml`: `uv run {project-root}/_bmad/scripts/validate_manifests.py --project-root <repo>`. It covers manifests, membership, versions, retired names, help topics and the roster, and each message names its fix.
14- For each skill: `uv run {skill-root}/scripts/init_skill.py --check <skill>` (frontmatter, name, description, `[TODO:` left behind, `bmod.toml` parses; add `--any-name` outside BMAD-METHOD) and `uv run {skill-root}/scripts/scan_paths.py <skill>` (paths that do not resolve, bare `scripts/` calls, references into another skill, old-format names). `uv run {skill-root}/scripts/scan_scripts.py <skill>` when it has scripts, then run its tests.
15- When `evals/triggers.json` exists, offer a trigger eval once and invoke the `bmad-eval` skill in trigger mode on a yes.
17Only what the tools do not check is yours to judge:
19- A record's `SKILL.md` body does anything but redirect to `bmad setup <code>`.
20- A member reads a value from config that no question in the record asks, or a question no member reads.
21- `help/help.md` tells the help agent things it cannot act on: install mechanics, manifest keys.
22- A skill's name carries `bmad-` outside BMAD-METHOD, or lacks its module's code.

Checks

Run them all, then report; do not stop at the first failure.

  • In a repository with skills/*/bmod.toml: uv run {project-root}/_bmad/scripts/validate_manifests.py --project-root <repo>. It covers manifests, membership, versions, retired names, help topics and the roster, and each message names its fix.
  • For each skill: uv run {skill-root}/scripts/init_skill.py --check <skill> (frontmatter, name, description, [TODO: left behind, bmod.toml parses; add --any-name outside BMAD-METHOD) and uv run {skill-root}/scripts/scan_paths.py <skill> (paths that do not resolve, bare scripts/ calls, references into another skill, old-format names). uv run {skill-root}/scripts/scan_scripts.py <skill> when it has scripts, then run its tests.
  • When evals/triggers.json exists, offer a trigger eval once and invoke the bmad-eval skill in trigger mode on a yes.

Only what the tools do not check is yours to judge:

  • A record's SKILL.md body does anything but redirect to bmad setup <code>.
  • A member reads a value from config that no question in the record asks, or a question no member reads.
  • help/help.md tells the help agent things it cannot act on: install mechanics, manifest keys.
  • A skill's name carries bmad- outside BMAD-METHOD, or lacks its module's code.
Raw lines 9 to 23
Runs code scripts/validate_manifests.py :13
Runs code scripts/init_skill.py :14
Runs code scripts/scan_paths.py :14
Runs code scripts/scan_scripts.py :14
Names a skill bmad-eval :15
24## Report
26One line per finding: file, what is wrong, the fix. Then the counts, and whether the target would install and load as it stands. Offer to fix through `modes/edit.md`; do not fix here.

Report

One line per finding: file, what is wrong, the fix. Then the counts, and whether the target would install and load as it stands. Offer to fix through modes/edit.md; do not fix here.

Raw lines 24 to 26