validate skill
Performs integrity checks on skill bundles by verifying file presence, SHA-256 hashes, and MANIFEST.yaml consistency.
- GitHub stars
- 7
- Files
- 1
- Last commit
- Nov 9, 2026
- License
- MIT
- Allowed tools
- —
What does the validate skill do?
validate performs integrity checks on skill bundles by verifying file presence, SHA-256 hashes, and MANIFEST.yaml consistency.
Summary generated from the skill's SKILL.md.
About the validate skill
Verifying the integrity of skill bundles by checking file presence and SHA-256 hashes is what this tool enables. Developers use it to confirm that a local bundle matches its MANIFEST.yaml or to determine if a directory is a canonical source bundle, a registry package, or a platform install. It provides a narrow verification process that avoids the overhead of full editing sessions.
An agent should load this skill when a user needs to identify missing files, detect hash mismatches, or find unlisted symlinks and special files. The process begins by locating the bundle root and attempting to run validate.sh. If that script is missing, the tool manually computes SHA-256 hashes for every file listed in the manifest. It produces a concise report detailing file counts, structural errors, and the specific nature of any corruption or ambiguity found.
This tool is strictly for inspection and does not mutate files. It will not update hashes, bump versions, or edit changelogs. If mismatches are found, it identifies the specific files that no longer match the recorded manifest state rather than attempting to fix them.
What an agent can do with it
- 1Verify bundle integrityCheck if the current skill bundle files match the recorded SHA-256 hashes in the manifest.
- 2Identify bundle copy typeDetermine if a directory is a canonical source bundle or a registry package.
Written from the skill's SKILL.md. Every use case is checked against a quote from it.
How to install the validate skill
Each command copies the skill folder into the client's skills directory. Restart the client or start a new session to load it.Install the validate skill in Plugin
/plugin marketplace add snapsynapse/skill-provenance /plugin install skill-provenance@snapsynapse-skill-provenance
Install the validate skill in Claude Code
~/.claude/skills/validate/SKILL.md
$ npx degit snapsynapse/skill-provenance/skills/validate ~/.claude/skills/validateInstall the validate skill in Claude Code (project)
.claude/skills/validate/SKILL.md
$ npx degit snapsynapse/skill-provenance/skills/validate .claude/skills/validateInstall the validate skill in Codex
~/.agents/skills/validate/SKILL.md
$ npx degit snapsynapse/skill-provenance/skills/validate ~/.agents/skills/validateInstall the validate skill in Gemini CLI
~/.gemini/skills/validate/SKILL.md
$ npx degit snapsynapse/skill-provenance/skills/validate ~/.gemini/skills/validateInstall the validate skill in Claude.ai
npx degit snapsynapse/skill-provenance/skills/validate validate && zip -r validate.zip validate # claude.ai → Customize → Skills → + → Create skill → Upload a skill → validate.zip
SKILL.md
View on GitHubSkill Provenance: Validate
Run the hash and inventory check only. This is a narrow verification command, not the full open-session or close-session protocol.
When to use
Run /skill-provenance:validate when the user wants to know whether the
current bundle matches its MANIFEST.yaml, whether files are missing, or
whether a copy appears to be canonical or derived.
Protocol
- Locate the bundle root. Use the directory containing
MANIFEST.yaml. If no manifest exists, report that the bundle is unversioned and suggest/skill-provenance:bootstrap. - Run
validate.shwhen available. Prefer:
If the script is not present, compute SHA-256 hashes for files listed in./validate.shMANIFEST.yamland compare them manually. - Report validation results only. Include:
- File count checked
- Missing files
- Unlisted files, symlinks, or special files (
UNLISTEDlines) - Hash mismatches
- Explicit
hash: nullopt-outs - Structural, unsafe-path, duplicate-path, and symlink errors
- Matching, stale, or malformed
validated_againstrecords when present - Exit code or equivalent pass/fail result
- Identify copy type. Use
MANIFEST.yamland local contents to say whether the copy appears to be:- a canonical source bundle
- a strict-platform install copy
- a registry or
.skillpackage - incomplete or ambiguous A derived copy is valid if its own manifest describes exactly the files present. Do not treat missing development-only files as corruption unless the copy's manifest lists them.
- Do not mutate files. Do not update hashes, bump versions, edit the
changelog, create a handoff note, or run the close protocol. If the user
asks to fix mismatches, recommend
/skill-provenance:closeor an explicitvalidate.sh --updateworkflow.
Output
Keep the response concise:
Bundle: my-skill 1.2.0
Copy type: canonical source bundle
Files: 7 checked, 0 missing, 0 unlisted, 0 mismatched, 0 explicit opt-outs
Result: pass
If validation fails, name the specific files and explain that a mismatch means the file no longer matches the recorded manifest state. This is an integrity check, not a trust anchor.
Files in this skill
1validate skill questions
How do I install the validate skill in Claude Code?
Run npx degit snapsynapse/skill-provenance/skills/validate ~/.claude/skills/validate. Claude Code loads skills from ~/.claude/skills (all projects) or .claude/skills (one project) and uses a skill when its description matches the task.
Which clients can use the validate skill?
Any client that reads the Agent Skills format: Claude Code, Codex, Gemini CLI and claude.ai (upload as a ZIP). Scripts in the skill run only where the client allows code execution.
When should I use the validate skill?
Use it when you need to verify hashes, check the MANIFEST.yaml, confirm files are present, or determine if a bundle is a canonical source or a derived copy.
What happens if the validate.sh script is missing?
The agent will manually compute SHA-256 hashes for the files listed in the MANIFEST.yaml and compare them.
Can this skill fix file mismatches?
No, this skill is for reporting results only and does not mutate files; to fix mismatches, you should use the close protocol or an update workflow.