04 / signing a rule
Seven fields and a fixed order of precedence
Pull the rules your agents actually steer by into one file. Mine came to 22: eleven in my own words, eight from a policy I approved, three written by an agent. Give each one the same record.
| Field | What it holds |
|---|
| quote | The exact words, not a summary of them. |
| source | The file and line, or the decision it came from. |
| said on | The day it was said. |
| authority | The operator, an approved policy, or an agent’s edit. |
| confirmed | Yes or no. Unconfirmed lines fade on a 72-hour half-life. |
| enforcer | The hook or gate that makes it true, or null. |
| superseded by | The rule that replaced it, with the quote. The loser stays visible. |
- id: R3
title: hands off .env files and settings.json hooks
quote: "Never modify .env files or settings.json hooks without explicit authorization."
source: WORKFLOW.md, approved 2026-09-24
said_at: 2026-09-24
authority: policy # operator | policy | agent
confirmed: true
enforcer: null # nothing stops the write, so the check warns
When two rules answer the same question differently, a deterministic check proposes the winner in a fixed order. A confirmed rule beats an unconfirmed one. The operator’s own words beat an approved policy, which beats an agent’s edit. Only then does the newer one win.
“Newest wins” alone is the order most people reach for, and it fails on the forged case by construction. An agent’s edit is always the newest word on the subject. On 30 September one of mine routed memory to a service I had retired, six days after I approved the policy it contradicted.
Two more properties carry the rest. A rule marked unbreakable with no enforcer fails the check. A superseded rule is never deleted: it stays in the file, marked, beside the words that replaced it, so no agent can rediscover it and treat it as law.