vignette/docs/ops/supervision-research-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

69 lines
4.4 KiB
Markdown

# G6 Supervision & Research OS — 라이브 통합 증거
> 기준일: 2026-08-06 KST
> 판정: **내부 제품 게이트 통과**
> 데이터 경계: 교수자·연구 화면은 원장 UUID/hash/version metadata만 사용하며 축어록과 임상 판정을 복제하지 않는다.
## 1. 구현 경계
- attention queue는 deterioration, unresolved rupture, safety boundary, persistent overconfidence,
growth stagnation, transfer failure를 총점 없이 우선순위화한다.
- queue item의 원장 포인터와 drilldown route는 최대 3개이며 근거까지 3클릭 이내다.
- 교수자-AI 불일치는 기존 평가를 수정하지 않고 disagreement, calibration dataset row, teacher audit event로 append한다.
- calibration dataset에는 case/competency/AI·교수자 label, model, prompt, instrument version, reason code와
두 개 이상의 원장 UUID만 있으며 raw transcript는 없다.
- model/prompt/instrument/subgroup 비교는 baseline/candidate batch와 subgroup metric을 함께 보존한다.
- Phase 3 manifest는 alliance, rupture, transfer, calibration 네 도메인과 artifact hash/provenance를 전건 요구한다.
- supervisor/research AI view는 물리적으로 분리하고 사람 조회는 teacher/admin 역할·cohort RLS를 따른다.
## 2. 합성 benchmark와 자동 검증
| 증거 | 결과 |
|---|---|
| G6 core/store/API/runtime-schema focused | `28 passed` |
| attention benchmark | 6개 신호 우선순위 순서 정확 |
| 원장 이동 | 각 queue item drilldown `1`, 상한 `3` |
| calibration dataset | row `1`, raw transcript row `0` |
| 버전 비교 | expected/actual `drift_flagged` |
| Phase 3 manifest | alliance/rupture/transfer/calibration 4도메인 전건 |
| PostgreSQL | SQL 연속 2회·RLS/AI-view/audit/append-only·rollback residue 0 smoke 통과 |
| G6 UX | teacher/admin desktop+mobile `6/6 passed` |
| 기존 G1~G5·회기 리뷰 | 직전 루트 회귀 `62/62 passed` |
| 웹 계약 | typecheck·production build 통과 |
## 3. 실제 API·DB 흐름
`scripts/smoke-supervision-research-api.py`를 DB와 engine이 ready인 API 인스턴스에 실행했다.
산출물은 `docs/ops/evidence/supervision-research-live-api-2026-08-06.json`이다.
- 실제 G4 학습자의 서로 다른 두 practice attempt UUID를 G6 원장 포인터로 사용했다.
- 내부 토큰 누락은 `401`, 오답은 `403`이며 DB acquire 전에 차단됐다.
- attention snapshot, curriculum gap, version comparison, Phase 3 manifest의 동일 제출은 같은 ID를 반환했다.
- attention/disagreement/comparison의 같은 submission 변경 payload는 모두 `409`였다.
- attention item은 drilldown route 3개 이하, version comparison은 `drift_flagged`를 유지했다.
- 교수자 correction은 metadata-only disagreement/dataset/audit 세 원장으로 append됐다.
- 동일 cohort 교수자는 supervisor/research projection을 읽었고 learner는 두 화면 모두 `403`, 교차 cohort
교수자는 빈 projection을 받았다.
- research read model에서 model/prompt/instrument version, subgroup metrics, 네 도메인 artifact provenance가
실제로 hydrate되는지 확인했다.
- 모든 응답을 재귀 검사해 raw transcript·총점이 없고 `clinical_claim_allowed=false`임을 확인했다.
라이브 증거 식별자:
- source learner: `fa05a889-b546-4e3b-a959-a8efc32f1073`
- source session: `3c834ffd-af5b-4a37-8fd3-ad0690deb165`
- attention snapshot: `a2676b49-7851-492b-a19c-530b645a0e2d`
- curriculum gap: `f59825c2-d615-4577-9aa3-c0a21854c81b`
- disagreement: `3ad8f177-cb26-4d87-b9cc-eb95f91da629`
- drift report: `aebd4bf2-6cc4-4ef3-ba53-7fa41204244b`
- Phase 3 manifest: `8badb21a-bad3-45dd-a1b9-3bdf87d7ade2`
## 4. 교수자·연구 UX 종료 조건
- 교수자는 위험·정체·미해결 관계 사건 레이더에서 학습자를 선택하고 원장 근거로 2클릭 이동한다.
- curriculum gap은 영향 학습자 수·상태·불확실성과 evidence pointer를 보여주되 순위 총점으로 만들지 않는다.
- 관리자 연구 탭은 baseline/candidate model·prompt·instrument version과 subgroup drift를 재현 가능하게 표시한다.
- Phase 3 네 도메인은 artifact hash·record count·provenance URI를 전건 표시한다.
- 버전·artifact detail이 없는 구형 응답은 값을 추정하지 않고 degraded 상태로 표시한다.
이 증거로 G6 내부 제품 게이트를 닫고 G7 Multimodal Alliance를 BUILD로 승격한다.