---
pinned: true
important: true
---
# Agent 미팅: 교차검증 풀스택 워크플로우 설계 — 레벨별 적용 전략

**날짜**: 2026-04-15
**소집 이유**: 오늘 대시보드 작업에서 worktree 머지 충돌, 커밋 누락, 기능 원복이 반복 발생. 교차검증 체계를 도입하여 근본 해결.
**참여 페르소나**: 다빈치, 로키, 야누스, 헤르메스, 비너스(Gemini), 아틀라스(Codex), 프로메테우스, 불칸, 이리스
**미팅 모드**: hybrid
**토론 깊이**: thorough
**총 사이클 수**: 5 (무한 모드, 5사이클에서 최종 합의 도달)

---

## Cycle 1 합의

1. **13단계 직렬 풀스택은 과잉** → 3개 게이트(설계/구현/머지)로 단순화
2. **server.py 분할이 교차검증보다 우선** — 분할하면 충돌 자체 60% 감소
3. **dispatch.py가 레벨별 게이트를 자동 적용**해야 실행 가능 (수동 준수 불가)
4. **Gemini 2회 리뷰는 비효율** → 1회 + 체크리스트 확인
5. **Codex는 리뷰보다 사전 설계 검증에 활용**

## Cycle 2 합의

- C2-1: 파일 분할 전까지 dispatch 직렬화(lock) + 운영 규칙 이중 적용
- C2-2: task 파일에 affected_files 필드 표준화
- C2-3: 교차검증은 겹침 감지 시에만 Gemini 집중 리뷰
- C2-4: 설계 전 = Codex(수동), 구현 후 = Gemini(코드 리뷰)
- C2-5: 스크린샷 diff + Codex 자동화는 수요 증명 후

### 로키 DA (Cycle 2)
- affected_files 예측 불완전성 → 2단계 감지(dispatch + 머지)로 보완
- dispatch.py 복잡화 → Gemini는 worktree_manager에 배치
- 가장 단순한 대안: 대형 파일 동시 수정 금지 (운영 규칙)

## Cycle 3 최종 합의

### 1. 보리스 게이트 시스템 (최종 확정)

| 게이트 | Lv.0-1 | Lv.2 | Lv.3 | Lv.4 |
|--------|--------|------|------|------|
| G1 설계 | 스킵 | affected_files 확인 | Codex 사전 검증 | Codex + Agent 미팅 만장일치 |
| G2 구현 | 경량 QC | 팀 테스터 | Gemini + 마아트 | Gemini + 로키 레드팀 |
| G3 머지 | 즉시 머지 | main 최신화 후 머지 | 충돌 감지 시 Gemini 집중 리뷰 | 전팀 완료 대기 + 통합 테스트 |

기존 보리스 워크플로우 + 3문서 + 핵미사일 발사코드와 완전 호환.
G1은 "만드는 지능"(Codex), G2는 "검증하는 지능"(Gemini/마아트).

### 2. 3 Step Why × Cross-Verification

- 1st Why (구현팀 자문): "왜 이 구현이 맞는가?" → A
- 2nd Why (교차 모델 검증): "왜 A가 최선인가?" → Gemini/Codex가 B
- 3rd Why (적대적 검증): "왜 B가 최선인가?" → 로키(DA)가 C
- A-B-C 일관성 → 다른 AI 엔진으로 인지 편향 구조적 차단

### 3. server.py 분할 — 9개 모듈

| 모듈 | 책임 | 예상 라인 | 소유 팀 |
|------|------|----------|--------|
| server.py (core) | HTTP 서버, 라우팅, CORS | ~400 | devops |
| routes_get.py | GET 핸들러 전체 | ~2400 | dev1/dev2 |
| routes_post.py | POST/PUT/DELETE | ~2100 | dev1/dev2 |
| blog_engine.py | 블로그 분석/경쟁분석 | ~700 | dev3/dev4 |
| blog_writer.py | 블로그 백그라운드 생성 | ~500 | dev3/dev4 |
| wiki_engine.py | Wiki/Firebase 연동 | ~300 | dev5/dev6 |
| absorption.py | Absorption 데이터 | ~100 | dev7 |
| ads_integration.py | Meta/Google/Naver 광고 | ~400 | dev7/dev8 |
| system_monitor.py | 시스템 상태/인증 | ~700 | devops |

분할 순서: Phase 1(유틸) → Phase 2(서비스) → Phase 3(라우트) → Phase 4(코어)

### 4. dispatch.py 자동 게이트

- `prompts/gate_instructions.py` 신규 생성
- 레벨별 게이트 지시를 프롬프트에 자동 삽입
- affected_files 필드 Lv.2+ 강제
- 레벨 자동 추정 경고 (아누 판정 < 자동 추정 시)

### 5. Gemini/Codex 통합

- **Gemini**: GitHub PR 기반 자동 리뷰 (GitHub App 설치)
- **Codex**: codex-plugin-cc로 Claude Code 내에서 직접 호출
- 역할: 설계 전 = Codex, 구현 후 = Gemini
- 폴백: 외부 AI 장애 시 마아트 독립 검증으로 대체

### 6. 3문서 레벨별 관리

- Lv.0-2: 3문서 불필요 (task 파일 + affected_files)
- Lv.3: 3문서 필수 (리서치 → 미팅 → 3문서 → 핵미사일 → 코딩)
- Lv.4: 3문서 필수 + Agent 미팅 만장일치 + Codex 검증

### 7. 실행 로드맵 (5 Phase, 약 7주)

Phase 1 (1주): 기반 — gate_instructions.py + affected_files + 셀프 디버깅
Phase 2 (2주): server.py Phase 1-2 분할 (유틸/서비스 추출)
Phase 3 (1주): 교차검증 파이프라인 (Gemini/Codex 연동)
Phase 4 (2주): server.py Phase 3-4 분할 (라우트/코어)
Phase 5 (1주): 통합 테스트 + 레벨 자동 추정 + 효과 측정

---

## 기각된 대안

1. **가상 모듈 경계(리전 마커)**: 물리적 분할보다 효과 부족
2. **Codex API 자동화**: 수동 트리거로 충분, 자동화는 수요 증명 후
3. **Auto-Rebase Bot**: 시맨틱 충돌 미감지 리스크

## 로키 DA 주요 반론 (Cycle 3)

1. 레벨 수동 판정 → 게이트 우회 위험 → 자동 추정 경고로 대응
2. 외부 AI 장애 → 파이프라인 블로킹 → 마아트 폴백으로 대응
3. server.py 분할 시 서비스 중단 → 스모크 테스트 선행 필수
4. 게이트 피로 → "위험 1개 집중" 방식 Lv.1-2에 적용

## 기존 시스템 → 신규 매핑

| 기존 | 신규 위치 | 변경 여부 |
|------|---------|----------|
| 보리스 워크플로우 | G1 사전 단계 | 변경 없음 |
| 3문서 시스템 | G1 통과 조건 (Lv.3+) | 변경 없음 |
| 핵미사일 발사코드 | G1 최종 단계 | 변경 없음 |
| QC 프로세스 | G2 흡수 | level 매핑 확장 |
| 마아트 독립 검증 | G2 내부 + Gemini 폴백 | 역할 추가 |
| 로키 레드팀 | G2 Lv.4 필수 + DA | 변경 없음 |
| worktree 격리 | G3 기반 | 변경 없음 |
| auto-commit | 게이트 독립 | 변경 없음 |
| Task ID v2 | 변경 없음 | — |

---

## Cycle 5: G3 통합 테스트 자동화

### 합의: Graduated Auto-Gate 3-Layer

| Layer | 역할 | 트리거 | PASS | FAIL |
|-------|------|--------|------|------|
| L1 Batch Watchdog | 전팀 .done 수집 추적 | 1분 cron | L2 자동 진행 | TTL 2시간 초과 → Telegram 경고 |
| L2 Pre-flight Check | 기계적 충돌 검증 | L1 완료 | L3 자동 진행 | 충돌 파일 목록 → 아누 판단 |
| L3 Integration Test | pytest tests/integration/ | L2 PASS | 자동 완료 보고 | 실패 로그 → 아누 판단 |

### Cycle 4 수정
- G3 Lv.4 오케스트레이터: ~~아누~~ → Graduated Auto-Gate (자동) + FAIL 시에만 아누
- 마아트(Sonnet) 의존: 불필요 (기계적 검증 + pytest 대체)

### 전제 조건
- tests/integration/ 통합 테스트 스위트 선행 구축 필수
- dispatch.py에 batch_id 필드 추가
- auto_merge.py에 batch completion check + TTL 추가

### 구현 우선순위
1. dispatch.py batch_id (즉시)
2. auto_merge.py batch check + TTL (1~2일)
3. pre-flight check 스크립트 (1일)
4. tests/integration/ 스위트 (지속적)
5. Telegram 알림 연동 (기존 cokacdir 활용)
