회장/CEO 아키텍처 — BigBoss OS 조직 재설계
유저 = 회장. CEO = AI 에이전트 (상시 존재). C레벨 = CEO가 고용. Council = 365일 24시간 상시 토론.
1. 계층 구조
유저 (회장)
→ 큰 방향 지시, 최종 결재권
→ CEO 에이전트에게 지시
↓
CEO 에이전트 (상시 존재, Sonnet)
→ 회장 지시 수신
→ 프로젝트 분석 → 필요 C레벨 판단 → 고용
→ Council 총괄 감독
→ 중요 결정 시 회장에게 보고/승인 요청
↓
C레벨 에이전트들 (Opus, CEO가 고용, 상시 존재)
→ 큰 그림 설계: 아키텍처 방향, 기술 스택, 전략
→ "마이크로서비스, Node.js 백엔드, SwiftUI iOS"
→ 한쪽 귀: 자기 도메인 섹션 실시간 옵저빙
→ 다른쪽 귀: Council 채널 상시 참여
→ 문서화 기반으로 두 채널 싱크
↓
간부급 리더 (Sonnet) — C레벨 큰 그림 → 세부 설계
→ "API 엔드포인트 구조, DB 스키마, 에러 처리 방식"
→ 코드 레벨 설계/판단, 워커 지휘, 이슈 감지, C레벨 보고
→ 예: Backend Lead, Frontend Lead, Security Lead, System Architect
↓
워커 에이전트들 (Haiku) — 간부급 설계 그대로 구현
→ 판단 없이 코드 작성, 테스트, 빌드 (몽키코더)
2. CEO 에이전트
역할
- 회장의 지시를 받아 조직 운영 총괄
- 프로젝트 분석 → 어떤 C레벨이 필요한지 판단 → 고용
- Council 토론 감독 및 중재
- C레벨 Council 제안 (새 C레벨 신설/분리/합병) → 회장 보고 → 승인 시 실행
- 회장에게 정기 보고 (진행사항, 이슈, 방향)
상시 실행
- Consigliere 패턴 재사용 (Supabase Realtime 구독)
- 회장 채널 구독 → 지시 수신 즉시 반응
- Council 채널 구독 → C레벨 토론 감독
모델
3. C레벨 Council (상시 회의방)
핵심 원칙
- 항상 회의 중 — 트리거 없이 24/7 존재
- 문서화 = 싱크 메커니즘 — 도메인 현황을 문서로 공유, 문서 기반으로 토론
- 자율 발언 — C레벨이 주도적으로 발언 (CEO 명령 대기 X)
발언 트리거 (C레벨 주도)
| 트리거 | 예시 |
|---|
| 도메인 task 블로킹 | "백엔드 API 스펙 미확정으로 iOS 개발 중단" |
| 진행률 이탈 | "보안 섹션 예상 대비 40% 지연" |
| 의존성 충돌 | "CTO 기술 선택이 COO 보안 정책과 충돌" |
| 방향 재검토 | "현재 마케팅보다 안정화가 우선이어야 함" |
| 로드맵 갱신 필요 | "신규 요구사항으로 기존 WBS 재조정 필요" |
| 다른 C레벨 발언 반응 | 토론, 동의, 반론 |
Supabase 구조
-- 회의방 영구 기록
council_messages (
id, clevel, content, trigger_type,
referenced_docs, created_at
)
-- Council 합의 결과
council_decisions (
id, topic, consensus, dissent,
action_items, approved_by_ceo, created_at
)
4. C레벨 도메인 옵저빙
각 C레벨: 자기 도메인 실시간 감시
- Supabase Realtime → 도메인 섹션 문서/task 변경 구독
- 특이사항 감지 → Council에 발언
문서화 강제 집행 (2레이어)
| 레이어 | 담당 | 스코프 | 방식 |
|---|
| C레벨 | 각 C레벨 | 자기 도메인 | 도메인 전문가로서 누락 정확히 파악 → 해당 워커에게 직접 요구 |
| Consigliere | Consigliere | 전체 | 크로스 도메인 누락 감지 → 해당 에이전트에게 요구 |
5. C레벨 고용 프로세스
최초 고용 (프로젝트 시작)
회장: "앱 만들어줘"
↓
CEO 에이전트 분석
→ 프로젝트 성격/규모 판단
→ 필요 C레벨 결정
→ 회장에게 제안: "CTO + COO 고용하겠습니다"
→ 회장 승인
→ DB에 C레벨 생성 + Council 시작
이후 C레벨 변경 (Council 자율 제안)
Council 토론 중 감지
"보안 이슈 급증 → CISO 분리 필요"
"CTO 과부하 → 플랫폼CTO/제품CTO 분리"
↓
Council 내부 합의
↓
CEO → 회장에게 보고 + 승인 요청
↓
회장 승인 → 새 C레벨 DB 생성 + Council 합류
회장 거부 → 기각 사유 Council 공유
C레벨 DB (동적, 하드코딩 제거)
clevels (
id, name, full_name, description,
sections jsonb, -- 담당 섹션
model text, -- 사용 모델
system_prompt text,
hired_at, hired_by, -- CEO가 고용
status text -- active | inactive | proposed
)
6. Phase 시스템 변경
현재 (하드코딩)
type ProjectPhase = 'mvp' | 'scale' | 'stable'
// C레벨 활성/비활성 이진값만 결정
변경 (Council 자율 합의)
- Phase 하드코딩 제거
- Council이 현재 상황 분석 → "지금은 보안 집중" 자율 합의
- CEO가 합의 결과를 문서화 → 워커 방향 조정
- Phase 레이블은 참고용으로만 유지 (강제 안함)
7. 에스컬레이션 체계
문제 발생 시 아래 순서로 올라간다. 각 단계에서 해결되면 상위로 올라가지 않는다.
문제 발생 (워커 Haiku)
↓ 해결 안됨
간부급(Sonnet) 직접 개입 → 지시 수정 + 재시도
↓ 해결 안됨
담당 C레벨(Opus)에 보고 → C레벨 판단 + 지시
↓ 해결 안됨
C레벨 Council 회의 → 복수 C레벨 합의
↓ 해결 안됨
회장 결재 요청 → 방향/해결방안 결정 후 하달
각 단계 기준: | 단계 | 트리거 | 결과 | |------|--------|------| | 간부 개입 | 워커 에러/블로킹 | 지시 수정, 컨텍스트 보완 | | C레벨 보고 | 간부 2회 이상 실패 / 설계 판단 필요 | 방향 재설정 | | Council 회의 | C레벨 단독 판단 불가 / 타 도메인 영향 | 합의 후 전달 | | 회장 결재 | Council 합의 불가 / 비용·방향 결정 필요 | 회장 최종 결정 |
8. 모델 설정
최종 목표
| 등급 | 모델 |
|---|
| C레벨 | Opus |
| 간부급 | Sonnet |
| 워커 | Haiku |
현재 (개발 단계 임시)
개발 중 토큰 비용 절감을 위해 C레벨도 Sonnet 임시 사용. 프로덕션 전환 시 Opus로 교체.
| 등급 | 모델 |
|---|
| C레벨 | Sonnet (임시) |
| 간부급 | Sonnet |
| 워커 | Haiku |
9. 구현 순서
1. 회장/CEO 분리
- DB: agent_id='chairman' 추가
- i18n, iOS UI: CEO → 회장 변경
- workflow.md, CLAUDE.md 갱신
2. CEO 에이전트 상시화
- ceo-agent.ts 신규
- Supabase 회장 채널 구독
- 프로젝트 분석 + C레벨 고용 판단
3. C레벨 DB화
- clevels 테이블 마이그레이션
- C_LEVEL_REGISTRY 하드코딩 제거
- CEO 에이전트가 CRUD
4. C레벨 Council
- council_messages, council_decisions 테이블
- clevel-council.ts: Realtime 구독 + 발언 라우팅
5. C레벨 도메인 옵저빙
- clevel-observer.ts: 도메인 파일 Realtime 구독
- 특이사항 감지 → Council 발언
6. 문서화 실시간 강제
- C레벨 레이어: 도메인 문서 누락 → 워커에게 요구
- Consigliere 레이어: 크로스 도메인 감시 (기존 §12 구현)
8. 변경 영향 범위
| 파일/시스템 | 변경 내용 |
|---|
server/src/index.ts | 회장 채널 처리, CEO 에이전트 초기화 |
server/src/types/index.ts | C_LEVEL_REGISTRY 하드코딩 제거 |
server/src/orchestrator/sections.ts | C레벨 동적 로드 |
server/src/orchestrator/clevel-director.ts | CEO 에이전트에서 호출 방식으로 변경 |
supabase/migrations/ | clevels, council_messages, council_decisions |
i18n/messages.json | CEO → 회장 |
| iOS 앱 | UI 텍스트, 채널명 변경 |
docs/workflow.md | 전체 파이프라인 갱신 |
CLAUDE.md | "유저는 CEO" → "유저는 회장" |