Skill Audit
Read ../shared/AUTHORING.md,
../shared/WRITING_FOR_AGENTS.md,
../shared/SUBAGENT_PROTOCOL.md, and
../shared/EXPLORATION.md before auditing. With
$ARGUMENTS, audit only the named skill or path.
Workflow
Discover active roots. Identify the repository root, then inspect repository manifests, plugin manifests, package configuration, and top-level layout for every configured skill root; include conventional nested
skills/**/SKILL.mdlocations and excludedeprecated, fixtures, generated output, dependencies, and worktree metadata. Resolve$ARGUMENTSagainst an inventory that states each active root's discovery source and assigns every includedSKILL.mdto exactly one root.Read complete inputs. Read every selected
SKILL.md, its directly linked local references, and relevant manifests fully. Batch 3–5 skills per parallelgeneral-purposespawn withmodel: "sonnet"; keep repo-wide checks in the main session. Assign every selected file once and require each auditor to confirm full-file reads.Apply all checks. For each skill evaluate every check below, cite file and evidence for each finding, record pass, finding, or not-applicable for every check, and run each repo-wide check once.
Fix mechanical drift. Auto-fix only deterministic changes: safe positive reframing, missing bookkeeping fields with known values, category casing, and verified legacy-link replacements. Preserve intent and bump
metadata.versiononce per changed skill. Reread each applied edit; retain unsafe automation as a manual finding with its reason.Report. Output a table of skill, issues, fixed, and remaining, then group remaining findings by skill and check number. Account for every selected skill and active root, include every finding and modified file exactly once, and report unresolved manual no-op tests as behavioral judgments.
Checks
- Positive targets: inspect negative phrasing; reframe when equivalent, retaining surprising or irreversible guardrails paired with the desired behavior.
- Size and split rationale: flag
SKILL.mdover 200 lines, plus splits justified only by line count or unsplit material with distinct branch/sequence boundaries. - Frontmatter: require
name, portabledescription,allowed-tools, and validmetadata.author, two-partversion, and category; normalize category casing only. - Portable context pointer: description states purpose and every distinct trigger
branch in at most two concise sentences.
when_to_use, if present, adds no unique routing information. Flag combined Claude metadata over 1,536 characters and ask whether implicit invocation earns its context cost. - Legacy docs: find obsolete
REQUIREMENTS.md,VOCABULARY.md,ARCHITECTURE.md,legacy, and fallback references; replace only when the current target is verified. - Explicit tools: exact spawned agent types,
ghcommands, scripts, and delegated search breadth are named wherever used. - Vocabulary confirmation: writers to
.mpx/CONTEXT.mdDomain Language show the complete proposed text and obtain user confirmation before writing. - Description behavior: every claimed capability exists and every delegation or invocation branch in the body is represented by the description.
- Agent types: each spawn names an existing
agents/<type>.mdor documented built-in. - Grant paths: every path-like allowlist entry resolves after supported root expansion and wildcard handling.
- Dead grants: every allowed tool has corresponding body behavior; flag grants with no use and uses with no grant.
- README sync (repo-wide): compare all discovered active skill roots, agents, and hooks with their README tables; report drift for manual edits.
- Model mechanics: flag prose-only model selection, redundant or missing real model
parameters per SUBAGENT_PROTOCOL, unsupported models, and call-site
effort. - Shared integrity (repo-wide): resolve shared links from every active root and flag copied shared rules that should be pointers.
- Exploration: broad discovery uses
Explorewith quick, medium, or very thorough breadth; exempt deterministic inventories of fixed known patterns. - Personal paths: scan all skill files and assets for personal roots or usernames;
require
MPX_*resolution and loud failure, exempting supported Claude variables and genuine system paths. - Semantic completion: assess whether each procedural step has an unambiguous endpoint in its imperative wording and behavior. Flag plausible premature or false completion, no-op completion restatements, detached validation or stop conditions, and standalone gates outside the approved ambiguous or risky transitions. Do not search for or require literal completion phrases.
- Hierarchy and disclosure: classify procedural, reference, or mixed structure; verify steps precede supporting detail, concepts are co-located, and branch-only material is disclosed through precise one-level pointers.
- Single source and caches: flag duplicated meanings and environment facts cheaply
discoverable from config, layout, scripts, or
--help; retain reasons and hidden conventions. - Relevance and no-ops: flag stale or unrelated sentences. Treat suspected no-ops as manual behavioral comparisons against the target model's default; never auto-delete them solely from textual heuristics.