회장/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레벨 토론 감독

모델

  • Sonnet (판단 역할)

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레벨자기 도메인도메인 전문가로서 누락 정확히 파악 → 해당 워커에게 직접 요구
ConsigliereConsigliere전체크로스 도메인 누락 감지 → 해당 에이전트에게 요구

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.tsC_LEVEL_REGISTRY 하드코딩 제거
server/src/orchestrator/sections.tsC레벨 동적 로드
server/src/orchestrator/clevel-director.tsCEO 에이전트에서 호출 방식으로 변경
supabase/migrations/clevels, council_messages, council_decisions
i18n/messages.jsonCEO → 회장
iOS 앱UI 텍스트, 채널명 변경
docs/workflow.md전체 파이프라인 갱신
CLAUDE.md"유저는 CEO" → "유저는 회장"