Catalysts
A user ran Enzyme on her workspace β what she called βpure chaos, very poorly managed.β No tags, no system. She said: βIt talks like a writer. How??β
What she encountered were catalysts. Questions Enzyme generated from her content. They sound like something a careful reader of your work would ask:
βThe team revisited caching three times β once as a performance fix, once as a cost concern, once as a reliability question. What changed between each return?β
That question connects a frustrated aside in a November retro to a confident decision in a March strategy doc. The November note never mentions strategy. The March doc never mentions frustration. The catalyst found both because it was generated from the full timeline of the entity β it knows the question has been opened before, and it reaches for every place it was.
How theyβre built
Catalysts and their similarity scores are pre-computed at init, so that query time is a lookup.
What this reaches
The same query, three approaches. The catalyst finds what the others canβt.
Catalysts identify blind spots β threads you stopped noticing, tensions you resolved in one place and left open in another. They draw throughlines β recurring concerns showing up under different names across months. They regenerate as the corpus grows, so the same entity produces different catalysts six months from now. The probes stay alive where summaries go stale.
Why pre-computation matters
Catalysts are generated at compile time, not query time. Most memory tools build understanding through conversation history β they start empty and accumulate as the user talks. Enzyme works the other way: it extracts understanding from content that already exists, then query-time retrieval runs against the compiled local index.
For a markdown workspace, this means the first useful agent session does not start from a blank chat. The agent can prep from project notes, meeting captures, decision logs, people pages, and source excerpts that were already in the workspace. If catalyst generation uses a provider, selected excerpts may be sent during init/refresh; the retrieval path after compilation is local.