Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add jqaisystems/jqai-ai-skills --skill vault-janitorgit clone --depth 1 https://github.com/jqaisystems/jqai-ai-skillsWrote 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/jqaisystems/jqai-ai-skills/vault-janitor)<a href="https://agentmods.dev/skills/jqaisystems/jqai-ai-skills/vault-janitor"><img src="https://agentmods.dev/badge/skills/jqaisystems/jqai-ai-skills/vault-janitor/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/jqaisystems/jqai-ai-skills/vault-janitor"><img src="https://agentmods.dev/badge/skills/jqaisystems/jqai-ai-skills/vault-janitor.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.00094 | $0.00890 |
| Opus 5.5 | $0.00038 | $0.00356 |
| Sonnet 5.5 | $0.00019 | $0.00178 |
| Haiku 4.5 | $0.00009 | $0.00089 |
Grade A, and why
vault-janitor 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 1mo 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 — 54 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Vault Janitor
You find the junk that working folders accumulate: the node_modules inside an abandoned experiment, the _backup_final_v2 nobody remembers making, the 400 MB of logs. You report it with sizes and let the human decide. You delete nothing on your own.
This skill exists because of a real cleanup: a personal vault that had quietly grown to 325,000 files, of which roughly 290,000 were dependency folders, build caches, and nested backups. The scan is the easy part; the discipline is in what happens after, which is why the report comes first and the deleting comes last, if at all.
Step 1: Scan (read-only)
Take a target folder (default: current directory). Walk it and classify what you find into groups:
| Group | Patterns |
|---|---|
| Dependency folders | node_modules, venv, .venv, env, vendor, site-packages |
| Build caches | __pycache__, .cache, dist, build, .next, .parcel-cache, *.pyc |
| Backup litter | folders/files matching *backup*, *_old, *_bk, * copy, *final_v*, dated duplicates of the same name, .zip/.rar siblings of an existing folder |
| Logs and temp | *.log, *.tmp, *.err.log, *.out.log, crash dumps |
| OS litter | Thumbs.db, .DS_Store, desktop.ini |
| Heavyweights | any single file over 100 MB that fits no group above |
Measure each group: file count and total size. Note the largest individual offenders.
Things that are NEVER junk, regardless of pattern: anything inside a .git directory that belongs to a live repo, .env files, anything the user's notes or README mark as deliberate, and any folder whose name suggests the user chose to keep it ("dont_delete", "keep", "archive" with a date and intent).
Step 2: Report
Produce cleanup-report.md in the target folder:
- Headline numbers: total files, total size, what percentage the junk groups represent.
- Per group: count, size, and the top 10 paths by size.
- Judgment calls: items that match a junk pattern but might be deliberate (a
backupfolder with recent edits, a zip with no sibling folder). These get a "verify before touching" flag, not a recommendation. - Recommended actions, most space per least risk first. Dependency folders and caches lead (regenerable by definition); ambiguous backups come last.
What ships with it
1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
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.
- 1mo ago First seen · 54 lines · 94 tokens per session scan A 7f27728e23b8
vault-janitor is a skill published in the GitHub repository jqaisystems/jqai-ai-skills (3 stars, last pushed 13d ago), licensed MIT. It adds 94 tokens to every session and 890 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-08-31.
Other skills, from other repositories
baoyu-wechat-summary
Summarizes WeChat group chat highlights into a structured digest using the local wx-cli binary (https://github.com/jackwener/wx-cli). Generates a normal digest by default; a roast (毒舌) version is opt-in. Maintains per-group history (history.json + history-digests.jsonl), per-user profiles, and per-group fact memory…
wordpress-editing-safety
Safety rules for editing a WordPress site through Respira. Use whenever the user mentions WordPress, Respira, editing a page or a site, a page builder, a snapshot, a duplicate, an approval, or rolling back. Covers read before write, duplicates on live pages, verifying every write, reading state before a retry…
respira-workflow
Sets the posture for working on a WordPress site through Respira: report what changed on the site, stay visible during long operations, be honest about limits, and send what Respira cannot do to the founder. Use whenever Respira is mentioned, the user references their WordPress site, or the user wants to edit a site.
kelly-email
Busabase AirApp-first email inbox-zero operator for reviewing unread mail, drafting replies, approving archive/mark-read/send actions, and executing only explicitly approved mailbox changes across configured accounts. Use when the user invokes $kelly-email, asks to process unread email, configure an email account…
kelly-messenger
Unified chat inbox (Busabase App-in-Skill) aggregating WhatsApp, Discord, Slack, and Telegram messages into one place with a reply queue. Use when the user invokes $kelly-messenger or /kelly-messenger, wants a unified inbox, chat aggregation, to read WhatsApp/Discord/Slack/Telegram messages in one place, review…
macos-app-multi-instances
Run several simultaneous instances of one macOS app (e.g. two or three accounts logged into WeChat at once) by duplicating and re-signing its .app bundle. Use when an app refuses to open a second window and just refocuses the running one, when open -n -a launches no new process, or when a second independent login…