# 작업 지시서: 대시보드 복합팀 에이전트 작업 표시등 구현

## 작업 ID: task-1053.1
## 레벨: Lv.2 (한정승인)
## 프로젝트: 대시보드 (`/home/jay/workspace/dashboard/`)

## 배경
복합업무 임시팀(composite team) 기능이 task-1045.1에서 구현 완료됨.
`dispatch.py --composite marketing,design` 으로 단일 봇에서 마케팅+디자인 에이전트가 Phase별로 작업함.

**현재 문제**: 복합팀이 실행 중일 때 대시보드에 **아무런 표시가 안 됨**.
봇이 돌아가는데 어떤 에이전트가 투입됐는지, 누가 작업 중인지 전혀 보이지 않음.

## 구현 요구사항

### 핵심 로직 (작업 표시등만)
복합팀이 시작되면:
1. **복합팀에 배정된 모든 에이전트** → **대기**(노란불) 상태로 변경
2. **현재 실제로 작업 중인 에이전트만** → **작업중**(녹색) 상태로 변경
3. 작업이 끝난 에이전트 → 다시 **대기** 또는 **유휴**로 복귀

예시) `--composite marketing,design` 으로 실행, Phase 1(마케팅) 진행 중:
- 아폴론, 페이토, 에이레네 등 마케팅 에이전트 → **작업중**(녹색)
- 벤자이텐, 비너스, 카구야 등 디자인 에이전트 → **대기**(노란불)

Phase 2(디자인)로 전환되면:
- 마케팅 에이전트 → **대기** 또는 **유휴**
- 디자인 에이전트 → **작업중**(녹색)

### 호스트 봇 표시
- 복합팀을 실행하는 봇(예: bot-b = 1팀봇)은 **작업중** 상태 표시
- 1팀장(헤르메스)이 복합업무팀장 역할이라는 것을 표시 (예: "복합업무" 라벨 추가)

### 구현하지 않을 것 (범위 밖)
- Phase 진행 상황 표시 (Phase 1/2 프로그레스) → 불필요
- 핸드오프/Quality Gate 시각화 → 불필요
- 복합팀 전용 대시보드 섹션 → 불필요

## 데이터 연동 방안

### 방안 1: task-timers.json 기반 (권장)
- dispatch.py --composite 실행 시 task-timers.json에 composite 메타데이터 기록
  - `composite_teams`: ["marketing", "design"]
  - `current_phase`: "marketing" (Phase 전환 시 업데이트)
  - `assigned_agents`: 전체 배정 에이전트 목록
- server.py가 task-timers.json에서 composite 정보 읽어 에이전트 상태 계산

### 방안 2: 이벤트 파일 기반
- 복합팀 프롬프트에서 Phase 전환 시 `memory/events/composite-{task_id}-phase.json` 생성
- server.py가 이벤트 파일 폴링

### 판단
어느 방안이든 **에이전트 상태 표시등이 정확히 반영되는 것**이 목표. 팀장 판단에 맡김.

## 참고 파일
- 복합팀 설계서: `/home/jay/workspace/memory/specs/composite-team-system.md`
- 복합팀 상수: `/home/jay/workspace/utils/composite_constants.py`
- 대시보드 서버: `/home/jay/workspace/dashboard/server.py`
- 대시보드 프론트: `/home/jay/workspace/dashboard/static/`
- 조직도: `/home/jay/workspace/memory/organization-structure.json`
- 논리적 팀 에이전트 정보: `/home/jay/workspace/memory/org-details/`
- task-timers: `/home/jay/workspace/memory/task-timers.json`

## 테스트
- 복합팀 미실행 시: 기존 대시보드 동작 그대로 (회귀 0건)
- 복합팀 실행 시: 에이전트 상태가 대기/작업중으로 정확히 표시
- Phase 전환 시: 상태 변경이 정확히 반영