vignette/docs/ops/outcome-os-g0-g1-g3-local-hardening-evidence-2026-08-07.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

3.9 KiB
Raw Blame History

Outcome & Alliance OS G0/G1/G3 로컬 하드닝 증거 (2026-08-07)

결론

  • G0 자동 provenance census가 RLS evaluator 컨텍스트에서 provenance-bearing 테이블 28개를 자동 탐색했다. 중앙 G0 계약과 G7 table-local 계약을 분리하고 null/blank, unknown source/perspective, incompatible pair, orphan instrument/model-run/evidence, 필수 model-run 누락을 fail-closed로 검사했다. 실데이터 93개 measurement_event, 19개 model_run, 18개 rupture observation을 포함한 최종 결과는 위반 0건이다.
  • G0 마이그레이션은 고유 임시 DB에서 01~06 선행 적용, 07_measurement_foundation.sql 트랜잭션 적용, 롤백 원상복귀, 재적용 성공까지 실증했다. 임시 DB는 종료 시 제거됐다.
  • 기존 영속 fixture의 session_state.rapport_credit=0.625, case_profile.alliance_level=0.375, SessionEvaluation.distribution=7.0을 기존 read와 새 legacy adapter read로 비교했고 세 값 모두 무손실이었다. G0 적용 뒤 기존 행도 변하지 않았다.
  • G1 동일 payload 재전송은 HTTP 202와 동일 pulse_id, idempotent_replay=true를 반환하고 agent job을 재예약하지 않는다. 변경 payload는 409다. 다른 학습자와 다른 코호트 교수자는 모두 404이며, 정상 상태 감사 이력은 awaiting_agents → ready다.
  • G3는 한 실제 회기에서 서로 다른 세 episode를 missed, partial, resolved로 만들었다. API read model과 PostgreSQL terminal state가 모두 일치했고 8개 observation event의 sequence_no가 episode별 1부터 연속이었다.

실행 증거

G0 provenance census

py -3.11 scripts/check-measurement-provenance-census.py `
  --out docs/ops/evidence/measurement-provenance-census-live-2026-08-07.json
  • registered/discovered producer tables: 28/28
  • unknown/missing producer tables: 0/0
  • null/blank provenance: 0
  • unknown source/perspective 및 incompatible pair: 0
  • orphan instrument/model-run/evidence: 0
  • model/agent producer의 필수 model-run 누락: 0

G0 migration 및 legacy rehearsal

py -3.11 scripts/rehearse-measurement-migration.py `
  --out docs/ops/evidence/measurement-migration-rehearsal-2026-08-07.json
  • G0 객체 5종 apply 전: 모두 없음
  • transaction 내부 apply 후: 모두 있음
  • rollback 후: 모두 없음
  • committed forward apply 후: 모두 있음
  • temporary database removed: true
  • legacy old/new numeric projection lossless: true
  • legacy rows unchanged: true

G1 live API/PostgreSQL

증거 파일: docs/ops/evidence/alliance-pulse-live-hardening-2026-08-07.json

  • session: 4d98dada-928d-45cc-b389-4043837d0b28
  • pulse: 7c6b1b76-139b-4fdf-80c4-4771bb92c793
  • same payload: 202, stable ID, idempotent_replay=true
  • changed payload: 409
  • other learner / cross-cohort teacher: 404 / 404
  • terminal 3×3 read: 9 measurements
  • supervisor 포함 latest 4×3 read: 12 measurements
  • PostgreSQL append-only events: 15, model runs: 2 ready

G3 live API/PostgreSQL

증거 파일: docs/ops/evidence/rupture-repair-live-three-state-2026-08-07.json

  • session: 811d904f-64eb-4602-81d4-e4f7309feb03
  • state coverage: missed, partial, resolved
  • episode count: 3
  • append-only observation event count: 8
  • episode별 sequence 연속성: true
  • API/DB terminal-state equality: true
  • other learner / cross-cohort teacher deny: true / true

회귀 검증

  • focused provenance/G0/G1/G3 tests: 91 passed
  • full API tests: 767 passed
  • npm run check:api-types: PASS
  • npm run check:measurement-contract: PASS
  • npm run typecheck: PASS

경계

  • 이 작업은 로컬 DB/API만 사용했다. 공개 배포·원격 DB 변경은 하지 않았다.
  • 실서버 fixture는 기존 정책대로 고유 dev:e2e identity와 ID만 보존하며 transcript, 이메일, 토큰, DB 연결 문자열은 증거에 기록하지 않았다.