--- name: skill-audit description: > Use when the user wants a skill directory audited against the agentskills.io spec — "audit this skill", "review my SKILL.md", "is this ready to ship" — or after hand-editing a skill outside skill-author. Not applying fixes -> skill-author. allowed-tools: Bash Read metadata: category: factory source_keys: - agentskills-home - agentskills-spec - agentskills-best-practices - agentskills-optimizing-descriptions - agentskills-using-scripts --- ## Gotchas - Do not narrate PASS/FAIL per check while auditing. Gather findings internally and surface them only in the Step 4 report. Narrating each check as you go is the default failure mode here. - A skill carrying `disable-model-invocation: true` is hand-invoked — its description is never routed against, so the trigger, capability and boundary rules do not apply. Audit it as one plain human-facing sentence instead. - `validate.sh` reports two independent length families: the 500-line / 2,770-word pair counts the whole file for spec conformance, while the 250/400-character and 600/900-word pair is the house context budget and its word half counts the **body only**. A skill can sit inside one and fail the other — report them separately. - Vale reporting `0 files` scanned means NOT RUN, not clean. Fall back to full Step 3 judgment for every dimension it would have covered. ## Step 1 — Deterministic checks Resolve all three paths against this skill's own directory so they work from a repo checkout and an installed plugin cache alike. Run exactly: ```bash bash scripts/validate.sh bash scripts/validate-provenance.sh scripts/vale-wrap.sh /SKILL.md ``` `validate.sh` findings become the `### Structure` dimension — its FAILs and its SUGGESTIONs both. If any of the three fails, cannot run, or reports something needing interpretation, read `references/validation-scripts.md` — it carries the manual fallback and the misleading exit codes. `validate-provenance.sh` prints nothing on success. Its FAIL and INFO findings become a separate `### Provenance` dimension, and it emits Why and Fix itself — surface those verbatim. `vale-wrap.sh` applies the bundled `Kyberforge` style as a prefilter. Pass no `--config`; the wrapper locates its own. Every rule is graded `error`, so every alert is a FAIL. Report each one citing its rule ID, filed under the dimension it belongs to, and do not re-derive it by judgment: | Rule | Dimension | |---|---| | `Kyberforge.DescriptionOpener`, `Kyberforge.CompositionNote`, `Kyberforge.VagueWording` | description | | `Kyberforge.SentenceOpenerThereIs` | body-discipline | | `Kyberforge.PaddingPhrase` | patterns | ## Step 2 — Read the whole skill Read `SKILL.md`, `README.md`, and every text file under `scripts/`, `references/`, `assets/` and `tests/`. Skip binaries only — internal-consistency findings need the full picture. ## Step 3 — Qualitative audit Load a dimension's rubric before judging that dimension. Each is self-contained, and each is grounded in the agentskills.io specification plus the house context-budget contract (ADR-0020). | Dimension | Read | |---|---| | description | `references/description-quality.md` | | body-discipline | `references/body-discipline.md` | | patterns | `references/patterns.md` | | file-structure, internal-consistency | `references/file-structure.md` | | formatting, scripts | `references/formatting-and-scripts.md` | Cite file and line number for every finding. ## Step 4 — Report Open with a coverage line naming every dimension checked: ```text Checked: structure · description · body-discipline · patterns · file-structure · formatting · scripts · internal-consistency · provenance ``` Then output only the dimensions that have findings, grouped under H3 headings, FAILs before SUGGESTIONs within each. Omit clean dimensions — their absence is what confirms they passed. Each finding: ```text FAIL/SUGGESTION — file:line Why: Fix: ``` Close with a `## Result` block holding one line: `PASS`, `PASS (N suggestions)`, or `FAIL (N fails · M suggestions)`, each optionally followed by ` · P info`. INFO findings are observational and never change PASS/FAIL; omit `· P info` when there are none. Add a second line, `Run skill-author to address findings.`, whenever there is at least one finding. Do not apply fixes — report and propose only.