← All use cases
The scenario
It is 3am and the symptom is familiar. Somebody has seen this before. That
person is asleep, and the postmortem they wrote is in a folder nobody can search
under pressure.
The cost of not finding it is measured in minutes of downtime, which is the one
currency where a memory layer’s value is uncontroversial.
Step 1 — Load the postmortems, dated
Step 2 — Ask with the symptom, not the cause
You do not know the cause yet — that is the situation. Describe what you can
see, which is exactly the query a semantic system handles and a keyword search
does not.
Step 3 — Narrow to what happened recently
Step 4 — Write the new one back
The loop only compounds if this step happens. A corpus that is read but never
written to decays into history.
Evals
- Take your last five incidents. For each, ask using only the symptoms visible
in the first ten minutes.
- Score whether the matching postmortem surfaced in the top three results.
- Include one novel symptom. It must return nothing rather than the nearest
familiar incident — a confident wrong match at 3am is worse than silence.
- Re-run monthly. A falling score means the corpus is drifting from production.
Guardrails
Do not let it run remediation. This surfaces what happened last time; a
human decides whether this time is the same. Past fixes applied to
superficially similar symptoms are a well-known way to turn one incident into
two.
- Postmortems name people. Write about decisions and systems, not blame —
it is retrievable forever and reads worse out of context.
- Set the incident’s own timestamp. A year of postmortems uploaded in one
afternoon all happened that afternoon otherwise, and “has this been getting
more frequent?” becomes unanswerable.
- Tag by service. Cross-service noise is what makes an incident search
useless at the moment you need it.
Built from
Both are complete, runnable scripts:
document_qa.py,
time_travel.py.