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

1년 로드맵 60단계를
한 세션에 완주했다

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

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

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

항목실행 전실행 후근거 파일·스크립트
에이전트 행동 테스트(probe) 통과 수8 PASS9종 통과 · 새 항목 10종 선정 + 정답 기준(gold label, 무엇을 통과로 볼지 미리 적어 둔 기준) 부여q3m2-agent-selection · fp-audit
자율성(autonomy), 사람 없이 스스로 끝낸 정도N/A, 지표 자체가 없었음0.38로 측정 시작 · 무인 완료율 집계 경로 구축q3m3-autonomy-schema · q4m1
self-improve(스스로 규칙 보강)의 되돌이 오류 차단없음행동 테스트 관문 신설. 실제 1건을 exit 2로 막은 것 확인self-improve-probe-gate.sh
비용 관리(거버넌스)추적 안 함7일 토큰(AI가 글을 읽고 쓰는 단위이자 요금 단위) 비용 24.8k→28.4k로 경고선 도달 감지 · 모델 분산으로 아낀 건 아직 없음을 그대로 기록q4m3-cost-baseline
예측타당성 ρ(지표가 실제 성과를 예측하는지)개념뿐같은 입력이면 같은 값을 내는 계산기 마련 + 'ρ가 0.5 넘을 때만 지표를 판단 근거로 쓴다'는 원칙 · 이번엔 표본이 8개뿐(<12)이라 판정은 N/Ad365-rho.sh · q1m1-validity
규칙(rule)의 물갈이 상태감(느낌)뿐관계 그래프로 실측: 규칙 94개 · 서로 참조하는 연결 70개 · 아무도 안 쓰는 고아 규칙 25개(26.6%) · 삭제 0개(한 번 근거로 지우지 않는 원칙)d365-rule-graph.sh · q1m2
하네스를 바깥에 보여주는 창구없음지표판(Scoreboard) + 1년 결산 리포트 자동 발행(표 파일 tsv → HTML)d365-dashboard · yearly-report
다른 곳에 옮겨 심을 수 있나(이식성)가설 단계이식 설치 도구 마련 + 조건부 통과(구조는 바로 이식 OK · 측정 부분은 마찰 여섯 항목 재설계 후)substrate-install.sh · q2m1
다음 해 계획없음v2(다음 해 계획) 15일치 확정: 겪은 마찰의 근거 파일 링크 · 파일만 있으면 통과되던 검사를 내용까지 보는 우회 불가 검사로 교체 · 적대리뷰 통과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개를 전부 통과했다. 아래는 분기마다 실제로 한 일이다. 네 분기는 2026년 3분기부터 2027년 2분기까지다. 카드 이름표는 분기 번호와 연도이고, 분기 번호만 줄여 부르면 이렇다: Q3 · Q4 · Q1 · Q2

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건 기록
1년 계획의 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↑)을 근거로 2026년 4분기 계획 확정 · 재계획 근거 기록
Q4-2026자동화 심화 — 사람 없이 어디까지 가능한가와 관문15/15 done
  • 1단계 무인 한계선 — 사람 개입 없이 끝낸 비율 1.0으로 측정(단, 표본이 2건뿐임을 그대로 밝힘) · 상시 무인 전환은 보류(표본 30건에 못 미쳐 판단 보류, 성급한 자동화 금지)
  • 2단계 되돌이 오류 관문 — 행동 테스트 결과가 나쁘면 self-improve의 규칙 변경을 막는 관문 self-improve-probe-gate 신설 · 실제 1건을 exit 2로 막음 · 학습용/평가용 심판 분리 · '연결만 해둔 것 ≠ 실제로 돌아가는 것'이라는 점을 기록으로 남김
  • 3단계 비용 관리 — 비용 기준값 확정 · 값싼 모델로 돌려 아끼는 효과 분석: 저비용 모델(sonnet) 위임이 0.6%뿐이라 절감 효과 없음을 부풀리지 않고 그대로 기록
관문② — 비용이 경고선에 도달 · 자율성 집계 경로 첫 가동을 근거로 2027년 1분기 계획 확정 · 재계획 근거 기록
Q1-2027측정 장치 — 지표가 믿을 만한지까지 검증15/15 done
  • 1단계 예측타당성 — 지표가 실제 성과를 예측하는지 재는 방법(ρ, 두 지표가 같이 움직이는 정도를 나타내는 상관값) 설계 + d365-rho.sh로 같은 입력=같은 값 계산 · 결과는 모든 지표 N/A(판정 불가)(표본이 8개로 12개에 못 미침). ρ가 0.5를 넘기 전에는 지표를 판단 근거로 삼지 않는다는 원칙 확정
  • 2단계 규칙 물갈이 — d365-rule-graph.sh로 실측: 규칙 94개 · 서로 참조하는 연결 70개 · 요약에서 파생된 연결 54개 · 아무도 참조하지 않는 고아 규칙은 orphan 25(26.6%) · 삭제 후보 0개(여러 번 반복 근거 없이 한 번 신호로는 지우지 않는 원칙)
  • 3단계 지표판 발행 — weekly-scoreboard.tsv 표를 → HTML로 자동 변환해 공개 · 7일 넘게 안 바뀌면 '낡음' 경고 · N/A는 그대로 보존 · 데이터가 줄어드는 갱신은 거부하는 안전장치
관문③ — 2027년 1분기 실측(ρ=N/A · 고아 규칙 25 · 지표판 자동 발행)을 근거로 2027년 2분기 15일 확정 + ρ 재계산 반영 · 재계획 근거 기록
Q2-2027확장 + 결산 — 옮겨 심고, 되돌아보고, 다음을 정한다15/15 done
  • 1단계 이식성 — d365-substrate-install.sh(여러 번 돌려도 같은 결과 · 기존 파일 안 지움 · 심링크(다른 위치를 가리키는 바로가기 파일) 눈속임 차단) 설치 도구 구축 · 판정은 조건부 통과: 규칙·관문 같은 구조는 바로 옮겨도 OK, 평가·측정 부분은 개인 데이터와 얽혀 있어(마찰 여섯 항목) 재설계 후에
  • 2단계 1년 재측정 — 같은 측정 도구로 1년치 변화 산출(행동 테스트 +1 · 규칙 +2 · 비용 +3.6k · 자율성은 측정 시작) · v2에 넣을 마찰 묶음 확정: 지표 변동 없음 · 44주치 데이터 빠짐 · 이식 마찰 여섯 항목 F1~F6
  • 3단계 v2 계획 — 5개 주제 후보 중 근거가 한 번뿐인 T4 하나만 보류하고 4개 채택 · 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일 방식을, 상태를 보존하는 다리를 통해 1년 계획 60단계로 확장. 확장의 본질은 '이어서 다시 할 수 있음'이다

'60/60 완주'가 그냥 말뿐이 아닌 이유는 이렇다. 각 단계의 '완료'는 세 겹의 강제 검사를 통과해야만 인정된다. 별도로 띄운 독립 검증 AI(subagent, 검증만 맡기려고 따로 띄운 보조 AI)가 프로그램 종료 신호(exit code, 프로그램이 끝나며 남기는 숫자로 0은 성공·2는 차단)로 재현까지 확인했다. ① 순서를 건너뛰면 실패한다(exit 2). ② 검사(verify)가 실패하면 완료를 차단한다(exit 2). ③ 검사 명령은 계획 파일이 저장소의 최신 커밋과 일치할 때만 실행된다. 즉 검사를 몰래 바꾸려면 커밋을 해야 하고, 그 커밋은 적대리뷰를 거쳐야 반영된다. 여기서 계획 파일의 이름과, 저장소가 최신 커밋을 가리키는 git 용어는 차례로 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회 돌았다. 초반에는 실제 결함(저장소 밖 파일을 건드리는 경로 탈출·프로그램 멈춤·git 색인(커밋 대상 목록) 오염 같은 위험)을 잡아냈다. 후반에는 단순 문자열 검색(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일치 재검사 통과
지표판 — 하네스가 스스로를 측정한다

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

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 %같은 입력을 다시 넣으면 같은 결과(결정론)
강제 관문 수5실제로 exit 2를 내며 막는 관문의 수
probe_pass9에이전트 행동 테스트 통과 수
dead hook0.0 %한 번도 안 걸리는(죽은) 검사(hook, 특정 시점에 자동으로 끼어드는 검사 스크립트) 비율
rules_n93살아 있는 규칙 수(관리 대상이지 늘릴 목표가 아니다)
commits_7d235최근 7일간 저장(커밋) 횟수
cost_7d28440최근 7일 토큰 비용(경고선 도달)
autonomy0.38자율성. 초기 설정을 벗어나 실제 측정 시작
지표판은 표 파일→HTML로 그리기만 함(git 안 건드림) · 데이터 줄면 거부·N/A 보존·중간에 깨지지 않게 통째 교체하는 안전장치 내장 · 7일 낡음 감지
1년의 재측정 — 한 해 동안의 변화(delta)

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

항목시작최신Δ
재현 일치 %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 → 상관 계산 불가 교훈 — 예측타당성은 지표가 움직여야 잴 수 있다. 안정된 하네스는 변화가 없어 상관을 못 낸다
예측타당성 진단의 변화: '표본 부족'(2027년 1분기)에서 '지표가 안 움직임'(2027년 2분기)으로. 행동 테스트→마찰 한 쌍만 이상값(표본 적어 보류). 성공으로 위장 0건
v1 마찰이 v2 15일을 결정했다

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

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 방식 대신 내용까지 확인하는 우회 불가 검사로 잠갔다. 실행되면 그 진행은 위 D365 Scoreboard가 자동으로 측정한다. 이런 우회 불가 검사를 하네스 안에서 부르는 이름은 HARD verify

M1
예측타당성 방법론 재설계
값이 변하는 지표 중심 평가 · 데이터 축적 주기 · ρ 측정 절차 · 합성 데이터 검증. v1의 ρ=N/A 문제를 푼다. 합친 v2 주제 번호는 다음 둘이다:
T2+T5
M2
측정 이식성
평가의 데이터 출처를 갈아끼울 수 있게 · 시험 프로젝트에 다시 이식. 구조뿐 아니라 측정까지 이식한다. v2 주제 번호:
T1
M3
리뷰 수렴 효율 실험
적대리뷰 반복 횟수를 지표로 · 첫 커밋 점검표 · 적용/미적용 비교 실험. v2 주제 번호:
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
측정 못 하면 N/A, 빠진 데이터는 빠졌다고
ρ 이상값은 보류·44주치 빠짐 명시. 가짜 성공으로 위장 0건
04
진짜 관문은 AI가 건드릴 수 없는 바깥에 있다
문자열 검색은 1차 거름망일 뿐이다. 뜻의 검증을 강제하는 건 다른 모델의 적대리뷰다
"완료는 파일 60개가 아니라, 되먹임 고리가 닫혔는가다."
2일차에 진짜로 남은 것도 판단을 규칙으로 굳힌 것이었다. 코드는 그 부산물이다. 다음 분기에 무엇을 넣을지, 어떤 검사가 편법으로 뚫릴 수 있는지, 어떤 마찰이 v2를 결정하는지. 결국 사람의 판단이 병목이었다. 그 판단을 상태 기계 · 관문 · 적대리뷰로 굳혀, 다음 주기가 그대로 이어받게 만들었다. 1일차가 '판단을 인프라로 바꾸기'였다면, 2일차는 '그 인프라가 1년치를 실행해낼 수 있는가'에 대한 실증이다.