From bmad-utility-skills
Audits BMAD source files for file-reference convention violations using parallel Haiku subagents. Use when users request an audit of file references.
How this skill is triggered — by the user, by Claude, or both
Slash command
/bmad-utility-skills:bmad-os-audit-file-refsThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Audit new-format BMAD source files for file-reference convention violations using parallel Haiku subagents.
Audit new-format BMAD source files for file-reference convention violations using parallel Haiku subagents.
In new-format BMAD workflow and task files (src/bmm/, src/core/, src/utility/), every file path reference must use one of these valid forms:
{project-root}/_bmad/path/to/file.ext — canonical form, always correct{installed_path}/relative/path — valid in new-format step files (always defined by workflow.md before any step is reached){nextStepFile}, {workflowFile}, {{mustache}}, {output_folder}, {communication_language}, etc. — skip these, they are substituted at runtimeFlag any reference that uses:
./step-NN.md or ../something.md — relative pathsstep-NN.md — bare filename with no path prefixsteps/step-NN.md — bare steps-relative path (missing {project-root}/_bmad/... prefix)`_bmad/core/tasks/help.md` — bare _bmad/ path (missing {project-root}/)/Users/..., /home/..., C:\... — absolute system pathsReferences inside fenced code blocks ( ```) are examples — skip them.
Old-format files in src/bmm/workflows/4-implementation/ use {installed_path} by design within the XML calling chain — exclude that directory entirely.
Run this command to get the file list:
find src/bmm src/core src/utility -type f \( -name "*.md" -o -name "*.yaml" \) | grep -v "4-implementation" | sort
Divide the resulting file paths into batches of roughly 20 files each.
For each batch, spawn a subagent (subagent_type: "Explore", model: "haiku") with this prompt (fill in the actual file paths):
Read each of these files (use the Read tool on each): [list the file paths from this batch]
For each file, identify every line that contains a file path reference that violates the convention described below. Skip references inside fenced code blocks. Skip template variables (anything containing
{that isn't{project-root}or{installed_path}).Valid references:
{project-root}/_bmad/...,{installed_path}/..., template variables. Flag: bare filenames (step-NN.md),./or../relative paths, baresteps/paths, bare_bmad/paths (without{project-root}/), absolute system paths.Return findings as a list:
path/to/file.md:LINE_NUMBER | VIOLATION_TYPE | offending textIf a file has no violations, include it as:
path/to/file.md | cleanEnd your response with a single line:
FILES CHECKED: Nwhere N is the exact number of files you read.
Collect all findings from all subagents.
Self-check before reporting: Count the total number of files returned by the find command. Sum the FILES CHECKED: N values across all subagent responses. If the totals do not match, identify which files are missing and re-run subagents for those files before proceeding. Do not produce the final report until all files are accounted for.
Output a final report:
file:line — offending textnpx claudepluginhub bmad-code-org/bmad-utility-skills --plugin bmad-utility-skillsCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.