vignette/docs/ops/evidence/c-001-clinical-technical-preflight-2026-08-28.json

119 lines
6.5 KiB
JSON

{
"evidence_id": "c-001-clinical-technical-preflight-2026-08-28",
"generated_at": "2026-08-29T06:04:31Z",
"base_commit": "081d9d70fb4a831412ceb937a976c9bb56906047",
"worktree_boundary": "이 증거는 아래 파일 해시와 081d9d70 런타임 패키지에 고정된 내부 기술 사전검증이다. 외부 임상 검토나 승인을 대신하지 않는다.",
"scope": "P1 합성 자살사고·자해 신호 훈련의 기계 판독 검토 패킷, 런타임 안전 상한, 공식 source pack",
"status": {
"technical": "verified",
"clinical": "pending_external_review",
"review_complete": false,
"case_count": 6,
"case_decisions_recorded": 0,
"case_assessment_fields_recorded": 0,
"youth_review_responses_recorded": 0,
"external_review_replaced": false
},
"clinical_approval": {
"reviewer": null,
"organization": null,
"reviewer_role_or_qualification": null,
"reviewed_at": null,
"decision": null,
"notes": 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 전이는 사례 판정·근거·수정 요구·재검토·검토일, 청소년 답변, 검토자·기관·자격·날짜·결정 근거, POSIX 증거 경로와 해시, 검토 버전과 사례 세트 해시가 일치할 때만 허용한다.",
"conditional 또는 fail 사례는 실제 수정 요구와 재검토 제출 조건 또는 일정을 기록해야 하며 수정 없음·재검토 불필요로 닫을 수 없다.",
"개선관리 워크북은 canonical checker 성공과 review_complete, 관찰 패키지 HEAD·작업트리 해시 일치를 함께 소비한다.",
"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": "fa8796a2d1bb8a1391b12141eac39cc395100333d94b184c583e74d999e611dd"
},
{
"path": "data/clinical/crisis-protocol-validation.schema.json",
"sha256": "056bc6d9bb9e4f5b93a51a44628f8158651eecb37b467c84344e6e272ebfe7bc"
},
{
"path": "data/clinical/p1-crisis-review-cases.json",
"sha256": "4d34c2b1d30b94061b1c086246eb7ff4f24dfef42e6c1ba0815a756d721d5935"
},
{
"path": "data/clinical/p1-crisis-review-cases.schema.json",
"sha256": "0fb3c769324c1cb4651774297c669dfe9045a2d9aa7964b0c383e4cfde6332a0"
},
{
"path": "data/kb/live_coaching_sources/official_suicide_risk_guidelines.json",
"sha256": "d11ed587edfc26426dcb848d7dd55571dbb439eb65264490358a99128dd6ac5a"
},
{
"path": "scripts/check-clinical-crisis-review.py",
"sha256": "d7e881ce55c32a641e37f6e815bd4634a8f1bebecf6fe94f1629950f4f992944"
},
{
"path": "scripts/run-clinical-crisis-technical-observations.py",
"sha256": "4e1c62af4df056e18cdb7204128b5f3c5086e204941302fdced8045aa7a532d9"
},
{
"path": "docs/ops/evidence/c-001-crisis-case-runtime-observations-2026-08-28.json",
"sha256": "f023a9405c6ce6e4d41858420208d3f64da04070d0f3b2c0bca71ea15f2e7cb8"
},
{
"path": "docs/ops/clinical-crisis-protocol-review-2026-08-27.md",
"sha256": "49a3ad4a1328cd4dec27207e641d4c2dd695a0bd17817b732c9bc3479257f0b7"
},
{
"path": "outputs/01a04217-f73b-7303-b597-401fa7f5d290/Vignette_개선관리_완료.xlsx",
"sha256": "0a64d1bcdfd0c1727ebd4279b58b3077227ecba2e30d68009cf9ba8d310b1177"
}
],
"verification": [
{
"command": "py -3.11 -X utf8 scripts/check-clinical-crisis-review.py",
"result": "GREEN: pending_external_review, protocol 2026-08-28.1, case-set 2026-08-28.2, case_count=6, review_complete=false, 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 apps/api/app/test_session_turn_persistence.py -q",
"result": "90 passed, 1 Starlette third-party deprecation warning, 0 failed"
},
{
"command": "py -3.11 -X utf8 scripts/run-clinical-crisis-technical-observations.py --generated-at 2026-08-28T12:04:06Z --output docs/ops/evidence/c-001-crisis-case-runtime-observations-2026-08-28.json",
"result": "6/6 technical pass; generate/stream event sequences pass; runtime package matches HEAD; external clinical decisions 0"
},
{
"command": "ruff check scripts/check-clinical-crisis-review.py scripts/test_check_clinical_crisis_review.py scripts/run-clinical-crisis-technical-observations.py apps/api/app/test_client_reply_quality.py",
"result": "All checks passed"
},
{
"command": "artifact-tool workbook rebuild, inspect, formula error scan, six-sheet render",
"result": "formula errors 0; summary complete=8, review=3, total=11; REQ-001 public single-CTA promotion and REQ-008 actual reboot smoke remain review gates; ten independent external approval inputs G13:G22; canonical gate pending-valid; PACKAGE_MATCH and WORKTREE_DRIFT 0/8; C-001 review_complete=false; six rendered sheets plus focused C-001 sections visually inspected; workbook sha256=0a64d1bcdfd0c1727ebd4279b58b3077227ecba2e30d68009cf9ba8d310b1177"
}
]
}