---
name: manager-orchestrator
description: >
  GUARDiA 관리자 시스템(C:\GUARDiA\manager) 구현을 조율하는 오케스트레이터.
  M-01~M-08 기능 구현, UI 설계, API 연동, 보안, 배포 전 단계를 팀으로 실행한다.
  트리거: '관리자 시스템 만들어줘', 'M-01 대시보드', 'M-03 CMDB 페이지', '배포 관리 기능',
  '다시 실행', '재실행', '업데이트', '수정', '보완', '네이버 클라우드 참조해서 구현',
  'DR 관제 추가', '네트워크 관제 추가', 'CSAP 대시보드', '실시간 그래프', '플레이북 UI',
  '멀티기관 통합', '로드맵', '추가 개발 제안', 'MG-0X' 관련 모든 요청.
  에이전트 팀 모드(ux-architect + backend-engineer + integration-specialist + security-engineer + devops-engineer + roadmap-planner)로 실행.
---

# GUARDiA Manager 오케스트레이터

**실행 모드:** 에이전트 팀 (5명) — 하이브리드 (Phase별 팀 조합 변경)

## Phase 0: 컨텍스트 확인

`_workspace/` 폴더 존재 여부로 실행 모드를 결정한다:
- **초기 실행**: `_workspace/` 없음 → Phase 1부터 전체 실행
- **부분 재실행**: `_workspace/` 존재 + 특정 기능(M-0X) 수정 요청 → 해당 에이전트만 재호출
- **새 기능 추가**: 기존 `_workspace/` 유지 + 신규 기능 추가 → Phase 2부터 해당 기능만

```
_workspace/
├── api-contract.md      ← integration-specialist 산출물
├── api-spec.md          ← backend-engineer 산출물
├── security-review.md   ← security-engineer 산출물
├── deploy-guide.md      ← devops-engineer 산출물
└── ui-{feature}.md      ← ux-architect 산출물 (기능별)
```

이전 산출물이 있으면 해당 에이전트에게 "이전 파일을 읽고 개선/확장하라"고 지시한다.

---

## Phase 1: 요구사항 분석 (오케스트레이터 직접 실행)

1. CLAUDE.md의 기능 목록(M-01~M-08) 확인
2. 사용자 요청에서 구현할 기능 코드 추출
3. 네이버 클라우드 콘솔 참조 사항 정리: `references/ncloud-patterns.md` 읽기
4. 기능별 의존 관계 파악 (M-01은 M-03 데이터 필요 등)
5. 구현 순서 결정: 필수 선행 → 의존 기능 순

**기본 구현 순서:**
```
M-02(인증) → M-03(CMDB/자산) → M-01(대시보드) → M-04(배포) → M-05(보안) → M-06(LLM) → M-07(설정) → M-08(알림)
```

---

## Phase 2: 연동 설계 (팀: integration-specialist 주도)

**실행 모드:** 서브 에이전트 (결과만 필요)

`integration-specialist`를 호출하여:
- GUARDiA ITSM API 스캔 및 활용 가능한 엔드포인트 목록 정리
- Manager Backend 필요 엔드포인트 결정
- `_workspace/api-contract.md` 생성

integration-specialist 완료 후 결과를 받아 Phase 3으로 진행.

---

## Phase 3: 병렬 개발 (팀: ux-architect + backend-engineer)

**실행 모드:** 에이전트 팀

```
TeamCreate(
  name: "manager-dev-team",
  members: [ux-architect, backend-engineer, security-engineer]
)
```

**작업 할당:**
```
TaskCreate("M-{X} Frontend 구현", assignee=ux-architect, blockedBy=[api-contract])
TaskCreate("M-{X} Backend API 구현", assignee=backend-engineer, blockedBy=[api-contract])
TaskCreate("인증/보안 설정", assignee=security-engineer, blockedBy=[])
```

**데이터 흐름:**
- `_workspace/api-contract.md` → ux-architect, backend-engineer가 공유 읽기
- ux-architect → `_workspace/api-spec.md` 업데이트 요청 시 backend-engineer에게 SendMessage
- security-engineer → 구현 완료 후 `_workspace/security-review.md` 작성

**네이버 클라우드 디자인 패턴 적용 (ux-architect에게 전달):**
- references/ncloud-patterns.md 참조
- 좌측 사이드바 서비스 트리 + 상단 GNB 레이아웃 필수
- 리소스 상태 배지: 초록(실행중) / 회색(중지) / 빨강(오류)
- 테이블: 체크박스 + 벌크 액션 + 컬럼 정렬
- 모달 대신 슬라이드 패널(drawer) 선호

---

## Phase 4: 배포 설정 (팀: devops-engineer)

**실행 모드:** 서브 에이전트

`devops-engineer`를 호출하여:
- Manager Backend systemd 서비스 등록
- Nginx 설정 파일 생성
- Gitea 저장소 생성 및 Webhook 연결
- `Jenkinsfile` 작성
- `_workspace/deploy-guide.md` 생성

---

## Phase 5: 통합 검증

모든 산출물 확인:
1. `frontend/src/` 파일 존재 확인
2. `backend/main.py` 실행 가능 여부 (`python -m py_compile`)
3. `_workspace/security-review.md` 확인
4. Nginx 설정 문법 검증 (`nginx -t` 원격 실행)
5. 서비스 접속 테스트

---

## 에러 핸들링

| 상황 | 대응 |
|------|------|
| GUARDiA ITSM 연결 불가 | Mock 데이터로 UI 구현 후 연결 안내 |
| 에이전트 timeout | 해당 기능 없이 진행, `_workspace/`에 미완료 기록 |
| 포트 충돌 | devops-engineer에게 대체 포트 재할당 요청 |

---

## 테스트 시나리오

**정상 흐름:**
1. "M-01 대시보드 페이지 만들어줘" → Phase 0~5 전체 실행 → `frontend/src/pages/Dashboard.tsx` 생성

**부분 재실행:**
1. "배포 관리 버튼 디자인 수정해줘" → Phase 0에서 _workspace 감지 → ux-architect만 재호출

**에러 흐름:**
1. GUARDiA ITSM 연결 실패 → Mock API 응답으로 UI 구현 완료, 연결 설정 안내
