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 산출물은 커밋에서 제외했다.
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:e2eidentity와 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를 생성했다.
- approved source provenance를 draft가 참조했다.
- 서로 다른 reviewer agent 두 개가 safety, identity, PII, grounding, answer leakage, cultural bias, difficulty 전 차원을 독립 검토했다.
- benchmark는 variant
8, pass rate0.875, leakage·PII·unsupported claim·safety failure·reward hacking0이었다. - content pipeline 응답은
pending_human_approval,human_approval_required=true,catalog_promoted=false를 유지했다. - 승인 전 DB-backed projection에서 해당 qualification의 catalog row가 없음을 확인했다.
- teacher와 learner의 approval 요청은 모두
403이었다. - 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/executedlifecycle 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/approvedlifecycle 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=falsepii_included=falseclinical_claim_allowed=falsesilent_auto_promotion_allowed=falseraw_transcript,transcript,utterance_textkey 없음total_score,overall_score,global_score,aggregate_scorekey 없음
따라서 이 결과는 콘텐츠 품질·운영 안전 원장 증거이며, 학습자 총점이나 임상 효과 판정 근거가 아니다.
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을 근거로 반영한다.