--- name: incident-rca description: 장애·오류·성능 저하의 원인을 근거로 분석해 RCA 보고서를 작성할 때 사용한다. "장애 원인 분석", "RCA", "포스트모템", "사고 보고서", "타임라인 정리", "재발 방지 대책" 요청과 로그·모니터링·배포 이력이 함께 주어진 상황에 적용한다. 확인된 사실과 가설을 분리하고 근거 없는 단정과 지어낸 수치를 막는다. 일반 코드 수정, 단순 문의, 원인 자료가 전혀 없는 요청에는 사용하지 않는다. --- # incident-rca 장애의 원인을 근거로 좁히고 재발 방지까지 남긴다. 결론을 먼저 정하고 근거를 맞추지 않는다. ## 0. 시작 전 - 증상, 영향 범위, 최초 발생 시각(시간대 포함), 마지막 정상 시점 중 하나라도 있으면 시작한다. - 없으면 `확인 필요`로 두고 사용자에게 한 번에 묶어 묻는다. 추측으로 채우지 않는다. - 범위는 원인 분석과 재발 방지까지다. 코드 수정·배포 실행은 요청받았을 때만 한다. ## 1. 재료 정리 | 재료 | 확인할 것 | |---|---| | 증상 | 사용자·시스템이 본 것, 오류 메시지 원문 | | 영향 | 대상 범위, 건수, 지속 시간 | | 시점 | 최초 발생·탐지·복구 시각과 시간대 | | 변경 | 배포·설정·의존성·트래픽·데이터 증가 여부 | | 근거 | 로그·지표·추적·배포 기록·알림 이력 | | 재현 | 재현 절차와 결과(확인된 경우만) | 없는 재료는 비워 두고, 필요한 항목을 모아 한 번에 질문한다. ## 2. 사실과 가설 분리 - **사실**: 로그·지표·배포 기록처럼 원문으로 확인되는 것. 출처와 시각을 붙인다. - **가설**: 사실에서 도출한 설명. 검증 방법과 결과를 붙인다. - **확정**: 재현이나 반복 관측으로 확인된 것만. 확인 전에는 "가능성"으로 쓴다. - 사실과 가설을 한 문단에 섞지 않는다. 가설을 사실처럼 서술하지 않는다. ## 3. 타임라인 `시각 | 사건 | 근거 | 확실성` 표로 만든다. - 시간대를 밝히고 모든 시각에 같은 기준을 쓴다. - 확인되지 않은 시각은 비워 두거나 `확인 필요`로 표시한다. - 감지·대응·복구 시점을 구분해 적는다. ## 4. 원인 후보 좁히기 1. 변경 우선: 배포, 설정, 의존성, 트래픽, 데이터 증가. 2. 계층 순회: 클라이언트 → 네트워크 → 진입점 → 애플리케이션 → 캐시·데이터 저장소 → 인프라. 3. 후보마다 지지 증거, 반증, 판정(채택·기각·보류)을 적는다. 4. 대안 가설을 최소 하나 유지한다. 먼저 떠오른 원인으로 바로 확정하지 않는다. 증상이 같아도 원인은 다를 수 있다. 동시에 일어난 일을 인과관계로 바꾸지 않는다. ## 5. 신뢰도 | 수준 | 기준 | |---|---| | 높음 | 재현했거나 서로 독립된 증거가 2개 이상 일치 | | 중간 | 정황 증거는 있으나 재현·교차 확인이 없음 | | 낮음 | 가설 수준. 추가 확인 항목을 함께 적는다 | ## 6. 조치 - 즉시 완화: 영향 축소, 우회, 롤백 - 근본 수정: 원인 제거 - 재발 방지: 테스트, 경보, 가드, 용량·한도 - 탐지 개선: 알림 조건, 대시보드, 러너북 조치마다 담당 범위와 확인 방법을 붙인다. 실행하지 않은 조치를 완료로 쓰지 않는다. ## 7. 보고서 `references/report-format.md`의 형식을 따른다. 대화로 답하면 같은 순서로 짧게 제시한다. 별도 보고서 파일을 만들 때는 `references/preview-first.md`에 따라 사실·가설·판정·조치의 개요를 먼저 짧게 보여주고 확인을 받은 뒤 파일을 만든다. 사용자가 완성 보고서를 즉시 요청했으면 확인 단계를 생략한다. ## 8. 금지 - 지어낸 수치·시각·로그, 확인하지 않은 원인 단정 - 장애 시간·영향의 축소 또는 과장 - 개인정보, 계정, 호스트명, 내부 주소, 고객사명, 이슈 번호 원문 - 실제 서비스·조직을 특정할 수 있는 조합 ## 9. 참고 파일 - `references/debugging.md`: 수정 전 원인 조사 절차(재현·범위 축소·계측·가설 검증·회귀 테스트) - `references/report-format.md`: RCA 보고서 형식 ## 특정 정보가 필요할 때 서비스명, 고객사명, 호스트명, 주소, 계정, 내부 식별자처럼 특정 대상을 가리키는 값이 필요하면 추측하거나 파일에 미리 적지 않는다. 필요한 항목을 모아 한 번에 질문하고, 받은 답은 이번 산출물과 세션에만 쓴다. 이 스킬의 파일과 저장소에는 되쓰지 않는다. 자격증명과 개인정보는 요청하지 않는다.