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)는 그대로 남는다'는 주장의 증거다.

24291
Active Rules (−527KB)
94.7100
Replay Block Rate
09
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
부탁(SOFT)은 소용없고, 차단(HARD)만 강제된다
규칙(rule)이 "이렇게 하라"고 말한다면, 검문 장치(hook)는 "안 하면 못 지나간다"로 막는다
02
'완료'는 말이 아니라 증거로 증명한다
'다 됐다'는 선언으로 끝나지 않는다 — 완료 선언 → 증거 제출 → 다른 검토자 확인의 순서를 거쳐야 한다
04
쌓은 양이 아니라 실제 성과를 측정
규칙을 몇 개 만들었나(양)가 아니라, 실제로 끝낸 일과 줄인 번거로움(성과)으로 잰다
09
정직한 측정
파일이 '있다'와 '검증됐다'는 다르다. 측정 못 하면 0이나 평균으로 메우지 않고 '측정 불가'로 남긴다. 단순 검색만으로는 못 잡는 한계도 스스로 밝힌다
11
모델이 바뀌어도 그대로 물려받는다
다음 모델에 물려주는 것은 코드가 아니다 — 규칙 문서, 저장된 기억, 검문 장치, 그리고 원칙이다
판단을 자동 장치로 옮기다

5일 내내 똑같은 순서를 반복했다. 먼저 Fable이 판단한다(무엇을 남기고 버릴지, 어떤 위반을 잡을지, 무엇을 잴지). 그 판단을 자동 스크립트와 성공·실패 신호로 굳힌다. 그다음 그 일을 만든 사람이 아니라 다른 검토자가 일부러 트집을 잡듯 다시 검증한다. 마지막으로 똑같은 스크립트로 다시 측정해서 전과 후의 차이(delta)를 숫자로 남긴다. "좋아진 것 같다" 같은 느낌은 이 과정을 통과하지 못한다.

× 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)로 기계처럼 확인했다
  • 규칙 개수 상한 검문소(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)의 시작값과 마지막 날(D5)의 최종값을 똑같은 스크립트로 잰 숫자만 있다.

지표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년 — D365 계획

지난 5일이 '판단을 자동 장치로 옮기는' 단거리 달리기였다면, 다음 1년은 그것을 분기마다 목표를 세우고 1년치로 쌓아 측정하며 이어 가는 장거리다. 고정된 계획이 아니라 — 분기마다 주간 점수판의 추세를 보고 다음 분기를 다시 정한다(무엇이 번거로운지가 다음 계획을 결정한다).

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