# task-1086.1 완료 보고서: 대시보드 천재적사고팀 카드 추가

## SCQA

**S**: 조직도에 `genius-thinking-team`이 특수팀으로 추가되었으나, 대시보드 횡단조직&특수팀 영역에 카드가 없어 현황을 확인할 수 없다.

**C**: 전략센터와 회고분석센터가 상하 이등분으로 배치되어 있어, 천재적사고팀을 그 사이에 3분할로 배치해야 한다.

**Q**: 대시보드에 천재적사고팀 카드를 전략센터와 회고분석센터 사이에 올바르게 추가할 수 있는가?

**A**: `App.js`에서 `activeCenters.flatMap`을 활용하여 `product-strategy-center` 렌더링 직후 천재적사고팀 카드를 삽입했고, `utils.js`에 색상/에이전트 매핑을 추가하여 완료. 보안팀 카드 패턴을 재활용하되 amber/gold 색상 적용.

## 수정 파일

- `/home/jay/workspace/dashboard/components/App.js` — geniusTeam 변수 추가(156행), activeCenters.flatMap으로 천재적사고팀 카드 삽입(557-622행)
- `/home/jay/workspace/dashboard/components/utils.js` — colorMap에 genius-thinking-team 색상 추가(188행), centerAgentMap에 davinci 매핑 추가(206행)

## 변경 상세

### App.js
1. **156행**: `const geniusTeam = teams.find(t => t.team_id === 'genius-thinking-team');` 추가
2. **557-622행**: `activeCenters.map` → `activeCenters.flatMap`으로 변경. `product-strategy-center` 렌더 후 천재적사고팀 카드를 조건부 삽입
   - 배지: "특수팀" (amber-100)
   - 팀장: 다빈치 (Da Vinci), Opus 모델 배지
   - note 표시 (organization-structure.json의 note 필드)
   - running task 기반 상태 (대기중/작업중/진행 N건)
   - crossFunctional davinci 에이전트 소환 상태 표시
   - geniusTeam?.lead null 방어 적용

### utils.js
1. **188행**: CenterCard colorMap에 `'genius-thinking-team': { bg: 'bg-amber-50', border: 'border-amber-200', text: 'text-amber-700' }` 추가
2. **206행**: centerAgentMap에 `'genius-thinking-team': 'davinci'` 추가

## 발견 이슈 및 해결

### 자체 해결 (3건)
1. **flatMap 반환값 일관성** — cards 배열에 조건부로 push한 뒤 항상 return cards로 반환하여 빈 배열 방지
2. **null 방어** — `geniusTeam?.lead` 옵셔널 체이닝으로 팀 데이터 미존재 시 카드 미렌더
3. **상태 표시 우선순위** — geniusRunning(작업 수) > geniusIsWorking(에이전트 상태) > 기본 '대기중' 순서로 표시

### 범위 외 미해결 (0건)
없음.

## 위치 제약 검증
- centerOrder: `['qc-center', 'product-strategy-center', 'gemini-center', 'devops-center', 'retrospective-center', 'codex-center']`
- flatMap에서 `product-strategy-center` 다음에 천재적사고팀 카드 삽입
- 결과 렌더 순서: ... → 전략센터 → **천재적사고팀** → Gemini센터 → DevOps센터 → 회고분석센터 → ...

## 테스트 결과
- JS 프론트엔드 파일: pyright 대상 아님 (Python 아님)
- 대시보드 URL 변경 없음
- 기존 코드 패턴(보안팀 카드 469-554행, CenterCard 컴포넌트) 재활용으로 렌더링 안정성 확보
