Fable Week - 1 Day · Structural Improvement · 2026-07-03
모델이 바뀌어도 하네스는 남는가
하네스(harness)는 AI가 '다 됐다'고 거짓말하지 못하도록 증거를 강제하는 감시 장치다. 당시 가장 강력한 AI 모델 Fable 5가 손에 들어오자마자, 나는 이 최고 모델에게 밀린 기능 개발이 아니라 하네스 수술을 맡겼다.
이유는 하나다. Fable 5는 7월 7일에 빌린 기간이 끝나기 때문이다 — 이 모델이 내리는 가장 강한 판단(전체의 1.6%)은 곧 반납해야 할 임대 자원이고, 그 판단으로 미리 굳혀 둔
정해진 규칙대로 도는 인프라(98.4%)는 반납이 없는 내 소유 자산이기 때문이다. 그래서 5일 동안 AI에게 주는 규칙 문서(rule)를 절반 이하로 줄이고,
검문 장치가 막아내는 위반을 100%까지 끌어올리고, 그 장치가 실제로 작동하는지 확인하는 자동 시험(probe)을 세우고, 매일 다른 검토자에게 독립 검증을 받았다.
이 페이지는 그 5일의 기록이자, '모델이 바뀌어도 검문 장치(substrate)는 그대로 남는다'는 주장의 증거다.
242→91
Active Rules (−527KB)
94.7→100
Replay Block Rate
0→9
Practice Probes
5/5
일일 독립검증 통과
Day Zero
왜 최신 모델을 받자마자 이 작업부터 했나
가장 강한 AI 모델이 손에 들어오면, 보통은 밀려 있던 기능 개발에 그 힘을 쏟는다.
나는 반대로 했다. Fable 5를 받은 그날, 기능이 아니라 하네스(감시 장치) 자체를 손보는 데 투입했다. 이유는 세 가지다.
01
이 작업의 진짜 결과물은 코드가 아니라 '판단'이다
규칙 문서 242개 중 무엇을 남기고 무엇을 버릴지, 검문 장치를 어떤 수법으로 뚫을 수 있는지, 자동 시험(probe)의 정답 기준을 무엇으로 잡을지 — 전부 '판단'이 필요한 작업이다. 기능은 다음 모델로도 만들 수 있다. 하지만 이 판단의 품질은 지금 쓰는 모델의 실력만큼만 나온다
02
판단은 빌린 것, 인프라는 내 것
최고 모델의 판단은 7월 7일에 반납해야 하는 빌린 자원이다. 하지만 그 판단을 미리 자동 스크립트(shell)와 성공·실패 신호(exit code)로 굳혀 두면, 반납이 없는 내 자산이 된다 — 그러니 빌린 기간에 할 일은 하나다. 판단을 최대한 많이 장치로 옮겨 심는 것
03
만료일은 위협이 아니라 마감일이다
"언젠가 정리해야지" 하고 미뤄 둔 일들 — 매 세션 불필요하게 커진 문서 더미와, 비어 있던 검증 장치 — 이 7월 7일이라는 마감을 만나 5일짜리 집중 작업이 됐다. 그래서 이 작업은 만료 공지가 뜨자마자 시작됐다
The Premise
모델이 사라지는데 왜 위기가 아닌가
하네스는 두 층으로 되어 있다. 위층은 판단 — AI 모델(Fable 5)이 그때그때 내리는 결정이고,
전체의 1.6%밖에 안 된다. 아래층은 결정론 인프라 — 누가 시켜도 늘 같게 작동하도록 자동 스크립트(shell)·문서(markdown)·성공과 실패 신호(exit code)로 굳어진 규칙·검문소·측정이고, 98.4%를 차지한다.
7월 7일에 사라지는 것은 위층 판단의 실력 상한뿐이다. 아래층은 어떤 AI 모델이 오든 똑같이 막고 똑같이 측정한다.
그래서 전략은 하나다 — 남은 기간에 Fable의 판단을 최대한 아래층으로 옮겨 심는 것이다.
하네스의 2층 구조 — 사라지는 건 판단(1.6%)의 실력 상한뿐, 늘 같게 도는 토대(98.4%)는 어떤 AI 모델이 와도 남는다
01
부탁(SOFT)은 소용없고, 차단(HARD)만 강제된다
규칙(rule)이 "이렇게 하라"고 말한다면, 검문 장치(hook)는 "안 하면 못 지나간다"로 막는다
02
'완료'는 말이 아니라 증거로 증명한다
'다 됐다'는 선언으로 끝나지 않는다 — 완료 선언 → 증거 제출 → 다른 검토자 확인의 순서를 거쳐야 한다
04
쌓은 양이 아니라 실제 성과를 측정
규칙을 몇 개 만들었나(양)가 아니라, 실제로 끝낸 일과 줄인 번거로움(성과)으로 잰다
09
정직한 측정
파일이 '있다'와 '검증됐다'는 다르다. 측정 못 하면 0이나 평균으로 메우지 않고 '측정 불가'로 남긴다. 단순 검색만으로는 못 잡는 한계도 스스로 밝힌다
11
모델이 바뀌어도 그대로 물려받는다
다음 모델에 물려주는 것은 코드가 아니다 — 규칙 문서, 저장된 기억, 검문 장치, 그리고 원칙이다
Five Days
판단을 자동 장치로 옮기다
5일 내내 똑같은 순서를 반복했다. 먼저 Fable이 판단한다(무엇을 남기고 버릴지, 어떤 위반을 잡을지,
무엇을 잴지). 그 판단을 자동 스크립트와 성공·실패 신호로 굳힌다. 그다음 그 일을 만든 사람이 아니라 다른 검토자가 일부러 트집을 잡듯
다시 검증한다. 마지막으로 똑같은 스크립트로 다시 측정해서 전과 후의 차이(delta)를 숫자로 남긴다. "좋아진 것 같다" 같은 느낌은 이 과정을
통과하지 못한다.
매일의 이식 순서 — 판단(1.6%)이 만든 것을 자동 장치(98.4%)로 굳히고, 다른 검토자의 검증과 재측정을 거쳐야만 통과한다
D1쌓인 규칙 문서 대청소빈틈-1 · 원칙 4·10
규칙 문서 242개 중 165개가 지식 폴더(knowledge)와 글자 하나까지 똑같은 중복 — 그런데도 매 세션 약 820KB가 다시 통째로 실려 들어오고 있었다
세 갈래로 분류했다 — 꼭 필요한 행동 지시는 1~3줄로 압축해 44개만 남기고, 나머지 설명글은 지식 폴더로 내리고, 강제할 규칙은 차단 장치로 올렸다. 무엇 하나 빠뜨리지 않았는지는 대조표(coverage-map)로 기계처럼 확인했다
규칙 개수 상한 검문소(rule-budget) 신설 — 다른 AI(Codex)의 트집 리뷰를 4번 거치며 허점을 메웠다(더한 만큼 지워 눈속임하거나, 문서를 합쳐 부풀리는 우회를 차단)
규칙 242→91개 · 1,026,908바이트→488KB (−527KB) · 기존 검증 지표(integrity·conformance)는 그대로 유지
1일차 문서 정리 — 세 갈래 분류로 242→91개, 빠뜨림은 대조표로·재발은 개수 상한 검문으로 막았다
D2검증 장치 구축 — Fable을 선생님으로빈틈-2·3 · 원칙 2·9
과거 위반 재생 모음집(replay) 보강: 비밀키를 커밋에 못 넣게 막는 규칙을 특수 명령으로 몰래 우회하던 수법 등, 실제로 뚫렸던 위반 상황 5종을 시험 표본(fixture)으로 추가
기능 몰래 삭제 감지: 꼭 있어야 할 기능의 흔적이 코드에서 사라지면 곧바로 차단한다(requirements-lock). AI가 '완료'를 만들려고 기능을 지워 버리는, 가장 흔한 맹점을 막는 장치다
practice probe suite: 6가지 작업 절차가 규칙대로 도는지 확인하는 자동 시험 8개 — 그 정답 기준은 Fable이 정했다
위반 차단율 94.7→100.0 (표본 24종) · 자동 시험 8/8 통과 · 기능삭제 감지 4/4
D3실제 작동 검증 + 주간 점수판빈틈-2·4·6 · 원칙 4·9
weekly-scoreboard(매주 자동 실행): 무결성 3축, 규칙 준수도, 자동 시험, 문서 주입량, 두 계정 커밋 수, 비용, 자율성까지 한 판에 기록한다. 측정할 수 없는 항목은 0으로 메우지 않고 '측정 불가'로 남긴다
AI 지시문 후퇴 감지 시험 5종: AI에게 준 지시(프롬프트)가 예전 실수로 되돌아가지 않는지 빠르게 점검한다 — '원인부터 찾기', 'SQL 주입 공격 방어', '브라우저로 실제 확인', '로컬 저장 금지', '안전한 쿼리 작성' 같은 약속이 사라졌는지 잡아낸다. 모델을 하나로 고정해 변수를 없앴다
AI 설정 파일을 고칠 때만 작동하는 조건부 검사 장치 — 독립 검증에서 '죽은 검문소' 비율이 0.0에서 3.2로 늘어난 것을 발견하고, 근본 원인(기록 연결 누락)을 고쳤다
AI 지시문 시험 5/5 · 점수판 첫 기록 + 자동 실행 등록 · 죽은 검문소 0.0 복원
D4실행 창구 정리 + 사이트 손질빈틈-7·8 · 원칙 10
/loopy:start·/loopy:auto명령어 — 이미 갖춰진 여러 단계(프로젝트 초기화→팀 작업→QA, 그리고 QA 반복→자가개선→검증)를 명령 하나로 잇는 얇은 손잡이
사이트 점검: 바닥글이 빠진 9개 페이지에 삽입 + 3개월 묵은 날짜 갱신 + 페이지 등록 검사 장치
저장소 기록 정리 계획서 (.git 131MB→60MB 미만) — 되돌릴 수 없는 작업이라 계획·검증·백업 절차까지만 준비하고, 실제 실행은 승인을 받은 뒤에
loopy 최우선 과제 2→0 · 바닥글 9/9 화면 확인 · 등록 검사 장치의 통과/차단/예외 동작 검증
D5모델 교체 예행연습 + 결산빈틈-9 · 원칙 11
Fable의 마지막 자기 점검을 세 관점(우회 가능성/측정 정직성/원칙 일관성)으로 파고들었다: 위반 재생 검사가 '차단율'만 보다 보니 표본을 지우면 100%처럼 보일 수 있다는 허점 발견 → 표본 최소 개수 시험(corpus-floor)으로 즉시 막았다
교체 점검표: Fable에서 Opus 4.8로 넘어갈 때 설정을 그대로 물려받아 코드 수정이 0줄 — 이것이 원칙 11(모델이 바뀌어도 그대로 물려받는다)의 실제 구현
결정 기록: 내린 결정 7개와 버린 대안 8개까지 함께 남겨 둔다 (다음 작업 때 왜 그렇게 했는지 다시 찾아 헤매지 않도록)
자동 시험 8→9개 (눈속임 경로 차단) · 5일치 변화 확정 · 매일 독립 검증 6/6
Verification Assets
무엇이 이 시스템을 지키는가
이 5일이 남긴 것은 규칙 문서 다이어트만이 아니다. 실제 작동을 검증하는 3층짜리 장치가 새로 세워졌다.
각 층은 서로 다른 실패를 잡는다 — 과거에 진짜로 뚫렸던 위반(재생 검사), 작업 절차가 소리 없이 망가지는 것(자동 시험),
그리고 '완료'를 만들려고 기능을 몰래 지우는 버릇(기능삭제 감지)이다. 셋 다 성공·실패 신호로 판정되고,
주간 점수판이 매주 기록한다.
검증 장치 3층 + 주간 점수판 — 과거 위반, 절차 부패, 기능 몰래 삭제를 서로 다른 층에서 잡는다
The Delta
전부 숫자로 측정했다
"좋아진 것 같다"는 없다. 첫날(D1)의 시작값과 마지막 날(D5)의 최종값을 똑같은 스크립트로 잰 숫자만 있다.
지표
D1 (7/3 01:09)
D5 (7/3 18:25)
delta
replay_block_rate
94.7
100.0
+5.3
replay corpus
19
24 +floor
눈속임 방지
active rules
242 / 1,026,908B
91 / 488KB
−151 / −527KB
dead_hook_ratio
0.0
0.0
유지
conformance ENFORCED
5 · GAP 0
5 · GAP 0
+기능삭제 감지
probe suite
0
9 / 9
+9
weekly scoreboard
없음
매주 자동 실행
+1
loopy-v2 P0 GAP
2
0
−2
Adversarial Verification
교차검증이 실제로 잡은 버그
다른 회사 AI(Codex)의 트집 리뷰(1일차 4번)와, 그 일을 만들지 않은 독립 검토자의 매일 검증(2~5일차)이 잡아낸 것들이다.
한 모델의 맹점을 다른 모델로 막지 않았다면, 이 중 상당수가 "통과"로 넘어갔을 것이다 — 원칙 8(다른 모델로 교차 검증)의 증거다.
안전장치가 소리 없이 사라짐 — 지식 폴더를 그냥 지우면 그 안에 걸려 있던 행동 제약도 함께 조용히 사라진다는 문제 (1일차, 심각도 높음)
더한 만큼 지우는 눈속임 — 규칙을 하나 지우면서 하나 더해, 개수 상한 검문을 통과하는 우회 (1일차)
부풀린 요약으로 눈속임 — 요약본 하나를 지나치게 크게 만들어 전체 용량이 늘어도 검문을 통과하던 허점 (1일차)
금지어 오탐 — AI가 나쁜 예시를 올바르게 '설명'한 문장을, 실수가 되돌아온 것으로 잘못 잡아내던 오류 (3일차)
기록 연결 빠짐 — 새 검문 장치를 기록 연결 없이 등록해서, 작동해도 기록에 안 남던 문제 (3일차)
재생 검사의 눈속임 경로 — '차단율'만 보다 보니, 표본을 지워 검사 범위가 무너진 것을 숨길 수 있던 허점 (5일차 자기 점검)
The Rehearsal
모델 교체는 사건이 아니라 측정이다
모델을 교체할 때 무엇을 '성공'으로 볼지, 미리 숫자 기준으로 못 박아 뒀다 — 같은 스크립트를 두 모델에서 돌렸을 때
토대(substrate) 지표의 차이가 0이면, "모델이 바뀌어도 상관없다"는 말은 주장이 아니라 측정 결과가 된다. 5일차 예행연습(같은 모델로 다시 측정)에서
8종 지표 전부 차이 0을 확인했고, 7월 8일 새 모델(Opus 4.8)에서 같은 스크립트가 다시 돌아간다.
모델 교체 예행연습 — 성공 기준을 미리 숫자로 고정: 두 모델 × 같은 스크립트 × 토대 지표 8종 차이 0
"절대로 LLM을 믿지 마세요. 늘 의심하고, 증거 없는 결과가 통과되지 않는 구조를 요구하세요."
Fable 5의 판단이 만든 것은 전부 자동 스크립트·문서·성공/실패 신호로 굳어졌다.
7월 8일 새 모델(Opus 4.8)에서 같은 검증 3종(준수도·자동시험·무결성)을 다시 돌려도 검문 토대가
그대로라면, 그 자체가 "모델이 바뀌어도 남는 토대"라는 주장의 증거다.
잃는 것은 1.6%(판단)의 실력 상한이지, 98.4%(강제)가 아니다.
진행 상황 (1년 계획 실행 중): 같은 스크립트로 다시 잰 예행연습에서 토대 지표 8종
(위반 차단율 100.0·표본 24/24·강제 규칙 5·빈틈 0·자동시험 9/9·죽은 검문소 0.0·등록 31)이
전부 차이 0으로 확인됐다 — 아직은 같은 모델(Fable 5)로 다시 잰 것이라 '늘 같게 나온다'까지 증명했고,
실제 Opus 4.8로 교체해 다시 잰 값(7/8 예정)도 차이 0이면 '모델이 바뀌어도 남는다'가 완성된다.
The Horizon
앞으로 1년 — D365 계획
지난 5일이 '판단을 자동 장치로 옮기는' 단거리 달리기였다면, 다음 1년은 그것을 분기마다 목표를 세우고
1년치로 쌓아 측정하며 이어 가는 장거리다. 고정된 계획이 아니라 — 분기마다 주간 점수판의 추세를 보고
다음 분기를 다시 정한다(무엇이 번거로운지가 다음 계획을 결정한다).
Q3
모델 교체 안착 + 측정 정비
7/8 재측정으로 '모델이 바뀌어도 남는다' 실증 · AI 지시문 시험 5→15개 · 자율성 지표를 실제 측정과 연결
Q4
무인 자동화 강화
자동 실행 명령을 사람 없이 돌아가게 · 자동 시험을 자가개선의 강제 관문으로 · 비용 관리
Q1
지식 연결망 + 예측 타당성
우리 측정값이 실제 결과를 예측하는가(상관계수 0.5 이상) · 규칙 사이 관계를 연결망으로 그려 정리 작업 자동화 · 사이트 = 살아있는 계기판
Q2
확장 실험 + 연간 결산
개인용을 조직 규모로 넓히는 소규모 시험 · 12개월 추세 분석 · 다음 계획을 '무엇이 번거로웠나' 데이터로 다시 설계