# task: 논리적 팀 대시보드 신호등 정상화 — task-timer.py ALLOWED_TEAM_IDS 수정

## 배경
dispatch.py --team design 으로 위임 시, task-timer.py의 validate_team_id("design")가 실패하여 태스크가 "reserved" 상태에 머묾.
결과: 대시보드에서 해당 논리적 팀(디자인/출판)이 작업 중임에도 "유휴"로 표시, 물리 봇 신호등도 꺼져있음.
마케팅팀은 "marketing"이 ALLOWED_TEAM_IDS에 포함되어 있어 정상 작동 중.

## 근본 원인
`memory/task-timer.py` 35번째 줄:
```python
ALLOWED_TEAM_IDS = {"dev1-team", "dev2-team", "dev3-team", "dev4-team", "dev5-team", "dev6-team", "dev7-team", "dev8-team", "marketing", "consulting", "anu-direct", ""}
```
→ "design", "publishing", "composite" 누락

## 수정 대상 파일

### 1. memory/task-timer.py (핵심 수정)
- 35번째 줄 ALLOWED_TEAM_IDS에 "design", "publishing", "composite" 추가
- 128번째 줄 에러 메시지도 추가된 팀 반영하여 수정
- 하드코딩 방지 검토: ALLOWED_TEAM_IDS를 동적으로 구성하는 방안 검토 (예: composite_constants.py의 COMPOSITE_ALLOWED_TEAMS 참조). 단, 파일 로딩 실패 시 현재 하드코딩이 fallback으로 남아야 함. 복잡도가 높으면 하드코딩 유지 + 주석으로 동기화 주의 표기만 해도 OK.

### 2. 테스트 보강
- design/publishing/composite team_id로 start_task 호출 시 정상 동작하는지 테스트 케이스 추가
- 기존 테스트 파일이 있으면 거기에 추가, 없으면 새로 생성

### 3. 정합성 검증 (코드 수정 후 반드시 체크)
- dispatch.py의 DYNAMIC_BOT_TEAMS = {"marketing", "consulting", "publishing", "design"} 와 task-timer.py ALLOWED_TEAM_IDS 완전 일치 확인
- utils/composite_constants.py의 COMPOSITE_ALLOWED_TEAMS = {"marketing", "design", "consulting", "publishing"} 와도 정합성 확인
- dashboard/server.py의 _build_logical_team_labels()가 모든 논리적 팀을 정상 감지하는지 확인 (이 파일은 수정하지 말 것 — 확인만)

## 수정 후 검증 방법
```bash
python3 memory/task-timer.py start task-test.1 --team design --desc "디자인 테스트"
# → "started" 반환 확인
python3 memory/task-timer.py end task-test.1

python3 memory/task-timer.py start task-test.2 --team publishing --desc "출판 테스트"
# → "started" 반환 확인
python3 memory/task-timer.py end task-test.2

python3 memory/task-timer.py start task-test.3 --team composite --desc "복합 테스트"
# → "started" 반환 확인
python3 memory/task-timer.py end task-test.3
```

## 건드리지 말 것
- dashboard/server.py, dashboard/components/* (정상 작동 중)
- dispatch.py (정상 작동 중)
- utils/composite_constants.py (정상 작동 중)

## 주의사항
- 한정승인 작업: 끝까지 자율 진행
- task-test.1~3 검증 후 반드시 end 처리하여 정리할 것
