# organization-structure.json 비대화 분석 및 최적화

## 태스크 ID: task-892.1
## 한정위임: 분석 → 설계 → 구현 → 검증까지 전부 진행

## 배경
organization-structure.json 파일이 **104KB / 2,455줄 / ~32,316 토큰**으로 비대해져서,
Claude Code의 Read tool 최대 허용치(25,000 토큰)를 초과한다.
팀원이 조직도를 읽으려 할 때 "File content exceeds maximum allowed tokens" 에러가 발생하여 작업에 차질이 생김.

## 문제 분석 (아누 사전 조사 결과)

### 파일 위치
- `/home/jay/workspace/memory/organization-structure.json`

### 크기 분석
- 전체: 104,735 bytes, 2,455줄, ~32,316 토큰
- `structure` 섹션: 44,062자 (가장 큰 섹션)
  - `columns.teams[3]` (수직조직): 24,226자 — 8개 dev 팀, 32명 멤버
  - `rows.centers` (횡단조직): 7,511자 — 8개 센터
- `engine_summary`: 666자
- `dependency_map`: 1,153자

### 비대화 원인
1. **팀 확장 (4→8팀)**: 팀과 멤버 수가 2배로 증가
2. **멤버별 expertise 필드 비대**: 1팀/2팀/8팀 멤버는 expertise가 800자+ (3~7팀은 ~260자)
3. **단일 파일 구조**: 조직 전체 정보를 하나의 JSON에 집약

### 제약 조건 (반드시 지킬 것)
1. 기존 코드에서 `organization-structure.json`을 참조하는 모든 곳이 깨지면 안 됨
2. dispatch.py, team_prompts.py, dashboard 등이 이 파일에 의존할 수 있음
3. **하위호환성 필수**: 기존 구조를 깨뜨리는 변경은 금지

## 작업 지시

### Phase 1: 영향도 분석
1. `organization-structure.json`을 참조하는 모든 파일 검색 (grep)
2. 각 참조 파일이 어떤 필드를 읽는지 정리
3. 파일 분리 시 영향받는 코드 목록 작성

### Phase 2: 최적화 설계
아래 접근 방향 중 가장 적합한 방안 선택 (또는 혼합):

**방안 A: 분할 (Split)**
- 메인 파일은 팀/센터 ID·이름·역할 등 요약만 유지 (토큰 < 15,000)
- 상세 정보(expertise, skills, 멤버 상세)는 별도 파일로 분리
  - 예: `memory/org-details/dev1-team.json`, `memory/org-details/marketing-team.json` 등
- 메인 파일에 `$ref` 또는 `detail_path` 필드로 상세 파일 경로 기재

**방안 B: 경량화 (Trim)**
- 불필요하게 장황한 expertise 텍스트 축약
- 중복 데이터 제거
- 메인 파일 자체를 25,000 토큰 이하로 줄이기

**방안 C: 하이브리드**
- B로 먼저 축약 시도 → 그래도 25,000 초과하면 A로 분할

### Phase 3: 구현
- 설계된 방안 구현
- 참조하는 코드도 함께 수정 (import 경로 변경 등)
- 기존 기능이 깨지지 않도록 주의

### Phase 4: 검증
- 최적화 후 메인 파일이 25,000 토큰 이하인지 확인
- 참조하는 코드가 정상 동작하는지 검증
- 대시보드 접속하여 조직도가 정상 표시되는지 확인

## 참고 파일
- 조직도: `/home/jay/workspace/memory/organization-structure.json`
- 디스패치: `/home/jay/workspace/dispatch.py`
- 팀 프롬프트: `/home/jay/workspace/prompts/team_prompts.py`
- 대시보드: `/home/jay/workspace/dashboard/index.html`
- 봇 설정: `/home/jay/.cokacdir/bot_settings.json`

## 작업 후 처리
- 보고서: `memory/reports/task-892.1.md`
- task-timer end: `python3 /home/jay/workspace/memory/task-timer.py end task-892.1`
- .done: `touch /home/jay/workspace/memory/events/task-892.1.done`