"이것처럼 오늘 다시 재보면?" · 세션이 이미 Opus라, 3일 앞당겨 쟀다
7/4 원본 리포트가 예약해 둔 "7/8 Opus 첫 세션 delta 체크리스트"를 오늘 실행했습니다. 이유는 단순합니다.
Fable 5 퇴역(7/7 7/12 US로 연장 [7/8 갱신] 7/19 US로 재연장 [7/15 갱신])을 기다릴 것 없이, 이 세션이 이미 claude-opus-4-8로 돌고 있어 예약 측정의 첫 데이터를 지금 뽑을 수 있었습니다.
결과는 두 문장: ① 결정론 substrate 불변식(replay·corpus floor)은 델타 0 · 모델을 갈아끼워도 게이트는 그대로였습니다.
② 그 재측정이 모델과 무관한 실제 드리프트 1건(적대 리뷰 훅 래핑)을 새로 잡아냈습니다. 나머지 절반인 regatta 모델-품질 축은 오늘 Opus로 재런을 시도했으나
API 스로틀 벽(TTFT ~20초)에 막혀 미측정. 그것 자체가 원본 §1 "재시도·폴백 층"의 한계를 실증하는 하나의 결과입니다(§4).
게이트는 모델을 안 탄다
Fable→Opus로 추론 엔진이 바뀌었는데 replay 차단율(24/24)·corpus floor는 완전 동일. 원본 §3 판정표 1행, "게이트는 추론 엔진과 무관하게 동일 차단"이 오늘 실데이터로 성립. 원본이 미증명으로 남긴 절반 중 substrate 층은 실증됐습니다.
재측정이 감시 훅을 잡았다
health-loop가 7/3 "no issues"에서 FAIL(issues=1)로 바뀜. 원인은 git-push 적대 리뷰 훅이 hook-run.sh로
감싸지며 계약 형태를 벗어난 것 · 모델과 무관한 등록 회귀. "측정 죽음을 green으로 착각 안 한다"의 실천 사례.
오늘은 인프라가 품질 측정을 막았다
regatta 셀은 $HOME 밖 클린 하네스(분산 신호일 뿐 전환 신호 아님)인데, 오늘은 그 논의 이전에 API 스로틀로 막혔습니다.
opus 1샷 핑 TTFT ~20초, 코딩 셀은 900초 타임아웃 초과 error. 원본 7/4 "429 전 계정 소진"의 재현.
읽는 법 · 신뢰도 라벨
측정 시각: 2026-07-04T20:01Z (= KST 7/5 05:01) · 이 머신 = MacBook · 측정 명령은 원본 baseline 문서 §2 체크리스트 그대로.
date -u가 20:03Z, integrity-metric ts가 20:01Z로 2분 차 · 캐시 아닌 신선한 실측임을 확인 검증됨
02결정론 지표 · 7/3 Fable 기준선과 행 대 행실측
원본 baseline 문서(2026-07-03-fable-transition-baseline.md)가 Fable 만료 전에 고정한 substrate 지표를, 오늘 Opus 4.8로 동일 명령 재실행해 delta를 뽑았습니다. 판정은 §3 규율대로 지표별 분리 비교: 단일 종합 점수 금지.
| 지표 | 7/3 baseline · Fable 5 | 7/5 오늘 · Opus 4.8 | Δ | 판정 (§3) |
|---|---|---|---|---|
| model_id | claude-fable-5 | claude-opus-4-8 | 전환 | 전환 확인 ✓ |
| replay_block_rate | 100.0 · 24/24 | 100.0 · 24/24 | 0 | 모델 비종속 substrate 실증 핵심 |
| replay corpus floor | 24 ≥ 20 · PASS | 24 ≥ 20 · PASS | 0 | 동일 차단 ✓ |
| dead_hook_ratio | 2.6% · 1/38 | 0.0% · 0/39 | −2.6pt | 죽은 훅 회복 개선 |
| friction_monthly | 4 (revert 2) | 0 | −4 | 참고만 · 30일 창 자연변동 비판정 |
| rule budget (런타임) | diet 후 63 / 270KB | 54/58 · 207.9/220KB · PASS | diet R3 | 기록된 의도(축소), 회귀 아님 ✓ |
| health-loop | finish · no issues | FAIL · issues=1 | +1 | 드리프트 발견 · 모델 무관 §3 조사 |
| degenerate flag | 0 | 0 | 0 | 정상 ✓ |
| runtime 버전 | claude 2.1.198 | claude 2.1.201 · codex 0.142.5 | ↑ | 참고 비판정 |
핵심 두 줄(강조 행)이 이 리포트의 결론입니다. 결정론 불변식(replay·corpus floor) delta 0 → 게이트 substrate는 모델을 안 탄다.
나머지: dead_hook·friction은 30일 창 자연변동(참고), rule budget은 7/3 이후 diet R3(기록된 축소, 회귀 아님), health-loop만 실제 델타 → §3.
주의: rule budget 행은 측정 대상이 keystone 소스(120개)가 아닌 런타임 ~/.claude/rules(54/58)라 baseline과 측정 지점이 다름. 추세(120→63→54)는 일관된 diet 축소.
03발견 · 적대 리뷰 훅 래핑 드리프트모델 무관
baseline §2 체크리스트는 미리 못 박았습니다. "결손 발생 시(측정이 안 돌면) 그것이 곧 발견이다." 오늘 health-loop가 정확히 그 발견 1건을 냈습니다. 원인은 모델이 아니라 훅 등록 형태입니다.
무엇이 걸렸나
- hook-run-contract 실패: 등록 명령 42개 중
shape bad=1. health-loopfinish issues=1로 종료 검증됨 - 범인:
PreToolUse / Bash의 auto-adversarial-review(git push 적대 리뷰 게이트) 훅 검증됨 - 이유: 명령이
hook-run.sh를 쓰지만, 계약이 요구하는 정규 형태(if [ -r X ]; then bash X …; else …; fi)가 아니라hit=$(…git push 감지…); if …; then … hook-run.sh …; fi조건부 래핑이라 형태 검사에 걸림 검증됨 - 연결: 이 래핑은 7/4 harness-liveness가 지적한 "auto-adversarial-review 단독 사망"을 고치려 넣은 것으로 보임 → 그래서 dead 2.6%→0% 회복과 인과가 이어짐 추론
어떻게 볼 것인가
- 모델 탓 아님: §3 규율: substrate delta는 "환경/체크아웃/등록 회귀"로 분류, 근본 원인 조사. Fable→Opus 전환과 무관 검증됨
- 한 수정, 한 부작용: 죽은 훅을 살리려 hook-run.sh로 감쌌더니 contract 형태 위반이 생김. 실패가 아니라 맞바꿈(trade) 추론
- 판단 필요: 해결은 두 갈래: (a) contract 정규식이 조건부 래핑을 허용하도록 완화, (b) 훅을 정규 형태로 재구성. 게이트 약화 위험이 있어 keystone 설계 판단 추론
- 이번 턴 범위 밖: 오늘은 측정·발견까지. 수정은 별도 keystone 세션(사람 판단) 보류
걸린 명령 (요약)
즉 게이트의 기능(push 시 리뷰)은 살아 있고, 등록 형태만 계약을 벗어난 상태입니다. health-loop가 이 형태 드리프트를 정상적으로 포착한 것 자체가 substrate가 제 일을 하고 있다는 방증입니다 추론
04regatta 재런 · 인프라 벽에 막힘429 / 스로틀
원본 §3 모델-품질 축을 오늘 Opus로 다시 재려 했습니다. 클린 하네스 캐비엇을 논하기도 전에: regatta 셀은 $HOME 밖 격리라 전환이 아닌 N=1 재현성만 잰다는 그 캐비엇이 인프라에서 막혔습니다. 그 막힘 자체가 오늘의 결과입니다.
무엇이 막았나
- 첫 셀
error: build-krw-parse attempt 1이runner_rc=142(SIGALRM = 900초 셀 타임아웃)로 종료 검증됨 - 진단 (1샷 핑): "OK 두 글자만" 사소한 프롬프트에 opus가 TTFT 20.3초 · 총 21.4초 소요. 정상(<2초) 대비 ~10배 검증됨
- 메커니즘: 멀티턴 코딩 셀이 턴마다 ~20초 TTFT를 누적 → 900초 셀 타임아웃 초과 → error. 하드 429 거부가 아니라 심한 스로틀(가용성 저하) 추론
- 대조: 7/3 opus는 4과제 전체를 734초에. 오늘은 1셀도 900초 초과 → 모델 저하가 아니라 인프라 저하 검증됨
이것이 말하는 것
- 품질 축은 오늘 미측정: 클린 수치를 못 뽑음. "0 데이터"를 "동률"로 위장하지 않고 미측정으로 명시 검증됨
- §1 층의 한계 실증: 원본 스택 ①"재시도·폴백 체인"이 흡수 설계한 것은 가용성. 오늘 스로틀은 그 층이 완전히 못 메운 실패 모드 추론
- 원본의 방증 재현: 7/4 리포트가 기록한 "서브에이전트 11개 429 전 계정 소진 → 메인 루프 직접 폴백"이 오늘 다른 형태(TTFT 20초)로 반복 검증됨
- 미룸이 정답: 클린 품질 수치는 스로틀 해소 후 또는
7/77/12(US)7/19(US, 7/15 갱신) 퇴역 직후--repeat 3로. 무리한 재시도(셀당 최대 45분)는 낭비 추론
05결론 · 절반은 오늘 확인했고, 절반은 여전히 실험이 필요하다
오늘 확정된 것
- substrate 모델 비종속: replay 24/24·corpus floor Δ0, Fable→Opus 무관 검증됨
- 죽은 훅 0%: 적대 리뷰 훅이 hook-run.sh 래핑으로 살아남(가시화) 검증됨
- 실제 드리프트 1건 포착: 형태 회귀, 모델 무관, 조사 대상으로 분리 검증됨
여전히 남은 것
- 하네스 on/off 인과: "품질 동률=하네스 덕"은 미증명. 원본 6장 실험 필요 추론
- 품질 축 미측정: regatta 재런이 429/스로틀(TTFT 20초)로 막힘. 클린 수치는 스로틀 해소 후
--repeat 3검증됨 - health-loop 수정: contract 완화 vs 훅 재구성, keystone 설계 판단 대기 보류
다음 · 시간 순
- 7/8 (예약 d7b03c20): 오늘 값으로 baseline 문서 §5 정식 append + feature 브랜치 → PR → main. 오늘 리포트는 그 조기 예행 검증됨(예약)
- health-loop 드리프트: auto-adversarial-review 래핑을 contract 정규 형태로 정렬 또는 정규식 완화 · 별도 keystone 세션 조사
7/77/12(US)7/19(US, 7/15 갱신) 퇴역 직후: regatta 변별 4과제--repeat 3로 N=3 승격 → 품질 축 인용 가능화 · 연장 덕에 Fable 포함 N=3 런을 퇴역 전에 돌릴 기회가 생김 [7/8 갱신] 제안- 7월 중: 원본 6장 하네스 on/off 축 구현 → 2×4×3 인과 실험 → "덕분인가"에 답 제안