Fable Week - 2 Day · d365-runner · 2026-07-03

1년치 계획 60단계,
한 번에 몰아서 완주

결과부터 말한다. 1일차가 짜 둔 1년치 작업 계획 'D365'(60단계 = 4분기 × 3개 마일스톤 × 5일)을, 그 계획을 단계마다 자동으로 실행하는 프로그램 d365-runner 16시간 13분 동안 62번 커밋(저장)하며 60단계 전부(60/60) 완주했다. 이 하루로 얻은 것 — AI 도우미가 제대로 동작하는지 찔러 보는 행동 테스트(probe)가 8→9종, 사람 없이 스스로 끝내는 정도인 자율성(autonomy) 지표는 처음으로 측정 시작(0.38), 스스로 규칙을 고치는 self-improve에는 과거로 되돌아가는 오류를 막는 관문 신설, 쌓아 둔 규칙(rule)은 서로 얽힌 정도를 실제 측정, 바깥에 공개하는 지표판 2개(D365 Scoreboard · 1년 결산 리포트), 그리고 다음 해 계획 15일치 확정. 각 단계는 '정말 끝났는지' 검사하는 관문(verify)을 통과해야만 완료로 인정되고(실패하면 exit 2 신호로 막힘), 코드 반영은 매번 다른 AI 모델(Codex)의 트집 잡기 적대 리뷰(131회)를 통과해야 저장소에 올라간다. D365의 D1~D60은 날짜가 아니라 순서대로 밟는 작업 단계다. 계획을 '어디까지 했는지 기억하는 상태 기계'로 만들었기에, 1년치를 한 번의 작업 세션(한 번 켜서 끝까지 이어간 작업) 안에 실행할 수 있었다.

← Fable Week 1일차 · 모델이 바뀌어도 하네스(감시·자동화 장치)는 남는가
60/60
Verify-Gated Steps
16시간 13분
Wall Clock · 62 Commits
131
적대리뷰 실행
15
v2 로드맵 확정
무엇이 개선됐나 — 실행 전후 변화(delta) 전부

이번 한 번의 작업(세션)이 이 하네스—AI가 '다 했다'고 거짓말 못 하도록 증거를 강제하는 자동화 장치—에 남긴 변화를 전부 모았다. 왼쪽이 실행 전, 오른쪽이 실행 후이고, 각 행의 근거는 docs/d365/폴더의 결과 리포트·증거 파일·스크립트로 되짚을 수 있다. '좋아졌다'는 느낌 대신 항목별 전 → 후 수치로 적었다. 측정하지 못한 값은 억지로 채우지 않고 NA(값 없음)로 남긴다 — 실패를 숨기지 않는다는 원칙(fail-loud)이다.

항목실행 전실행 후근거 파일·스크립트
에이전트 행동 테스트(probe)8 PASS9종 통과 · 새 항목 10종 선정 + 정답 기준(gold label) 부여q3m2-agent-selection · fp-audit
자율성(autonomy) — 사람 없이 스스로 끝낸 정도NA — 지표 자체가 없었음0.38로 측정 시작 · 무인 완료율 집계 경로 구축q3m3-autonomy-schema · q4m1
self-improve(스스로 규칙 보강)의 되돌이 오류 차단없음행동 테스트 관문 신설 — 실제 1건을 exit 2로 막은 것 확인self-improve-probe-gate.sh
비용 관리(거버넌스)추적 안 함7일 토큰 비용 24.8k→28.4k로 경고선 도달 감지 · 모델 분산으로 아낀 건 아직 없음을 그대로 기록q4m3-cost-baseline
예측타당성 ρ(지표가 실제 성과를 예측하는지)개념뿐같은 입력이면 같은 값을 내는 계산기 마련 + 'ρ가 0.5 넘을 때만 지표를 판단 근거로 쓴다'는 원칙 · 이번엔 표본이 8개뿐(<12)이라 판정은 NAd365-rho.sh · q1m1-validity
규칙(rule)의 물갈이 상태감(느낌)뿐관계 그래프로 실측 — 규칙 94개 · 서로 참조하는 연결 70개 · 아무도 안 쓰는 고아 규칙 25개(26.6%) · 삭제 0개(한 번 근거로 지우지 않는 원칙)d365-rule-graph.sh · q1m2
하네스를 바깥에 보여주는 창구없음D365 지표판(Scoreboard) + 1년 결산 리포트 자동 발행(표 파일 tsv → HTML)d365-dashboard · yearly-report
다른 곳에 옮겨 심을 수 있나(이식성)가설 단계이식 설치 도구 마련 + 조건부 통과(구조는 바로 이식 OK · 측정 부분은 F1~F6 항목 재설계 후)substrate-install.sh · q2m1
다음 해 계획없음v2 15일치 확정 — 겪은 마찰의 근거 파일 링크 · 우회 불가한 검사(HARD verify) · 적대리뷰 통과v2/plan.draft.json · q2m3
지표만 통과시키는 편법(game-vector) 차단검사가 단순 문자열 대조라 눈속임 가능(자체 점검에서 발견)변화 검증 가드 신설 — 일부러 만든 실패 사례를 exit 2로 막음d365-delta-guard.sh
곁들여 나온 것 — 새 스크립트 16개 · 결과 리포트 35개 · 증거 폴더 23개 · 분기 관문 4/4 통과(재계획 근거 기록) · 같은 입력=같은 결과(replay) 100% 유지
어떻게 개선했나 — 분기별로 실제 한 일

60단계는 4개 분기로 나뉘고, 각 분기의 할 일은 앞 분기에서 실제로 부딪힌 마찰(문제)이 결정했다. 분기와 분기 사이에는 관문(게이트)이 있어서, 왜 이렇게 다시 계획했는지에 대한 기록(revision_log)을 반드시 요구한다. 그 근거가 없으면 다음 분기의 '임시(provisional)' 계획이 확정으로 풀리지 않는다. 관문 4개를 전부 통과했다. 아래는 분기마다 실제로 한 일이다.

Q3-2026 전환 흡수 기준값·재측정 차이 0 행동 테스트 확장 자율성 지표 신설 M1·M2·M3 15/15 Q4-2026 자동화 심화 무인 완료율 측정 되돌이 오류 관문 비용 관리 M1·M2·M3 15/15 Q1-2027 측정 인프라 예측타당성 ρ 규칙 관계그래프 지표판 발행 M1·M2·M3 15/15 Q2-2027 확장 + 결산 이식성 조건부 통과 1년 재측정 차이 v2 계획 확정 M1·M2·M3 15/15 관문① 관문② 관문③ 관문④ 분기 관문 = 재계획 근거 기록 없이는 다음 분기의 임시 계획이 확정으로 안 풀림 관문 4/4 통과 · 재계획 근거 4건 기록
D365 4개 분기 흐름 — 각 분기의 마찰이 다음을 결정. 분기 관문이 '왜 다시 계획했는지'를 강제로 기록시킴(4건 전부)
Q3-2026전환 흡수 — 측정의 기준점 만들기15/15 done
  • 1단계 기준값·재측정 — 먼저 기준값을 고정(같은 입력=같은 결과 100% · 행동 테스트 9/9 통과 · 죽은 검사 0개)한 뒤 다시 측정해 봄: 옮겨 심을 대상 8종 모두 delta 0 차이 0. 같은 입력이면 같은 결과가 나온다는 것(결정론)을 실제로 확인
  • 2단계 행동 테스트 확장 — 기존 5종에 더해 새로 10종 선정 + 정답 기준(gold label)(user-proxy·test-writer·supabase·보안 등 도우미별) · 잘못 통과(오탐) 감사로 걸러냄
  • 3단계 자율성 지표 신설 — '자율성'을 측정 형식과 기준선으로 잴 수 있는 지표로 정의 (실제 값은 다음 분기에 측정)
  • 자체 점검이 편법 소지 1건 발견 — D3 단계 검사가 단순 문자열 대조라 눈속임 가능 → d365-delta-guard.sh로 차단(일부러 만든 실패 사례를 exit 2로 막음)
관문① — 5가지 추세 관측(재현성 그대로 · 행동 테스트 8→9 · 비용 24.8k→28.1k↑)을 근거로 Q4 확정 · 재계획 근거 기록
Q4-2026자동화 심화 — 사람 없이 어디까지 가능한가와 관문15/15 done
  • 1단계 무인 한계선 — 사람 개입 없이 끝낸 비율 1.0으로 측정(단, 표본이 2건뿐임을 그대로 밝힘) · 상시 무인 전환은 보류(표본 30건에 못 미쳐 판단 보류 — 성급한 자동화 금지)
  • 2단계 되돌이 오류 관문 — 행동 테스트 결과가 나쁘면 self-improve의 규칙 변경을 막는 self-improve-probe-gate 관문 신설 · 실제 1건을 exit 2로 막음 · 학습용/평가용 심판 분리 · '연결만 해둔 것 ≠ 실제로 돌아가는 것'이라는 점을 기록으로 남김
  • 3단계 비용 관리 — 비용 기준값 확정 · 값싼 모델로 돌려 아끼는 효과 분석: 저비용 모델(sonnet) 위임이 0.6%뿐이라 절감 효과 없음을 부풀리지 않고 그대로 기록
관문② — 비용이 경고선에 도달 · 자율성 집계 경로 첫 가동을 근거로 Q1 확정 · 재계획 근거 기록
Q1-2027측정 장치 — 지표가 믿을 만한지까지 검증15/15 done
  • 1단계 예측타당성 — 지표가 실제 성과를 예측하는지 재는 방법(ρ) 설계 + d365-rho.sh로 같은 입력=같은 값 계산 · 결과는 모든 지표 NA(판정 불가)(표본이 8개로 12개에 못 미침) — ρ가 0.5를 넘기 전에는 지표를 판단 근거로 삼지 않는다는 원칙 확정
  • 2단계 규칙 물갈이d365-rule-graph.sh로 실측: 규칙 94개 · 서로 참조하는 연결 70개 · 요약에서 파생된 연결 54개 · orphan 25(26.6%) · 삭제 후보 0개(여러 번 반복 근거 없이 한 번 신호로는 지우지 않는 원칙)
  • 3단계 D365 지표판 발행weekly-scoreboard.tsv 표를 → HTML로 자동 변환해 공개 · 7일 넘게 안 바뀌면 '낡음' 경고 · NA는 그대로 보존 · 데이터가 줄어드는 갱신은 거부하는 안전장치
관문③ — Q1 실측(ρ=NA · 고아 규칙 25 · 지표판 자동 발행)을 근거로 Q2 15일 확정 + ρ 재계산 반영 · 재계획 근거 기록
Q2-2027확장 + 결산 — 옮겨 심고, 되돌아보고, 다음을 정한다15/15 done
  • 1단계 이식성d365-substrate-install.sh(여러 번 돌려도 같은 결과 · 기존 파일 안 지움 · 심링크 눈속임 차단) 설치 도구 구축 · 판정은 조건부 통과: 규칙·관문 같은 구조는 바로 옮겨도 OK, 평가·측정 부분은 개인 데이터와 얽혀 있어(F1~F6) 재설계 후에
  • 2단계 1년 재측정 — 같은 측정 도구로 1년치 변화 산출(행동 테스트 +1 · 규칙 +2 · 비용 +3.6k · 자율성은 측정 시작) · v2에 넣을 마찰 묶음 확정(지표 변동 없음 · 44주치 데이터 빠짐 · 이식 마찰 F1~F6)
  • 3단계 v2 계획 — 5개 주제 후보 중 4개 채택 + 1개 보류(T4는 근거가 한 번뿐이라 보류) · 15일 확정 · 적대리뷰를 통과한 우회 불가 검사로 잠금
관문④ — v1 결산: 60/60 · 분기 관문 4/4 · 리포트 35 · 증거 23 · 공개 창구 2 · 되먹임 한 바퀴(폐루프) 완성
어떻게 실행했나 — 1일차의 방식을 12번 반복, 상태 기계로

1일차에 세운 작업 방식(판단 → 규칙으로 굳히기 → 다른 모델의 트집 검증 → 다시 측정)은 5일짜리 짧은 집중 작업(스프린트)이었다. 2일차는 같은 사이클을 60단계로 늘렸는데, 핵심은 '많이 했다'가 아니라 상태가 계속 살아남는다는 점이다. 지금까지의 진행 상태를 파일(state.json)에 정본으로 저장해 두어, 실행기가 언제 다시 호출돼도 멈췄던 지점부터 이어간다. 계획이 '읽고 마는 문서'가 아니라 '언제든 다시 시작할 수 있는 상태 기계'였기에, 1년치가 한 번의 세션 안에 들어갔다.

1일차 — 5일 집중 작업 1일 맥락 · 2일 검증 자산 · 3일 행동 평가 4일 공개 표면 · 5일 전환 예행연습 판단 → 규칙화 → 적대검증 → 재측정 같은 방식 × 12 2일차 — D365 60단계 4분기 × 3마일스톤 × 5일 = 60 Q3 · Q4 · Q1 · Q2 단계마다 같은 사이클 반복 다리 = 상태 보존 (state.json이 정본) 실행기가 언제 불려도 멈춘 지점부터 이어감 계획 = 문서가 아니라 '다시 시작 가능한 상태 기계'
1일차의 5일 방식을, 상태를 보존하는 다리를 통해 D365 60단계로 확장. 확장의 본질은 분량이 아니라 '이어서 다시 할 수 있음'

'60/60 완주'가 그냥 말뿐이 아닌 이유 — 각 단계의 '완료'는 세 겹의 강제 검사를 통과해야만 인정된다. 별도로 띄운 독립 검증 AI(subagent)가 프로그램 종료 신호(exit code)로 재현까지 확인했다: ① 순서를 건너뛰면 실패(exit 2), ② 검사(verify)가 실패하면 완료 차단(exit 2), ③ 검사 명령은 계획 파일(plan.json)이 저장소의 최신 상태(git HEAD)와 일치할 때만 실행된다 — 즉 검사를 몰래 바꾸려면 커밋을 해야 하고, 그 커밋은 적대리뷰를 거쳐야 반영된다.

complete 단계 완료 요청 ① 순서 검사 지금 차례 == 첫 미완료 단계? 완료가 순서대로 이어졌나? ② provenance plan == git HEAD? 변조된 검사 차단 ③ 검사 재실행 검사 명령 전부 성공(exit 0)? 증거 없으면 완료 불가 완료 · 다음 단계로 전부 통과할 때만 하나라도 실패하면 → exit 2 (완료 차단 · 증거 없이는 완료 불가) 실제 재현: faked verify → exit 2 순서 위반 → exit 2 상태 파일 손편집 → exit 2
'완료' 요청은 순서·출처확인·검사 세 관문을 모두 통과해야 완료로 인정 — 독립 검증 AI가 종료 신호로 재현 확인(편법 방지의 핵심)
다른 AI 모델의 적대리뷰가 실제로 잡아낸 것

모든 코드 반영(push)은 다른 AI 모델 Codex가 독립적으로 트집 잡는 적대리뷰를 통과해야 저장소에 올라간다. 이번 세션에서 이 리뷰는 131회 돌았다. 초반에는 실제 결함(저장소 밖 파일을 건드리는 경로 탈출·프로그램 멈춤·색인 오염 같은 위험)을 잡아냈고, 후반에는 단순 문자열 검색(grep)만으로는 '뜻'까지 검증할 수 없는 한계에 다다랐다. '좋아진 것 같다'가 아니라 재현 → 근본 원인 수정 → 다시 재현해 확인의 순서로만 통과시킨 기록이다.

치명 결함이 남아 있으면 반복 — 결함 0이 되거나, 문자열 검색의 한계를 정직하게 인정할 때까지 push commit landing 관문이 가로챔 Codex 리뷰 독립 · 다른 모델 치명·중대 결함 탐지 근본 수정 숨김/우회 금지 재현 사례로 실증 재검증 → 다시 반영 종료 신호 확인 반영될 때까지 131회 실행 실제 결함 → 전부 근본 수정
반영→Codex→발견→근본수정→다시 반영 루프. 결함 0이 되거나 문자열 검색의 한계를 인정할 때까지 반복 — 사람 개입 없이
스크립트잡힌 결함 (치명·중대)근본 수정
rule-archive경로 파고들기(traversal) — ../victim 로 저장소 밖 파일까지 옮김파일 이름만 쓰도록 강제 + 재현 사례 차단
scoreboard-render--publish 옵션이 색인 전체를 커밋해 무관한 파일까지 오염git 기능 제거 → 그리기만 하는 도구로 (발행은 별도 흐름이 담당)
substrate-install심링크로 위장한 하위 경로(.claude)를 타고 폴더 밖에 쓰기심링크를 따라가지 않는 안전한 파일 열기로 교체(동시 접근 차단)
substrate-install값 분해 오류로 멈춤 · 미리보기(dry-run) 시 대상 없으면 멈춤안전한 값 접근·존재 확인으로 수정 (종료 신호로 재검증)
v2 plan.json검사가 전부 test -s 방식(파일만 있으면 통과 = 편법 소지)15일치 전부 내용·형식까지 우회 불가 검사로 교체
v1 plan.json33일치가 test -s 뿐 — 빈 파일만 만들어도 통과되는 허점핵심 문구 2개 확인 grep -qF 방식으로 + 33일치 재검사 통과
D365 지표판 — 하네스가 스스로를 측정한다

Q1의 세 번째 마일스톤이 만든 D365 Scoreboard은 주간 지표를 쌓아 둔 표 파일 weekly-scoreboard.tsv(8개 시점, 덧붙이기만 함)을 바탕으로 자동으로 그려지는 공개 지표판이다. 데이터가 7일 넘게 갱신 안 되면 스스로 '낡음(STALE)' 경고를 띄우고(실패를 숨기지 않음), 측정 못 한 값은 가짜로 채우지 않고 NA로 둔다. 아래는 가장 최근 스냅샷(2026-07-03T03:34:19Z) 기준이다 — v2가 실행되면 그 진행도 이 지표판이 똑같이 측정한다.

scoreboard.tsv 주간 지표 8시점 d365-dashboard.html D365 지표판 · 7일 낡으면 감지(숨김 없이) d365-yearly-report.html 1년의 재측정 — 연간 변화 · 예측타당성 진단 substrate-install.sh 최소 구성 이식 · 반복 안전 · 기존 파일 보존 · 심링크 차단 v2 plan.draft.json 다음 해 계획 15일 · 우회 불가 검사 · 적대리뷰 반영 리포트 35 · 증거 23 · 스크립트 16 · 공개 페이지 2 — 전부 같은 입력=같은 결과(git 안 건드리고 그림)
실행 산출물 지도 — 지표판·연간 리포트는 표 파일에서 자동으로 그려지고, 이식 도구·v2는 다음 주기용 자산. 양이 아니라 실제로 도는 장치
지표현재값의미
재현 일치(replay)100.0 %같은 입력을 다시 넣으면 같은 결과(결정론)
강제 관문 수(conf_enf)5실제로 exit 2를 내며 막는 관문의 수
probe_pass9에이전트 행동 테스트 통과 수
dead hook0.0 %한 번도 안 걸리는(죽은) 검사 비율
rules_n93살아 있는 규칙 수(양이 아니라 관리 대상)
commits_7d235최근 7일간 저장(커밋) 횟수
cost_7d28440최근 7일 토큰 비용(경고선 도달)
autonomy0.38자율성 — 초기 설정을 벗어나 실제 측정 시작
지표판은 표 파일→HTML로 그리기만 함(git 안 건드림) · 데이터 줄면 거부·NA 보존·중간에 깨지지 않게 통째 교체하는 안전장치 내장 · 7일 낡음 감지
1년의 재측정 — 한 해 동안의 변화(delta)

Q2의 두 번째 마일스톤이 만든 D365 1년 결산 리포트는 D365 실행 구간 전체를 같은 지표판 도구로 다시 측정한 변화량이다 — '좋아진 것 같다'가 아니라 숫자로 보여준다. 게다가 그 숫자가 무엇을 말하는지('숫자가 말해주지 못하는 것')까지 같은 페이지에 정직하게 남겼다.

항목시작최신Δ
재현 일치 %100.0100.00.0
friction2223+1
강제 관문 수550
probe_pass89+1
rules_n9193+2
cost_7d2480928440+3631
autonomyNA0.38측정 시작
Q1 진단 — ρ = NA '표본이 8개뿐(<12) → 판정 보류' 처음엔 표본이 적어서라고 봤다 최소 표본 12에 미달 재검 Q2 재검 — 여전히 판정 불가 최소 표본을 2로 낮춰도 판정 불가 원인이 달랐다 → 지표가 안 움직임(변동 없음) 재현·관문 수가 늘 같은 값 → 변동 0 → 상관 계산 불가 교훈 — 예측타당성은 지표가 움직여야 잴 수 있다. 안정된 하네스는 변화가 없어 상관을 못 낸다
예측타당성 진단의 변화 — '표본 부족'(Q1)에서 '지표가 안 움직임'(Q2)으로. 행동 테스트→마찰 한 쌍만 이상값(표본 적어 보류). 성공으로 위장 0건
v1 마찰이 v2 15일을 결정했다

'되먹임 고리(폐루프)'가 진짜 돌았다는 증거는 말이 아니라 링크가 실제 파일로 연결되는가다. v2 계획의 각 주제는 v1이 실제로 부딪힌 마찰과, 그 마찰이 적힌 파일을 가리킨다 — 독립 검증이 그 링크가 진짜 증거 파일로 이어짐을 확인했다. 직감만으로 넣은 주제는 0건. 근거가 한 번뿐인 항목(T4)은 정식 채택하지 않고 보류로 남겼다(나중에 같은 논쟁을 다시 벌이지 않도록).

v1 마찰 (실제 겪음) v2 주제 (결정됨) ρ=NA — Q1·Q2 두 분기 예측타당성 측정 실패 q2m2-trend-analysis.md T2 예측타당성 방법론 재설계 1순위 · v2 M1 시험 평가 전부 NA — 개인 데이터와 얽힘 q2m1-portability-friction.md (F1~F3) T1 측정 이식성 (검사 로직↔대상 분리) 1순위 · v2 M2 52주 중 44주 결측 — 표본 부족 Q2.M2.D1/yearly-data.tsv T5 데이터 축적 주기 보장 2순위 · v2 M1 통합 지표판 9 · 설치기 5건 수정 커밋 (적대리뷰 반복) 마찰·비용 상승과의 상관 가설 T3 리뷰 수렴 효율 (반복 횟수 지표화) 2순위 · v2 M3 실험 쓰기 주체 1명 전제 (F5, 근거 한 번뿐) 반복 근거 조건 미충족 T4 쓰기 주체 여럿 — 보류(채택 안 함) 조직 실측 후 재평가 직감 주제 0건 — 전부 근거 파일로 연결. 근거 한 번뿐인 T4는 채택 아닌 보류로 재논쟁 방지
되먹임 고리 실증 — v2 주제가 각각 v1 마찰 파일로 연결됨. 독립 검증이 링크 실재 확인. 근거 한 번뿐이면 보류

채택한 주제 4개는 v2의 마일스톤 3개(15일)로 묶었다. 초안은 이미 적대리뷰를 통과해, 파일만 있으면 통과되던 test -s 방식 대신 우회 불가한 검사(HARD verify)로 잠갔다. 실행되면 그 진행은 위 D365 Scoreboard가 자동으로 측정한다.

M1
예측타당성 방법론 재설계 (T2+T5)
값이 변하는 지표 중심 평가 · 데이터 축적 주기 · ρ 측정 절차 · 합성 데이터 검증 — v1의 ρ=NA 문제 해결
M2
측정 이식성 (T1)
평가의 데이터 출처를 갈아끼울 수 있게 · 시험 프로젝트에 다시 이식 — 구조뿐 아니라 측정까지 이식
M3
리뷰 수렴 효율 실험 (T3)
적대리뷰 반복 횟수를 지표로 · 첫 커밋 점검표 · 적용/미적용 비교 실험
어디까지 도달했고, 무엇이 남았나

지금까지 — v1은 60단계 전부 완주(60/60), v2는 초안 완성 · 적대리뷰 통과까지 왔다. v2는 아직 실행 전이다 — 되먹임 고리의 다음 한 바퀴가 곧 v2 실행이다. 도달한 것과 남은 것을 부풀리지 않고 정직하게 나눈다.

✓ 도달 — v1 완주 60/60 · 관문 4/4 지표판·리포트·이식 도구 공개 독립 재검증 통과(약점은 근본 수정) ◐ 도달 — v2 초안 15일 상세(우회 불가 검사) 적대리뷰 반영 완료 아직 실행 전 ○ 남음 — 다음 주기 v2 실행(예측타당성·이식성) ρ 측정(표본·변동 확보되면) 조직에서 다중 사용자 실측(T4) 정직한 한계 — ρ는 표본 8<12 + 변동 없음으로 여전히 측정 불가(v2 M1 과제) 문자열 검색만으로는 눈속임을 다 못 막음 — 진짜 뜻 검증은 적대리뷰가 담당(가짜 데이터 0, NA 유지)
v1 완주 + v2 초안까지 도달. v2 실행은 다음 한 바퀴. ρ 측정 불가·문자열 검색 한계는 숨기지 않고 남은 과제로 명시
01
완료 = 파일 60개가 아니라 되먹임 고리가 닫혔는가
양이 아니라 '마찰이 다음 계획을 실제로 결정했는가'로 완료를 판정
02
검사(verify)는 느슨해지지 않고 강해지기만 한다
독립 재검증이 '파일만 있으면 통과'하던 허점을 발견 → 핵심 문구 2개 확인으로 강화(우회 아님)
03
측정 못 하면 NA, 빠진 데이터는 빠졌다고
ρ 이상값은 보류·44주치 빠짐 명시 — 가짜 성공으로 위장 0건
04
진짜 관문은 AI가 건드릴 수 없는 바깥에 있다
문자열 검색은 1차 거름망일 뿐, 뜻의 검증을 강제하는 건 다른 모델의 적대리뷰
"완료는 파일 60개가 아니라, 되먹임 고리가 닫혔는가다."
2일차에 진짜로 남은 것도 코드가 아니라 판단을 규칙으로 굳힌 것이었다. 다음 분기에 무엇을 넣을지, 어떤 검사가 편법으로 뚫릴 수 있는지, 어떤 마찰이 v2를 결정하는지 — 결국 사람의 판단이 병목이었다. 그 판단을 상태 기계 · 관문 · 적대리뷰로 굳혀, 다음 주기가 그대로 이어받게 만들었다. 1일차가 '판단을 인프라로 바꾸기'였다면, 2일차는 '그 인프라가 1년치를 실행해낼 수 있는가'에 대한 실증이다.