# fireauto Phase 2: Hook 인프라 강화 [F1, F2, F7]

## 한정승인 — 기존 Hook 스크립트 확장 방향

## PRD 참조 (필수)
`/home/jay/workspace/memory/specs/prd-fireauto-integration.md` — Feature 1, 2, 7

## 핵심 원칙: 새 파일 만들지 않고 기존 확장

---

### F1: audit-trail.jsonl 강화 — 기존 post-tool-use.sh 확장

**현재 상태 (이미 구현됨):**
- `/home/jay/.claude/hooks/post-tool-use.sh`가 Edit/Write/NotebookEdit 시 `audit-trail.jsonl`에 기록
- 기록 필드: ts, bot, member, session, tool, file, cwd

**추가할 것만:**
1. `task_id` 필드 추가 — `COKACDIR_TASK_ID` 환경변수에서 읽기
2. `schema_version` 필드 추가 — 값: 2 (기존 레코드와 구별)
3. 의미 있는 Bash 명령도 기록 (git commit, npm install 등) — fireauto의 isMeaningfulBash 패턴 참고
4. task_id 미설정 시: session_id fallback + stderr 경고

**수정 파일:** `/home/jay/.claude/hooks/post-tool-use.sh` (기존 파일 수정)

**수정 범위:** 마지막 JSONL append 부분에 task_id, schema_version 추가 + Bash 기록 분기 추가

---

### F2: 세션 통계 자동 생성 — 기존 stop-qc-reminder.sh 확장

**현재 상태:**
- `/home/jay/.claude/hooks/stop-qc-reminder.sh`가 Stop Hook에서 QC 리마인더 출력
- BOT_ID 가드 이미 구현

**추가할 것:**
1. audit-trail.jsonl에서 현재 task_id 레코드 집계
2. 수정 파일 목록 + 각 파일 Edit/Write 횟수 계산
3. 보고서 파일(`reports/{task_id}.md`)이 있으면 "## 세션 통계" 섹션 append
4. 보고서 없으면 `retrospectives/{task_id}.md` 독립 파일 생성
5. .done 파일 미생성 감지 → stderr 경고

**수정 파일:** `/home/jay/.claude/hooks/stop-qc-reminder.sh` (기존 파일 수정)

---

### F7: 에러 감지 + 재시도 — qc_verify.py 확장 + Hook 카운터

**2단계 방어선 (PRD 합의안):**

**1단계 — Hook 레벨 (post-tool-use.sh 추가):**
- Edit/Write 후 에러 출력 감지 (tool_output에 "error", "Error", "failed" 포함 시)
- `/tmp/{task_id}_retry.count` 카운터 증가
- 3회 초과 시 stderr로 "⚠️ 동일 에러 3회 반복 — 에스컬레이션 필요" 경고

**2단계 — QC 레벨 (qc_verify.py):**
- 기존 `pyright_check` verifier에 재시도 로직 추가
- FAIL → 수정 시도 → 재검증 (최대 3회)
- 3회 실패 시 보고서에 "미해결 이슈"로 기록

**수정 파일:**
- `/home/jay/.claude/hooks/post-tool-use.sh` (에러 카운터 로직 추가)
- `/home/jay/workspace/teams/shared/qc_verify.py` (재시도 로직 추가)

---

## dispatch.py 환경변수 주입 확인
- dispatch.py가 팀장 봇 세션에 `COKACDIR_TASK_ID` 환경변수를 주입하는지 확인
- 미주입 시: dispatch.py 또는 team_prompts.py에서 환경변수 설정 로직 추가

## 테스트
1. 팀 위임 → audit-trail.jsonl에 task_id 포함 기록 확인
2. 세션 종료 → 보고서에 "세션 통계" 섹션 자동 append 확인
3. 에러 3회 반복 → 경고 메시지 출력 확인
4. 기존 Hook 기능(팀원 상태 업데이트, QC 리마인더) 회귀 없음 확인

## 보고서
`/home/jay/workspace/memory/reports/task-1623.md`
