# 신호등 체계 — 구현 체크리스트

> 작성일: 2026-04-23
> 상태: 전체 완료

## 백엔드

- [x] dispatch.py: `_update_member_status_on_dispatch()` 함수 구현 (task-2126)
- [x] dispatch.py: `_collect_team_ids()` — sub_teams 탐색 포함 (task-2126)
- [x] dispatch.py: `_apply_team_status()` — member-status.json에 없는 멤버 자동 생성 (task-2129)
- [x] data_loader.py: `_enrich_member_status()` — sub_teams 탐색 포함 (기존 구현)
- [x] data_loader.py: `get_member_status()` — is_lead 기반 working/standby 분기
- [x] data_loader.py: `_enrich_bot_activity()` — borrowed_tasks, logical_team_using

## 프론트엔드

- [x] utils.js: `StatusDot` — working→초록, standby→노란, idle→회색
- [x] utils.js: `MemberRow` — hasRunningTasks + isLead 기반 분기
- [x] App.js: ownTasks + borrowedTasks → allTasks 병합
- [x] utils.js: isBorrowed → 보라색 도트 (bg-violet-400)

## 데이터

- [x] member-status.json: org-structure.json의 모든 멤버 포함 (task-2129: 13명 추가)
- [x] task-timers.json: dispatch 시 bot 필드 자동 배정

## 문서

- [x] traffic-light-spec.md: 단일 소스 (Single Source of Truth)
- [x] 시스템 3문서: plan.md, context-notes.md, checklist.md

## 검증 시나리오

- [x] dev1~3팀 팀장 dispatch 시 working 표시
- [x] dev4~8팀 팀장 dispatch 시 working 표시 (task-2129 수정 후)
- [x] 논리적 팀(marketing 등) dispatch 시 차용 표시
- [x] .done 생성 시 전원 idle 복귀
