# task-1551: 팀장 봇 기본 모델 Sonnet 전환 + Critical 시 Opus 자동 승격

## 목표
팀장 봇 8개의 기본 모델을 Opus → Sonnet으로 변경하고, dispatch.py에서 level=critical일 때만 Opus로 자동 승격하는 로직을 추가한다.

## 배경
- 주간 Opus 한도 79% 사용 (화요일 기준, 리셋은 월요일)
- Sonnet만 한도는 6% → Opus 편중 심각
- 원인: 팀장 8명 전원이 Opus로 돌고 있어서 위임 시마다 Opus 소모
- 팀장이 하는 일(지시서 실행, subagent 호출, 보고서 작성)은 Sonnet으로 충분
- Lv.3 한정승인 같은 복잡한 작업에서만 Opus 필요

## 변경 1: bot_settings 모델 변경

### 대상 파일
- `/home/jay/workspace/memory/bot_settings_sync.json`

### 변경 내용
아래 8개 봇의 models 값을 변경:
- `dev1_hermes_bot`: `claude-opus-4-6` → `claude-sonnet-4-6`
- `dev2_odin_bot`: `claude-opus-4-6` → `claude-sonnet-4-6`
- `dev3_dagda_bot`: `claude-opus-4-6` → `claude-sonnet-4-6` (display_name: dev3_Dagda_bot)
- `dev4_vishnu_bot`: `claude-opus-4-6` → `claude-sonnet-4-6`
- `dev5_marduk_bot`: `claude-opus-4-6` → `claude-sonnet-4-6`
- `dev6_perun_bot`: `claude-opus-4-6` → `claude-sonnet-4-6`
- dev3_ra_bot (display_name: dev8_Ra_bot): `claude-opus-4-6` → `claude-sonnet-4-6`
- dev6_itzamna_bot (display_name: dev7_Itzamna_bot): `claude-opus-4-6` → `claude-sonnet-4-6`

⚠️ **아누 봇(ai_dev_server_bot)은 변경하지 말 것** — Opus 유지

### 실제 봇 설정 반영
- bot_settings_sync.json 변경 후, cokacdir가 이 파일을 읽어서 봇에 반영하는지 확인
- 반영 안 되면 실제 bot_settings.json 파일 위치를 찾아서 거기도 변경

## 변경 2: dispatch.py model_router 수정

### 현재 동작
dispatch.py의 model_router가 모델을 권장하지만, 실제로는 bot_settings의 모델이 사용됨.

### 수정 내용
`dispatch.py`에서 `--level critical` 또는 `--level security`일 때:
1. bot_settings_sync.json의 해당 봇 모델을 임시로 `claude-opus-4-6`으로 오버라이드
2. 또는 cokacdir --cron 호출 시 모델 파라미터를 Opus로 지정
3. 작업 완료 후 원래 Sonnet으로 복원 (영구 변경 아님)

### 구현 방법 확인 필요
- dispatch.py가 봇 모델을 동적으로 변경할 수 있는 메커니즘이 있는지 확인
- bot_settings_sync.json을 직접 수정하는 방식 vs cokacdir API를 통한 방식
- 가장 깔끔한 방법으로 구현

## 변경 3: 조직도 동기화

### 대상 파일
- `/home/jay/workspace/memory/organization-structure.json` — 팀장 8명의 model 필드
- `/home/jay/workspace/memory/org-details/*.json` — 팀별 상세 파일

### 변경 내용
팀장들의 model 필드를 `claude-opus-4-6` → `claude-sonnet-4-6`로 변경

## 테스트
1. bot_settings_sync.json 변경 후 봇이 정상 동작하는지 확인
2. `--level normal`로 dispatch 시 Sonnet으로 실행되는지 로그 확인
3. `--level critical`로 dispatch 시 Opus로 승격되는지 로그 확인
4. 기존 dispatch 테스트 회귀 없는지 확인

## 보고서
`memory/reports/task-1551.md`에 작성