Incident postmortem kit: merged UTC timeline, TTD/TTR, status updates and notices (en/ja)
Merges logs, chat exports and deploy logs into one UTC timeline, computes TTD/TTR and the impact window, and drafts a blameless postmortem, status page updates and customer notices (en/ja).
What it does
Supports a production incident from live communication to the finished postmortem.
- Automatic timeline (
build_timeline.py): reads application logs, Nginx/Apache access logs, syslog, deploy logs, PagerDuty-style CSV exports, Slack export JSON, copied chat text with time-only stamps like[14:03], and support ticket CSVs, converts everything to UTC and sorts it. Handles about 11 timestamp styles (ISO 8601,2026/11/10 14:03 JST, Japanese dates, access-log format, epoch seconds and more) with a timezone per file. Collapses repeated lines, tags deploys, alerts, acknowledgements, mitigations and recovery, proposes key-event candidates, and warns wherever a timezone was assumed - Metrics (
incident_metrics.py): time to detect (TTD), acknowledge (TTA), mitigate (TTM) and resolve (TTR). From an error-rate CSV or log lines it finds the impact window above a threshold, the peak and an approximate failed-request count, and warns about milestones in the wrong order - Action item checks (
action_items.py): flags missing owners and due dates, overdue items, and vague or blame-style wording such as "be more careful" in the tracker CSV - Templates: blameless postmortem (English and Japanese), status page updates (investigating, identified, monitoring, resolved; en/ja), customer report and apology email (en/ja)
- Guides: five whys and contributing factors, metric definitions and pitfalls, a live-incident checklist (severity, roles, update cadence)
- Worked example: 9 sample files in mixed formats and timezones, their outputs, and a finished postmortem
How to use
python scripts/build_timeline.py deploy.log::label=deploy app.log::label=app "chat.txt::kind=chat,tz=Asia/Tokyo,date=2026-11-10" --display-tz Asia/Tokyo --md timeline.md
python scripts/incident_metrics.py --metrics error_rate.csv --threshold 5% --detected ... --resolved ... --md metrics.md
The agent reviews the warnings and candidates, picks the real milestones, analyzes contributing factors and drafts the postmortem and notices. Works with Claude, Codex, Hermes Agent and Cursor.
Requirements
- Python 3 (standard library only). No network access
- Timezone names with daylight saving time (such as America/New_York) may need the
tzdatapackage on Windows. Asia/Tokyo and fixed offsets like+09:00always work
Caveats
- Event tags and milestone candidates are keyword heuristics. The agent and the team make the final call on times and causes from the evidence
- Numbers and facts not supported by the evidence are not written; unknowns are marked and asked about
- Nothing is sent automatically. Statements about compensation or personal data need approval by the owner
- Mask personal data from logs before using it in documents
How to install
- Unzip the downloaded file (it contains a
incident-postmortem-kit/folder withSKILL.md). - Copy the whole folder into your agent's skills folder.
- Claude:
~/.claude/skills/(per project:.claude/skills/) - Hermes Agent:
~/.hermes/skills/ - Codex:
~/.agents/skills// Cursor:~/.cursor/skills/ - Claude app (claude.ai): upload the ZIP in Customize → Skills
- Claude:
- Restart the agent and check that the skill appears in its skill list.
Seller
Skills that make everyday developer work faster and safer: Git, testing, APIs and security.
8 published skills