/ INDEX
FILL: C.D. FRIEDRICH
TWO MEN CONTEMPLATING THE MOON
c.1825 · MET CC0 · 1-BIT 베이어
프로젝트READ 4MIN2026.07.07TRACK 02 / 제작 로그

의심의 외주 — Metaforge 제작기

지시하고 의심하는 노동이 싫어서 감시자를 만들었다. 헌법을 주고, 오케스트라를 붙이고, 95개의 게이트를 쌓았다. 그런데 어느 날, 내 프로젝트를 내가 설명할 수 없었다.

나는 AI에게 일을 시키는 게 아니라, AI를 의심하는 데 하루를 쓰고 있었다.

A를 지시하면 A가 아닌 게 온다. 큰 방향을 짚어두고 자잘한 선택을 몇 번 하다 보면 어느새 B가 되어 있다. 컨텍스트가 차면 품질이 내려가고, 모델은 최종 목표를 모른 채 표류한다. 그리고 가장 싫었던 것 — 근거 없이 “완료했습니다”라고 말한다. 거짓말, 조기 종료, 자기 채점.

이 의심 노동을 외주 줄 수 없을까. Metaforge는 그 질문에서 시작했다.

MFH — 실행 중의 감시자

처음 만든 건 MFH 하나였다. AI가 실행하는 동안 세 가지만 묻는 통제층이다.

정말 근거가 있는가. 범위를 벗어나지 않았는가. 완료라고 말해도 되는가.

작업자에게 내리는 지침이 아니라, 작업관리자에게 내리는 지침. 지금 저장소에서 이 층은 게이트로 산다. bun run product:quality 한 줄이 95개의 게이트를 체인으로 돌리고, scripts/에는 157개의 게이트 스크립트가 있다. 문서로 풀면 186개의 체크 항목이다.

그중 내가 제일 아끼는 게이트는 goal-trace 검증이다. 결과의 타입이 세 개로 고정되어 있다.

type GoalTraceOutcome = 'validated' | 'rejected' | 'blocked';

그리고 이 게이트는 트레이스 묶음에 세 종류가 전부 있어야 통과한다. 거절된 기록이 하나도 없으면 실패한다. 전부 통과했다는 보고서는, 이 시스템에서는 합격이 아니라 의심의 사유다.

Meta — 실행 전의 헌법

MFH는 실행 중을 지켰지만, 애초에 의도가 흐리면 감시할 기준도 없다. 그래서 Meta를 만들었다. AI가 일하기 전에 의도·스코프·문맥·결정·완성 기준을 고정하는 층이다.

영감은 세 군데서 왔다. Ouroboros라는 오픈소스, Depersonalization, 그리고 소크라테스 사고법. 모호성을 없애고 완전한 규율 헌법과 최종 목표를 먼저 세운다 — 이인증(離人症)의 분리된 사고처럼, 실행하는 나와 판정하는 나를 갈라놓는 엄격한 시스템.

목표는 자기 인증이 불가능하다. validate-goals는 요구된 검증 커맨드 전부의 통과 기록이 없으면 어떤 목표도 validated로 만들어주지 않는다. exit 1.

Orchestra — 지휘대, 그리고 무게

그다음 오케스트레이션을 배웠고, 에이전트 팀을 운영시키는 층을 붙였다. 지금 저장소에서 유일하게 런타임에 배선된 층이 이것이다 — src/services/orchestra/ 34개 파일, 6,138줄. Meta와 MFH는 문서·스키마·게이트로 존재한다. 저장소 스스로 그렇게 적어뒀다. 실제인 것과 지향인 것을 구분하는 것도 게이트의 일이니까.

이 층의 심장은 Evidence Arbiter다. 다섯 축 — 테스트 실행 여부, 디프 최소성, 스코프 적합, 롤백 가능성, 이해 가능성 — 으로 green/yellow/red를 매기는데, 주석에 이렇게 박아뒀다.

The arbiter does NOT auto-promote anything; it produces a recommendation that the Human Gate renders.

승격은 기계가 못 한다. 최종 게이트는 인간이다.

게이트들은 출처를 인용한다. OpenTelemetry식 트레이스, OPA식 정책 판정, OpenAI의 에이전트 평가, NIST AI RMF. 세상이 이미 검증한 구조를 가져와 살을 붙였다 — 이 습관이 나중에 이름을 얻는다.

미메시스 — 모방이 품질을 보장한다

여기까지 만들고 알았다. 좋은데, 너무 무겁다. 느리다.

95개의 게이트는 안전했지만 걸음마다 갑옷이었다. 그때 만든 개념이 미메시스 엔지니어링이다 — 보장된 품질과 성능은 모방에서 나온다. 매번 처음부터 규율을 쌓는 대신, 이미 검증된 원본의 작동 문법을 찾아 흡수하는 것.

저장소의 docs/MIMESIS_ENGINEERING.md에는 7단 파이프라인이 있다. 소스 정찰 → 구조 추출 → 로컬 적응 → Orchestra 실행 → MFH 증거 게이트 → Meta 메모리 갱신 → 계속/축소/확장/중단. 마지막 단계가 off-switch라는 게 요점이다. 모방도 멈출 조건을 갖고 시작한다.

그리고 어느 날 알아차렸다. 나는 도구를 만든 게 아니었다. 내 사고방식과 해결책을 AI 에이전트에 설계해 넣고 있었다. 의심을 외주 주려던 기계는, 사실 내 의심하는 방법의 사본이었다.

게이트 95개 옆에서 길을 잃다

정직하게 적는다. 올해 6월 말, 나는 한 커뮤니티에 이렇게 썼다.

한 달 동안 자동 실행에만 의존했더니, 내 프로젝트인데 이해가 0이 됐다. 브라우저에 보이는 화면만 보고 괜찮다 하고 넘어갔다. 이제는 내가 뭘 모르는지도 모른다.

감시 시스템을 만든 사람이 자기 이해를 잃었다. 게이트는 AI의 거짓말을 잡았지만, 내 무지는 못 잡았다.

돌아온 답 중 하나가 오래 남았다. 요지는 이렇다 — 생성을 멈추고, 이해 안 되는 파일 하나를 골라 설명할 수 있을 때까지 읽어라. 도구는 체크리스트로 배우지 말고 진짜 질문이 생기는 순간에 배워라. 그리고,

AI는 확률적으로 설명한다. 하지만 브레이크포인트, 실패하는 assertion, 네트워크 로그는 이번, 이 코드에서 실제로 참인 것을 말한다. 목표는 AI를 끊는 게 아니라, AI가 말로 빠져나갈 수 없는 ground truth를 항상 하나는 쥐고 있는 것이다.

이건 내가 기계에 넣으려던 것과 같은 문장이다. 증거 게이트의 인간 버전. 다만 방향이 반대다 — 나는 AI를 검증할 시스템을 만들면서, 나를 검증할 시스템은 안 만들었던 거다.

지금 — 병합

Metaforge는 지금 흩어진 세 층을 한 제품으로 병합하는 중이다. MFH의 실행 중 통제, Meta의 사전 고정, OpenClaude에 구현한 Orchestrator OS. 저장소는 2026년 5월 26일에 만들어졌고, 별은 18개다. README에 낮은 숫자는 채택의 증거가 아니라고 먼저 적어뒀다 — 자기 지표를 스스로 반박하는 저장소.

기반 런타임은 Claude Code CLI 계열 오픈소스에서 파생했고(43만 줄), Metaforge의 몸은 게이트 스크립트와 스키마와 문서와 오케스트라 층이다. 이 구분도 CHANGELOG에 전부 적혀 있다. 출처를 숨기면 증거 게이트를 만든 의미가 없으니까.

의심의 외주는 절반만 성공했다. AI의 거짓말은 이제 기계가 잡는다. 내 이해는 — 그건 외주가 안 된다는 걸 배우는 데 시스템 하나를 다 지어야 했다.

FILLREMBRANDT · ARISTOTLE WITH A BUST OF HOMER · 1653 · MET CC0 · 1-BIT 베이어
출처·증거 — 이미지 출처는 각 캡션에, 데이터·수치의 근거는 본문에 표기.
프로젝트 · 2026.07.07 · 글 오영웅 · 전체 인덱스 →
다른 글
  1. 미메시스 case study: QuantFlow에서 Alpha Court로프로젝트 · 2026.05.27
  2. 코드 0줄로 블로그를 만들었다프로젝트 · 2026.04.02
  3. 기관급 트레이딩 시스템을 만들다 접었다프로젝트 · 2025.12.28
SUBSCRIBE새 글은 RSS로RSS →