---
name: "sc:enforce-rca"
description: "근본 원인 분석 강제. 에러/버그 수정 전 필수 실행. RCA 보고서 미작성 시 수정 작업 차단."
---

# Enforce RCA Skill (Hard Block)

에러/버그 수정 전 근본 원인 분석을 **강제**하는 Hard Block 스킬입니다.

**이 스킬을 건너뛸 수 없습니다. RCA 보고서 없이 버그 수정은 차단됩니다.**

---

## 사용법

```
/sc:enforce-rca Null check operator used on a null value
/sc:enforce-rca 타로 결과가 안보임
/sc:enforce-rca API 호출 실패
```

---

## 차단 조건

| 조건 | 상태 |
|------|------|
| WHY 분석 미완료 | ⛔ 차단 |
| WHERE ELSE 검색 미수행 | ⛔ 차단 |
| HOW (올바른 패턴) 미확인 | ⛔ 차단 |
| RCA 보고서 미출력 | ⛔ 차단 |

---

## 강제 분석 프로세스

```
1️⃣ 에러 분류
   └─ 에러 메시지 파싱
   └─ 에러 유형 식별 (Null, Type, Index, State, Network)
   └─ 발생 위치 추적

2️⃣ WHY 분석 (왜 발생했는지)
   └─ 데이터 흐름 추적: A → B → C → 에러
   └─ 상태 변화 확인
   └─ 조건 분기 확인
   └─ 타이밍 이슈 확인 (async, lifecycle)

   ⛔ 이 단계 미완료 시: "왜 발생했는지 분석해주세요" 출력 후 차단

3️⃣ WHERE ELSE 검색 (다른 곳에도 있는지)
   └─ 동일 에러 패턴 전체 검색
   └─ 유사 코드 전체 검색
   └─ 올바른 패턴 검색

   필수 명령어:
   ```bash
   grep -rn "[에러 패턴]" lib/
   grep -rn "[유사 코드 패턴]" lib/
   ```

   ⛔ 이 단계 미완료 시: "전체 검색 먼저 실행해주세요" 출력 후 차단

4️⃣ HOW 분석 (어떻게 고쳐야 하는지)
   └─ 올바른 패턴 찾기
   └─ 참조 코드 확인
   └─ 수정 방향 결정

   ⛔ 이 단계 미완료 시: "올바른 패턴 찾아주세요" 출력 후 차단

5️⃣ RCA 보고서 생성
   └─ 아래 형식 필수 출력
   └─ JIRA Bug 이슈 자동 생성
```

---

## 필수 출력 형식

**이 보고서가 출력되어야 차단이 해제됩니다:**

```
============================================
🔍 RCA (Root Cause Analysis) 보고서
============================================

📋 증상
   에러: [에러 메시지 전문]
   위치: [파일:라인]
   상황: [어떤 상황에서 발생했는지]

🔎 WHY (근본 원인)
   1. 직접 원인: [왜 에러가 발생했는지]
   2. 데이터 흐름: [A] → [B] → [C] → ❌ 에러
   3. 근본 원인: [진짜 원인이 무엇인지]

🔍 WHERE ELSE (전체 검색)
   검색어: [사용한 grep 패턴]

   발견된 파일 N개:
   1. [파일1:라인] - ❌ 동일 문제
   2. [파일2:라인] - ❌ 동일 문제
   3. [파일3:라인] - ✅ 올바른 패턴

📌 HOW (수정 방향)
   참조 패턴: [올바른_파일.dart:라인]

   Before (문제 코드):
   ```dart
   [문제 코드]
   ```

   After (수정 코드):
   ```dart
   [올바른 코드]
   ```

   이유: [왜 이 패턴이 올바른지]

📋 수정 계획
   총 N개 파일 수정 예정:
   1. [파일1.dart] - [수정 내용]
   2. [파일2.dart] - [수정 내용]

============================================
✅ RCA 보고서 완료 - 차단 해제
📋 JIRA: FORT-XXX (Bug) 생성됨
============================================

➡️ 이제 수정 작업을 진행합니다.
```

---

## 금지 패턴 자동 감지

**다음 코드 작성 시 즉시 차단:**

```dart
// ❌ 빈 catch 블록 (에러 무시)
catch (e) { }
catch (e) { print(e); }
catch (e) { debugPrint(e.toString()); }

// ❌ 원인 분석 없이 null 체크만
if (value != null) { ... }
value ?? defaultValue  // 왜 null인지 분석 없이

// ❌ try-catch로 에러 숨기기
try {
  riskyOperation();
} catch (e) {
  // 아무 처리 없음
}
```

**감지 시 출력:**
```
⛔ HARD BLOCK: 금지 패턴 감지됨

감지된 패턴: [catch (e) { }]
위치: [파일:라인]

이 패턴은 에러를 숨기는 것으로, 근본 원인 해결이 아닙니다.
RCA 보고서를 먼저 작성해주세요.

/sc:enforce-rca [에러 메시지]
```

---

## JIRA 연동

RCA 보고서 완료 시 자동으로:

```
jira_post:
  project: FORT
  issuetype: Bug
  summary: "[RCA] {에러 메시지 요약}"
  description: |
    ## 증상
    {증상}

    ## 근본 원인
    {WHY 분석 결과}

    ## 영향 범위
    {WHERE ELSE 검색 결과}

    ## 수정 계획
    {수정 파일 목록}
```

---

## 완료 후 흐름

```
RCA 보고서 완료
    │
    ├─ JIRA Bug 이슈 생성됨
    │
    └─ 다음 단계 안내:
       "RCA 분석이 완료되었습니다.
        /sc:troubleshoot 또는 직접 수정을 진행하세요.
        수정 완료 후 /sc:enforce-verify가 자동 호출됩니다."
```