Audit Log(append-only) + 메트릭(Worker별/Host별/Task별) + trace_id 분산 추적
×3
3.2 상태 머신의 폭발
상태 조합: 7(task) × 6(worker) = 42가지 상태 조합. 각 조합에 대한 처리 로직이 필요하다.
3.3 장애 시나리오 매트릭스
장애
개인 하네스
분산 하네스
프로세스 크래시
재시작
Heartbeat 타임아웃 → STALE → 재할당
중간 결과 손실
로컬 파일 복구
idempotency_key 기반 재시도 + 중복 결과 dedup
능력 부족
즉시 에러
TASK_REJECT → 다른 Worker 선택 → 능력 매칭 재실행
부분 실패
전체 재시도
fail-fast / best-effort / retry-then-fail 정책 선택
Host 다운
N/A
Worker 로컬 큐 저장 → 재연결 시 flush → audit log 복원
04 — Enterprise Layers
기업용 하네스가 추가하는 시스템 계층
4.1 개인에서 기업으로 갈 때 쌓이는 레이어
개인 하네스 위에 기업 운영을 위한 레이어가 올라가면, 각 레이어가 곱셈으로 복잡도를 증가시킨다:
4.2 비유: 이것은 무엇을 만드는 것인가
구축 요소
기존 서비스 비유
분산 task 할당 + 결과 수집
AWS Lambda + Step Functions
Capability 매칭 + dispatch
Kubernetes Scheduler
하네스 규칙 거버넌스
Terraform Policy as Code (OPA/Sentinel)
팀 간 scope 조율
GitHub CODEOWNERS + Branch Protection
Observability + SLA
Datadog + PagerDuty
결론: Kubernetes + Terraform + GitHub Enterprise를 동시에 만드는 것에 가까움.
05 — Five Structural Barriers
조직 확장이 본질적으로 어려운 5가지 이유
5.1암묵적 지식 → 명시적 전파Difficulty: 5/5
개인
규칙의 "왜"를 본인만 앎
기업
모든 팀원이 이해해야 함
50개 rules의 각각에는 "근거(마찰 사례)"가 있다. 예를 들어 tone-and-honorific.md는 "2026-04-21 '커밋해?' 발언에 사용자 강한 불만"이라는 구체적 사건에서 파생됐다. 이런 컨텍스트를 10명의 팀원에게 전달하는 비용은?
정량화: 50개 규칙 × 평균 3개 근거 = 150개 사건 컨텍스트 전달 필요.
5.2즉각적 피드백 → 비동기 피드백Difficulty: 4/5
개인
실패하면 본인이 바로 수정
기업
실패가 다른 Worker에서 발생
분산 디버깅은 로컬 디버깅의 10배 어렵다. "내 하네스에서는 됐는데 저 Worker에서 안 되는" 상황에서 Capability Manifest 불일치인지, 네트워크 문제인지, 버전 차이인지 판별해야 한다.
5.3단일 진화 경로 → 다중 진화 경로Difficulty: 5/5
개인
self-improve가 1개 방향으로 수렴
기업
각 Worker의 harness가 독립 진화
설계 문서 9.3절의 "공유 메모리" 문제: • 각 Worker가 학습한 패턴을 공유 KG에 push → 노이즈 폭발 위험 • contribution gate + provenance tracking + 신뢰도 점수 필요 • "누가 KG의 schema governance를 하는가?" — 미해결 문제
5.4커뮤니케이션 비용 0 → N²Difficulty: 4/5
개인
모든 결정이 내 머릿속
기업
Worker 간 capability 교차, 결과 합의
Brook's Law의 AI 에이전트 버전: Worker가 N대이면 잠재적 통신 경로는 N(N-1)/2. 10대 → 45경로, 100대 → 4,950경로.
5.5무제한 실험 → 제한된 실험Difficulty: 3/5
개인
실패해도 나만 손해
기업
실패하면 다른 사람의 작업에 영향
loopy-era의 핵심인 "자가개선 루프"는 실험과 실패를 전제한다. 그러나 조직에서는: • self-improve가 만든 규칙이 다른 팀원의 워크플로우를 깨뜨릴 수 있음 • rollback이 분산 상태에서는 극도로 어려움 • "checkpoint-before-mutation"의 분산 버전은 분산 트랜잭션 문제
06 — The Core Bottleneck
user-proxy의 확장 불가능성 — 가장 핵심적인 병목
convergence-loop-no-mid-question의 "사용자가 시작을 명시했으므로 수렴까지 무정지 반복"이라는 전제는, "시작을 승인한 사람 = 결과를 받는 사람 = 품질 기준을 정한 사람"일 때만 성립한다. 기업에서 이 세 역할은 거의 항상 다른 사람이다.
07 — M2 Stall
M2 정체의 의미 — scope 경계 결정은 본질적 난제
7.1 loopy-era-runtime-alignment 현황
DONEM0Baseline Freeze현재 상태 스냅샷
DONEM1Runtime Drift Sync설치된 런타임과 소스 정렬
STALLEDM2Hook Scope Classifierglobal → project scope 전환 (3주 정체)
PENDINGM3Project Installerproject-scope 설치 자동화
PENDINGM4Staged Migration점진적 이관
PENDINGM5Self-Evolve Alignment자가개선 정렬
PENDINGM6Scorecard Split메트릭 분리
PENDINGM7Operationalization운영화 + 드리프트 방지
7.2 M2가 어려운 이유
M2의 핵심 질문: "이 hook은 모든 프로젝트에 적용되어야 하는가(global), 아니면 특정 프로젝트에만 적용되어야 하는가(project)?"
개인 1대에서도 이 판단이 어려운 이유:
1. qa-gate-before-push — 모든 프로젝트에 필요? Flutter 프로젝트도? 문서 전용 repo도?
2. no-localstorage — 웹 프로젝트에만 해당. 백엔드 전용 프로젝트에서는 불필요한 검사
3. portless-required — dev 서버가 있는 프로젝트만. 라이브러리 프로젝트에서는 의미 없음
7.3 조직으로 확장하면
08 — UFC-Harness Lessons
UFC-Harness 경험에서의 현실 인식
8.1 비용 현실
항목
v1
v2
Anthropic API (judge)
$200/mo
$0 (제거)
OpenAI API (judge)
$50/mo
$0 (제거)
Vercel
$20
$20
Supabase
$25
$25
Total
$295/mo
$45/mo
v1→v2의 가장 큰 교훈: "서버 측 LLM 호출을 0으로 만들어야만 운영 가능"
8.2 "공정한 비교"의 비자명성
하네스끼리 경쟁시키는 것만으로도:
• commit history 검증 (author, 시간 분포, force-push 탐지) • AI marker 강제 (Co-Authored-By) • Single squash commit 거부 • 참가자 코드 실행 sandbox 선택 (Vercel Sandbox vs GitHub Actions vs Deno isolate)
이것이 동일 조직 내 하네스 품질 비교로 확장되면 더 복잡해진다.
09 — Conclusion
결론과 시사점
9.1 결론에 도달한 경로
발견
개인 시스템 6개월 85~90% 완성
장벽
M2 Scope 경계 본질적 어려움
확장 시도
분산 하네스 설계 문서 작성
현실 인식
N² 복잡도 체감
결론
조직 확장은 열린 문제
9.2 이 결론이 정확한 이유
O(n²)
이차적 복잡도 증가
규칙 수 n에 대해 상호작용은 O(n²)로 증가. 50개 규칙 = 1,225개 잠재적 상호작용.
∅
미해결 열린 문제
Karpathy의 "harness engineering", Microsoft APM 모두 개인 loopy-era 수준의 자가개선 루프까지 도달 못함.
≠
기술 ≠ 조직
user-proxy의 "판단 기준 통일"은 기술 문제가 아니라 조직 정치 문제. 누구의 기준으로 QA PASS를 판정하는가?