PM Skill Validate
This skill audits an existing pm-skills skill against the repo's structural
conventions and quality criteria. It produces a validation report that a
human can scan and that utility-pm-skill-iterate can consume as input.
The validator checks two tiers:
- Tier 1 (Structural) - deterministic checks that mirror CI: frontmatter, naming, file presence, description word count.
- Tier 2 (Quality) - LLM-assessed coherence checks: does the output contract reference the template? Is the example complete? Are checklist items testable?
When to Use
- After creating a skill with
utility-pm-skill-builder, before shipping - After manually editing a skill, to confirm it still passes conventions
- Before running
utility-pm-skill-iterate, to identify what needs improvement - When a convention changes, to audit which skills need updating (batch mode)
- When reviewing a contributed skill for quality and completeness
When NOT to Use
- To create a new skill from scratch -> use
utility-pm-skill-builder - To fix or improve a skill -> use
utility-pm-skill-iterate(feed it this report) - To run CI checks in a pipeline -> use
scripts/lint-skills-frontmatter.sh(this skill is for interactive, deeper-than-CI validation) - To audit the whole catalog rather than one skill -> use
utility-pm-skill-auditor. This skill goes deep on a single skill; the auditor goes wide across the repo and aggregates cross-cutting findings.
Instructions
When asked to validate a skill, follow these steps:
Step 1: Identify the Target
Accept the skill name in any form:
- Directory name:
deliver-prd - Full path:
skills/deliver-prd/SKILL.md - Slash command:
deliver-prd
Resolve to the canonical directory path: skills/{name}/.
If the skill directory does not exist, report immediately:
Batch mode: If the input is --all, run Tier 1 structural checks
across all skills and produce a summary table (see Step 5). Do not run
Tier 2 in batch mode.
Step 2: Read Skill Files
Read all files in the skill directory:
Also read:
- The corresponding command file:
commands/{command-name}.md - The AGENTS.md entry for this skill
If reading files is not possible (MCP/embedded environment), ask the user to paste the content of each file before proceeding (see Degraded Mode).
Step 3: Run Tier 1 - Structural Checks
Run these deterministic checks. Each produces a PASS or FAIL line.
Step 4: Run Tier 2 - Quality Checks
Run these LLM-assessed checks. Each produces a PASS, WARN, or INFO
line. Tier 2 findings are capped at WARN unless objectively grounded
(placeholder leakage is the exception - it can FAIL).
Quality standard framing: These checks validate against current library
conventions - what the shipped library actually does today. Findings graded
WARN or INFO represent the v2.8 quality standard that newer skills (built
with utility-pm-skill-builder) meet. Older skills may legitimately receive these
findings until iterated through the lifecycle.
Heading and dialect conventions: for the authoritative section skeleton per
dialect (classic, contract-shaped, tool-family) and the exact canon heading
spellings, see Skeleton Canon: The Three Sanctioned
Dialects
in the skill-authoring guide. A skill whose headings or section set drift from
its dialect's canon should be flagged in Recommendations even where no Tier 1
check above already covers it; scripts/check-heading-canon.mjs is the eventual
deterministic backstop, shipping advisory until the full catalog is normalized.
Step 5: Produce the Validation Report
Assemble the report using this exact structure. F-11 (utility-pm-skill-iterate)
parses this report by section headings and pipe-delimited fields.
Report rules:
- Result = worst severity found: any FAIL →
FAIL, else any WARN →WARN, elsePASS. - Structural Checks: one line per Tier 1 check. STATUS is
PASSorFAIL. - Quality Checks: one line per Tier 2 check. STATUS is
PASS,WARN, orINFO. - Recommendations: only include checks that did NOT pass. Each recommendation includes the check ID, the target file path, and a specific action.
- If all checks pass, the Recommendations section should say: "No issues found."
- Omit passing checks from Recommendations - only list findings that need action.
Batch mode output (when input is --all):
Run Tier 1 structural checks only across all skills. Produce a summary table:
Degraded Mode
If you cannot read skill files directly (e.g., running via MCP or in an embedded environment without file system access):
- Ask the user to provide the content of each required file:
skills/{name}/SKILL.mdskills/{name}/references/TEMPLATE.mdskills/{name}/references/EXAMPLE.md
- Run all checks against the provided content.
- Note in the report: "Validated from user-provided content (file system not available)."
- Batch mode is not available in degraded mode - single skill only.
Output Contract
The validator MUST produce a validation report following the format in Step 5.
The report:
- Uses the exact section headings:
## Summary,## Structural Checks,## Quality Checks,## Recommendations - Uses pipe-delimited check lines:
STATUS | TIER | CHECK-ID | message - Uses pipe-delimited recommendations:
STATUS | CHECK-ID | Target: pathfollowed byAction: descriptionon the next line - Includes
Report schema: v1in the header for F-11 compatibility - Includes the Tier 2 caveat line in the Summary section
Quality Checklist
Before delivering the report, verify:
- All Tier 1 structural checks were run (not skipped), including the eval-asset checks (
eval-trigger-fixtures,eval-output-scenarios,reciprocal-boundary-pointers); absent eval assets are INFO, not FAIL, except a one-directional declared collision pair which FAILs - All Tier 2 quality checks were run (not skipped) - single skill mode only
- Report follows the exact section and line format from Step 5
- Every non-passing check appears in Recommendations with a target file path
- Result field reflects the worst severity found
- Tier 2 findings are capped at WARN (except placeholder-leakage which can FAIL)
- No Tier 2 check was marked FAIL unless objectively grounded
Examples
See references/EXAMPLE.md for a completed validation report demonstrating
both Tier 1 and Tier 2 checks against a real shipped skill.


