# 마스터 프로젝트: 위스퍼 비서 + Letta 5개 + gstack 17개 통합 도입

## 한정승인 (Scoped Delegation)
제이회장님이 **전체 Phase를 1팀에 한정승인**하셨다.
- 각 Phase 완료 → .done → 즉시 다음 Phase 진행 (아누 승인 대기 없음)
- Phase 간 산출물은 파일로 연결
- 파일 충돌 위험 Phase는 순차 진행
- 중간보고: 각 Phase 완료 시 간결 3줄 보고 (Telegram 직접)
- 마지막 Phase 완료 시 전체 통합 보고

## 참조 문서 (반드시 읽을 것)
1. `memory/research/letta-whisper-impact-analysis.md` — 위스퍼 비서 설계 + 시스템 영향 분석
2. `memory/research/gstack-analysis.md` — gstack 17개 도입 항목 상세 (832줄)
3. `memory/specs/anu-guide.md` — 아누 가이드 (시스템 기준서)
4. `memory/organization-structure.json` — 현재 조직도

## 전체 범위 (3대 축)

### 축 1: 위스퍼 비서 시스템
파일 기반 상태 추적 + hook stdout 주입. AI 토큰 0원.
- whisper-compile.py: 팀 상태 + .done + 보고서 요약 + 가이던스 컴파일
- whisper-save-guidance.py: Stop hook용 세션 가이던스 저장
- UserPromptSubmit hook 확장 (아누 케이스)
- Stop hook 확장 (아누 케이스)
- 상세: `memory/research/letta-whisper-impact-analysis.md` Section 2, 4

### 축 2: Letta 독립 5개 기능
위스퍼에 포함되지 않는 학습/분리/소통 레이어.
1. **트랜스크립트 자동 학습**: Stop hook에서 세션 대화 분석 → 패턴/선호/지적사항 추출 → memory/whisper/learnings.json
2. **session_patterns 감지**: 팀별 반복 실수 패턴 자동 감지 → 위임 시 주의사항 자동 포함
3. **프로젝트별 메모리 분리**: memory/projects/<프로젝트명>/context.md 구조 + hook에서 cwd 기반 자동 로드
4. **양방향 대화 채널**: 팀장→아누 질문 파일(memory/events/questions/) + hook 감지
5. **self_improvement**: 메모리 크기 모니터링 + 오래된 정보 자동 아카이브 제안

### 축 3: gstack 17개 도입
- 상세: `memory/research/gstack-analysis.md` Section 4 (A1~A17)
- 신규 횡단조직 2개: 아폴론(제품전략), 크로노스(회고분석)

---

## Phase 분리

### Phase 1: 기반 구축 (문서 + 조직 + 프롬프트)
코드 구현 최소화. 문서/프롬프트/조직 구조 확립.

**1-1. 신규 조직 등록**
- `memory/organization-structure.json`에 횡단조직 2개 추가:
  - 제품전략센터: 아폴론(Apollo) — 프로젝트 킥오프 시 제품 전략 리뷰
  - 회고분석센터: 크로노스(Chronos) — 주간 회고 + 트렌드 분석
- 대시보드(dashboard/index.html)에는 이 Phase에서 안 건드림 (Phase 3에서)

**1-2. gstack 즉시 도입 6개 (프롬프트/문서만)**
- A5: Temporal Interrogation → `skills/agent-meeting/SKILL.md`에 시간대별 결정사항 섹션 추가
- A8: issue-taxonomy → `teams/shared/issue-taxonomy.md` 신규 (4단계 심각도 × 7카테고리)
- A10: Context Pressure Hierarchy → `prompts/DIRECT-WORKFLOW.md`에 우선순위 계층 추가
- A11: Anti-Drift → `skills/agent-meeting/SKILL.md` + 팀장 워크플로우에 페르소나 고정 규칙
- A12: Suppression 목록 → `teams/shared/QC-RULES.md`에 "DO NOT flag" 섹션 추가
- A14: Dream State Mapping → `skills/3docs-create/SKILL.md`에 CURRENT→PLAN→12-MONTH 섹션

**1-3. 프로젝트별 메모리 분리 (Letta #3)**
- 디렉토리 구조 생성:
  ```
  memory/projects/insuwiki/context.md
  memory/projects/threadauto/context.md
  memory/projects/dev-system/context.md
  ```
- 각 프로젝트 context.md에 현재 MEMORY.md에서 해당 프로젝트 정보 분리 기록

**완료 기준**: 조직도 업데이트 + 6개 문서/프롬프트 수정 + 프로젝트별 context.md 3개 생성

---

### Phase 2: 위스퍼 비서 핵심 구현
코드 구현. 토큰 0원 파일 기반 시스템.

**2-1. whisper-compile.py**
위치: `/home/jay/workspace/scripts/whisper-compile.py`
기능:
- bot-activity.json에서 팀 상태 추출 (1팀: 작업중/유휴)
- task-timers.json에서 active/최근 completed 추출
- memory/events/*.done 스캔 (미처리 완료 작업)
- memory/reports/*.md에서 SCQA 첫 4줄 추출 (보고서 요약)
- memory/whisper/session-guidance.json에서 이전 가이던스 로드
- memory/projects/<cwd기반>/context.md 로드 (프로젝트별 컨텍스트)
- memory/events/questions/*.json에서 팀장 질문 로드 (양방향 채널, Letta #4)
- 유휴 팀 경고 (3시간 이상)
- stdout으로 XML 포맷 브리핑 출력

출력 형식:
```xml
<whisper-briefing>
[팀] 1팀:task-565.1 작업중(gstack분석) | 2팀:유휴(3h) | 3팀:task-564.1 완료
[완료] task-564.1 — S:done-watcher 개선 C:cokacdir 추가 Q:개선 효과 A:테스트 PASS
[프로젝트] InsuWiki: Phase 미시작 | ThreadAuto: Remotion 대기 | DevSystem: v4.0 운영
[가이던스] 이전: Letta+위스퍼 분석 중, gstack 1팀 위임, 보고프로세스 논의
[질문] 없음
[유휴경고] 2팀 3시간째 유휴 — 작업 배정 필요
</whisper-briefing>
```

**2-2. whisper-save-guidance.py**
위치: `/home/jay/workspace/scripts/whisper-save-guidance.py`
기능:
- stdin으로 세션 정보 수신 (hook에서 전달)
- 현재 팀 상태 스냅샷 저장
- 다음 세션 가이던스 생성 (파일 기반, AI 불필요):
  - active 작업 목록
  - 제이회장님과 논의 중이던 주제 (간단한 키워드 추출)
  - 유휴 팀 정보
- 저장: `memory/whisper/session-guidance.json`

**2-3. Hook 수정**
- `~/.claude/hooks/user-prompt-submit.sh` 아누 케이스에 추가:
  ```bash
  # 위스퍼 브리핑 주입
  python3 /home/jay/workspace/scripts/whisper-compile.py "$CWD" 2>/dev/null || true
  ```
- `~/.claude/hooks/stop-qc-reminder.sh` 아누 케이스에 추가:
  ```bash
  # 세션 가이던스 저장 (백그라운드)
  python3 /home/jay/workspace/scripts/whisper-save-guidance.py &
  ```

**2-4. 양방향 대화 채널 (Letta #4)**
- `memory/events/questions/` 디렉토리 생성
- 팀장이 아누에게 질문: `echo '{"from":"hermes","question":"설계 확인 필요","task_id":"task-565"}' > memory/events/questions/q-$(date +%s).json`
- whisper-compile.py가 질문 감지 → 브리핑에 포함
- 아누가 응답 후 질문 파일 → `.answered`로 rename

**2-5. 테스트**
- whisper-compile.py 단위 테스트 (다양한 상태 조합)
- hook 통합 테스트 (실제 hook 실행 시 브리핑 출력 확인)
- 빈 상태(모든 파일 없음) 시 graceful 처리 확인

**완료 기준**: whisper-compile.py + whisper-save-guidance.py + hook 수정 + 양방향 채널 + 테스트 PASS

---

### Phase 3: gstack 코드 구현 (단기 7개)
- A1: diff-aware QA → `scripts/diff-aware-qa.py` (git diff → 영향 라우트 매핑)
- A2: Health Score → `scripts/health-score.py` (7카테고리 가중평균 0-100)
- A4: CRITICAL GAP → qc_verify.py에 `critical_gap_check` verifier 추가
- A13: baseline 비교 → `memory/whisper/qa-baseline.json` + 비교 로직
- A15: 에러 메시지 AI-actionable → 기존 스크립트 에러 메시지 개선
- A17: fix_pct 경고 → task-timer 데이터에서 fix 비율 계산
- A7: SKILL.md 템플릿 시스템 → `scripts/gen-skill-docs.py`

**완료 기준**: 각 스크립트 + 테스트 + 기존 테스트 회귀 없음

---

### Phase 4: 학습/회고 시스템
- A3: 주간 회고 시스템 (크로노스) → `scripts/weekly-retro.py`
  - task-timer + git log 분석
  - 팀별 생산성, 세션 패턴, fix_pct
  - JSON 스냅샷 + 주간 트렌드 비교
  - cokacdir --cron으로 매주 월요일 자동 실행 등록
- Letta #1: 트랜스크립트 학습 → `scripts/transcript-learner.py`
  - Stop hook에서 트랜스크립트 파싱
  - 반복 지적/선호/패턴 추출 (키워드 기반, AI 선택적)
  - memory/whisper/learnings.json에 저장
- Letta #2: session_patterns 감지 → `scripts/pattern-detector.py`
  - 보고서 분석 → 팀별 반복 실수 패턴
  - memory/whisper/team-patterns.json에 저장
  - whisper-compile.py가 위임 시 해당 팀 패턴 주입
- Letta #5: self_improvement → `scripts/memory-janitor.py`
  - MEMORY.md 크기 모니터링
  - 30일 이상 미참조 항목 감지 → 아카이브 제안
  - 매주 크로노스 회고와 함께 실행

**완료 기준**: 4개 스크립트 + 주간 회고 cron 등록 + 테스트

---

### Phase 5: 고급 기능 + 통합 검증
- A6: LLM-as-judge → Haiku로 스킬 품질 테스트 (선택적, 비용 발생)
- A9: AI 코드리뷰 자체 구현 (Greptile 대체, 로컬 패턴 매칭)
- A16: @ref 브라우저 자동화 (InsuWiki 본격화 시)
- 전체 통합 테스트
- 대시보드에 아폴론/크로노스 표시 (organization-structure.json 기반 자동)
- **전체 통합 보고서** 작성 → 제이회장님 보고

---

## 공통 규칙
- 코딩은 팀원(Sonnet)에게 위임. 팀장(Opus)은 설계/검토만.
- pyright 에러 0건 유지
- 기존 테스트 회귀 금지
- 파일 기반 위임 (--task-file)
- 보안: 토큰/키 하드코딩 금지
- CODING-STANDARDS.md 준수
- 각 Phase 완료 시 보고서: `memory/reports/task-566.{phase번호}.md`

## task-timer
- 전체 작업 ID: task-566
- Phase별: task-566.1 ~ task-566.5
