# 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. 재현 명령 ```powershell $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`](./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됐다. ```text 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을 근거로 반영한다.