vignette/docs/ops/calibration-transfer-live-integration-evidence-2026-08-06.md
Yun Chan 16e791e044 G0~G8 성과·동맹 측정 OS 작업 일괄 고정
8월 7일까지 워킹트리에만 남아 있던 미커밋 작업을 커밋한다. 여러 사본
폴더(worktree·clone)에 흩어져 있던 중간 스냅샷을 정리하기 전에 원본을
git 이력으로 고정하는 것이 목적이다.

- contracts/routes/services: measurement, outcome_trajectory, rupture_repair,
  deliberate_practice, calibration_transfer, supervision_research,
  multimodal_alliance, continuous_improvement 계열 신규 모듈과 테스트
- infra/db/init: 07~16 마이그레이션(측정 기반~calibration transfer 실행)
- apps/web: 세션 리뷰 카드·관리 화면·E2E 스펙 추가
- docs/ops: G0~G8 라이브 통합·배포·롤백 증거 문서와 evidence JSON/PNG
- scripts: smoke·ledger·릴리스 에이전트·NAS 프리뷰 운영 스크립트

engine.public 로그 .bak과 apps/web/test-results 산출물은 커밋에서 제외했다.
2026-08-08 01:30:53 +09:00

4.1 KiB

G5 Calibration Mirror & Transfer — 라이브 통합 증거

기준일: 2026-08-06 KST
판정: 내부 제품 게이트 통과
데이터 경계: benchmark는 교육용 합성 데이터이며 실제 인구집단 능력·위험·임상 결과를 주장하지 않는다.

1. 구현 경계

  • 학습자는 외부 수행 관측을 보기 전에 역량·practice block별 성공 확률과 확신도를 revision으로 기록한다.
  • 명시적으로 잠근 prediction history는 불가역이며, lock 뒤 revision은 API와 DB trigger가 모두 거부한다.
  • 외부 수행 관측은 learner self-report와 분리된 runtime/evaluator 관점에서만 reveal된다.
  • 역량별 calibration error, 95% bounded interval, over/underconfidence, baseline→recent 오차 변화를 총점 없이 계산한다.
  • context, relationship style, difficulty, expression, scenario/phrase family가 달라지는 unseen transfer suite를 사용한다.
  • 훈련 문구 암기와 undercoverage는 성공률이 높아도 transfer verification을 차단한다.
  • subgroup drift는 최소 표본과 불확실성을 함께 표시하고 synthetic educational signal로만 취급한다.

2. 합성 benchmark와 자동 검증

증거 결과
G5 core/store/API focused 41 passed
benchmark 4 cases, expectation accuracy 1.0
reveal 오염 차단 post-lock contamination rejection 1
반복 보정 baseline MAE 0.667 → recent MAE 0.267, improved
미지 전이 4/4 unseen varied cases, transfer verified
암기 해킹 memorized phrase false verification 0
합성 subgroup drift max rate gap 0.667, drift_flagged, 비임상 고지
G5 UX learner/teacher desktop+mobile 4/4 passed
G1~G5 + 기존 회기 리뷰 desktop/mobile 62/62 passed
웹 계약 typecheck·production build 통과

3. 실제 API·DB 흐름

scripts/smoke-calibration-transfer-api.py를 DB와 engine이 모두 ready인 API 인스턴스에 실행했다. 산출물은 docs/ops/evidence/calibration-transfer-live-api-2026-08-06.json이다.

  • 실제 회기 durable turn UUID 2개를 자기예측과 외부 수행 관측의 근거로 사용했다.
  • prediction revision의 동일 제출은 같은 ID를 반환했고 변경 payload는 409였다.
  • prediction history를 명시적으로 잠근 뒤 동일 lock 재시도는 같은 ID를 반환했다.
  • 잠금 뒤 두 번째 revision은 DB 불변식까지 도달해 422로 거부됐다.
  • 독립 내부 토큰으로 runtime 수행 관측을 기록했다. 동일 제출은 같은 ID, 변경 payload는 409였다.
  • 학습자 projection은 learner, 동일 cohort 교수자는 supervisor를 반환했다.
  • 다른 학습자는 대상 조회 403, 교차 cohort 교수자는 404였다.
  • 모든 read model은 총점 없이 clinical_claim_allowed=false를 유지했다.
  • calibration-mirror-g5@1.0.0, unseen-transfer-g5@1.0.0 측정 도구를 각 construct로 분리해 영구 measurement catalog에 등록했다.

라이브 증거 식별자:

  • session: e3e07503-7033-41ea-808b-89bab82d86f1
  • prediction history: 31552615-8910-4543-b1e3-540867c15ba4
  • prediction revision: f7990785-ee83-4e7b-acde-6810068f5a5e
  • prediction lock: 9f90a933-b23f-4627-8bae-02782c2cfa39
  • performance observation: 1ff98bee-41cb-4317-a345-b21b820b818e

4. 자기주도·교수자 UX 종료 조건

  • 학습자는 예측 revision을 검토한 뒤 불가역 lock의 의미에 명시 동의해야만 외부평가 reveal을 진행한다.
  • 오차·95% 구간·과신/과소신·반대근거와 다음 메타인지 연습을 역량별로 읽는다.
  • 전이 카드는 네 변주 축 coverage와 암기 문구 차단 사유를 보여주며 성공률 하나로 숙련을 선언하지 않는다.
  • 교수자는 cohort learner projection과 append-only correction만 사용할 수 있고 prediction/lock/evaluator write는 받지 않는다.
  • API 불가·관측 부족·합성 drift를 각각 degraded, insufficient evidence, synthetic signal로 명시한다.

이 증거로 G5 내부 제품 게이트를 닫고 G6 Supervision & Research OS를 BUILD로 승격한다.