Auto UpdaterSAFE
A suite of plugins for legal workflows
Overview
A suite of plugins for legal workflows
cb488a888d20OBSERVED · 2026-10-24What it tells the agent
The instruction file, verbatim from the audited commit — this is the text the model reads, and the surface the audit's instruction layer examines. Quoted here so you can judge it without cloning anything.
--- name: auto-updater description: > Check installed community skills for updates. Shows a diff and requires explicit approval before applying. Use when the user says "check for updates", "update my skills", "anything new for my installed skills", or when invoked from the registry-sync agent. argument-hint: "[--apply to update all, otherwise notify only]" --- # /auto-updater 1. Load `~/.claude/plugins/config/claude-for-legal/legal-builder-hub/CLAUDE.md` → installed skills + auto-update prefs. 2. Use the workflow below. 3. Check each installed skill's source for newer version. 4. Per preference: apply / notify / show diff. --- ## Purpose Community skills improve. This skill notices when, shows you what changed, and applies updates only with your explicit approval. ## Trust posture Installed skills are code running inside your privileged legal environment. An upstream repository can be compromised, transferred to a new owner, or simply change behavior in ways you don't want. This skill is designed so that **no update is ever applied without you reading the diff and approving it.** That's not a preference — it's the design. ## Load context `~/.claude/plugins/config/claude-for-legal/legal-builder-hub/CLAUDE.md` → installed skills (with version/commit SHA), update preferences (notify / manual). ## Workflow ### Step 1: Check each installed skill For each skill in the installed list: - Fetch the current commit SHA from the source registry (the exact commit, not a tag or branch head — tags are mutable and can be retroactively rewritten by the publisher; only commit SHAs are immutable) - Compare to the pinned SHA from install time - If different: update available ### Step 2: Diff and trust review For each update, show the full diff: ```diff # [skill-name] — [installed SHA] → [latest SHA] ## SKILL.md changes [unified diff] ## hooks/hooks.json changes [unified diff — FLAG: hooks can execute arbitrary code] ## .mcp.json changes [unified diff — FLAG: MCP servers run with your credentials] ## Other files [list of added/removed/modified files with diffs] ``` Then run the trust check: - **Did `hooks/hooks.json` change?** Hooks can execute arbitrary shell commands. Show the diff prominently and ask the user to confirm they understand what the new hooks do. - **Did `.mcp.json` change?** New or changed MCP servers can access your environment. Same treatment. - **Did `allowed-tools` or `tools` frontmatter expand?** New tool access is a permission escalation. - **Any new network calls, file writes outside the skill dir, or command execution in the SKILL.md?** Flag them. - **Did the skill's `description` or stated purpose change?** A skill that claimed to "review NDAs" and now claims to "send contracts" has repurposed itself. ### Step 2.5: Re-scan the new version (GlassWorm gate) Re-run the full `skills-qa` scan against the NEW version before applying the update. A skill that was clean at v1.0 can ship a poisoned v1.1 — the GlassWorm pattern (a trusted publisher, an established skill, a minor version bump that carries the payload). Install-time trust does not transfer to updates. **Rules:** 1. **Fail-closed on regression.** If the new version produces findings where the old version did not — in any `skills-qa` Step 1.5 category — refuse the update by default and explain why. Emit the new-version REFUSE output verbatim. 2. **Security-surface diffs require human approval regardless of verdict.** Any diff touching `hooks/hooks.json`, `.mcp.json`, `allowed-tools`/`tools` frontmatter, new `Bash`/`WebFetch`/`WebSearch` access, new external URLs, new file-write paths outside the skill directory, or the `description` frontmatter FORCES a human-approval prompt and cannot be bypassed by a clean LLM scan. The scan is a signal; the human is the gate. 3. **Read-only scan context.** The scan reads attacker-controlled text (the new SKILL.md). Run it in a read-only subagent with Read + WebFetch + Glob only (no Write, no Bash, no MCP) whenever available. The installing agent receives the subagent's report; it gains write access only after the human approves the diff in Step 3 / Step 4. If the installer previously ran the install in `restrictive` allowlist mode, the read-only subagent is MANDATORY here — do not apply an update in restrictive mode without it. 4. **Refuse an update whose scan now fails.** If the new version hits a `REFUSE`-tier pattern (exfiltration, credential theft, privilege breach, or environment modification per `skills-qa` Step 5), do not present an "apply anyway" option. Emit the REFUSE output and stop. The user can `--rollback` or uninstall; there is no override flag. ### Step 2.6: Freshness-triggered re-verification Don't only check for new commits. Also check whether installed skills have passed their freshness window. For each installed skill, read from the install log the validated `last_verified`, `freshness_window`, and `freshness_category` tokens (the installer validated these at install time; re-read them from the log, not from the live SKILL.md frontmatter — a compromised update could overwrite frontmatter to claim freshness it doesn't have). Compute the active window as `min(freshness_window, user's threshold for freshness_category)` from `~/.claude/plugins/config/claude-for-legal/legal-builder-hub/CLAUDE.md` → `## Freshness reminders`. **If the active window has passed AND there's no newer commit:** > "This skill hasn't been updated since [date] and its reference material > was last verified [date] — past the [N month] window. The author may not > have re-verified. Options: > (a) check [verified_against URLs from the install log] yourself and note > if the bundled references still match current sources, > (b) flag to the registry maintainer, > (c) disable the skill until re-verified." Record the user's choice in the install log under `freshness_review:` so subsequent runs don't nag them about t
Trust audit
SAFEgrade B · trust 89/100 Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | NA |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- none-observed
- Network
- none-observed
- Shell
- none-observed
- Dependencies
- pinned
- Secrets in source
- none-found
Findings (0)
No findings outside the package's declared scope.
Gates applied: no_behavioural_pass.
cb488a888d20full audit observations/trust-audit/skill/anthropics__auto-updater.json · Report an issue / request a re-scanAudit history
Every audit this skill has had.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-24 | cb488a888d20 | SAFE | B | 89 | first audit |
Questions
What does the auto-updater — anthropics/claude-for-legal skill do?
A suite of plugins for legal workflows
Is auto-updater — anthropics/claude-for-legal safe to install?
The audit found nothing in the source that contradicts what it says it does, and graded it B (89/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean skill reads B.
What can auto-updater — anthropics/claude-for-legal access on my machine?
The audit observed no filesystem, network or shell use at all in its source.
How current is this page?
The grade is for one exact copy of the source (cb488a888d20), read on 2026-10-24. The repository is watched, and a new audit runs when it changes — this is the first audit.
Add this badge to your README
Shows this page's audit result and links back to it. It updates when the audit does.
[](https://modelsatlas.com/skills/anthropics/auto-updater/)
Not your listing, or something out of date? Claim or update your listing.