Approval records for Agent Skills
Know what changed in an Agent Skill before you trust the update.
A small open-source CLI. It fingerprints the exact bytes of an Agent Skill a human approved and, when you run check, shows file by file whether the copy you name still matches.
$ npm install -g sigildex@0.1.2
MIT licensed · Node.js 20+ · macOS and Linux · runs locally — no server, account, database, or LLM · no network calls, no telemetry
01
Version 2 is not what you approved.
You approved version 1. Before installing version 2, check the candidate against the approval record. Here, it adds an executable script and rewrites the instructions to call it.
$ sigildex lock skill-v1 --approval-id log-summarizer --out log-summarizer.lock.json Locked skill-v1 approval id: log-summarizer root digest: sha256:d445576462862500bd9537c93fc2390802d97bf3df13879a9b83cc21e04890ad files: 2 frontmatter: ok name: log-summarizer description: Summarize a plain-text application log into a short incident report — error counts, the first and last timestamp seen, and the most frequent messages. Use when … written to: log-summarizer.lock.json This records byte identity only. It does not attest safety, provenance, or future content. $ echo $? 0 $ sigildex check skill-v1 --against log-summarizer.lock.json Match: the artifact matches approval record log-summarizer. root digest: sha256:d445576462862500bd9537c93fc2390802d97bf3df13879a9b83cc21e04890ad files: 2 This records byte identity only. It does not attest safety, provenance, or future content. $ echo $? 0 $ sigildex check skill-v2 --against log-summarizer.lock.json Drift: the artifact no longer matches the approval record (1 added, 0 removed, 1 modified, 0 mode-changed). approved root digest: sha256:d445576462862500bd9537c93fc2390802d97bf3df13879a9b83cc21e04890ad actual root digest: sha256:0b0bec0d4e4435beed62b983c530f4f8249e7b1af01d31fbb8be1989d94cf1c6 + scripts/summarize.sh (script) ~ SKILL.md (instructions) Review the changes and re-lock only after approving them. $ echo $? 2
check caught it and exited 2; sigildex diff lists each change per file, and a human decides whether to re-approve. Real output from examples/version-drift — in a project, records live in .sigildex/approvals/.
02
The workflow
Other tools find and scan a skill; you review it. Sigildex records what you approved and, when invoked, verifies whether the installed copy still matches.
-
Other tools
01
Discover
Find a candidate.
GitHub CLI
gh skill, Vercel Skills CLI, publisher catalogs. -
Other tools
02
Quarantine & scan
Copy it outside every active skills directory and run nothing. Get evidence: risky patterns, injection, secrets.
NVIDIA SkillSpector, Cisco AI Defense Skill Scanner, Snyk Agent Scan.
-
You
03
Review
A person reads the skill and decides. A clean scan is evidence, not approval.
Checklist in the adoption guide.
-
Sigildex
04
Record & verify
The step Sigildex adds: remember what you approved.
sigildex lockrecords the approved bytes' identity in an approval record beside your code; after install,sigildex checkverifies the copy your agent loads. Drift exits 2 — a configured preflight or CI gate can stop there. -
Your tools + Sigildex
05
Update
When you or CI ask, your installer reports whether upstream moved (
gh skill update --dry-runis one read-only way). Quarantine the new version;sigildex diffshows what changed per file; a human re-approves;lockagain, install,checkagain.
discover → quarantine → scan → review → lock → install → check ↻ update → quarantine → diff → review → lock → install → check
The stage-by-stage guide, with quarantine and CI: docs/safe-skill-adoption.md.
03
Use it with your agent
Sigildex ships as an Agent Skill. Put it where your agent loads skills and the agent follows the workflow above: stage candidates in quarantine, run nothing bundled with them, summarize scanner output, and stop for a human decision before anything is recorded or installed. These are instructions a compliant agent follows — they reduce risk; they are not a security boundary.
04
Docs
- RepositorySource, examples, and issues.
- README quickstartInstall, lock, check, diff in a few minutes.
- Safe skill adoption guideThe whole workflow, with the review checklist.
- Identity specificationThe normative contract: manifest scope, root digest.
- Threat modelDefended threats, residual risks, trust boundaries.
- CI exampleA workflow that fails a pull request when a skill and its approval record disagree.
Background
05
Limits
- Not a safety verdict. A record proves the approved bytes are unchanged; it does not certify a skill is safe or verify where it came from — pair it with scanning and human review.
- Not a service. No hosted index, discovery API, or publisher monitoring. Upstream update checks belong to your installer and run only when you ask;
checkcompares the installed copy with its record, nothing more. - Not a directory audit.
checkcompares one artifact against one record; duplicate ids, duplicate artifact paths, or orphaned records are for code owners and pull-request review to catch. - Not the spec. The identity specification is the normative contract; schemas, threat model, and CI workflow are published beside it.