Eridian

Post-Mortems

Draft reviewable incident records with action items and owners.

A post-mortem is a document with a timeline, cause, impact, and owners. Eridian drafts it from the incident object. A named human publishes it.

Draft

POST /v1/ops/postmortems
Authorization: Bearer eridian_sk_...
Idempotency-Key: pm-inc-2847-v1
{
  "project_id": "prj_ops_001",
  "incident_id": "inc_2847",
  "model": "gpt",
  "audience": "internal",
  "sections": ["summary", "timeline", "cause", "impact", "what_went_well", "actions"]
}

Required scope: ops:write. The incident should be closed or mitigated. Drafting on an open SEV-1 is allowed but marked premature: true.

{
  "id": "pm_2847",
  "object": "eridian.ops.postmortem",
  "status": "draft",
  "model": "gpt",
  "title": "INC-2847 payments-api 5xx after ledger timeout",
  "actions": [
    {
      "title": "Require backoff on ledger 503",
      "owner_id": null,
      "due": null
    }
  ],
  "eridian": { "route": "gpt", "region": "eu-west-1" }
}

Action owner_id is null until a human assigns it. The model does not assign owners.

Assign and publish

POST /v1/ops/postmortems/pm_2847/publish
{
  "owner_id": "usr_sre_lead",
  "actions": [
    {
      "title": "Require backoff on ledger 503",
      "owner_id": "usr_payments",
      "due": "2026-09-22"
    }
  ]
}

Publish writes status: published and emits ops.postmortem.published. Customer-facing variants use audience: customer and a separate template. They still need a human.

Runbooks from history

POST /v1/ops/runbooks/generate
Authorization: Bearer eridian_sk_...
{
  "project_id": "prj_ops_001",
  "incident_id": "inc_2847",
  "model": "gpt",
  "title": "payments-api ledger timeout"
}

Generated runbooks are drafts in the Ops library. They are not the platform Runbooks for Eridian gateway failure. Promote with eval and dual control if the runbook is auto-attached to a service.

Quality bar

  • Every causal sentence needs a timeline event or log query id.
  • Blameless language is a template concern. Do not ask the model to name a person as the cause.
  • Customer audience strips internal hostnames when redact_internal: true.

See Incidents and Evaluations (metrics: ["rubric_ops", "pii_leak"]).

Production API credentials are issued with an institution workspace. Contact sales if you need access.