Fable Week - 1 Day · Structural Improvement · 2026-07-03

Fable 5가 7월 7일에 사라져도
하네스라는 감시 장치는 남는다

문제는 기한이었다. 당시 가장 강한 AI 모델 Fable 5는 7월 7일에 빌린 기간이 끝난다. 그 사이 내 하네스(harness, AI가 '다 됐다'고 거짓말하지 못하도록 증거를 강제하는 감시 장치)는 두 가지 병을 앓고 있었다. 규칙 문서는 242개까지 불어나 매 세션 통째로 실려 들어왔다. 그 규칙이 실제로 지켜지는지 확인하는 장치는 비어 있었다. 그래서 이 최고 모델에게 밀린 기능 개발 대신 하네스 수술을 맡겼다. 이유는 하나다. 이 모델이 내리는 가장 강한 판단(전체의 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
일일 독립검증 통과
왜 최신 모델을 받자마자 이 작업부터 했나

가장 강한 AI 모델이 손에 들어오면, 보통은 밀려 있던 기능 개발에 그 힘을 쏟는다. 나는 반대로 했다. Fable 5를 받은 그날, 기능 대신 하네스(감시 장치) 자체를 손보는 데 투입했다. 이유는 세 가지다.

01
이 작업의 진짜 결과물은 '판단'이다
규칙 문서 242개 중 무엇을 남기고 무엇을 버릴지 정해야 한다. 검문 장치를 어떤 수법으로 뚫을 수 있는지 찾아야 한다. 자동 시험(probe, 작업 절차가 규칙대로 도는지 실제로 돌려 보는 시험)의 정답 기준도 잡아야 한다. 전부 '판단'이 필요한 작업이다. 기능은 다음 모델로도 만들 수 있다. 하지만 이 판단의 품질은 지금 쓰는 모델의 실력만큼만 나온다
02
판단은 빌린 것, 인프라는 내 것
최고 모델의 판단은 7월 7일에 반납해야 하는 빌린 자원이다. 하지만 그 판단을 미리 자동 스크립트(shell)와 성공·실패 신호(exit code, 프로그램이 끝나며 남기는 통과/차단 번호)로 굳혀 두면, 반납이 없는 내 자산이 된다. 그러니 빌린 기간에 할 일은 하나다. 판단을 최대한 많이 장치로 옮겨 심는 것
03
만료일은 곧 마감일이다
"언젠가 정리해야지" 하고 미뤄 둔 일이 둘 있었다. 매 세션 불필요하게 커진 문서 더미, 그리고 비어 있던 검증 장치다. 이 둘이 7월 7일이라는 마감을 만나 5일짜리 집중 작업이 됐다. 그래서 이 작업은 만료 공지가 뜨자마자 시작됐다
모델이 사라지는데 왜 위기가 아닌가

하네스는 두 층으로 되어 있다. 위층은 판단이다. AI 모델(Fable 5)이 그때그때 내리는 결정이고, 전체의 1.6%밖에 안 된다. 아래층은 결정론 인프라다. 결정론이란 누가 언제 시켜도 늘 같은 답이 나온다는 뜻이다. 이 층은 자동 스크립트(shell)·문서(markdown)·성공과 실패 신호(exit code)로 굳어진 규칙·검문소·측정이고, 98.4%를 차지한다. 7월 7일에 사라지는 것은 위층 판단의 실력 상한뿐이다. 아래층은 어떤 AI 모델이 오든 똑같이 막고 똑같이 측정한다. 그래서 전략은 하나다. 남은 기간에 Fable의 판단을 최대한 아래층으로 옮겨 심는 것이다.

판단 — AI 모델 · 1.6% Fable 5 : 무엇을 남기고 막고 잴지 결정 이 층만 7/7에 사라진다 7/7 만료 Opus 4.8 — 7/8 이후 같은 자리에 끼워진다 설정 그대로 물려받음 — 코드 수정 0줄 교체 판단을 장치로 굳혀 이식 — 이 페이지의 5일 결정론 인프라 — 남는 토대 · 98.4% rules 91 행동 지시 · 488KB hooks · gates 위반 시 차단 · 강제 replay · probe 실제 작동 검증 memory 지식 저장·검색 자동 스크립트·문서·성공/실패 신호 — 어떤 AI 모델에서도 똑같이 작동 잃는 것 = 1.6%의 상한 남는 것 = 98.4%의 강제 검문소는 모델이 누군지 모른다 — 위반이 들어오면 차단, 그뿐이다
하네스의 2층 구조 — 사라지는 건 판단(1.6%)의 실력 상한뿐, 늘 같게 도는 토대(98.4%)는 어떤 AI 모델이 와도 남는다
01
부탁은 소용없고, 차단만 강제된다
규칙(rule)이 "이렇게 하라"고 말하면 부탁이다. 검문 장치(hook, 명령이 실행되기 직전에 끼어드는 감시 스크립트)가 "안 하면 못 지나간다"로 막으면 차단이다. 이 하네스에서 부탁 층과 차단 층을 부르는 영문 라벨은 차례로 이렇다:
SOFT · HARD
02
'완료'는 증거로 증명한다
'다 됐다'는 선언으로 끝나지 않는다. 완료 선언 → 증거 제출 → 다른 검토자 확인의 순서를 거쳐야 한다
04
쌓은 양 대신 실제 성과를 잰다
규칙을 몇 개 만들었나(양)는 세지 않는다. 실제로 끝낸 일과 줄인 번거로움(성과)으로 잰다
09
정직한 측정
파일이 '있다'와 '검증됐다'는 다르다. 측정 못 하면 0이나 평균으로 메우지 않고 '측정 불가'로 남긴다. 단순 검색만으로는 못 잡는 한계도 스스로 밝힌다
11
모델이 바뀌어도 그대로 물려받는다
다음 모델에 물려주는 것은 규칙 문서, 저장된 기억, 검문 장치, 그리고 원칙이다. 코드 자체는 물려주는 목록에 없다
판단을 자동 장치로 옮기다

5일 내내 똑같은 순서를 반복했다. 먼저 Fable이 판단한다. 무엇을 남기고 버릴지, 어떤 위반을 잡을지, 무엇을 잴지 정하는 일이다. 그 판단을 자동 스크립트와 성공·실패 신호로 굳힌다. 그다음 그 일을 만든 사람 대신 다른 검토자가 일부러 트집을 잡듯 다시 검증한다. 마지막으로 똑같은 스크립트로 다시 측정해서 전과 후의 차이(delta)를 숫자로 남긴다. "좋아진 것 같다" 같은 느낌은 이 과정을 통과하지 못한다. 아래 다섯 장의 카드가 그 5일이다. 카드 머리의 꼬리표는 1일차부터 5일차를 뜻하고, 그 옆에는 그날 메운 빈틈 번호와 지킨 원칙 번호를 적었다.

× 5회 — 1일 문서정리 · 2일 검증자산 · 3일 작동검증 · 4일 표면정리 · 5일 전환 리허설 1 · 판단 Fable 5가 판단 남길지·막을지·잴지 결정 2 · 굳히기 shell · markdown 검문·시험 장치로 3 · 독립 검증 다른 AI 검토자 · Codex 만든 사람의 자기채점 금지 4 · 다시 측정 같은 스크립트 차이 = 숫자만 사라질 층 발견 6건 → 전부 근본 수정
매일의 이식 순서 — 판단(1.6%)이 만든 것을 자동 장치(98.4%)로 굳히고, 다른 검토자의 검증과 재측정을 거쳐야만 통과한다
D1쌓인 규칙 문서 대청소빈틈-1 · 원칙 4·10
  • 규칙 문서 242개 중 165개가 지식 폴더(knowledge)와 글자 하나까지 똑같은 중복이었다. 그런데도 매 세션 약 820KB가 다시 통째로 실려 들어오고 있었다
  • 세 갈래로 분류했다. 꼭 필요한 행동 지시는 1~3줄로 압축해 44개만 남기고, 나머지 설명글은 지식 폴더로 내리고, 강제할 규칙은 차단 장치로 올렸다. 무엇 하나 빠뜨리지 않았는지는 대조표(coverage-map, 242개 각각이 세 갈래 중 어디로 갔는지 적은 표)로 기계처럼 확인했다
  • 규칙 개수 상한 검문소(rule-budget) 신설. 규칙 파일이 정해진 개수를 넘으면 커밋을 막는 장치다. 다른 AI(Codex)의 트집 리뷰를 4번 거치며 허점을 메웠다. 더한 만큼 지워 눈속임하거나 문서를 합쳐 부풀리는 우회를 차단했다
규칙 242→91개 · 1,026,908바이트→488KB (−527KB) · 기존 검증 지표(integrity=무결성, conformance=규칙 준수도)는 그대로 유지
242 rules · 1,027KB 매 세션 통째로 다시 로드 165개는 지식 폴더와 글자까지 똑같은 중복 BEFORE 세 갈래 분류 44개로 압축 — 규칙에 유지 행동 지시만 1~3줄로 압축 지식 폴더로 내림 — 평소엔 안 실림 전체 글은 필요할 때만 읽음 차단 장치로 승격 후보 글 → 강제 차단 장치로 91 rules 488KB 세션당 −527KB AFTER 대조표 — 빠뜨린 것 없나 검증 242개 전부가 어디로 갔는지(압축/내림/승격) 기계적으로 대조 규칙 개수 상한 검문 — 다시 불어남 차단 트집 리뷰 4번으로 허점 제거 — 눈속임·부풀리기 우회 차단 삭제가 아니라 정리 — 지식은 그대로 두고(지식 폴더), 매번 실리는 양만 줄였다
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
무엇이 이 시스템을 지키는가

이 5일이 남긴 것은 규칙 문서 다이어트만이 아니다. 실제 작동을 검증하는 3층짜리 장치가 새로 세워졌다. 각 층은 서로 다른 실패를 잡는다. 과거에 진짜로 뚫렸던 위반은 재생 검사가, 작업 절차가 소리 없이 망가지는 것은 자동 시험이, '완료'를 만들려고 기능을 몰래 지우는 버릇은 기능삭제 감지가 잡는다. 셋 다 성공·실패 신호로 판정되고, 주간 점수판이 매주 기록한다.

기능 삭제 감지 장치 꼭 있어야 할 기능의 흔적이 사라지면 차단 '에러를 없애려고 기능을 없애는' 가장 흔한 맹점 차단 · 표본 4/4 자동 시험 9종 — 절차가 살아있는가 6가지 작업 절차가 규칙대로 도는지 실행해 검사 · 정답 기준은 Fable이 확정 + 표본 최소 개수 시험 — 표본을 지워 100%처럼 위조하는 수법 차단 (5일차 발견) 과거 위반 재생 24종 — 옛 위반 되살려 검사 실제로 뚫렸던 위반 상황을 표본으로 저장 → 검문소가 막는지 되돌려 확인 차단율 94.7 → 100.0 — 특수 명령으로 규칙 우회하던 수법 등 5종 추가 weekly-scoreboard 매주 자동 실행 무결성 3축 conformance · probe 주입량 · 커밋 · 비용 autonomy 측정 불가 = 빈칸 0이나 평균으로 채워 넣지 않는다 추세가 다음 계획을 결정 세 층 모두 성공·실패 신호로 판정 — "통과한 것 같다"가 아니라 통과 아니면 차단
검증 장치 3층 + 주간 점수판 — 과거 위반, 절차 부패, 기능 몰래 삭제를 서로 다른 층에서 잡는다
전부 숫자로 측정했다

"좋아진 것 같다"는 없다. 첫날 새벽의 시작값과 마지막 날 저녁의 최종값을 똑같은 스크립트로 잰 숫자만 있다. 표의 첫 열은 측정 스크립트가 쓰는 지표 이름 그대로다. 첫 행은 과거 위반 표본 중 검문소가 막아낸 비율, 둘째 행은 그 표본 수(최소 개수 시험 포함), 셋째 행은 살아 있는 규칙 파일 수와 용량이다. 넷째 행은 등록만 되고 작동 기록이 없는 '죽은 검문소' 비율, 다섯째 행은 규칙 준수 검사에서 실제로 강제되는 규칙 수와 강제 장치가 비어 있는 빈틈 수다. 여섯째 행은 자동 시험 수, 일곱째 행은 주간 점수판, 마지막 행은 자동 실행 명령 묶음에 남은 가장 급한 등급의 빈틈 수다.

지표D1 (7/3 01:09)D5 (7/3 18:25)delta
replay_block_rate94.7100.0+5.3
replay corpus1924 +floor눈속임 방지
active rules242 / 1,026,908B91 / 488KB−151 / −527KB
dead_hook_ratio0.00.0유지
conformance ENFORCED5 · GAP 05 · GAP 0+기능삭제 감지
probe suite09 / 9+9
weekly scoreboard없음매주 자동 실행+1
loopy-v2 P0 GAP20−2
교차검증이 실제로 잡은 버그

다른 회사 AI(Codex)의 트집 리뷰(1일차 4번)와, 그 일을 만들지 않은 독립 검토자의 매일 검증(2~5일차)이 잡아낸 것들이다. 한 모델의 맹점을 다른 모델로 막지 않았다면, 이 중 상당수가 "통과"로 넘어갔을 것이다. 원칙 8(다른 모델로 교차 검증)의 증거다.

  • 안전장치가 소리 없이 사라짐: 지식 폴더를 그냥 지우면 그 안에 걸려 있던 행동 제약도 함께 조용히 사라진다는 문제 (1일차, 심각도 높음)
  • 더한 만큼 지우는 눈속임: 규칙을 하나 지우면서 하나 더해, 개수 상한 검문을 통과하는 우회 (1일차)
  • 부풀린 요약으로 눈속임: 요약본 하나를 지나치게 크게 만들어 전체 용량이 늘어도 검문을 통과하던 허점 (1일차)
  • 금지어 오탐: AI가 나쁜 예시를 올바르게 '설명'한 문장을, 실수가 되돌아온 것으로 잘못 잡아내던 오류 (3일차)
  • 기록 연결 빠짐: 새 검문 장치를 기록 연결 없이 등록해서, 작동해도 기록에 안 남던 문제 (3일차)
  • 재생 검사의 눈속임 경로: '차단율'만 보다 보니, 표본을 지워 검사 범위가 무너진 것을 숨길 수 있던 허점 (5일차 자기 점검)
모델 교체는 사건이 아니라 측정이다

모델을 교체할 때 무엇을 '성공'으로 볼지, 미리 숫자 기준으로 못 박아 뒀다. 같은 스크립트를 두 모델에서 돌렸을 때 토대(substrate, 모델이 바뀌어도 남는 아래층 인프라) 지표의 차이가 0이면, "모델이 바뀌어도 상관없다"는 말은 주장을 넘어 측정 결과가 된다. 5일차 예행연습(같은 모델로 다시 측정)에서 8종 지표 전부 차이 0을 확인했고, 7월 8일 새 모델(Opus 4.8)에서 같은 스크립트가 다시 돌아간다.

Fable 5 (7/7까지) 5일차 예행연습 — 같은 모델로 재측정 완료 Opus 4.8 (7/8부터) 교체해도 코드 수정 0줄 — 설정 그대로 물려받음 같은 검증 3종 — 준수도·자동시험·무결성 (같은 스크립트, 같은 표본) replay 100.0 · corpus 24/24 · ENFORCED 5 · GAP 0 probe 9/9 · dead 0.0 · registered 31 · rules 91 토대 지표 8종 — 5일차 예행연습에서 전부 차이 0 7/8 재측정에서도 차이 0 → "모델이 바뀌어도 남는 토대" 완성 차이가 0이 아니면? — 그것도 숫자로 남는다. 어느 쪽이든 측정이 판정한다
모델 교체 예행연습 — 성공 기준을 미리 숫자로 고정: 두 모델 × 같은 스크립트 × 토대 지표 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이면 '모델이 바뀌어도 남는다'가 완성된다.
앞으로 1년, 365일 계획

이 1년 계획의 이름은 위 소제목 라벨에 붙은 영문 약자로, '365일'이라는 뜻이다. 지난 5일이 '판단을 자동 장치로 옮기는' 단거리 달리기였다면, 다음 1년은 그것을 분기마다 목표를 세우고 1년치로 쌓아 측정하며 이어 가는 장거리다. 고정된 계획은 아니다. 분기마다 주간 점수판의 추세를 보고 다음 분기를 다시 정한다. 무엇이 번거로운지가 다음 계획을 결정한다. 아래 네 칸의 꼬리표는 분기(3개월 단위)를 뜻하고, 7월에 시작하니 3분기부터 센다.

Q3
모델 교체 안착 + 측정 정비
7/8 재측정으로 '모델이 바뀌어도 남는다' 실증 · AI 지시문 시험 5→15개 · 자율성 지표를 실제 측정과 연결
Q4
무인 자동화 강화
자동 실행 명령을 사람 없이 돌아가게 · 자동 시험을 자가개선의 강제 관문으로 · 비용 관리
Q1
지식 연결망 + 예측 타당성
우리 측정값이 실제 결과를 예측하는가(상관계수 0.5 이상) · 규칙 사이 관계를 연결망으로 그려 정리 작업 자동화 · 사이트 = 살아있는 계기판
Q2
확장 실험 + 연간 결산
개인용을 조직 규모로 넓히는 소규모 시험 · 12개월 추세 분석 · 다음 계획을 '무엇이 번거로웠나' 데이터로 다시 설계