Skip to content

cogpin

cogpin

AI coding agents say “done” when they’re not — they skip the test, bypass the hook with –no-verify, delete the failing test, leave the docs stale. cogpin turns each of those corner-cuts into a gate the agent can’t talk its way around.

The one rule that makes that possible: only things the agent can’t fake — the diff it’s committing, the command it’s about to run, the branch, PR/commit metadata — are allowed to hard-block. Anything that needs judgment can only warn. Said precisely:

severity = “block” REQUIRES kind = “fact”

A fact is exactly that ungameable signal; an LLM-judge or a self-checkbox is judgment, so it stays advisory — it warns, never blocks. One stdlib-only cogpin.py, one per-repo cogpin.toml, installed as a Claude Code plugin. That’s the whole moat: an agent can’t pass a block it didn’t actually satisfy, because it never authored the evidence the block reads.