Borrowing it
Nothing to install: this file belongs to PainInTheNic/MCP-TrueNAS. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/PainInTheNic/MCP-TrueNAS/main/.claude/skills/truenas-update/SKILL.mdgit clone --depth 1 https://github.com/PainInTheNic/MCP-TrueNASWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/paininthenic/mcp-truenas/truenas-update)<a href="https://agentmods.dev/skills/paininthenic/mcp-truenas/truenas-update"><img src="https://agentmods.dev/badge/skills/paininthenic/mcp-truenas/truenas-update/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/paininthenic/mcp-truenas/truenas-update"><img src="https://agentmods.dev/badge/skills/paininthenic/mcp-truenas/truenas-update.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00099 | $0.04968 |
| Opus 5.5 | $0.00040 | $0.01987 |
| Sonnet 5.5 | $0.00020 | $0.00994 |
| Haiku 4.5 | $0.00010 | $0.00497 |
Grade A, and why
truenas-update scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 26d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 358 lines — stays where its author put it; the contents beside it link to each section on GitHub.
/truenas-update — TrueNAS Update Cycle (OS + Apps)
Runs the full, repeatable update procedure for Nic's TrueNAS SCALE box: check what's
pending, apply app updates, install the OS update, and — only inside the Production
maintenance window — do the ordered VM shutdown → reboot → verify. A Change Management record goes into Google Drive for every change
made — no change is too minor to document (see feedback-document-every-change
memory).
The box hosts a Production VM (
ksi_webapp, id 18) since 2026-10-01. The host is rebooted ONLY inside the Production maintenance window: Sundays 21:00–24:00 America/New_York (Nic's policy, 2026-10-05; app users are told to save and log off before 21:00 on Sundays). Inside the window a run, attended or unattended, may reboot when an installed update needs it (Step 4). Outside the window nothing ever reboots or stops a VM; the run installs, reports "reboot pending", and the next Sunday window picks it up. A reboot must start by 23:30 so VMs are back and verified before midnight.scripts/apply-staged-update.mjsenforces the window itself:--check-windowand--rebootboth refuse outside it.
This skill exists so the procedure is mechanical, not re-derived. Every command shape, tool-param name, and gotcha below was hard-won across real runs (2026-08-13, 2026-09-02) — follow it exactly rather than improvising from first principles.
Arguments passed: $ARGUMENTS
Dispatch on arguments
- No args / "full" / "update" → Steps 1–3, then Step 4 only if a reboot is
pending and
--check-windowexits 0, then Steps 5–6. Outside the window: no Step 4. Report the reboot as pending for the next Sunday window. - "check" / "status" / "dry-run" → Step 1 only. Report what's pending (including a pending reboot). Make no changes, file no CM doc.
- "apps" / "apps-only" → Step 1 + Step 2 only. Skip the OS update even if one is pending (report it as still pending).
- "os" / "os-only" → Step 1 + Step 3 only (skip app updates even if pending).
- "reboot" / "maintenance" → Step 4 only (plus its CM doc and report). Still window-bound. If Nic asks outside the window, tell him the script refuses until Sunday 21:00 ET. Don't try to get around it.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 26d ago Changed · +42 lines · +27 tokens per session 0136e3d59bbc
- 1mo ago Changed · +20 lines 7104882f51f3
- 1mo ago Changed · +41 lines · +6 tokens per session 6452c8fef7e7
- 1mo ago Changed def9004d22a0
- 1mo ago Changed · +5 lines fd3ca9334ed7
- 1mo ago Changed · +5 lines e97d09e2a975
- 1mo ago First seen · 245 lines · 66 tokens per session scan A 03fb32005425
truenas-update is a skill published in the GitHub repository PainInTheNic/MCP-TrueNAS (1 stars, last pushed 26d ago), licensed MIT. It adds 99 tokens to every session and 4,968 once invoked, about $0.0004 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-12.
truenas-update compared with skills from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| truenas-updatePainInTheNic/MCP-TrueNAS | Skill | 1 | 26d ago | MIT | A | 99 | Claude Code |
| ssh-incidentbvisible/mcp-ssh-manager | Skill | 533 | yesterday | MIT | A | 46 | Claude Code, Codex |
| chainstackchainstacklabs/mcp-server | Skill | 5 | 11d ago | MIT | A | 76 | Claude Code, Codex |
| platform-measureCSOAI-ORG/councilof-ai | Skill | 4 | yesterday | MIT | A | 74 | Claude Code |
| deployment-completeness-auditgetpapi/papi | Skill | 11 | yesterday | MIT | A | 44 | Claude Code |
| cdn-fallbackpyworkload/3x-ui-mcp | Skill | 7 | 21d ago | MIT | A | 83 | Claude Code, Codex |
| multi-nodepyworkload/3x-ui-mcp | Skill | 7 | 21d ago | MIT | A | 87 | Claude Code, Codex |