vignette/docs/ops/continuous-improvement-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

7.1 KiB

G8 Continuous Improvement OS — 라이브 통합 증거

계획 기준일: 2026-08-06 KST
실제 실행: 2026-08-07 00:16:23 KST
대상: http://127.0.0.1:8014 (db=true, engine=true)
판정: 실제 HTTP/DB 내부 제품 게이트 통과
SSOT 승격: 루트 통합 트랙이 별도로 수행

1. 증거 경계

  • 이 증거는 합성 replay, 독립 red-team, coverage/drift 메타데이터만 사용한다.
  • content qualification, model gate, release gate는 스스로 효과를 만들지 않는다.
  • catalog 등록, model rollback, release promotion은 관리자 human approval 뒤에만 append된다.
  • API projection에는 raw transcript, PII, 임상 주장, 학습자 aggregate score가 없다.
  • 내부 자동화 토큰은 실행 시에만 주입했으며 증거 파일에는 저장하지 않았다.
  • 고유 dev:e2e identity와 G8 원장은 재현·감사를 위해 보존했고 삭제하지 않았다.

2. 재현 명령

$python311 = 'C:\Users\encep\AppData\Local\Programs\Python\Python311\python.exe'
$ruff = 'C:\Users\encep\AppData\Local\hermes\hermes-agent\venv\Scripts\ruff.exe'
$token = 'g8-' + ('z' * 40)

& $python311 -m py_compile scripts\smoke-continuous-improvement-api.py
& $ruff check scripts\smoke-continuous-improvement-api.py
& $python311 -X utf8 scripts\smoke-continuous-improvement-api.py `
  --api-base-url http://127.0.0.1:8014 `
  --internal-token $token `
  --out docs\ops\evidence\continuous-improvement-live-api-2026-08-06.json

원본 실행 결과는 evidence/continuous-improvement-live-api-2026-08-06.json에 있다.

3. source → catalog human gate

실행마다 고유 source, draft, 두 red-team review, benchmark를 생성했다.

  1. approved source provenance를 draft가 참조했다.
  2. 서로 다른 reviewer agent 두 개가 safety, identity, PII, grounding, answer leakage, cultural bias, difficulty 전 차원을 독립 검토했다.
  3. benchmark는 variant 8, pass rate 0.875, leakage·PII·unsupported claim·safety failure·reward hacking 0이었다.
  4. content pipeline 응답은 pending_human_approval, human_approval_required=true, catalog_promoted=false를 유지했다.
  5. 승인 전 DB-backed projection에서 해당 qualification의 catalog row가 없음을 확인했다.
  6. teacher와 learner의 approval 요청은 모두 403이었다.
  7. admin approve_content 뒤에만 catalog row 한 건이 append됐고 같은 승인 재시도는 새 효과를 만들지 않았다.

라이브 식별자:

  • pipeline: 3bd68d78-6a4d-448a-851f-2f85fe3ad59b
  • qualification: 69e85b39-119d-4757-a182-0f013cbfeb43
  • catalog entry: oas-g8-catalog-live-1786029383-9f090464
  • catalog record: bd990d35-be29-4e87-ac58-8477be5569f3

4. model·release gate와 네 artifact

model change gate와 release gate 각각에 다음 네 종류 artifact를 실제 저장했다.

artifact kind 역할
baseline 변경 전 기준 증거
threshold 승격·차단 임계 계약
provenance 평가 결과의 원천 URI/hash
rollback 되돌릴 대상과 실행 근거

두 gate 모두 projection에서 정확히 4건과 네 kind 전건을 확인했다.

  • model candidate에는 critical miss 1을 넣어 자동 결정이 rollback이 되게 했다.
  • model gate 응답은 promotion_executed=false였고 승인 전 lifecycle effect가 없었다.
  • admin authorize_rollback 뒤에 rollback/executed lifecycle event가 append됐다.
  • 합성 release manifest fixture는 red-green, contract, E2E, runtime, public-proof, SSOT 필드를 모두 통과 상태로 제출했지만 응답은 여전히 pending_human_approval, promotion_executed=false였다. 여기의 public-proof 필드는 승인 계약을 검증하는 합성 입력이며 현재 코드를 실제 공개 배포했다는 증거가 아니다.
  • admin approve_promotion 뒤에만 promotion/approved lifecycle event가 append됐다.

라이브 식별자:

  • model gate: ed449b49-2a75-4546-924f-38856800a3b0
  • rollback lifecycle effect: 1ddd167c-19b7-46a3-9ef5-37646c9d9d93
  • release gate: 3569469f-7726-4abd-bb85-14f6928ea2cb
  • promotion lifecycle effect: 1de725c2-2365-489e-81b6-b7303be6a736

5. monitor·rollback·incident 회귀 폐루프

실제 lifecycle projection에서 아래 여섯 효과를 대상 gate에 연결해 확인했다.

  • human effect: promotion/approved
  • human effect: rollback/executed
  • monitor: healthy
  • monitor: drift_detected
  • monitor: rollback_recommended
  • monitor: rollback_verified

monitor event ID:

  • healthy: 398f9ff7-cad7-458c-9fb3-47423a73ae60
  • drift detected: f95a4ab9-67d2-457c-8422-57da829a3edc
  • rollback recommended: 00473c29-5f93-44d1-92ab-9788593a7007
  • rollback verified: ed315e57-3bbd-492f-afac-f2d7cc37defd

incident 659dab3e-8abe-4234-a00d-16b02597c5c4는 DB projection에서 정확히 네 노드로 hydrate됐다.

reproduction_test
  └─ implementation
       └─ e2e
            └─ runtime_proof

각 dependency는 바로 앞 노드의 실제 node_record_id만 참조했고 reproduction은 dependency가 없었다. incident와 projection 모두 pii_included=false였다.

6. 인증·멱등성·변경 충돌

검증 실제 결과
내부 GET, 헤더 누락 401
내부 GET, 잘못된 토큰 403
teacher admin projection 403
learner admin projection 403
teacher approval 403
learner approval 403
동일 content submission 동일 qualification, idempotent_replay=true
동일 model/release/incident submission 동일 ID, idempotent_replay=true
동일 approval/monitor submission 동일 effect ID, idempotent_replay=true
동일 submission의 변경 payload content/model/release/incident/approval/monitor 모두 409

동일 실행에서 admin human approval은 target이 서로 다른 세 건만 존재했고, catalog effect 한 건과 model/release lifecycle effect 두 건으로 분리됐다. 재시도는 approval이나 효과 row를 복제하지 않았다.

7. 비노출 계약

internal projection과 admin projection 전체를 재귀 검사했다.

  • raw_transcript_included=false
  • pii_included=false
  • clinical_claim_allowed=false
  • silent_auto_promotion_allowed=false
  • raw_transcript, transcript, utterance_text key 없음
  • total_score, overall_score, global_score, aggregate_score key 없음

따라서 이 결과는 콘텐츠 품질·운영 안전 원장 증거이며, 학습자 총점이나 임상 효과 판정 근거가 아니다.

8. 실행 결과 요약

항목 결과
py_compile 통과
Ruff All checks passed!
실제 API/DB smoke ok=true
model gate artifact 4/4
release gate artifact 4/4
admin approval 3
대상 lifecycle event 6
incident regression DAG 4/4 노드, dependency 순서 통과

이 증거는 G8의 실제 HTTP/DB 통합 조건을 충족한다. 실제 배포와 공개 경로 증명은 별도 외부 게이트다. 대시보드와 TODO의 상태는 루트 통합 작업에서 이 문서와 원본 JSON을 근거로 반영한다.