Sawbuck

Contracts

A standing rule is either a wall or a wish.

You tell your agent "never touch the auth module," "always keep the suite green," "do not add a dependency." The honest question nobody asks: which of those can actually be enforced, and which is just a line in a file you hope it remembers? Sawbuck draws that line in the open.

Two kinds of rule. Only one is a contract.

The test is simple: can the rule be decided by looking at the diff, with no judgment? If yes, the check holds the agent to it. If no, it is advice, and we say so rather than pretend.

▣ Deterministic: a wall

"Never touch src/auth/**." "No new eslint-disable." "Tests must pass, no skips." "Latency must not regress." Each reduces to a predicate on the diff or the outcome, so the check enforces it every turn and every PR: a violation fails the gate, zero-LLM, un-gameable, and with the stop hook the change is sent back. A wall, not a reminder.

◌ Judgment: a nudge

"Keep it simple." "Be careful with edge cases." "Preserve the spirit of the API." These need a mind to judge. A model can surface them as a second opinion, but that is advice, the same class as a line in AGENTS.md. We do not dress a nudge up as a wall. If it is not checkable, it is not enforced, and the page will tell you.

A mandate is the wall, written down.

Name the hard rule in your contract. Any change that touches a protected path fails the gate before a single metric is read, however green everything else is.

A mandate is deterministic (a path match on the diff, no model), it inherits through extends so a parent scope's rule holds for every repo beneath it, and it is folded into the gate fingerprint, so quietly deleting the mandate to pass is itself a tracked, tamper-evident change.

A contract, not a request. AGENTS.md and CLAUDE.md can ask the agent not to touch auth. The model usually complies while the rule is fresh in context; the risk is that a line in a doc fades as the session fills and survives a compaction only as a summary, so deep in a long run it can quietly slip. A mandate does not live in that fading attention at all: the change does not get past the gate. That is the whole difference, and it holds only for rules that are deterministically checkable.

For everything that needs judgment, Sawbuck gives you the same thing CLAUDE.md does, a nudge, plus nothing it cannot honestly back. The moat is exactly the set of rules it can prove, and we would rather name that boundary than blur it.