# task-1196.1 완료 보고서: 대시보드 조직뷰 — 개발8팀 팀원 개별 배치 표시

## SCQA

**S**: 개발8팀(dev8-team)이 organization-structure.json에 등록되어 있으며, 대시보드 `/api/org` 엔드포인트에서 팀장(라) + 팀원 4명(아누비스, 호루스, 바스테트, 소베크)의 데이터가 정상 전달된다.

**C**: 프론트엔드 `TeamCard` 컴포넌트가 GLM 모델 팀원을 별도 섹션("GLM 외주")으로 묶어 이니셜 + 이름만 축소 표시하고 있었다. dev8팀은 멤버 전원(4명)이 GLM 기반이라 `internalMembers`가 빈 배열이 되어, 팀장만 개별 표시되고 팀원 4명은 역할/모델 없이 축소 형태로 렌더링되었다.

**Q**: 1~7팀처럼 팀원 각자가 이름/역할/모델과 함께 개별 배치 표시되도록 수정할 수 있는가?

**A**: `utils.js`의 3개 컴포넌트(`ModelBadge`, `MemberRow`, `TeamCard`)를 수정하여 GLM 멤버도 개별 `MemberRow`로 표시되도록 변경했다. GLM 멤버는 오렌지 계열 색상(아바타, 모델 배지)으로 시각적 구분이 가능하다. API 테스트에서 dev8팀 데이터(팀장 1명 + 팀원 4명) 정상 응답 확인.

## 수정 내용

### ModelBadge 컴포넌트 (utils.js:61-77)
- `colorClass` 변수 추가로 모델별 색상 분기
- `glm-5` → "GLM-5" (오렌지), `glm-4.7-flash` → "GLM-4.7" (오렌지)
- `gemini` → 스카이블루 색상 추가
- Claude 모델은 기존 회색 유지

### MemberRow 컴포넌트 (utils.js:79)
- `isGlm` prop 추가 (기본값 `false`, 하위호환)
- GLM 멤버 아바타 색상: `bg-orange-100 text-orange-700`

### TeamCard 컴포넌트 (utils.js:167-175)
- GLM 멤버 표시 방식 변경: 이니셜 원형 + 이름 나열 → 개별 `MemberRow` 표시
- `border-orange-100` 구분선 + "GLM 외주 N명" 라벨로 시각적 구분 유지

## 확인 포인트 결과

- `organization-structure.json`: dev8-team 멤버 구조가 1~7팀과 동일한 형식 ✅
- `server.py /api/org`: dev8 팀원 4명 + 팀장 정상 응답 확인 ✅
- `utils.js TeamCard`: GLM 멤버를 개별 MemberRow로 렌더링 ✅
- 모델명 구분: glm-5="GLM-5", glm-4.7-flash="GLM-4.7" 오렌지 배지로 구분 표시 ✅

## 발견 이슈 및 해결

### 자체 해결 (3건)
1. **GLM 멤버 축소 표시** — `TeamCard`에서 GLM 멤버를 `MemberRow`로 개별 렌더링하도록 수정 (utils.js:167-175)
2. **모델 배지 색상 미구분** — `ModelBadge`에 GLM용 오렌지 색상 분기 추가 (utils.js:64-70)
3. **glm-4.7-flash 모델명 미구분** — `ModelBadge`에서 "GLM"이 아닌 "GLM-4.7"로 표시하도록 분기 추가 (utils.js:69)

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

## 산출물

- `/home/jay/workspace/dashboard/components/utils.js`

## 테스트 결과

- `/api/org` 엔드포인트: dev8팀 데이터 정상 응답 (팀장 1명 + 팀원 4명, 전원 모델/역할/엔진 정보 포함)
- GLM 감지 로직: 4명 전원 `isGlm=True` 정확 판정
- 1~7팀 호환성: `internalMembers` 분기 유지, `hasGlm=false`인 팀은 기존과 동일 렌더링
