I'm not a developer. For the last few months my entire job has run through Claude Code — research, documents, data work, pipelines. Since I can't read the code it writes, reviewing the output was never my safety net. I needed the quality built in before execution, not patched in after.
What I built
ballast: a goal-completion framework packaged as a Claude Code plugin — one hook plus eleven markdown skills. You hand it a goal and the skills chain into a loop:
- Mobilize — check what the project already holds (rules, verified notes, solved procedures); using what exists is mandatory
- Decompose — cut the goal top-down into a pyramid of atomic pieces: no overlaps, no gaps
- Verify bottom-up — every piece passes a gate before it bears weight: claims stay labeled drafts until they survive refutation against primary sources, with an optional second model configured to argue back
- Rehearse — before anything ships, a zero-context reader executes it and every stall gets fixed (this release went through that itself, three rounds)
- Done = a check passed — not "the model said so"
The skeleton lives in a file, so the next session picks up the same tree instead of starting over.
What compounds
Everything the work settles outlives the session — which is what ends the failures that pushed me here: corrections re-made, settled decisions reopened, a confident "done" with nothing behind it.
Decisions land in an append-only ledger, verified facts in a knowledge base that gets read before any new research, and recurring procedures become skills. Coming back after a break is a thirty-second read — a checkpoint file keeps the return point.
Corrections become rules, and this part is code: a hook runs on every prompt, matches your message against a rule catalog, and delivers the full text of every matching rule with the message. A rule is just JSON:
{
"id": "cost-gate",
"title": "Estimate before spending",
"when": { "keywords": ["generate", "credits", "batch"] },
"body": "Anything that spends money or credits: present an estimate and get explicit approval BEFORE executing. No exceptions for small amounts — the habit is the point."
}
And this is what arrives above the reply when a message trips it:
[ballast] Standing rules that apply to this request:
- Estimate before spending: Anything that spends money or credits:
present an estimate and get explicit approval BEFORE executing.
No exceptions for small amounts — the habit is the point.
Claude follows the rule because it arrived with the message — not because it remembered. You never re-teach it: correct Claude once, and the pin skill writes that correction into the catalog for good.
How to install it
/plugin marketplace add svy04/ballast
/plugin install ballast@ballast
Using Codex instead? The skills are plain markdown, so they carry over through one AGENTS.md block — docs/CODEX.md in the repo is the wiring guide.
What this isn't
Only the hook is code-enforced. The eleven skills are markdown conventions — they hold exactly as well as the model follows them, and can drift like any prompt. The README labels every piece as code or convention, and on Codex there's no hook at all, so everything there is convention. Blocks are a guardrail, not a sandbox.
Try it
Zero dependencies, zero network, node 18+, MIT — the whole mechanism reads in an afternoon: https://github.com/svy04/ballast
Full disclosure: I built this, it's free, and there's nothing to buy. Claude Code wrote all of it — the hook, the skills, the docs — with me providing direction, constraints, and course corrections.
If you try it, I'd genuinely like to hear what breaks first — especially if you're a non-developer hitting the same walls. And if you know prior art for this loop, tell me and I'll link it in the README. A star on the repo helps other people find it.
Top comments (2)
The verification loop is the part I trust most here. When code review is no longer a good safety net for the user, the process has to make failure visible earlier through tests, adversarial checks, and a written trail of what changed.
The practical win is turning a clever idea into something repeatable. That usually means fewer magic steps and more evidence at each handoff.