# task: 세션 경량화 시스템 — strategic-compact 훅 + 워크플로우 규칙 코드화

## 작업 레벨: Lv.2
## 한정승인: 팀장이 전체 Phase 자율 진행

## 배경

### 문제
Claude Code 세션이 길어질수록 성능이 떨어진다 (실측 데이터):
- **Peak** (0~50K, 0~25%): 빠르고 정확
- **서서히 하락** (50K~147K, 25~73%): 느려지고 컨텍스트 놓침
- **성능 붕괴** (147K+, 73%+): 이전 거부한 해결책 재시도, 브루트포스

### 1단계 완료 (Lv.0, 아누 직접)
- `~/.claude/settings.json`에 `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE=50` 적용 완료
- 이제 컨텍스트 50% 도달 시 자동 압축 트리거됨 (기존 83%)

### 참고 자료 (리서치 완료)
- strategic-compact 스킬: https://github.com/affaan-m/everything-claude-code
- 토큰 최적화 가이드: https://github.com/affaan-m/everything-claude-code/blob/main/docs/token-optimization.md
- 컨텍스트 관리 실전: https://www.turboai.dev/blog/claude-code-context-window-management

## 2단계: strategic-compact 훅 구현

### 개념
도구 호출 횟수를 카운팅하여, 일정 횟수 도달 시 "지금 /compact 하세요" 경고를 표시하는 훅.
자동 압축(임의 시점)보다 **논리적 전환점에서 수동 압축이 더 효과적**이라는 원칙.

### 구현 요구사항
1. `/home/jay/workspace/hooks/strategic-compact.sh` 신규 작성
2. PostToolUse 훅으로 등록 (모든 도구 대상, matcher: "")
3. 동작:
   - 도구 호출 횟수를 파일로 카운팅 (`/tmp/claude-tool-count-{PID}` 등)
   - **50회 도달 시** stderr로 경고 메시지 출력: "⚠️ 도구 50회 호출. /compact 권장 (컨텍스트 경량화)"
   - 이후 **25회마다** 반복 경고
   - 세션 시작 시 카운터 리셋
4. 훅이 실패해도 본 도구 실행을 차단하면 안 됨 (`trap 'exit 0' ERR`)
5. `~/.claude/settings.json` PostToolUse에 등록

### 참고: everything-claude-code의 strategic-compact 구현
- GitHub에서 해당 레포의 skills/strategic-compact/ 디렉토리를 분석하여 핵심 로직 참조
- 우리 시스템에 맞게 적용 (detect-bot.sh 연동, 팀별 카운팅 등)

## 3단계: 워크플로우 규칙 문서화 + 코드 강제화

### 3-A: 문서화 — DIRECT-WORKFLOW.md 업데이트

`/home/jay/workspace/prompts/DIRECT-WORKFLOW.md`에 세션 경량화 섹션 추가:

규칙 내용:
1. **한 세션 = 한 가지 일**: 리서치와 구현을 같은 세션에서 하지 않는다
2. **최적 세션 길이**: 30~45분. 이 이상이면 체크포인트 저장 후 새 세션
3. **리서치→/compact→구현 패턴**: 리서치 완료 후 반드시 /compact 실행하고 구현 진입
4. **파일 Read 최소화**: 전체 파일 Read 대신 필요 라인만. 큰 파일은 서브에이전트(Task)로 탐색
5. **중간 체크포인트**: 작업 중간에 진행 상태를 파일로 저장 (세션이 죽어도 이어갈 수 있도록)
6. **성능 저하 징후 감지 시 즉시 /compact**:
   - 이전에 거부한 방법을 다시 시도
   - 이미 제공된 정보를 재질문
   - 파일 경로 혼동
   - 단순 작업에 여러 번 실패

### 3-B: 코드 강제화 — dispatch.py 가드

dispatch.py에 세션 경량화 관련 가드 추가:
1. **지시서 크기 경고**: 지시서가 3000자 이상이면 Phase 분리 권고 경고 (WARNING 로그)
2. **리서치+구현 혼합 경고 강화**: 기존 `_warn_research_impl_mix()` 함수에 세션 경량화 관련 메시지 추가
3. **dispatch 프롬프트에 세션 경량화 지시 삽입**: 팀에 위임 시 자동으로 "컨텍스트 50% 도달 시 /compact 실행" 지시가 포함되도록

### 3-C: 코드 강제화 — 봇 프롬프트 주입

팀 프롬프트 생성 시 (`team_prompts.py` 또는 관련 모듈) 세션 경량화 규칙을 자동 삽입:
```
## 세션 경량화 규칙 (필수)
- 도구 50회 호출 or 30분 경과 시 /compact 실행
- 리서치 완료 후 구현 진입 전 /compact 필수
- 성능 저하 징후 감지 시 즉시 /compact
- 중간 체크포인트: memory/checkpoints/{task_id}.md에 진행 상태 저장
```

## 참고 파일
- settings.json: `~/.claude/settings.json` (1단계 수정 완료)
- 워크플로우: `/home/jay/workspace/prompts/DIRECT-WORKFLOW.md`
- dispatch.py: `/home/jay/workspace/dispatch.py`
- team_prompts.py: `/home/jay/workspace/prompts/team_prompts.py` (있다면)
- 기존 훅: `/home/jay/workspace/hooks/`, `/home/jay/.claude/hooks/`
- 리서치-구현 분리 규칙: `/home/jay/workspace/memory/specs/research-impl-separation.md`

## QC
- strategic-compact 훅: 도구 50회 호출 시 경고 메시지 출력 확인
- DIRECT-WORKFLOW.md: 세션 경량화 섹션 존재 확인
- dispatch.py: 지시서 크기 경고 동작 확인
- 기존 테스트 회귀 없음