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 agentmods add skills/svy04/ballast/setupnpx skills add svy04/ballast --skill setupgit clone --depth 1 https://github.com/svy04/ballastWhat 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 | $0.00061 | $0.00885 |
| Opus 5 | $0.00030 | $0.00443 |
| Sonnet 5 | $0.00012 | $0.00177 |
| Haiku 4.5 | $0.00006 | $0.00089 |
Grade A, and why
setup 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 3d 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 — 32 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Setup — from installed to armed, four questions or fewer
Installing ballast puts the hook in place; it does nothing until a rule catalog exists. This skill walks a user — including one who has never edited a JSON file — from "installed" to "my first rules fired in front of me". You do all the file work; the user only answers questions and watches the proof.
Two principles, taken from setups that work: never ask a question whose answer is always yes, and never claim something works — show it firing.
Steps
- Prove the hook is alive before building anything (no question). Run
node --version(the hook needs ≥ 18) and the status line:node "$CLAUDE_PLUGIN_ROOT/hooks/scripts/ballast-rules.mjs" --status(whenCLAUDE_PLUGIN_ROOTis not set, find the install path viaclaude plugin list, or use the repo checkout). If node is missing or the line does not appear, stop here and hand the user the doctor skill — a catalog written on top of a dead hook is the worst outcome ballast has: silence that looks like working. - Detect a returning user (at most one question). If
.claude/ballast.rules.jsonalready exists (project or~/.claude/), this is not first-time setup — offer three paths and follow the answer: add a rule (pin skill), check health (doctor skill), or start over. - Confirm chat language (one question, confirmation only). Keywords are literal text — a rule keyed only in English never fires on a Korean sentence. Detect the language(s) the user has been typing and confirm: "You write in Korean and English — should rules listen for both?" Pair every keyword list in the confirmed languages from here on.
- Pick starter rules (one question). Present the example catalog's rules as a multi-choice list in plain words — label plus one-line reason, no ids, no JSON. For example: "Estimate before spending — anything that costs credits waits for your approval first." Let them pick any number, including none.
- Set the danger level (one question). "Dangerous commands (mass delete, force push): warn about them, or block them outright?" If they choose block, show the honesty line that ships with the example: it stops the prompt, it is not a sandbox.
- Write the files and fire a live proof (no question). Create
.claude/ballast.rules.jsonwith the chosen rules, keywords paired in the confirmed languages, wrapped as{"version": 1, "rules": [...]}. Show the file list you created. Then have the user send (or send yourself) a test sentence containing a trigger word, and point at the[ballast]block that arrives: that is the mechanism, live. No restart is needed. - Leave one habit and two doors (no question). The habit: "When I get something wrong, correct me in plain words — a correction can become a permanent rule (I'll draft it, you approve; that's the pin skill)." The doors: brain-init if they want memory files for decisions and facts; doctor if anything ever feels off.
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.
- 3d ago First seen · 32 lines · 61 tokens per session scan A b902d9955652
setup is a skill published in the GitHub repository svy04/ballast (71 stars, last pushed 8d ago), licensed MIT. It adds 61 tokens to every session and 885 once invoked, about $0.0003 per session on Opus 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-30.
Other skills, from other repositories
lossless-code
DAG-based lossless context management, search, expand, and recall from your full conversation history.
kn-review
Use when reviewing implemented code before committing — multi-perspective review with severity-based findings.
alive:save
The human wants to checkpoint. Or: the stash has grown heavy — 5+ items, 30+ minutes, a natural pause in the work. The squirrel doesn't decide when to save. It surfaces the need and lets the human pull the trigger. Runs the full save protocol: confirms stash, writes log, updates state, generates projections…
alive:system-upgrade
Upgrade ALIVE to the current version. Handles v1/v2/v3.x source states, multi-surface aware (alive-mcp / Hermes / Codex), retroactive version detection, partial-failure resume, dry-run previews, and rollback inspection.
alive:session-context-rebuild
Merge multiple sessions into one working context and detect conflicts between parallel sessions. Dispatches subagent swarm to read files touched, extract log history, and resolve contradictory state. Use when resuming after days away or when parallel sessions may have written conflicting decisions. For browsing or…
alive-world
Dashboard of all walnuts -- grouped by ALIVE domain, health signals, what needs attention.