| name | postmortem |
| description | 장애·인시던트·반복된 오진의 사후 회고(Postmortem)를 작성한다. 프로덕션 장애, CI 플레이키, 배포 사고, 진단이 여러 번 빗나간 사건 등 "무엇이 어떻게 터졌고 왜 그렇게 진단했는가"를 복기할 때 사용한다. |
| argument-hint | [사건 주제] (예: 게임 통합테스트 플레이키, Redis 구독 영구 중단) |
| allowed-tools | Read, Glob, Write, Bash |
docs/postmortem/에 포스트모템 문서를 작성한다. 형식·index 행 형식은 format.md를 따른다.
ADR과 포스트모템은 장르가 다르다. **ADR은 "앞으로 무엇을 할지"의 결정 기록(미래지향·불변)**이고, **포스트모템은 "무엇이 어떻게 터졌는지"의 복기 기록(과거지향·회고)**이다. 회고에서 새 결정이 도출되면 그 결정은 /adr로 별도 작성하고 양쪽을 상호 링크한다. 진단이 빗나갔거나 결정이 번복된 과정 자체가 포스트모템의 핵심 자산이므로 숨기지 않는다.
순서
- 다음 번호 산정 —
docs/postmortem/의 NNNN-*.md 파일명 최대값과 index.md 행 번호 최대값을 둘 다 구해 +1 한다 (번호는 ADR과 독립된 시퀀스, 비어 있으면 0001부터). 두 최대값이 다르면 파일과 인덱스가 어긋난 것이니 멈추고 사용자에게 보고한다.
- 사건을 format.md의 형식으로
docs/postmortem/NNNN-{kebab-case-title}.md에 작성한다.
- 사실관계는 메모리·추측이 아니라 git 로그·PR·실제 코드로 검증한 뒤 서술한다. 확인 못 한 부분은 "미해결/미확인"으로 명시한다.
- 회고에서 결정이 도출됐으면
/adr로 ADR을 작성하고, 포스트모템 상단 메타의 관련 ADR에 링크한다.
index.md 테이블 맨 끝에 한 줄을 추가한다 (format.md의 행 형식, 번호 오름차순 유지).
- markdownlint 검증 — 저장소 루트에서
npx markdownlint-cli2을 실행해 통과시킨다 (Docs CI가 dev PR에서 강제). 규칙·예시는 docs/conventions-docs.md.
작성 원칙
- 비난하지 않는다(blameless). 사람이 아니라 시스템·프로세스·정보 부족을 분석한다. "누가 틀렸나"가 아니라 "왜 그 시점에 그 판단이 합리적으로 보였나"를 적는다
- 오진을 숨기지 않는다. 빗나간 가설과 폐기 근거가 포스트모템의 핵심 가치다. "처음엔 X를 의심했으나 Y로 폐기"를 명시한다
- 근본 원인은 표면 증상과 구분한다. 로그 에러 메시지가 아니라 그 메시지를 만든 메커니즘까지 내려간다
- 결론의 강도를 근거의 강도에 맞춘다. 재현·검증이 없으면 "확정"이 아니라 "추정/확인 예정"으로 적는다
- 타임라인은 시점을 검증 가능한 단위(커밋·PR·시각)로 적는다. 정확한 시각을 모르면 지어내지 말고 PR/커밋 단위로 적는다
- 액션 아이템은 검증 가능하게. "조심한다"가 아니라 "재현 매트릭스를 확보한 뒤 복구"처럼 완료 판정이 가능하게 쓴다