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 산출물은 커밋에서 제외했다.
3.9 KiB
3.9 KiB
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: PASSnpm run check:measurement-contract: PASSnpm run typecheck: PASS
경계
- 이 작업은 로컬 DB/API만 사용했다. 공개 배포·원격 DB 변경은 하지 않았다.
- 실서버 fixture는 기존 정책대로 고유
dev:e2eidentity와 ID만 보존하며 transcript, 이메일, 토큰, DB 연결 문자열은 증거에 기록하지 않았다.