aide's memory has always been something you write: you tell it a preference, it remembers. The more interesting question is whether it can notice things you didn't think to write down. That's what the instinct system is for, and it leans on a quieter piece of plumbing that landed first: observability.
aide now instruments itself. Every tool call, every skill it injects, every session is an observed event with a span and a cost, the same stream that feeds the token dashboard. Instinct reads that stream looking for patterns worth keeping: the same correction you've made three times, a tool that keeps failing the same way (friction is a strong signal that something's wrong with the convention, not just the call). When a pattern converges, aide proposes it as a candidate memory, which you accept or bin. The point is that the assistant stops repeating a mistake because the lesson got written down, by the tool, from watching, rather than waiting for you to notice and dictate it.
The mechanism is a Stop hook called reflect: at the end of a session it runs the instinct parser over that session's observe events and surfaces the proposals. It's deliberately opt-in and still experimental, so it's off by default; you turn it on with AIDE_REFLECT=1 or "reflect": { "enabled": true } in .aide/config/aide.json. The newest tier adds an LLM judge for promotion (is this repetition actually a rule, or coincidence?) and a friction detector that treats repeated tool failures as live signal.
It's the part of aide I'm least sure how far to push, which is exactly why it's behind a flag. Memory you write is predictable; memory the tool proposes from watching you is powerful and occasionally presumptuous, and I'd rather earn that trust than assume it. Repo and docs on GitHub.
