Validate any Lattice SKILL.md against all tier conventions — atoms, molecules, and refiners. Catches structural errors, broken cross-references, and convention violations before they reach the repo. If you just wrote or modified a Lattice skill file and haven't run this yet, run it now — manual review consistently misses the same categories of errors this skill is specifically designed to catch. Use when the user says 'validate this skill', 'check this skill', 'does this follow conventions', 'review this skill file', 'check my SKILL.md', or 'skill validate'. Reports PASS/FAIL with specific file-and-section findings and actionable fixes. Standalone — does not call other skills.
npx skills add https://github.com/techygarg/lattice --skill skill-validate
Core responsibility: Verify that a SKILL.md is structurally correct, follows all Lattice tier conventions, and composes correctly with the rest of the framework.
Input: One or more of:
skills/atoms/clean-code/SKILL.mdclean-code (resolves to the correct path automatically)atoms (validates all skills in that tier)skills/ at runtime — never hardcoded)Output: A findings report per skill:
## Skill Validator — {skill-name}
Tier: {atom | molecule | refiner}
### Structural PASS / FAIL — specific findings
### Tier conventions PASS / FAIL — specific findings
### Cross-references PASS / FAIL — specific findings
### Three-angle review PASS / WARN / FAIL per lens
Result: PASS | FAIL (N errors, M warnings)
How to verify this skill did its job:
Read PROJECT.md — Skill Conventions section. This is the source of truth. STOP: do not rely on memory.
Read references/convention-rules.md for the detailed per-tier checklist.
For every SKILL.md being validated:
[ ] Frontmatter: name field present, lowercase-hyphenated
[ ] Frontmatter: description field present and non-empty
[ ] Frontmatter: description contains trigger phrases (what the user would type)
[ ] Folder name matches name field exactly
[ ] No inline atom content in molecules (no duplicating what framework:{atom} already provides)
Read references/convention-rules.md for the full per-tier checklist. Apply the relevant section based on tier (determined from file path: atoms/, molecules/, refiners/).
For every framework:{atom-name} reference in a molecule:
ls skills/atoms/{atom-name}/SKILL.md 2>/dev/null || echo "BROKEN REF: framework:{atom-name}"
For every paths.{key} config key referenced in a refiner or atom:
docs/configuration.md paths tableFor every .lattice/{subfolder}/ path referenced in a molecule:
PROJECT.mdThese three lenses are fixed — they match the three stakeholder types who depend on Lattice skills working correctly. This is a structural review (does the skill follow conventions?), not a behavioral review (does it work in practice?) — use skill-review for the latter.
Each lens asks a different question:
Product Owner lens — "Will this produce the right output for its users?"
Business Analyst / Practitioner lens — "Are the rules complete and enforceable?"
Technical Lead lens — "Does this compose correctly with the rest of the framework?"
framework:{name}) resolve to real skills?.lattice/ subfolder (never root)?STOP: a passing category gets the bare word PASS — no restated commentary; findings text only on FAIL/WARN. Format findings as:
## Skill Validator — {skill-name}
Tier: {atom | molecule | refiner}
### Structural
PASS
### Tier conventions
FAIL — [Atom] Self-Validation Checklist missing STOP language on check 3
FAIL — [Molecule] Planning molecule Step 2 has no confirmation gate
### Cross-references
PASS
### Three-angle review
[PO] PASS
[BA] WARN — no guidance for interrupted session (resume behavior)
[Tech] FAIL — .lattice/myoutput/ not in known subfolders list
---
Result: FAIL (2 errors, 1 warning)
Distinguish errors (must fix) from warnings (should consider).
If the user says "fix it" or "apply fixes" — apply all error-level findings directly to the files. Re-run validation after fixes. STOP: do not fix warnings without asking which ones to apply.
Create new skills, modify and improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, edit, or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill's description for better triggering accuracy.
Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Claude's capabilities with specialized knowledge, workflows, or tool integrations.
Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Claude's capabilities with specialized knowledge, workflows, or tool integrations.
Replace with description of the skill and when Claude should use it.
Use when facing 2+ independent tasks that can be worked on without shared state or sequential dependencies
This skill should be used when the user wants to "create a skill", "add a skill to plugin", "write a new skill", "improve skill description", "organize skill content", or needs guidance on skill structure, progressive disclosure, or skill development best practices for Claude Code plugins.
Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.
Use when creating new skills, editing existing skills, or verifying skills work before deployment
Take techygarg/skill-validate from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.