# 팀 증설 계획서 (4팀→8팀)

**작성일**: 2026-03-24
**작성자**: 아누 (개발실장)
**상태**: 제이회장님 검토 대기

---

## 1. 현재 상태

| 팀 | 봇 | 팀장 | 타입 | 신화 테마 |
|---|---|---|---|---|
| dev1-team | bot-b | 헤르메스 (Hermes) | direct (Opus) | 그리스 |
| dev2-team | bot-c | 오딘 (Odin) | direct (Opus) | 북유럽 |
| dev3-team | bot-d | 다그다 (Dagda) | direct (Opus) | 켈트 |
| dev4-team | bot-e | 라 (Ra) | glm (Sonnet+GLM) | 이집트 |

## 2. 목표 상태

| 팀 | 봇 | 팀장 | 타입 | 신화 테마 | 비고 |
|---|---|---|---|---|---|
| dev1-team | bot-b | 헤르메스 (Hermes) | direct | 그리스 | 변경 없음 |
| dev2-team | bot-c | 오딘 (Odin) | direct | 북유럽 | 변경 없음 |
| dev3-team | bot-d | 다그다 (Dagda) | direct | 켈트 | 변경 없음 |
| dev4-team | bot-e | 비슈누 (Vishnu) | direct | 힌두 | ★ 신설 |
| dev5-team | bot-f | 마르둑 (Marduk) | direct | 메소포타미아 | ★ 신설 |
| dev6-team | bot-g | 페룬 (Perun) | direct | 슬라브 | ★ 신설 |
| dev7-team | bot-h | 이참나 (Itzamna) | direct | 마야 | ★ 신설 |
| dev8-team | bot-i | 라 (Ra) | glm (Sonnet+GLM) | 이집트 | ← dev4에서 이동 |

## 3. 선결조건 (작업 전 필수 확인)

### 3-1. ✅ 텔레그램 봇 생성 (완료)
- dev4_Vishnu_bot (bot-e), dev5_Marduk_bot (bot-f), dev6_Perun_bot (bot-g), dev7_Itzamna_bot (bot-h) 생성 완료
- SHA256 키 .env.keys 등록 완료
- 기존 bot-e (라) → bot-i 유지 (동일 물리 봇, 내부 명칭만 변경)

### 3-2. cokacdir 서버 등록
- 새 봇 4개를 cokacdir 서버에 등록 필요
- 기존 bot-e는 물리적으로 동일 → cokacdir 서버 변경 불필요

### 3-3. 현재 dev4(bot-e) 진행 중 작업 없음 확인
- 현시점: dev4-team 유휴 ✅ (task-871.1 완료)

### 3-4. ⚠️ 기존 불일치 수정
- `teams/dev3/CLAUDE.md`: "라(Ra) - 개발3팀장" → **다그다(Dagda)로 수정 필요**
- `teams/dev3/GLM-WORKFLOW.md`: dev3은 더 이상 GLM 타입이 아님 → **삭제 또는 이동 필요**
- `teams/dev4/CLAUDE.md`: 현재 "라(Ra) - 개발3팀장"으로 되어 있음 → 잘못된 내용 수정 필요

## 4. 수정 대상 파일 인벤토리 (총 16개 + 디렉토리)

### Phase A: 기존 불일치 수정 (선행)
| # | 파일 | 변경 내용 |
|---|---|---|
| A1 | `teams/dev3/CLAUDE.md` | 라→다그다, GLM 참조 제거, direct 타입으로 수정 |
| A2 | `teams/dev3/GLM-WORKFLOW.md` | 삭제 (dev3은 direct 타입) |
| A3 | `teams/dev3/run-glm.sh` | 삭제 (dev3은 direct 타입) |

### Phase B: dev4→dev8 리네이밍 (순서 중요!)
| # | 파일 | 변경 내용 | 위험도 |
|---|---|---|---|
| B1 | `.env.keys` | `COKACDIR_KEY_DEV4` → `COKACDIR_KEY_DEV8` | 🔴 |
| B2 | `dispatch.py` BOT_KEYS | `"dev4"` → `"dev8"` | 🔴 |
| B3 | `dispatch.py` TEAM_BOT | `"dev4-team": "dev4"` → `"dev8-team": "dev8"` | 🔴 |
| B4 | `dispatch.py` BOT_TO_KEY | `"bot-e": "dev4"` → `"bot-i": "dev8"` | 🔴 |
| B5 | `dispatch.py` TEAM_TO_BOT_ID | `"dev4-team": "bot-e"` → `"dev8-team": "bot-i"` | 🔴 |
| B6 | `dispatch.py` argparse | choices에 dev8-team 추가 | 🟡 |
| B7 | `dispatch.py` 봇 리스트 루프 (L180) | bot-e → bot-i | 🟡 |
| B8 | `prompts/team_prompts.py` TEAM_INFO | dev4-team → dev8-team | 🔴 |
| B9 | `prompts/team_prompts.py` TEAM_MEMBER_ROLES | dev4-team → dev8-team | 🟡 |
| B10 | `prompts/team_prompts.py` build_prompt | dev4-team → dev8-team | 🟡 |
| B11 | `memory/task-timer.py` ALLOWED_TEAM_IDS | dev4-team → dev8-team | 🟡 |
| B12 | `dashboard/server.py` team_to_bot (L436) | dev4-team → dev8-team | 🟡 |
| B13 | `dashboard/server.py` bot_labels (L778) | dev4 → dev8 | 🟡 |
| B14 | `dashboard/server.py` 봇 루프 (L789) | dev4 → dev8 | 🟡 |
| B15 | `utils/bot_activity.py` TEAM_TO_BOT | dev4-team 추가 (현재 누락 버그!) → dev8-team | 🟡 |
| B16 | `memory/organization-structure.json` | dev4-team 블록 → dev8-team, 경로 변경 | 🟡 |
| B17 | `memory/specs/bot-team-mapping.md` | 전체 재작성 | 🟢 |
| B18 | `memory/events/bot-activity.json` | dev4 → dev8 | 🟢 |
| B19 | `teams/dev4/` → `teams/dev8/` | 디렉토리 리네임 | 🔴 |
| B20 | `teams/dev8/CLAUDE.md` | 개발4팀장 → 개발8팀장 | 🟡 |
| B21 | `teams/dev8/GLM-WORKFLOW.md` | /teams/dev4/ → /teams/dev8/ (7곳) | 🟡 |
| B22 | `teams/dev8/run-glm.sh` | 경로 수정 | 🟡 |
| B23 | `scripts/check-dev4.py` → `check-dev8.py` | 파일명+내용 수정 | 🟢 |

### Phase C: 신규 팀 생성 (dev4~dev7)
| # | 파일 | 변경 내용 |
|---|---|---|
| C1 | `.env.keys` | DEV4~DEV7 키 추가 (봇 생성 후) |
| C2 | `dispatch.py` 모든 dict | dev4~dev7 엔트리 추가 |
| C3 | `prompts/team_prompts.py` | dev4~dev7 TEAM_INFO + TEAM_MEMBER_ROLES 추가 |
| C4 | `memory/task-timer.py` | ALLOWED_TEAM_IDS에 dev4~dev7 추가 |
| C5 | `dashboard/server.py` | 3곳에 dev4~dev7 추가 |
| C6 | `utils/bot_activity.py` | dev4~dev7 추가 |
| C7 | `teams/dev4~dev7/CLAUDE.md` | dev1 CLAUDE.md 기반으로 생성 |
| C8 | `teams/dev4~dev7/AGENTS.md` | 복사+수정 |
| C9 | `teams/dev4~dev7/qc/` | QC 디렉토리 구조 복사 |
| C10 | `memory/organization-structure.json` | dev4~dev7 블록 추가 |
| C11 | `memory/specs/bot-team-mapping.md` | 전체 재작성 (8봇 체계) |

### Phase D: 테스트 수정
| # | 파일 | 변경 내용 |
|---|---|---|
| D1 | `tests/test_dispatch.py` | TEAM_BOT 어서션, BOT_KEYS 테스트 업데이트 |
| D2 | `dashboard/test_server.py` | bot_ids 어서션 업데이트 |
| D3 | `prompts/test_team_prompts.py` | dev4~dev8 관련 테스트 추가 |
| D4 | `utils/tests/test_bot_activity.py` | dev4~dev8 TEAM_TO_BOT 테스트 |

### Phase E: 검증
| # | 검증 항목 |
|---|---|
| E1 | 모든 기존 테스트 통과 (pytest) |
| E2 | dispatch.py --team dev8-team 테스트 (드라이런) |
| E3 | dispatch.py --team dev4~dev7 테스트 (드라이런) |
| E4 | 대시보드 조직뷰에 8팀 정상 표시 확인 |
| E5 | pyright 0 errors |

## 5. 실행 순서 (꼬임 방지)

### ⚠️ 핵심 원칙
1. **Phase B(리네이밍)를 먼저 완료한 후 Phase C(신설)** — 동시 진행 시 dev4-team 키 충돌
2. **Phase A→B→C→D→E 순차 진행** — 병렬 불가 (같은 파일 다수 수정)
3. **단일 팀 한정승인** — 한 팀이 전체 작업을 일관되게 처리해야 파일 충돌 없음
4. **봇 생성은 Phase C 전에 완료** — 키 없이 .env.keys 수정 불가

### 실행 시나리오
```
Step 1: 제이회장님 — 텔레그램 봇 4개 생성 (bot-f, g, h, i)
Step 2: 제이회장님 — .env.keys에 새 봇 키 등록
Step 3: 아누 → 팀 위임 (Phase A~E 한정승인)
Step 4: 팀 작업 완료 → 아누 통합 검증
Step 5: 대시보드 확인 → 완료
```

## 6. 잠재 위험 및 대응

### 위험 1: cokacdir 서버 측 봇 등록
- **문제**: 새 봇 4개가 cokacdir에서 메시지를 수신하려면 서버 등록 필요
- **확인 필요**: bot-e 키를 bot-i로 이전할 때 cokacdir 설정 변경이 필요한지
- **대응**: 제이회장님 확인 필요

### 위험 2: bot-e 키 전환 타이밍
- **문제**: bot-e가 dev4→dev8로 키를 바꾸면 기존 env var명도 변경 필요
- **주의**: `.env.keys`에서 `COKACDIR_KEY_DEV4` → `COKACDIR_KEY_DEV8`로 rename하면
  dispatch.py의 `os.environ.get("COKACDIR_KEY_DEV4")`가 깨짐
- **대응**: 모든 파일을 한 번에 원자적으로 수정 (Phase B 전체를 한 커밋으로)

### 위험 3: 진행 중 작업과 충돌
- **문제**: Phase B 진행 중 다른 팀이 dispatch를 시도하면 라우팅 실패
- **대응**: 증설 작업 중에는 다른 dispatch 금지. 야간 시간대에 실행 권장.

### 위험 4: 신화 테마 결정 미완
- **문제**: dev4~dev7 팀장명·팀원명이 아직 미정
- **대응**: 제이회장님이 테마 결정 후 작업 시작

### 위험 5: task-timers.json 히스토리
- **문제**: 과거 기록에 "dev4-team"으로 남아있는 데이터
- **대응**: 과거 기록은 수정하지 않음 (히스토리 보존). 새 기록만 dev8-team으로

## 7. 결정 사항 (확정)

1. ✅ **신규 봇 4개 생성 완료** — dev4_Vishnu, dev5_Marduk, dev6_Perun, dev7_Itzamna
2. ✅ **bot-e → bot-i**: 동일 물리 봇 유지, 내부 명칭만 변경
3. ✅ **신화 테마**: 힌두 / 메소포타미아 / 슬라브 / 마야
4. ✅ **팀장/팀원명 확정**:

### dev4-team (힌두)
- 팀장: 비슈누 (Vishnu)
- 백엔드: 카르티케야 (Kartikeya)
- 프론트: 사라스바티 (Sarasvati)
- UX/UI: 락슈미 (Lakshmi)
- 테스터: 하누만 (Hanuman)

### dev5-team (메소포타미아)
- 팀장: 마르둑 (Marduk)
- 백엔드: 엔키 (Enki)
- 프론트: 이쉬타르 (Ishtar)
- UX/UI: 나부 (Nabu)
- 테스터: 닌기르수 (Ningirsu)

### dev6-team (슬라브)
- 팀장: 페룬 (Perun)
- 백엔드: 스바로그 (Svarog)
- 프론트: 라다 (Lada)
- UX/UI: 모코시 (Mokosh)
- 테스터: 벨레스 (Veles)

### dev7-team (마야)
- 팀장: 이참나 (Itzamna)
- 백엔드: 쿠쿨칸 (Kukulkan)
- 프론트: 이쉬첼 (Ixchel)
- UX/UI: 아쿠인 (Ah Kin)
- 테스터: 카마소츠 (Camazotz)

5. **미결정**: 작업 위임 팀 (1팀 or 2팀)
