vignette/docs/ops/evidence/c-001-clinical-technical-preflight-2026-08-28.json
2026-08-28 20:29:49 +09:00

120 lines
6.1 KiB
JSON

{
"evidence_id": "c-001-clinical-technical-preflight-2026-08-28",
"generated_at": "2026-08-28T11:20:32Z",
"base_commit": "f63e12999b0248dfc3e71ec22c2a1b5549454934",
"worktree_boundary": "이 증거는 아래 파일 해시와 f63e1299 런타임 패키지에 고정된 내부 기술 사전검증이다. 외부 임상 검토나 승인을 대신하지 않는다.",
"scope": "P1 합성 자살사고·자해 신호 훈련의 기계 판독 검토 패킷, 런타임 안전 상한, 공식 source pack",
"status": {
"technical": "verified",
"clinical": "pending_external_review",
"case_count": 6,
"case_decisions_recorded": 0,
"external_review_replaced": false
},
"clinical_approval": {
"reviewer": null,
"organization": null,
"reviewed_at": null,
"decision": null,
"evidence_ref": null,
"evidence_sha256": null,
"reviewed_protocol_version": null,
"reviewed_case_set_sha256": null
},
"verified_contracts": [
"실제 수련생의 현재적 위기 신호는 가상내담자 엔진 호출 전에 중단하고 109 안전자원을 반환한다.",
"가상내담자 출력의 구체적인 자살·자해 수단 또는 방법 상세는 차단하고 재생성한다.",
"DB 직접 로드, persona baseline, 이전 회기 carry-over, 회기 중 관측값과 출력 가드레일에서 ideation_stage를 1..3으로 제한한다.",
"pending_external_review에서는 모든 승인값과 여섯 사례의 검토 판정을 null로 유지한다.",
"approved, conditional, rejected 전이는 사례 판정, 검토자·기관·날짜·증거 경로와 해시, 검토 버전과 사례 세트 해시가 일치할 때만 허용한다.",
"SAMHSA SAFE-T, NIMH Youth Outpatient BSSA, NICE NG225, 보건복지부 109의 source provenance를 고정한다."
],
"artifacts": [
{
"path": "apps/api/app/services/state_machine.py",
"sha256": "49e810eb98648ccb15acf6889d50b33009b713e3a49edd54043a83debb120cbe"
},
{
"path": "apps/api/app/services/guardrail.py",
"sha256": "b7c51c1084ee1b62b85b2ea25cb32cd381f9bdccabdd9b87d19f98588c7288ec"
},
{
"path": "apps/api/app/services/live_coach.py",
"sha256": "4af942f7b741e583aeabb22d878e3e63842ac920cdb1b85a72f9aeae82394756"
},
{
"path": "apps/api/app/services/orchestrator.py",
"sha256": "a5368e068e5eb7cb9b27ea06362ad16ae7cc66c1c8935b6ce04c8bec381c1692"
},
{
"path": "data/clinical/crisis-protocol-validation.json",
"sha256": "122a6c19cb17cb0cfc6fae332cde0578579f3d98c77b67ec292ac268bd5ce60f"
},
{
"path": "data/clinical/crisis-protocol-validation.schema.json",
"sha256": "34f7484576763e5bbe788902268e59b85b86ee0e97a33990760f7118c90e847b"
},
{
"path": "data/clinical/p1-crisis-review-cases.json",
"sha256": "1794092f755728dbbeeae3b237eaa1c47bfdd286b6b14b248d6c479fe5f9d744"
},
{
"path": "data/clinical/p1-crisis-review-cases.schema.json",
"sha256": "fbc4b5b6eeee8f6ab1a91254cb7a385aa0437e18189c140d8272d2e396f2066e"
},
{
"path": "data/kb/live_coaching_sources/official_suicide_risk_guidelines.json",
"sha256": "d11ed587edfc26426dcb848d7dd55571dbb439eb65264490358a99128dd6ac5a"
},
{
"path": "scripts/check-clinical-crisis-review.py",
"sha256": "451b1260b91d0f57b7b7edcbf2d9e05fcdc132298fd65c9edf8675c32d3d6e93"
},
{
"path": "scripts/run-clinical-crisis-technical-observations.py",
"sha256": "f8f1f63b4c7bfc8548b54d298d4c9645e78ba5bd10b9e43fd15d08d21e90bebb"
},
{
"path": "docs/ops/evidence/c-001-crisis-case-runtime-observations-2026-08-28.json",
"sha256": "38c8e40e29b607792857a13d919ec12375ef31c35d41c3661f560d31bce0a6e3"
},
{
"path": "docs/ops/clinical-crisis-protocol-review-2026-08-27.md",
"sha256": "f6caba3569eda25bb589f35c5a5e0277e792da0ba9032c47d4b786cf30dc7b23"
},
{
"path": "outputs/01a04217-f73b-7303-b597-401fa7f5d290/Vignette_개선관리_완료.xlsx",
"sha256": "e7bf57486a31a060f38fd0b2f300b56872e12498b0d8055749f0caa92a56a4a5"
}
],
"verification": [
{
"command": "py -3.11 -X utf8 scripts/check-clinical-crisis-review.py",
"result": "GREEN: pending_external_review, protocol/case-set 2026-08-28.1, case_count=6, external_review_replaced=false"
},
{
"command": "py -3.11 -B -X utf8 -m pytest -p no:cacheprovider scripts/test_check_clinical_crisis_review.py apps/api/app/test_client_reply_quality.py apps/api/app/test_live_coach_sources.py apps/api/app/test_state_machine_resistance.py apps/api/app/test_guardrail_ideation_cap.py -q",
"result": "42 passed, 0 failed"
},
{
"command": "py -3.11 -B -X utf8 -m pytest -p no:cacheprovider apps/api/app/test_client_reply_quality.py apps/api/app/test_session_turn_persistence.py -q",
"result": "55 passed, 1 third-party deprecation warning, 0 failed"
},
{
"command": "py -3.11 -B -X utf8 -m pytest -p no:cacheprovider apps/api/app/test_state_machine_resistance.py apps/api/app/test_session_memory.py apps/api/app/test_persona_session_contract.py apps/api/app/test_orchestrator_masking.py apps/api/app/test_guardrail_ideation_cap.py -q",
"result": "55 passed, 1 third-party deprecation warning, 0 failed"
},
{
"command": "py -3.11 -B -X utf8 scripts/run-clinical-crisis-technical-observations.py --generated-at 2026-08-28T11:20:32Z",
"result": "6/6 technical pass; generate/stream event sequences pass; runtime package matches HEAD; external clinical decisions 0"
},
{
"command": "py -3.11 -B -X utf8 -m pytest -p no:cacheprovider three crisis boundary focused nodes -q",
"result": "3 passed; fixed strong-positive, negation, meta, third-party, and mixed-context matrix 50/50; 1 third-party deprecation warning"
},
{
"command": "artifact-tool workbook rebuild, inspect, formula error scan, six-sheet render",
"result": "formula errors 0; summary complete=10, review=1, total=11; PACKAGE_MATCH and WORKTREE_DRIFT 0/8; C-001 external review gate remains pending; six rendered sheets visually inspected; workbook sha256=e7bf57486a31a060f38fd0b2f300b56872e12498b0d8055749f0caa92a56a4a5"
}
]
}