§1Written decisions decay

Every project accumulates decisions that are not code: what this thing is, what it will not claim, which words are off-limits, which routes no longer exist. They get written into a brief or a context file, and for a while that is enough.

Then the work continues. Sessions multiply, context windows roll, new people and new agents arrive with the brief but not the argument behind it. A prose rule degrades in exactly one direction—toward being forgotten by whoever happens to be editing at the time.

§2Give the decision a failure mode

A rule that cannot fail is a preference. The same rule expressed as an assertion—one that turns a violation into a red build—stops depending on memory entirely.

The translation is usually mechanical. “We no longer describe ourselves that way” becomes: this vocabulary must not appear in published output. “That section was retired” becomes: no route may link to it and no feed may list it. The judgement lives in choosing the strings; the enforcement is boring on purpose.

THE SHIFT

Prose asks future work to remember. A test refuses to let it forget—and it says so at the exact moment the mistake is made, to whoever is making it.

§3Agents make this necessary

One person can hold a direction in their head for months. Dozens of independent sessions cannot. Each one starts fresh, reads what it is given, and acts confidently within it—including confidently reintroducing something that was deliberately removed before it arrived.

An automated check is the only instruction that reaches all of them without being re-read. It is also the only one that survives a session that never loaded the brief at all.

§4Know what the check cannot see

This technique has a sharp edge. A gate enforces patterns, and a decision is usually broader than any pattern you can write. A check that forbids a list of words will pass content that expresses the same idea in different words—and a passing gate reads as approval.

I have watched exactly that happen: a guard built to keep a category of language out of published pages, passing cleanly over pages that carried the meaning without the vocabulary. The gate was working correctly. It was simply narrower than the rule it represented, and its green result was doing the work of a judgement nobody had made.

Rule typeEnforceable?Where it lives
Exact strings, routes, filesYesAn automated gate.
Structural facts and countsYesAn automated gate.
Intent, tone, framingPartlyA gate for the obvious cases; a reviewer for the rest.

§5Write the gate as documentation

The check will be read by someone who does not know the history, at the worst possible moment—when it has just blocked them. Make it explain itself: name the decision, state what is forbidden, and say what to do instead.

ASSERT   the retired vocabulary is absent from published output
BECAUSE  the project stopped making that kind of claim
INSTEAD  describe the work in the current terms
NOTE     this gate matches strings, not intent — a clean pass
         is not a judgement that the meaning is acceptable

That last line matters more than the rest. A gate that admits its own blind spot is telling the truth about what a green result means.

§6Pair the gate with a judgement

The durable arrangement is two layers: an automated check that makes the mechanical mistakes impossible, and a stated expectation that a human—or an adversarial reviewer—still reads for the cases the check cannot express. Neither substitutes for the other.

Encode what is exact. Escalate what is not. And keep the boundary between them written down, because the failure mode of this technique is quietly believing the gate covers more than it does. A green check is evidence, not proof.

The compact rule

  • A rule that cannot fail is a preference.
  • Translate exact strings, routes, and counts into assertions; leave intent to review.
  • Automated checks are the only instruction that reaches every future session.
  • Write the gate so it explains the decision to whoever it blocks.
  • State the gate’s blind spot inside the gate—a clean pass is not a judgement.