1. Memory vs. Documentation – Many argue that relying on opaque “memory” leads to token bloat and stale information, while explicit documentation externalizes the program’s mental model.
“having built something similar for tracking 'memory' and items at home, it can quickly consume your tokens when dealing with both reading and updating, keeping stale info relevant etc.. when the amount of data starts to grow.” — alienbaby
2. Principles & Mental Models – Instead of raw memory, versioned principles or decision records give agents reusable frameworks to make consistent decisions without constant prompting.
“Something I started doing recently was writing out principles instead of memories. Essentially patterns the agents need to always think in. I also implemented a versioning system to the principles that need to be quoted in any comments which are there in the code.” — bushido
3. Deterministic Tooling/Hooks – Hooks, lint rules, and custom skills enforce correct tool usage (e.g., preferring jq over ad‑hoc Python scripts) by providing immediate, predictable feedback.
“Hooks should (in my opinion) be deterministic… I’m going to write a hook which triggers on those and fails the turn telling it to use jq instead.” — jon‑wood
4. Testing/TDD as Context – A tight test‑driven loop supplies continuous verification and acts as living documentation, guiding agents on what the code should do.
“I’ve been trying to nudge agents (both Claude and GPT) into a red/green/refactor TDD loop…” — jon‑wood