Skip to main content
← 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

  1. Take your last five incidents. For each, ask using only the symptoms visible in the first ten minutes.
  2. Score whether the matching postmortem surfaced in the top three results.
  3. Include one novel symptom. It must return nothing rather than the nearest familiar incident — a confident wrong match at 3am is worse than silence.
  4. 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.