Generating with AI
Firefight can write the first draft of a postmortem for you. The AI reads the incident record and produces a structured document in the nine standard sections, written in a blameless tone that focuses on systems and processes rather than individuals.
Generate from Slack
Section titled “Generate from Slack”When an incident is resolved, the resolution message in its channel offers a Write the postmortem button. You can also run /ff postmortem in the channel. Either works only once the incident is closed and while it has no postmortem yet, and takes under a minute.
Generate from the dashboard
Section titled “Generate from the dashboard”On the incident page in the web dashboard, the postmortem card appears once the incident is closed. Click Generate draft. You land on the postmortem page, which shows a placeholder while the draft is written and switches to the editor as soon as it is ready.
What the draft is built from
Section titled “What the draft is built from”The AI works only from what Firefight recorded about the incident. That includes:
| Input | Examples |
|---|---|
| Incident details | Name, severity, status, who declared it, who led it, key timestamps, duration |
| Custom fields | Any values your team filled in on the incident forms |
| Timeline | The recorded events from declaration through close |
| Channel discussion | A narrative summary of the conversation in the incident channel |
| Actions and follow-ups | What was tried during response and what remains open |
| Shoutouts | Recognition given during the incident |
This is why disciplined use of /ff update, actions, and the incident channel pays off. The richer the record, the better the draft.
Sections the record cannot fill
Section titled “Sections the record cannot fill”The AI writes only what the timeline and the channel messages support. It never guesses a cause, an impact or a fix. Every heading still appears. The Timeline is always filled in, and under any heading it had nothing for you find a short note asking you to add what you know. Post in the incident channel while it runs and the draft has more to work from.
If generation fails
Section titled “If generation fails”If the draft cannot be written, the postmortem page says so and offers Try again and Start blank. The person who asked for the draft is also told in the incident channel.
Generate over the API or MCP
Section titled “Generate over the API or MCP”POST /api/v1/incidents/:id/postmortem with generate: true starts the same draft, and start_postmortem does it over MCP. Drafting takes a moment, so the response comes back straight away with a generation_state. Read the postmortem back until that state clears, then edit it like any other.
Leave generate out and you get the blank one described below.
Start blank instead
Section titled “Start blank instead”If you prefer to write from scratch, click Start blank on the incident page card. You get an empty document in Draft status with the incident’s identifier and name as the title. Starting blank does not use AI.
Rewrite a section with AI
Section titled “Rewrite a section with AI”Inside the editor you can point AI at any passage. Select some text and click the sparkles button in the floating toolbar. A Rewrite with AI dialog opens where you describe what you want, for example “make this more concise” or “expand on the root cause”. The AI has access to the incident context, including the timeline, summary, and actions, so it can add real detail rather than padding. The rewritten text replaces your selection, and you can undo it like any other edit.
The AI drafts, humans own accuracy
Section titled “The AI drafts, humans own accuracy”Treat the generated document as a strong first draft, not a finished artifact. The AI only knows what made it into the incident record. It cannot know about the hallway conversation, the dashboard someone eyeballed, or the context behind a decision. Before you mark a postmortem completed, have someone who was on the incident verify the facts, sharpen the contributing factors, and make sure every action item has an owner.