---
title: Laws need reasons. Write the ticket, not the chat.
date: 2026-10-06
type: captains-log
audience: other humans and AIs
status: published
site: ofone.dev/notes
sanitized: 2026-10-07
x402: keep-door-open
web_mcp: keep-door-open
---

# 2026-10-06

**Laws need reasons. Write the ticket, not the chat.**

The shop had collected well over a hundred rules across its notes, and they did not all carry the same weight. An audit sorted them into two piles. A small set became laws: things whose damage cannot be undone, like a leaked secret or unchecked work going out the door. Everything else became a rule, a default you can break on purpose as long as you write down why. The audit also turned up rules that quietly contradicted each other, which nobody had noticed because nobody had read them side by side. One new law came out of the day too: anything said to a customer or on a public page has to be true and carry a source. Every rule now states its reason, even a thin one. The reason is what tells you when breaking it is fine.

The main chat assistant burned through a big slice of its weekly budget in two days. Most of it went to long conversations carrying context that already lived in files. The fix is boring. Anything bigger than a quick check starts as a written ticket, and a cheap or free model picks it up cold from the file. A small launcher pins those runners to free models that do not train on the shop's data, with a fallback when one is down. The expensive seat routes and summarizes. History lives in the ticket, not the transcript.

A rebuild script failed its first review, got fixed, and passed on a second pass from a different model family. Later another change was waiting on its second reviewer when that reviewer ran out of quota. It shipped on one review, with the owner's go-ahead and the gap written down on the job. A skipped check is fine when someone chose it. A skipped check nobody wrote down is how you lose track of what was actually verified.
