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 산출물은 커밋에서 제외했다.
This commit is contained in:
parent
93dd8f82d7
commit
16e791e044
390 changed files with 243188 additions and 499 deletions
154
apps/api/app/data/rupture_repair_benchmark_g3.v1.json
Normal file
154
apps/api/app/data/rupture_repair_benchmark_g3.v1.json
Normal file
|
|
@ -0,0 +1,154 @@
|
|||
{
|
||||
"schema_version": "vignette.rupture-repair-benchmark.v1",
|
||||
"data_classification": "synthetic_educational",
|
||||
"clinical_claim_allowed": false,
|
||||
"version": "1.0.0",
|
||||
"cases": [
|
||||
{
|
||||
"case_id": "oas-g3-bench-001",
|
||||
"title_ko": "철수 경고 뒤 후속 발화에서 완전 복구",
|
||||
"episode": {
|
||||
"episode_id": "oas-g3-episode-withdrawal-recovered",
|
||||
"detection_signals": [
|
||||
{"signal_id":"b001-fast","loop":"fast","status":"detected","rupture_type":"withdrawal","confidence":0.78,"uncertainty":0.22,"observed_at_turn":1,"source_kind":"simulated_state","perspective":"client_simulation","evidence_refs":[{"ref_id":"b001-client-1","turn_index":1,"speaker":"client"}],"counterevidence":["single_turn_only"]},
|
||||
{"signal_id":"b001-deep","loop":"deep","status":"detected","rupture_type":"withdrawal","confidence":0.92,"uncertainty":0.08,"observed_at_turn":4,"source_kind":"simulated_state","perspective":"client_simulation","evidence_refs":[{"ref_id":"b001-client-3","turn_index":3,"speaker":"client"}],"counterevidence":[]}
|
||||
],
|
||||
"fast_warning":{"warning_id":"b001-warning","signal_id":"b001-fast","provisional_status":"missed","emitted_at_turn":1},
|
||||
"recognized_at_turn":2,
|
||||
"recognition_evidence_refs":[{"ref_id":"b001-learner-recognition","turn_index":2,"speaker":"learner"}],
|
||||
"repair_attempts":[{"attempt_id":"b001-repair","turn_index":2,"behaviors":["curiosity","impact_acknowledgement","follow_up_check"],"client_response":"engaged","evidence_refs":[{"ref_id":"b001-learner-repair","turn_index":2,"speaker":"learner"}],"response_evidence_refs":[{"ref_id":"b001-client-response","turn_index":3,"speaker":"client"}],"counterevidence":[],"uncertainty":0.08}],
|
||||
"safety_signals":[]
|
||||
},
|
||||
"expected":{"detected":true,"rupture_type":"withdrawal","final_status":"resolved"},
|
||||
"critical":true,
|
||||
"tags":["fast_deep_reconciliation","follow_up_recovery"],
|
||||
"forbidden_claims":["fast 경고를 최종 미복구 판정으로 유지한다"]
|
||||
},
|
||||
{
|
||||
"case_id": "oas-g3-bench-002",
|
||||
"title_ko": "대립을 알아차렸지만 후속 확인이 빠진 부분 복구",
|
||||
"episode": {
|
||||
"episode_id":"oas-g3-episode-confrontation-partial",
|
||||
"detection_signals":[{"signal_id":"b002-deep","loop":"deep","status":"detected","rupture_type":"confrontation","confidence":0.90,"uncertainty":0.12,"observed_at_turn":3,"source_kind":"simulated_state","perspective":"client_simulation","evidence_refs":[{"ref_id":"b002-client-1","turn_index":1,"speaker":"client"}],"counterevidence":[]}],
|
||||
"recognized_at_turn":2,
|
||||
"recognition_evidence_refs":[{"ref_id":"b002-recognition","turn_index":2,"speaker":"learner"}],
|
||||
"repair_attempts":[{"attempt_id":"b002-repair","turn_index":2,"behaviors":["curiosity","impact_acknowledgement"],"client_response":"mixed","evidence_refs":[{"ref_id":"b002-repair-turn","turn_index":2,"speaker":"learner"}],"response_evidence_refs":[{"ref_id":"b002-response","turn_index":3,"speaker":"client"}],"counterevidence":["follow_up_not_observed"],"uncertainty":0.20}],
|
||||
"safety_signals":[]
|
||||
},
|
||||
"expected":{"detected":true,"rupture_type":"confrontation","final_status":"partial"},
|
||||
"critical":false,"tags":["partial"],"forbidden_claims":["혼합 반응을 완전 복구로 표시한다"]
|
||||
},
|
||||
{
|
||||
"case_id":"oas-g3-bench-003",
|
||||
"title_ko":"목표 불일치를 알아차리지 못함",
|
||||
"episode":{
|
||||
"episode_id":"oas-g3-episode-goal-mismatch-missed",
|
||||
"detection_signals":[{"signal_id":"b003-deep","loop":"deep","status":"detected","rupture_type":"goal_mismatch","confidence":0.94,"uncertainty":0.06,"observed_at_turn":3,"source_kind":"simulated_state","perspective":"client_simulation","evidence_refs":[{"ref_id":"b003-client-goal","turn_index":1,"speaker":"client"}],"counterevidence":[]}],
|
||||
"recognition_evidence_refs":[],"repair_attempts":[],"safety_signals":[]
|
||||
},
|
||||
"expected":{"detected":true,"rupture_type":"goal_mismatch","final_status":"missed"},
|
||||
"critical":true,"tags":["missed"],"forbidden_claims":["균열이 없었다고 주장한다"]
|
||||
},
|
||||
{
|
||||
"case_id":"oas-g3-bench-004",
|
||||
"title_ko":"과제 재합의와 확인으로 복구",
|
||||
"episode":{
|
||||
"episode_id":"oas-g3-episode-task-mismatch-resolved",
|
||||
"detection_signals":[{"signal_id":"b004-deep","loop":"deep","status":"detected","rupture_type":"task_mismatch","confidence":0.91,"uncertainty":0.09,"observed_at_turn":4,"source_kind":"simulated_state","perspective":"client_simulation","evidence_refs":[{"ref_id":"b004-client-task","turn_index":1,"speaker":"client"}],"counterevidence":[]}],
|
||||
"recognized_at_turn":2,"recognition_evidence_refs":[{"ref_id":"b004-recognition","turn_index":2,"speaker":"learner"}],
|
||||
"repair_attempts":[{"attempt_id":"b004-repair","turn_index":2,"behaviors":["curiosity","task_reagreement","follow_up_check"],"client_response":"explicit_alignment","evidence_refs":[{"ref_id":"b004-repair-turn","turn_index":2,"speaker":"learner"}],"response_evidence_refs":[{"ref_id":"b004-response","turn_index":3,"speaker":"client"}],"counterevidence":[],"uncertainty":0.06,"utterance_template_id":"magic-repair-v1"}],
|
||||
"safety_signals":[]
|
||||
},
|
||||
"expected":{"detected":true,"rupture_type":"task_mismatch","final_status":"resolved"},
|
||||
"critical":true,"tags":["memorized_phrase_control"],"forbidden_claims":["문구만으로 복구를 판정한다"]
|
||||
},
|
||||
{
|
||||
"case_id":"oas-g3-bench-005",
|
||||
"title_ko":"공감 실패의 영향을 인정하고 복구",
|
||||
"episode":{
|
||||
"episode_id":"oas-g3-episode-empathic-miss-resolved",
|
||||
"detection_signals":[{"signal_id":"b005-deep","loop":"deep","status":"detected","rupture_type":"empathic_miss","confidence":0.93,"uncertainty":0.07,"observed_at_turn":4,"source_kind":"simulated_state","perspective":"client_simulation","evidence_refs":[{"ref_id":"b005-client-miss","turn_index":1,"speaker":"client"}],"counterevidence":[]}],
|
||||
"recognized_at_turn":2,"recognition_evidence_refs":[{"ref_id":"b005-recognition","turn_index":2,"speaker":"learner"}],
|
||||
"repair_attempts":[{"attempt_id":"b005-repair","turn_index":2,"behaviors":["curiosity","impact_acknowledgement","follow_up_check"],"client_response":"engaged","evidence_refs":[{"ref_id":"b005-repair-turn","turn_index":2,"speaker":"learner"}],"response_evidence_refs":[{"ref_id":"b005-response","turn_index":3,"speaker":"client"}],"counterevidence":[],"uncertainty":0.08}],"safety_signals":[]
|
||||
},
|
||||
"expected":{"detected":true,"rupture_type":"empathic_miss","final_status":"resolved"},
|
||||
"critical":true,"tags":["resolved"],"forbidden_claims":["사과 문구만을 복구 근거로 쓴다"]
|
||||
},
|
||||
{
|
||||
"case_id":"oas-g3-bench-006",
|
||||
"title_ko":"문화적 의미를 물었지만 영향 확인이 덜 된 부분 복구",
|
||||
"episode":{
|
||||
"episode_id":"oas-g3-episode-cultural-miss-partial",
|
||||
"detection_signals":[{"signal_id":"b006-deep","loop":"deep","status":"detected","rupture_type":"cultural_miss","confidence":0.87,"uncertainty":0.16,"observed_at_turn":4,"source_kind":"simulated_state","perspective":"client_simulation","evidence_refs":[{"ref_id":"b006-client-context","turn_index":1,"speaker":"client"}],"counterevidence":["meaning_depends_on_context"]}],
|
||||
"recognized_at_turn":2,"recognition_evidence_refs":[{"ref_id":"b006-recognition","turn_index":2,"speaker":"learner"}],
|
||||
"repair_attempts":[{"attempt_id":"b006-repair","turn_index":2,"behaviors":["curiosity","impact_acknowledgement"],"client_response":"mixed","evidence_refs":[{"ref_id":"b006-repair-turn","turn_index":2,"speaker":"learner"}],"response_evidence_refs":[{"ref_id":"b006-response","turn_index":3,"speaker":"client"}],"counterevidence":["follow_up_not_observed"],"uncertainty":0.22}],"safety_signals":[]
|
||||
},
|
||||
"expected":{"detected":true,"rupture_type":"cultural_miss","final_status":"partial"},
|
||||
"critical":false,"tags":["context_sensitive"],"forbidden_claims":["문화 집단 속성을 원인으로 단정한다"]
|
||||
},
|
||||
{
|
||||
"case_id":"oas-g3-bench-007",
|
||||
"title_ko":"경계 긴장에 정형 문구만 사용하고 순응을 복구로 오인하지 않음",
|
||||
"episode":{
|
||||
"episode_id":"oas-g3-episode-boundary-gaming",
|
||||
"detection_signals":[{"signal_id":"b007-deep","loop":"deep","status":"detected","rupture_type":"boundary_tension","confidence":0.95,"uncertainty":0.05,"observed_at_turn":4,"source_kind":"simulated_state","perspective":"client_simulation","evidence_refs":[{"ref_id":"b007-client-boundary","turn_index":1,"speaker":"client"}],"counterevidence":[]}],
|
||||
"recognized_at_turn":2,"recognition_evidence_refs":[{"ref_id":"b007-recognition","turn_index":2,"speaker":"learner"}],
|
||||
"repair_attempts":[{"attempt_id":"b007-repair","turn_index":2,"behaviors":["naming"],"client_response":"compliance_only","evidence_refs":[{"ref_id":"b007-script","turn_index":2,"speaker":"learner"}],"response_evidence_refs":[{"ref_id":"b007-compliance","turn_index":3,"speaker":"client"}],"counterevidence":["client_agrees_without_personal_meaning"],"uncertainty":0.10,"utterance_template_id":"compliance-script-v1"}],
|
||||
"safety_signals":[{"safety_event_id":"b007-safety","risk_level":"moderate","escalated":true,"evidence_refs":[{"ref_id":"b007-safety-ref","turn_index":1,"speaker":"client"}]}]
|
||||
},
|
||||
"expected":{"detected":true,"rupture_type":"boundary_tension","final_status":"missed"},
|
||||
"critical":true,"tags":["judge_gaming","compliance_only"],"forbidden_claims":["순응 반응을 복구 증거로 합산한다","safety 신호로 균열 상태를 바꾼다"]
|
||||
},
|
||||
{
|
||||
"case_id":"oas-g3-bench-008",
|
||||
"title_ko":"성급한 조언을 멈추고 영향과 선택을 확인해 복구",
|
||||
"episode":{
|
||||
"episode_id":"oas-g3-episode-premature-advice-resolved",
|
||||
"detection_signals":[{"signal_id":"b008-deep","loop":"deep","status":"detected","rupture_type":"premature_advice","confidence":0.89,"uncertainty":0.11,"observed_at_turn":4,"source_kind":"simulated_state","perspective":"client_simulation","evidence_refs":[{"ref_id":"b008-client-advice","turn_index":1,"speaker":"client"}],"counterevidence":[]}],
|
||||
"recognized_at_turn":2,"recognition_evidence_refs":[{"ref_id":"b008-recognition","turn_index":2,"speaker":"learner"}],
|
||||
"repair_attempts":[{"attempt_id":"b008-repair","turn_index":2,"behaviors":["curiosity","impact_acknowledgement","follow_up_check"],"client_response":"engaged","evidence_refs":[{"ref_id":"b008-repair-turn","turn_index":2,"speaker":"learner"}],"response_evidence_refs":[{"ref_id":"b008-response","turn_index":3,"speaker":"client"}],"counterevidence":[],"uncertainty":0.10}],"safety_signals":[]
|
||||
},
|
||||
"expected":{"detected":true,"rupture_type":"premature_advice","final_status":"resolved"},
|
||||
"critical":false,"tags":["resolved"],"forbidden_claims":["조언 철회만으로 복구됐다고 한다"]
|
||||
},
|
||||
{
|
||||
"case_id":"oas-g3-bench-009",
|
||||
"title_ko":"과도한 자기노출 뒤 일부만 회복",
|
||||
"episode":{
|
||||
"episode_id":"oas-g3-episode-over-disclosure-partial",
|
||||
"detection_signals":[{"signal_id":"b009-deep","loop":"deep","status":"detected","rupture_type":"over_disclosure","confidence":0.90,"uncertainty":0.10,"observed_at_turn":4,"source_kind":"simulated_state","perspective":"client_simulation","evidence_refs":[{"ref_id":"b009-client-shift","turn_index":1,"speaker":"client"}],"counterevidence":[]}],
|
||||
"recognized_at_turn":2,"recognition_evidence_refs":[{"ref_id":"b009-recognition","turn_index":2,"speaker":"learner"}],
|
||||
"repair_attempts":[{"attempt_id":"b009-repair","turn_index":2,"behaviors":["curiosity","impact_acknowledgement"],"client_response":"mixed","evidence_refs":[{"ref_id":"b009-repair-turn","turn_index":2,"speaker":"learner"}],"response_evidence_refs":[{"ref_id":"b009-response","turn_index":3,"speaker":"client"}],"counterevidence":["follow_up_not_observed"],"uncertainty":0.18}],"safety_signals":[]
|
||||
},
|
||||
"expected":{"detected":true,"rupture_type":"over_disclosure","final_status":"partial"},
|
||||
"critical":false,"tags":["partial"],"forbidden_claims":["주제 전환만을 완전 복구로 본다"]
|
||||
},
|
||||
{
|
||||
"case_id":"oas-g3-bench-010",
|
||||
"title_ko":"불편함을 표현했지만 균열 근거는 유지되지 않음",
|
||||
"episode":{
|
||||
"episode_id":"oas-g3-episode-no-rupture",
|
||||
"detection_signals":[
|
||||
{"signal_id":"b010-fast","loop":"fast","status":"detected","rupture_type":"confrontation","confidence":0.62,"uncertainty":0.38,"observed_at_turn":1,"source_kind":"simulated_state","perspective":"client_simulation","evidence_refs":[{"ref_id":"b010-client-1","turn_index":1,"speaker":"client"}],"counterevidence":["client_remains_engaged"]},
|
||||
{"signal_id":"b010-deep","loop":"deep","status":"not_detected","uncertainty":0.14,"observed_at_turn":4,"source_kind":"simulated_state","perspective":"client_simulation","evidence_refs":[{"ref_id":"b010-client-3","turn_index":3,"speaker":"client"}],"counterevidence":["explicit_collaboration_continues"]}
|
||||
],
|
||||
"fast_warning":{"warning_id":"b010-warning","signal_id":"b010-fast","provisional_status":"partial","emitted_at_turn":1},
|
||||
"recognition_evidence_refs":[],"repair_attempts":[],"safety_signals":[]
|
||||
},
|
||||
"expected":{"detected":false,"rupture_type":null,"final_status":"not_applicable"},
|
||||
"critical":false,"tags":["false_positive_control","deep_dismissal"],"forbidden_claims":["불편 표현을 모두 균열로 확정한다"]
|
||||
},
|
||||
{
|
||||
"case_id":"oas-g3-bench-011",
|
||||
"title_ko":"암기한 동일 문구가 목표 재합의 없이 실패",
|
||||
"episode":{
|
||||
"episode_id":"oas-g3-episode-memorized-phrase-trap",
|
||||
"detection_signals":[{"signal_id":"b011-deep","loop":"deep","status":"detected","rupture_type":"goal_mismatch","confidence":0.96,"uncertainty":0.04,"observed_at_turn":4,"source_kind":"simulated_state","perspective":"client_simulation","evidence_refs":[{"ref_id":"b011-client-goal","turn_index":1,"speaker":"client"}],"counterevidence":[]}],
|
||||
"recognized_at_turn":2,"recognition_evidence_refs":[{"ref_id":"b011-recognition","turn_index":2,"speaker":"learner"}],
|
||||
"repair_attempts":[{"attempt_id":"b011-repair","turn_index":2,"behaviors":["curiosity"],"client_response":"compliance_only","evidence_refs":[{"ref_id":"b011-script","turn_index":2,"speaker":"learner"}],"response_evidence_refs":[{"ref_id":"b011-compliance","turn_index":3,"speaker":"client"}],"counterevidence":["goal_was_not_renegotiated","client_only_complied"],"uncertainty":0.06,"utterance_template_id":"magic-repair-v1"}],"safety_signals":[]
|
||||
},
|
||||
"expected":{"detected":true,"rupture_type":"goal_mismatch","final_status":"missed"},
|
||||
"critical":true,"tags":["judge_gaming","memorized_phrase_trap","compliance_only"],"forbidden_claims":["동일 복구 문구를 맥락과 무관하게 성공 처리한다"]
|
||||
}
|
||||
]
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue