# 1406 미해결 3건: 설정 관리 체계 개선

## 문제 1: org-structure.json과 bot_settings.json 모델 불일치 방지

### 현상
- org-structure.json에서 dev3 dagda가 sonnet, bot_settings.json에서는 opus
- 두 파일이 각각 다른 값을 가져도 검증하는 로직이 없음

### 해결
- dispatch.py에 **설정 정합성 검증 함수** 추가
- 디스패치 실행 시 해당 팀의 org-structure.json 모델과 bot_settings.json 모델을 비교
- 불일치 시 WARNING 로그 출력 + 디스패치는 bot_settings.json 기준으로 실행
- 검증 함수: `_validate_model_consistency(team_id)`
- 파일 경로:
  - org-structure: `/home/jay/workspace/memory/organization-structure.json`
  - bot_settings: `/home/jay/.cokacdir/bot_settings.json`

## 문제 2: bot_settings.json git 미추적

### 현상
- `/home/jay/.cokacdir/bot_settings.json`은 git 추적이 안 되어 변경 이력을 알 수 없음
- 누가 언제 모델을 변경했는지 추적 불가

### 해결
- bot_settings.json에서 **토큰(token 필드)을 제외한** 사본을 workspace에 저장
  - 저장 경로: `/home/jay/workspace/memory/bot_settings_sync.json`
  - 토큰, API 키 등 민감 정보는 `"***REDACTED***"`로 마스킹
- dispatch.py에서 디스패치 성공 시 자동으로 사본 동기화
  - `_sync_bot_settings()` 함수: 원본 읽기 → 민감필드 마스킹 → workspace에 저장
- 이 사본은 git 추적 대상이 되어 변경 이력 추적 가능

## 문제 3: app.log에서 opus-sonnet 혼재 라우팅 검증

### 현상
- 2026-03-29에 dev3에서 opus 기록 일부 존재 (org-structure는 sonnet인데)
- dispatch.py의 model_router가 어떤 설정(org-structure vs bot_settings)을 기준으로 모델 결정하는지 불명확

### 해결
- dispatch.py의 모델 결정 로직 확인:
  - `_read_bot_models()` 함수 확인 — bot_settings.json의 models 필드 사용하는지
  - org-structure.json의 model 필드는 대시보드 표시용인지 라우팅용인지 구분
- **모델 결정 우선순위 명문화**:
  - 실제 API 호출 모델: bot_settings.json 기준 (변경 불가)
  - 대시보드 표시: org-structure.json 기준
  - 이 두 가지가 일치해야 함 → 문제 1의 정합성 검증으로 연결
- app.log에서 혼재 기록 원인 파악:
  - 3/29 opus 기록이 bot_settings 기준인지, 캐시 등 다른 원인인지 확인
  - 라우팅 로직에 model override가 있는지 확인

## 참조 파일
- `/home/jay/workspace/dispatch.py` — _read_bot_models(), model_router 관련 로직
- `/home/jay/.cokacdir/bot_settings.json`
- `/home/jay/workspace/memory/organization-structure.json`
- `/home/jay/workspace/app.log` (또는 관련 로그 파일)

## 테스트
- 기존 dispatch.py 테스트 전체 통과 (158+)
- 정합성 검증: 의도적으로 불일치 만들어서 WARNING 로그 확인
- 사본 동기화: 토큰 마스킹 확인, git diff로 변경 추적 확인

## 산출물
1. dispatch.py 수정 (정합성 검증 + 사본 동기화)
2. bot_settings_sync.json 초기 생성
3. 라우팅 로직 문서화 (어디가 실제 모델 결정 기준인지)
4. 보고서
