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
96
apps/api/app/data/calibration_transfer_benchmark_g5.v1.json
Normal file
96
apps/api/app/data/calibration_transfer_benchmark_g5.v1.json
Normal file
|
|
@ -0,0 +1,96 @@
|
|||
{
|
||||
"schema_version": "vignette.calibration-transfer-benchmark.v1",
|
||||
"version": "1.0.0",
|
||||
"data_classification": "synthetic_educational",
|
||||
"clinical_claim_allowed": false,
|
||||
"cases": [
|
||||
{
|
||||
"case_id": "oas-g5-bench-001",
|
||||
"title_ko": "외부평가 전 잠금과 반복 블록 자기보정",
|
||||
"tags": ["post_reveal_contamination", "calibration_improvement"],
|
||||
"calibration_blocks": [
|
||||
{
|
||||
"block_sequence": 1,
|
||||
"prediction_history": {"lock_id":"oas-g5-lock-a1","revisions":[{"prediction_id":"oas-g5-prediction-a1","competency_id":"competency.empathic-check","practice_block_id":"oas-g5-block-a1","scenario_variant_id":"cal-a1","phrase_family_id":"cal-phrase-a1","predicted_success_probability":0.95,"confidence":0.95,"revision_no":1,"supersedes_prediction_id":null,"recorded_sequence":1,"revision_reason":"외부평가 전 최초 예측"}],"locked_sequence":1,"external_reveal_sequence":2},
|
||||
"observation": {"observation_id":"oas-g5-observation-a1","competency_id":"competency.empathic-check","practice_block_id":"oas-g5-block-a1","scenario_variant_id":"cal-a1","phrase_family_id":"cal-phrase-a1","status":"failed","source_kind":"human_rated","perspective":"supervisor_human","model_run_id":null,"uncertainty":0.1,"evidence_refs":["cal-a1-turn"],"counterevidence":["impact_check_missing"],"revealed_sequence":2}
|
||||
},
|
||||
{
|
||||
"block_sequence": 2,
|
||||
"prediction_history": {"lock_id":"oas-g5-lock-a2","revisions":[{"prediction_id":"oas-g5-prediction-a2","competency_id":"competency.empathic-check","practice_block_id":"oas-g5-block-a2","scenario_variant_id":"cal-a2","phrase_family_id":"cal-phrase-a2","predicted_success_probability":0.85,"confidence":0.9,"revision_no":1,"supersedes_prediction_id":null,"recorded_sequence":3,"revision_reason":"외부평가 전 최초 예측"}],"locked_sequence":3,"external_reveal_sequence":4},
|
||||
"observation": {"observation_id":"oas-g5-observation-a2","competency_id":"competency.empathic-check","practice_block_id":"oas-g5-block-a2","scenario_variant_id":"cal-a2","phrase_family_id":"cal-phrase-a2","status":"failed","source_kind":"human_rated","perspective":"supervisor_human","model_run_id":null,"uncertainty":0.1,"evidence_refs":["cal-a2-turn"],"counterevidence":["client_withdrew"],"revealed_sequence":4}
|
||||
},
|
||||
{
|
||||
"block_sequence": 3,
|
||||
"prediction_history": {"lock_id":"oas-g5-lock-a3","revisions":[{"prediction_id":"oas-g5-prediction-a3","competency_id":"competency.empathic-check","practice_block_id":"oas-g5-block-a3","scenario_variant_id":"cal-a3","phrase_family_id":"cal-phrase-a3","predicted_success_probability":0.8,"confidence":0.85,"revision_no":1,"supersedes_prediction_id":null,"recorded_sequence":5,"revision_reason":"외부평가 전 최초 예측"}],"locked_sequence":5,"external_reveal_sequence":6},
|
||||
"observation": {"observation_id":"oas-g5-observation-a3","competency_id":"competency.empathic-check","practice_block_id":"oas-g5-block-a3","scenario_variant_id":"cal-a3","phrase_family_id":"cal-phrase-a3","status":"passed","source_kind":"human_rated","perspective":"supervisor_human","model_run_id":null,"uncertainty":0.1,"evidence_refs":["cal-a3-turn"],"counterevidence":[],"revealed_sequence":6}
|
||||
},
|
||||
{
|
||||
"block_sequence": 4,
|
||||
"prediction_history": {"lock_id":"oas-g5-lock-a4","revisions":[{"prediction_id":"oas-g5-prediction-a4","competency_id":"competency.empathic-check","practice_block_id":"oas-g5-block-a4","scenario_variant_id":"cal-a4","phrase_family_id":"cal-phrase-a4","predicted_success_probability":0.35,"confidence":0.7,"revision_no":1,"supersedes_prediction_id":null,"recorded_sequence":7,"revision_reason":"반대근거를 반영한 사전 예측"}],"locked_sequence":7,"external_reveal_sequence":8},
|
||||
"observation": {"observation_id":"oas-g5-observation-a4","competency_id":"competency.empathic-check","practice_block_id":"oas-g5-block-a4","scenario_variant_id":"cal-a4","phrase_family_id":"cal-phrase-a4","status":"failed","source_kind":"human_rated","perspective":"supervisor_human","model_run_id":null,"uncertainty":0.1,"evidence_refs":["cal-a4-turn"],"counterevidence":["premature_advice"],"revealed_sequence":8}
|
||||
},
|
||||
{
|
||||
"block_sequence": 5,
|
||||
"prediction_history": {"lock_id":"oas-g5-lock-a5","revisions":[{"prediction_id":"oas-g5-prediction-a5","competency_id":"competency.empathic-check","practice_block_id":"oas-g5-block-a5","scenario_variant_id":"cal-a5","phrase_family_id":"cal-phrase-a5","predicted_success_probability":0.75,"confidence":0.75,"revision_no":1,"supersedes_prediction_id":null,"recorded_sequence":9,"revision_reason":"행동 근거를 반영한 사전 예측"}],"locked_sequence":9,"external_reveal_sequence":10},
|
||||
"observation": {"observation_id":"oas-g5-observation-a5","competency_id":"competency.empathic-check","practice_block_id":"oas-g5-block-a5","scenario_variant_id":"cal-a5","phrase_family_id":"cal-phrase-a5","status":"passed","source_kind":"human_rated","perspective":"supervisor_human","model_run_id":null,"uncertainty":0.1,"evidence_refs":["cal-a5-turn"],"counterevidence":[],"revealed_sequence":10}
|
||||
},
|
||||
{
|
||||
"block_sequence": 6,
|
||||
"prediction_history": {"lock_id":"oas-g5-lock-a6","revisions":[{"prediction_id":"oas-g5-prediction-a6","competency_id":"competency.empathic-check","practice_block_id":"oas-g5-block-a6","scenario_variant_id":"cal-a6","phrase_family_id":"cal-phrase-a6","predicted_success_probability":0.8,"confidence":0.8,"revision_no":1,"supersedes_prediction_id":null,"recorded_sequence":11,"revision_reason":"행동과 반응 근거를 반영한 사전 예측"}],"locked_sequence":11,"external_reveal_sequence":12},
|
||||
"observation": {"observation_id":"oas-g5-observation-a6","competency_id":"competency.empathic-check","practice_block_id":"oas-g5-block-a6","scenario_variant_id":"cal-a6","phrase_family_id":"cal-phrase-a6","status":"passed","source_kind":"human_rated","perspective":"supervisor_human","model_run_id":null,"uncertainty":0.1,"evidence_refs":["cal-a6-turn"],"counterevidence":[],"revealed_sequence":12}
|
||||
}
|
||||
],
|
||||
"expected": {"calibration_improved":{"competency.empathic-check":true},"transfer_verified":{},"drift_status":{}}
|
||||
},
|
||||
{
|
||||
"case_id": "oas-g5-bench-002",
|
||||
"title_ko": "새 문구와 새 관계 맥락의 전이 성공",
|
||||
"tags": ["unseen_transfer_verified"],
|
||||
"transfer_suite": {
|
||||
"suite_id": "oas-g5-suite-true-transfer",
|
||||
"training_phrase_family_ids": ["training-empathy-phrase"],
|
||||
"trials": [
|
||||
{"trial_id":"oas-g5-transfer-true-1","competency_id":"competency.rupture-repair","scenario_variant_id":"unseen-1","variation":{"context_variant":"학업 갈등","relationship_style":"withdrawn","difficulty_level":3,"expression_variant":"간접 거절","synthetic_subgroup":"synthetic-a","scenario_family_id":"family-school","phrase_family_id":"novel-1"},"status":"passed","uncertainty":0.2,"evidence_refs":["true-1-behavior","true-1-response"],"counterevidence":[]},
|
||||
{"trial_id":"oas-g5-transfer-true-2","competency_id":"competency.rupture-repair","scenario_variant_id":"unseen-2","variation":{"context_variant":"가족 갈등","relationship_style":"confrontational","difficulty_level":4,"expression_variant":"직접 항의","synthetic_subgroup":"synthetic-b","scenario_family_id":"family-home","phrase_family_id":"novel-2"},"status":"passed","uncertainty":0.2,"evidence_refs":["true-2-behavior","true-2-response"],"counterevidence":[]},
|
||||
{"trial_id":"oas-g5-transfer-true-3","competency_id":"competency.rupture-repair","scenario_variant_id":"unseen-3","variation":{"context_variant":"학업 갈등","relationship_style":"confrontational","difficulty_level":4,"expression_variant":"침묵 뒤 항의","synthetic_subgroup":"synthetic-a","scenario_family_id":"family-school","phrase_family_id":"novel-3"},"status":"passed","uncertainty":0.2,"evidence_refs":["true-3-behavior","true-3-response"],"counterevidence":[]},
|
||||
{"trial_id":"oas-g5-transfer-true-4","competency_id":"competency.rupture-repair","scenario_variant_id":"unseen-4","variation":{"context_variant":"가족 갈등","relationship_style":"withdrawn","difficulty_level":3,"expression_variant":"주제 전환","synthetic_subgroup":"synthetic-b","scenario_family_id":"family-home","phrase_family_id":"novel-4"},"status":"passed","uncertainty":0.2,"evidence_refs":["true-4-behavior","true-4-response"],"counterevidence":[]}
|
||||
]
|
||||
},
|
||||
"expected": {"calibration_improved":{},"transfer_verified":{"competency.rupture-repair":true},"drift_status":{}}
|
||||
},
|
||||
{
|
||||
"case_id": "oas-g5-bench-003",
|
||||
"title_ko": "성공처럼 보이는 문장 암기 전이 차단",
|
||||
"tags": ["memorized_phrase_transfer"],
|
||||
"transfer_suite": {
|
||||
"suite_id": "oas-g5-suite-memorized-transfer",
|
||||
"training_phrase_family_ids": ["memorized-repair-phrase"],
|
||||
"trials": [
|
||||
{"trial_id":"oas-g5-transfer-mem-1","competency_id":"competency.rupture-repair","scenario_variant_id":"mem-1","variation":{"context_variant":"학업 갈등","relationship_style":"withdrawn","difficulty_level":3,"expression_variant":"간접 거절","synthetic_subgroup":"synthetic-a","scenario_family_id":"family-school","phrase_family_id":"memorized-repair-phrase"},"status":"passed","uncertainty":0.2,"evidence_refs":["mem-1"],"counterevidence":[]},
|
||||
{"trial_id":"oas-g5-transfer-mem-2","competency_id":"competency.rupture-repair","scenario_variant_id":"mem-2","variation":{"context_variant":"가족 갈등","relationship_style":"confrontational","difficulty_level":4,"expression_variant":"직접 항의","synthetic_subgroup":"synthetic-b","scenario_family_id":"family-home","phrase_family_id":"memorized-repair-phrase"},"status":"passed","uncertainty":0.2,"evidence_refs":["mem-2"],"counterevidence":[]},
|
||||
{"trial_id":"oas-g5-transfer-mem-3","competency_id":"competency.rupture-repair","scenario_variant_id":"mem-3","variation":{"context_variant":"학업 갈등","relationship_style":"confrontational","difficulty_level":4,"expression_variant":"침묵 뒤 항의","synthetic_subgroup":"synthetic-a","scenario_family_id":"family-school","phrase_family_id":"memorized-repair-phrase"},"status":"passed","uncertainty":0.2,"evidence_refs":["mem-3"],"counterevidence":[]},
|
||||
{"trial_id":"oas-g5-transfer-mem-4","competency_id":"competency.rupture-repair","scenario_variant_id":"mem-4","variation":{"context_variant":"가족 갈등","relationship_style":"withdrawn","difficulty_level":3,"expression_variant":"주제 전환","synthetic_subgroup":"synthetic-b","scenario_family_id":"family-home","phrase_family_id":"memorized-repair-phrase"},"status":"passed","uncertainty":0.2,"evidence_refs":["mem-4"],"counterevidence":[]}
|
||||
]
|
||||
},
|
||||
"expected": {"calibration_improved":{},"transfer_verified":{"competency.rupture-repair":false},"drift_status":{}}
|
||||
},
|
||||
{
|
||||
"case_id": "oas-g5-bench-004",
|
||||
"title_ko": "충분한 합성 subgroup 표본의 평가 드리프트 신호",
|
||||
"tags": ["synthetic_subgroup_drift"],
|
||||
"transfer_suite": {
|
||||
"suite_id": "oas-g5-suite-subgroup-drift",
|
||||
"training_phrase_family_ids": ["training-open-question"],
|
||||
"trials": [
|
||||
{"trial_id":"oas-g5-transfer-drift-a1","competency_id":"competency.open-question","scenario_variant_id":"drift-a1","variation":{"context_variant":"학업","relationship_style":"collaborative","difficulty_level":2,"expression_variant":"서술형","synthetic_subgroup":"synthetic-a","scenario_family_id":"family-school","phrase_family_id":"drift-a1"},"status":"passed","uncertainty":0.2,"evidence_refs":["drift-a1"],"counterevidence":[]},
|
||||
{"trial_id":"oas-g5-transfer-drift-a2","competency_id":"competency.open-question","scenario_variant_id":"drift-a2","variation":{"context_variant":"가족","relationship_style":"ambivalent","difficulty_level":4,"expression_variant":"우회형","synthetic_subgroup":"synthetic-a","scenario_family_id":"family-home","phrase_family_id":"drift-a2"},"status":"passed","uncertainty":0.2,"evidence_refs":["drift-a2"],"counterevidence":[]},
|
||||
{"trial_id":"oas-g5-transfer-drift-a3","competency_id":"competency.open-question","scenario_variant_id":"drift-a3","variation":{"context_variant":"학업","relationship_style":"ambivalent","difficulty_level":4,"expression_variant":"단답형","synthetic_subgroup":"synthetic-a","scenario_family_id":"family-school","phrase_family_id":"drift-a3"},"status":"passed","uncertainty":0.2,"evidence_refs":["drift-a3"],"counterevidence":[]},
|
||||
{"trial_id":"oas-g5-transfer-drift-b1","competency_id":"competency.open-question","scenario_variant_id":"drift-b1","variation":{"context_variant":"가족","relationship_style":"collaborative","difficulty_level":2,"expression_variant":"서술형 변주","synthetic_subgroup":"synthetic-b","scenario_family_id":"family-home","phrase_family_id":"drift-b1"},"status":"passed","uncertainty":0.2,"evidence_refs":["drift-b1"],"counterevidence":[]},
|
||||
{"trial_id":"oas-g5-transfer-drift-b2","competency_id":"competency.open-question","scenario_variant_id":"drift-b2","variation":{"context_variant":"학업","relationship_style":"ambivalent","difficulty_level":4,"expression_variant":"우회형 변주","synthetic_subgroup":"synthetic-b","scenario_family_id":"family-school","phrase_family_id":"drift-b2"},"status":"failed","uncertainty":0.2,"evidence_refs":["drift-b2"],"counterevidence":["closed_question" ]},
|
||||
{"trial_id":"oas-g5-transfer-drift-b3","competency_id":"competency.open-question","scenario_variant_id":"drift-b3","variation":{"context_variant":"가족","relationship_style":"collaborative","difficulty_level":2,"expression_variant":"단답형 변주","synthetic_subgroup":"synthetic-b","scenario_family_id":"family-home","phrase_family_id":"drift-b3"},"status":"failed","uncertainty":0.2,"evidence_refs":["drift-b3"],"counterevidence":["leading_question"]}
|
||||
]
|
||||
},
|
||||
"expected": {"calibration_improved":{},"transfer_verified":{"competency.open-question":false},"drift_status":{"competency.open-question":"drift_flagged"}}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
"job_key": "oas-g8-job-repo-synthetic-rupture-v1",
|
||||
"data_classification": "synthetic_replay_red_team_coverage_drift",
|
||||
"content_kind": "rupture",
|
||||
"difficulty_level": 3,
|
||||
"variant_count": 3,
|
||||
"prompt_version": "1.0.0",
|
||||
"trigger_kind": "scheduled_repo_source",
|
||||
"source_packs": [
|
||||
{
|
||||
"artifact": {
|
||||
"source_id": "oas-g8-source-repo-synthetic-rupture-v1",
|
||||
"version": "1.0.0",
|
||||
"content_sha256": "706076b5ac6ab3259e000f65087dcc29c939e6fe82b14d7210923a3c51a30651",
|
||||
"provenance_uri": "repo://apps/api/app/data/continuous_improvement/synthetic_source_pack.v1.json",
|
||||
"usage_status": "approved",
|
||||
"citation_label": "Repository-approved synthetic rupture training source"
|
||||
},
|
||||
"content": "Training design source for a fully synthetic counseling simulation. The learner should notice a rupture when a fictional client feels rushed after the counselor changes topics too quickly. The exercise should reward naming the interaction, inviting correction, acknowledging impact without defensiveness, and collaboratively choosing the next focus. Do not include diagnosis, treatment claims, real people, organizations, contact details, or numeric identifiers."
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
"job_key": "oas-g8-job-repo-synthetic-rupture-v2",
|
||||
"data_classification": "synthetic_replay_red_team_coverage_drift",
|
||||
"content_kind": "rupture",
|
||||
"difficulty_level": 3,
|
||||
"variant_count": 3,
|
||||
"prompt_version": "1.1.0",
|
||||
"trigger_kind": "scheduled_repo_source",
|
||||
"source_packs": [
|
||||
{
|
||||
"artifact": {
|
||||
"source_id": "oas-g8-source-repo-synthetic-rupture-v2",
|
||||
"version": "1.1.0",
|
||||
"content_sha256": "706076b5ac6ab3259e000f65087dcc29c939e6fe82b14d7210923a3c51a30651",
|
||||
"provenance_uri": "repo://apps/api/app/data/continuous_improvement/synthetic_source_pack.v2.json",
|
||||
"usage_status": "approved",
|
||||
"citation_label": "Repository-approved synthetic rupture training source"
|
||||
},
|
||||
"content": "Training design source for a fully synthetic counseling simulation. The learner should notice a rupture when a fictional client feels rushed after the counselor changes topics too quickly. The exercise should reward naming the interaction, inviting correction, acknowledging impact without defensiveness, and collaboratively choosing the next focus. Do not include diagnosis, treatment claims, real people, organizations, contact details, or numeric identifiers."
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
"job_key": "oas-g8-job-repo-synthetic-rupture-v3",
|
||||
"data_classification": "synthetic_replay_red_team_coverage_drift",
|
||||
"content_kind": "rupture",
|
||||
"difficulty_level": 3,
|
||||
"variant_count": 3,
|
||||
"prompt_version": "1.2.0",
|
||||
"trigger_kind": "scheduled_repo_source",
|
||||
"source_packs": [
|
||||
{
|
||||
"artifact": {
|
||||
"source_id": "oas-g8-source-repo-synthetic-rupture-v3",
|
||||
"version": "1.2.0",
|
||||
"content_sha256": "706076b5ac6ab3259e000f65087dcc29c939e6fe82b14d7210923a3c51a30651",
|
||||
"provenance_uri": "repo://apps/api/app/data/continuous_improvement/synthetic_source_pack.v3.json",
|
||||
"usage_status": "approved",
|
||||
"citation_label": "Repository-approved synthetic rupture training source"
|
||||
},
|
||||
"content": "Training design source for a fully synthetic counseling simulation. The learner should notice a rupture when a fictional client feels rushed after the counselor changes topics too quickly. The exercise should reward naming the interaction, inviting correction, acknowledging impact without defensiveness, and collaboratively choosing the next focus. Do not include diagnosis, treatment claims, real people, organizations, contact details, or numeric identifiers."
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
"job_key": "oas-g8-job-repo-synthetic-rupture-v4",
|
||||
"data_classification": "synthetic_replay_red_team_coverage_drift",
|
||||
"content_kind": "rupture",
|
||||
"difficulty_level": 3,
|
||||
"variant_count": 3,
|
||||
"prompt_version": "1.3.0",
|
||||
"trigger_kind": "scheduled_repo_source",
|
||||
"source_packs": [
|
||||
{
|
||||
"artifact": {
|
||||
"source_id": "oas-g8-source-repo-synthetic-rupture-v4",
|
||||
"version": "1.3.0",
|
||||
"content_sha256": "706076b5ac6ab3259e000f65087dcc29c939e6fe82b14d7210923a3c51a30651",
|
||||
"provenance_uri": "repo://apps/api/app/data/continuous_improvement/synthetic_source_pack.v4.json",
|
||||
"usage_status": "approved",
|
||||
"citation_label": "Repository-approved synthetic rupture training source"
|
||||
},
|
||||
"content": "Training design source for a fully synthetic counseling simulation. The learner should notice a rupture when a fictional client feels rushed after the counselor changes topics too quickly. The exercise should reward naming the interaction, inviting correction, acknowledging impact without defensiveness, and collaboratively choosing the next focus. Do not include diagnosis, treatment claims, real people, organizations, contact details, or numeric identifiers."
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
"job_key": "oas-g8-job-repo-synthetic-rupture-v5",
|
||||
"data_classification": "synthetic_replay_red_team_coverage_drift",
|
||||
"content_kind": "rupture",
|
||||
"difficulty_level": 3,
|
||||
"variant_count": 3,
|
||||
"prompt_version": "1.4.0",
|
||||
"trigger_kind": "scheduled_repo_source",
|
||||
"source_packs": [
|
||||
{
|
||||
"artifact": {
|
||||
"source_id": "oas-g8-source-repo-synthetic-rupture-v5",
|
||||
"version": "1.4.0",
|
||||
"content_sha256": "706076b5ac6ab3259e000f65087dcc29c939e6fe82b14d7210923a3c51a30651",
|
||||
"provenance_uri": "repo://apps/api/app/data/continuous_improvement/synthetic_source_pack.v5.json",
|
||||
"usage_status": "approved",
|
||||
"citation_label": "Repository-approved synthetic rupture training source"
|
||||
},
|
||||
"content": "Training design source for a fully synthetic counseling simulation. The learner should notice a rupture when a fictional client feels rushed after the counselor changes topics too quickly. The exercise should reward naming the interaction, inviting correction, acknowledging impact without defensiveness, and collaboratively choosing the next focus. Do not include diagnosis, treatment claims, real people, organizations, contact details, or numeric identifiers."
|
||||
}
|
||||
]
|
||||
}
|
||||
738
apps/api/app/data/deliberate_practice_benchmark_g4.v1.json
Normal file
738
apps/api/app/data/deliberate_practice_benchmark_g4.v1.json
Normal file
|
|
@ -0,0 +1,738 @@
|
|||
{
|
||||
"schema_version": "vignette.deliberate-practice-benchmark.v1",
|
||||
"data_classification": "synthetic_educational",
|
||||
"clinical_claim_allowed": false,
|
||||
"version": "1.0.0",
|
||||
"cases": [
|
||||
{
|
||||
"case_id": "oas-g4-bench-001",
|
||||
"title_ko": "자기 성공 주장만으로 보상을 얻으려는 시도",
|
||||
"coaching_cards": [
|
||||
{
|
||||
"card_id": "oas-g4-card-reward-claim",
|
||||
"scene_id": "scene-reward-claim",
|
||||
"coach_claim": "내담자의 핵심 정서를 반영한 뒤 반응을 확인하는 행동을 다시 연습한다.",
|
||||
"evidence_refs": [
|
||||
{
|
||||
"ref_id": "b001-card-scene",
|
||||
"scene_id": "scene-reward-claim",
|
||||
"turn_index": 4,
|
||||
"actor": "client",
|
||||
"kind": "scene_context"
|
||||
}
|
||||
],
|
||||
"source_refs": ["source-pack:micro-skill-reflection:v1"],
|
||||
"uncertainty": 0.2,
|
||||
"counterevidence": ["learner_self_report_alone_is_not_performance_evidence"],
|
||||
"targets": [
|
||||
{
|
||||
"prescription_id": "oas-g4-practice-reward-replay",
|
||||
"competency_id": "competency.empathy.reflection",
|
||||
"criterion_id": "criterion.reflect-and-check",
|
||||
"observable_behavior": "핵심 정서를 한 문장으로 반영하고 내담자에게 맞는지 확인한다.",
|
||||
"activity": {
|
||||
"mode": "replay",
|
||||
"scenario_variant_id": "variant-reward-familiar",
|
||||
"scenario_novelty": "familiar",
|
||||
"difficulty_level": 1,
|
||||
"pause_at_evidence_ref": "b001-card-scene"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"graph": {
|
||||
"definitions": [
|
||||
{
|
||||
"competency_id": "competency.empathy.reflection",
|
||||
"label_ko": "정서 반영과 확인",
|
||||
"description": "내담자의 정서를 반영하고 실제 수용 여부를 확인하는 미세기술이다.",
|
||||
"prerequisite_ids": []
|
||||
}
|
||||
],
|
||||
"states": [
|
||||
{
|
||||
"competency_id": "competency.empathy.reflection",
|
||||
"band": "unassessed",
|
||||
"forgetting_risk": 0.72,
|
||||
"uncertainty": 1.0,
|
||||
"attempt_count": 0,
|
||||
"familiar_demonstrations": 0,
|
||||
"unseen_transfer_demonstrations": 0,
|
||||
"highest_familiar_difficulty": 0,
|
||||
"evidence_refs": [],
|
||||
"counterevidence": []
|
||||
}
|
||||
]
|
||||
},
|
||||
"episodes": [
|
||||
{
|
||||
"episode_id": "oas-g4-episode-reward-claim",
|
||||
"prescription_id": "oas-g4-practice-reward-replay",
|
||||
"attempts": [
|
||||
{
|
||||
"attempt_id": "oas-g4-attempt-reward-claim-1",
|
||||
"prescription_id": "oas-g4-practice-reward-replay",
|
||||
"competency_id": "competency.empathy.reflection",
|
||||
"sequence_no": 1,
|
||||
"scenario_variant_id": "variant-reward-familiar",
|
||||
"scenario_novelty": "familiar",
|
||||
"difficulty_level": 1,
|
||||
"criterion": {
|
||||
"criterion_id": "criterion.reflect-and-check",
|
||||
"status": "not_observed",
|
||||
"source_kind": "observed_runtime",
|
||||
"perspective": "runtime_observation",
|
||||
"evidence_refs": [],
|
||||
"counterevidence": ["question_changed_topic_without_reflection"],
|
||||
"uncertainty": 0.2
|
||||
},
|
||||
"client_response": "compliance_only",
|
||||
"evidence_refs": [
|
||||
{
|
||||
"ref_id": "b001-learner-1",
|
||||
"scene_id": "scene-reward-claim",
|
||||
"turn_index": 5,
|
||||
"actor": "learner",
|
||||
"kind": "learner_behavior"
|
||||
},
|
||||
{
|
||||
"ref_id": "b001-client-1",
|
||||
"scene_id": "scene-reward-claim",
|
||||
"turn_index": 6,
|
||||
"actor": "client",
|
||||
"kind": "client_response"
|
||||
}
|
||||
],
|
||||
"uncertainty": 0.2,
|
||||
"counterevidence": ["no_observed_client_impact"],
|
||||
"utterance_template_id": "topic-shift-v1",
|
||||
"learner_claimed_success": true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"expected": {
|
||||
"episode_progress": ["practicing"],
|
||||
"final_competency_id": "competency.empathy.reflection",
|
||||
"final_band": "fragile",
|
||||
"selected_prescription_id": "oas-g4-practice-reward-replay"
|
||||
},
|
||||
"tags": ["reward_hacking"],
|
||||
"forbidden_claims": ["자기 성공 주장이나 보상 신호만으로 역량이 향상되었다고 단정하지 않는다."]
|
||||
},
|
||||
{
|
||||
"case_id": "oas-g4-bench-002",
|
||||
"title_ko": "이미 성공한 쉬운 장면 반복 대신 난이도 사다리 선택",
|
||||
"coaching_cards": [
|
||||
{
|
||||
"card_id": "oas-g4-card-easy-repeat",
|
||||
"scene_id": "scene-easy-repeat",
|
||||
"coach_claim": "익숙한 확인 질문 반복을 중단하고 표현과 저항이 달라지는 난이도 사다리로 이동한다.",
|
||||
"evidence_refs": [
|
||||
{
|
||||
"ref_id": "b002-card-scene",
|
||||
"scene_id": "scene-easy-repeat",
|
||||
"turn_index": 8,
|
||||
"actor": "observer",
|
||||
"kind": "evaluator_decision"
|
||||
}
|
||||
],
|
||||
"source_refs": ["source-pack:graded-practice:v1"],
|
||||
"uncertainty": 0.18,
|
||||
"counterevidence": ["three_familiar_demonstrations_do_not_prove_transfer"],
|
||||
"targets": [
|
||||
{
|
||||
"prescription_id": "oas-g4-practice-easy-replay",
|
||||
"competency_id": "competency.goal.collaboration",
|
||||
"criterion_id": "criterion.goal-check-familiar",
|
||||
"observable_behavior": "익숙한 장면에서 목표가 내담자에게 맞는지 한 번 확인한다.",
|
||||
"activity": {
|
||||
"mode": "replay",
|
||||
"scenario_variant_id": "variant-goal-easy",
|
||||
"scenario_novelty": "familiar",
|
||||
"difficulty_level": 1,
|
||||
"pause_at_evidence_ref": "b002-card-scene"
|
||||
}
|
||||
},
|
||||
{
|
||||
"prescription_id": "oas-g4-practice-goal-ladder",
|
||||
"competency_id": "competency.goal.collaboration",
|
||||
"criterion_id": "criterion.goal-check-adaptive",
|
||||
"observable_behavior": "저항 표현이 달라져도 내담자의 언어로 공동 목표를 다시 합의한다.",
|
||||
"activity": {
|
||||
"mode": "difficulty_ladder",
|
||||
"scenario_variant_id": "variant-goal-transfer",
|
||||
"scenario_novelty": "unseen_transfer",
|
||||
"difficulty_level": 4,
|
||||
"steps": [
|
||||
{
|
||||
"level": 2,
|
||||
"variation": "목표가 모호하지만 협조적인 익숙한 내담자",
|
||||
"scenario_variant_id": "variant-goal-medium",
|
||||
"scenario_novelty": "familiar"
|
||||
},
|
||||
{
|
||||
"level": 4,
|
||||
"variation": "상담자 목표를 거부하는 새로운 관계 스타일의 내담자",
|
||||
"scenario_variant_id": "variant-goal-transfer",
|
||||
"scenario_novelty": "unseen_transfer"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"graph": {
|
||||
"definitions": [
|
||||
{
|
||||
"competency_id": "competency.goal.collaboration",
|
||||
"label_ko": "공동 목표 합의",
|
||||
"description": "상담자 목표가 아니라 내담자와 공동으로 회기 목표를 합의한다.",
|
||||
"prerequisite_ids": []
|
||||
}
|
||||
],
|
||||
"states": [
|
||||
{
|
||||
"competency_id": "competency.goal.collaboration",
|
||||
"band": "consistent_local",
|
||||
"forgetting_risk": 0.81,
|
||||
"uncertainty": 0.22,
|
||||
"attempt_count": 3,
|
||||
"familiar_demonstrations": 3,
|
||||
"unseen_transfer_demonstrations": 0,
|
||||
"highest_familiar_difficulty": 2,
|
||||
"evidence_refs": [
|
||||
{
|
||||
"ref_id": "b002-history",
|
||||
"scene_id": "scene-easy-repeat",
|
||||
"turn_index": 7,
|
||||
"actor": "observer",
|
||||
"kind": "evaluator_decision"
|
||||
}
|
||||
],
|
||||
"counterevidence": ["unseen_transfer_not_verified"]
|
||||
}
|
||||
]
|
||||
},
|
||||
"episodes": [],
|
||||
"expected": {
|
||||
"episode_progress": [],
|
||||
"final_competency_id": "competency.goal.collaboration",
|
||||
"final_band": "consistent_local",
|
||||
"selected_prescription_id": "oas-g4-practice-goal-ladder"
|
||||
},
|
||||
"tags": ["easy_repeat_hacking", "unseen_transfer_gate"],
|
||||
"forbidden_claims": ["쉬운 장면의 반복 성공을 전이 숙련으로 승격하지 않는다."]
|
||||
},
|
||||
{
|
||||
"case_id": "oas-g4-bench-003",
|
||||
"title_ko": "같은 문구 암기로 미지 사례를 통과하려는 시도",
|
||||
"coaching_cards": [
|
||||
{
|
||||
"card_id": "oas-g4-card-memorized-phrase",
|
||||
"scene_id": "scene-memorized-phrase",
|
||||
"coach_claim": "짧게 영향을 인정하고 현재 내담자의 반응을 확인하는 문맥 적합 발화를 연습한다.",
|
||||
"evidence_refs": [
|
||||
{
|
||||
"ref_id": "b003-card-scene",
|
||||
"scene_id": "scene-memorized-phrase",
|
||||
"turn_index": 2,
|
||||
"actor": "client",
|
||||
"kind": "scene_context"
|
||||
}
|
||||
],
|
||||
"source_refs": ["source-pack:rupture-repair-micropractice:v1"],
|
||||
"uncertainty": 0.16,
|
||||
"counterevidence": ["formulaic_language_can_hide_context_mismatch"],
|
||||
"targets": [
|
||||
{
|
||||
"prescription_id": "oas-g4-practice-repair-constrained",
|
||||
"competency_id": "competency.rupture.impact-acknowledgement",
|
||||
"criterion_id": "criterion.acknowledge-impact-and-check",
|
||||
"observable_behavior": "40단어 안에서 자신의 영향을 인정하고 내담자의 현재 반응을 확인한다.",
|
||||
"activity": {
|
||||
"mode": "constrained_response",
|
||||
"scenario_variant_id": "variant-repair-familiar",
|
||||
"scenario_novelty": "familiar",
|
||||
"difficulty_level": 2,
|
||||
"max_words": 40,
|
||||
"required_moves": ["impact_acknowledgement", "follow_up_check"]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"graph": {
|
||||
"definitions": [
|
||||
{
|
||||
"competency_id": "competency.rupture.impact-acknowledgement",
|
||||
"label_ko": "영향 인정",
|
||||
"description": "상담자의 기여와 영향을 인정하고 내담자의 실제 반응을 다시 확인한다.",
|
||||
"prerequisite_ids": []
|
||||
}
|
||||
],
|
||||
"states": [
|
||||
{
|
||||
"competency_id": "competency.rupture.impact-acknowledgement",
|
||||
"band": "unassessed",
|
||||
"forgetting_risk": 0.66,
|
||||
"uncertainty": 1.0,
|
||||
"attempt_count": 0,
|
||||
"familiar_demonstrations": 0,
|
||||
"unseen_transfer_demonstrations": 0,
|
||||
"highest_familiar_difficulty": 0,
|
||||
"evidence_refs": [],
|
||||
"counterevidence": []
|
||||
}
|
||||
]
|
||||
},
|
||||
"episodes": [
|
||||
{
|
||||
"episode_id": "oas-g4-episode-memorized-phrase",
|
||||
"prescription_id": "oas-g4-practice-repair-constrained",
|
||||
"attempts": [
|
||||
{
|
||||
"attempt_id": "oas-g4-attempt-memorized-1",
|
||||
"prescription_id": "oas-g4-practice-repair-constrained",
|
||||
"competency_id": "competency.rupture.impact-acknowledgement",
|
||||
"sequence_no": 1,
|
||||
"scenario_variant_id": "variant-repair-familiar",
|
||||
"scenario_novelty": "familiar",
|
||||
"difficulty_level": 2,
|
||||
"criterion": {
|
||||
"criterion_id": "criterion.acknowledge-impact-and-check",
|
||||
"status": "not_observed",
|
||||
"source_kind": "observed_runtime",
|
||||
"perspective": "runtime_observation",
|
||||
"evidence_refs": [],
|
||||
"counterevidence": ["impact_not_acknowledged"],
|
||||
"uncertainty": 0.2
|
||||
},
|
||||
"client_response": "rejecting",
|
||||
"evidence_refs": [
|
||||
{
|
||||
"ref_id": "b003-a1-learner",
|
||||
"scene_id": "scene-memorized-phrase",
|
||||
"turn_index": 3,
|
||||
"actor": "learner",
|
||||
"kind": "learner_behavior"
|
||||
},
|
||||
{
|
||||
"ref_id": "b003-a1-client",
|
||||
"scene_id": "scene-memorized-phrase",
|
||||
"turn_index": 4,
|
||||
"actor": "client",
|
||||
"kind": "client_response"
|
||||
}
|
||||
],
|
||||
"uncertainty": 0.2,
|
||||
"counterevidence": ["client_rejected_deflection"],
|
||||
"utterance_template_id": "magic-repair-v1"
|
||||
},
|
||||
{
|
||||
"attempt_id": "oas-g4-attempt-memorized-2",
|
||||
"prescription_id": "oas-g4-practice-repair-constrained",
|
||||
"competency_id": "competency.rupture.impact-acknowledgement",
|
||||
"sequence_no": 2,
|
||||
"scenario_variant_id": "variant-repair-familiar",
|
||||
"scenario_novelty": "familiar",
|
||||
"difficulty_level": 2,
|
||||
"criterion": {
|
||||
"criterion_id": "criterion.acknowledge-impact-and-check",
|
||||
"status": "observed",
|
||||
"source_kind": "observed_runtime",
|
||||
"perspective": "runtime_observation",
|
||||
"evidence_refs": [
|
||||
{
|
||||
"ref_id": "b003-a2-eval",
|
||||
"scene_id": "scene-memorized-phrase",
|
||||
"turn_index": 7,
|
||||
"actor": "observer",
|
||||
"kind": "evaluator_decision"
|
||||
}
|
||||
],
|
||||
"counterevidence": [],
|
||||
"uncertainty": 0.18
|
||||
},
|
||||
"client_response": "engaged",
|
||||
"evidence_refs": [
|
||||
{
|
||||
"ref_id": "b003-a2-learner",
|
||||
"scene_id": "scene-memorized-phrase",
|
||||
"turn_index": 5,
|
||||
"actor": "learner",
|
||||
"kind": "learner_behavior"
|
||||
},
|
||||
{
|
||||
"ref_id": "b003-a2-client",
|
||||
"scene_id": "scene-memorized-phrase",
|
||||
"turn_index": 6,
|
||||
"actor": "client",
|
||||
"kind": "client_response"
|
||||
}
|
||||
],
|
||||
"uncertainty": 0.18,
|
||||
"counterevidence": [],
|
||||
"utterance_template_id": "magic-repair-v1"
|
||||
},
|
||||
{
|
||||
"attempt_id": "oas-g4-attempt-memorized-3",
|
||||
"prescription_id": "oas-g4-practice-repair-constrained",
|
||||
"competency_id": "competency.rupture.impact-acknowledgement",
|
||||
"sequence_no": 3,
|
||||
"scenario_variant_id": "variant-cultural-miss-unseen",
|
||||
"scenario_novelty": "unseen_transfer",
|
||||
"difficulty_level": 4,
|
||||
"criterion": {
|
||||
"criterion_id": "criterion.acknowledge-impact-and-check",
|
||||
"status": "observed",
|
||||
"source_kind": "observed_runtime",
|
||||
"perspective": "runtime_observation",
|
||||
"evidence_refs": [
|
||||
{
|
||||
"ref_id": "b003-a3-eval",
|
||||
"scene_id": "scene-cultural-miss-unseen",
|
||||
"turn_index": 3,
|
||||
"actor": "observer",
|
||||
"kind": "evaluator_decision"
|
||||
}
|
||||
],
|
||||
"counterevidence": [],
|
||||
"uncertainty": 0.2
|
||||
},
|
||||
"client_response": "engaged",
|
||||
"evidence_refs": [
|
||||
{
|
||||
"ref_id": "b003-a3-learner",
|
||||
"scene_id": "scene-cultural-miss-unseen",
|
||||
"turn_index": 1,
|
||||
"actor": "learner",
|
||||
"kind": "learner_behavior"
|
||||
},
|
||||
{
|
||||
"ref_id": "b003-a3-client",
|
||||
"scene_id": "scene-cultural-miss-unseen",
|
||||
"turn_index": 2,
|
||||
"actor": "client",
|
||||
"kind": "client_response"
|
||||
}
|
||||
],
|
||||
"uncertainty": 0.2,
|
||||
"counterevidence": [],
|
||||
"utterance_template_id": "magic-repair-v1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"expected": {
|
||||
"episode_progress": ["transfer_pending"],
|
||||
"final_competency_id": "competency.rupture.impact-acknowledgement",
|
||||
"final_band": "consistent_local",
|
||||
"selected_prescription_id": "oas-g4-practice-repair-constrained"
|
||||
},
|
||||
"tags": ["memorized_phrase_hacking", "unseen_transfer_gate"],
|
||||
"forbidden_claims": ["동일 문구가 한 새 장면에서 작동한 것처럼 보여도 유연한 전이로 단정하지 않는다."]
|
||||
},
|
||||
{
|
||||
"case_id": "oas-g4-bench-004",
|
||||
"title_ko": "음성 재시도 후 새로운 사례에서 유연한 전이",
|
||||
"coaching_cards": [
|
||||
{
|
||||
"card_id": "oas-g4-card-voice-transfer",
|
||||
"scene_id": "scene-voice-transfer",
|
||||
"coach_claim": "속도를 낮추고 짧은 반영 뒤 확인 질문을 두어 내담자가 응답할 공간을 만든다.",
|
||||
"evidence_refs": [
|
||||
{
|
||||
"ref_id": "b004-card-scene",
|
||||
"scene_id": "scene-voice-transfer",
|
||||
"turn_index": 10,
|
||||
"actor": "runtime",
|
||||
"kind": "voice_feature"
|
||||
}
|
||||
],
|
||||
"source_refs": ["source-pack:voice-presence:v1"],
|
||||
"uncertainty": 0.24,
|
||||
"counterevidence": ["prosody_is_interaction_evidence_not_a_clinical_diagnosis"],
|
||||
"targets": [
|
||||
{
|
||||
"prescription_id": "oas-g4-practice-voice-space",
|
||||
"competency_id": "competency.presence.response-space",
|
||||
"criterion_id": "criterion.reflect-pause-check",
|
||||
"observable_behavior": "짧은 정서 반영 뒤 침묵을 허용하고 확인 질문을 한 번 사용한다.",
|
||||
"activity": {
|
||||
"mode": "voice_retry",
|
||||
"scenario_variant_id": "variant-voice-familiar",
|
||||
"scenario_novelty": "familiar",
|
||||
"difficulty_level": 2,
|
||||
"max_seconds": 35,
|
||||
"acoustic_focus": ["pace", "pause_after_reflection"]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"graph": {
|
||||
"definitions": [
|
||||
{
|
||||
"competency_id": "competency.presence.response-space",
|
||||
"label_ko": "반응 공간 만들기",
|
||||
"description": "말 속도와 침묵을 조절해 내담자가 자신의 반응을 표현할 공간을 만든다.",
|
||||
"prerequisite_ids": []
|
||||
}
|
||||
],
|
||||
"states": [
|
||||
{
|
||||
"competency_id": "competency.presence.response-space",
|
||||
"band": "unassessed",
|
||||
"forgetting_risk": 0.59,
|
||||
"uncertainty": 1.0,
|
||||
"attempt_count": 0,
|
||||
"familiar_demonstrations": 0,
|
||||
"unseen_transfer_demonstrations": 0,
|
||||
"highest_familiar_difficulty": 0,
|
||||
"evidence_refs": [],
|
||||
"counterevidence": []
|
||||
}
|
||||
]
|
||||
},
|
||||
"episodes": [
|
||||
{
|
||||
"episode_id": "oas-g4-episode-voice-transfer",
|
||||
"prescription_id": "oas-g4-practice-voice-space",
|
||||
"attempts": [
|
||||
{
|
||||
"attempt_id": "oas-g4-attempt-voice-1",
|
||||
"prescription_id": "oas-g4-practice-voice-space",
|
||||
"competency_id": "competency.presence.response-space",
|
||||
"sequence_no": 1,
|
||||
"scenario_variant_id": "variant-voice-familiar",
|
||||
"scenario_novelty": "familiar",
|
||||
"difficulty_level": 2,
|
||||
"criterion": {
|
||||
"criterion_id": "criterion.reflect-pause-check",
|
||||
"status": "not_observed",
|
||||
"source_kind": "observed_runtime",
|
||||
"perspective": "runtime_observation",
|
||||
"evidence_refs": [],
|
||||
"counterevidence": ["no_pause_after_reflection"],
|
||||
"uncertainty": 0.25
|
||||
},
|
||||
"client_response": "withdrawn",
|
||||
"evidence_refs": [
|
||||
{
|
||||
"ref_id": "b004-a1-learner",
|
||||
"scene_id": "scene-voice-transfer",
|
||||
"turn_index": 11,
|
||||
"actor": "learner",
|
||||
"kind": "learner_behavior"
|
||||
},
|
||||
{
|
||||
"ref_id": "b004-a1-client",
|
||||
"scene_id": "scene-voice-transfer",
|
||||
"turn_index": 12,
|
||||
"actor": "client",
|
||||
"kind": "client_response"
|
||||
}
|
||||
],
|
||||
"uncertainty": 0.25,
|
||||
"counterevidence": ["voice_feature_not_yet_improved"],
|
||||
"utterance_template_id": "voice-rushed-v1"
|
||||
},
|
||||
{
|
||||
"attempt_id": "oas-g4-attempt-voice-2",
|
||||
"prescription_id": "oas-g4-practice-voice-space",
|
||||
"competency_id": "competency.presence.response-space",
|
||||
"sequence_no": 2,
|
||||
"scenario_variant_id": "variant-voice-familiar",
|
||||
"scenario_novelty": "familiar",
|
||||
"difficulty_level": 2,
|
||||
"criterion": {
|
||||
"criterion_id": "criterion.reflect-pause-check",
|
||||
"status": "observed",
|
||||
"source_kind": "observed_runtime",
|
||||
"perspective": "runtime_observation",
|
||||
"evidence_refs": [
|
||||
{
|
||||
"ref_id": "b004-a2-eval",
|
||||
"scene_id": "scene-voice-transfer",
|
||||
"turn_index": 15,
|
||||
"actor": "observer",
|
||||
"kind": "evaluator_decision"
|
||||
}
|
||||
],
|
||||
"counterevidence": [],
|
||||
"uncertainty": 0.2
|
||||
},
|
||||
"client_response": "engaged",
|
||||
"evidence_refs": [
|
||||
{
|
||||
"ref_id": "b004-a2-learner",
|
||||
"scene_id": "scene-voice-transfer",
|
||||
"turn_index": 13,
|
||||
"actor": "learner",
|
||||
"kind": "learner_behavior"
|
||||
},
|
||||
{
|
||||
"ref_id": "b004-a2-client",
|
||||
"scene_id": "scene-voice-transfer",
|
||||
"turn_index": 14,
|
||||
"actor": "client",
|
||||
"kind": "client_response"
|
||||
},
|
||||
{
|
||||
"ref_id": "b004-a2-voice",
|
||||
"scene_id": "scene-voice-transfer",
|
||||
"turn_index": 13,
|
||||
"actor": "runtime",
|
||||
"kind": "voice_feature"
|
||||
}
|
||||
],
|
||||
"uncertainty": 0.2,
|
||||
"counterevidence": [],
|
||||
"utterance_template_id": "voice-space-v1"
|
||||
},
|
||||
{
|
||||
"attempt_id": "oas-g4-attempt-voice-3",
|
||||
"prescription_id": "oas-g4-practice-voice-space",
|
||||
"competency_id": "competency.presence.response-space",
|
||||
"sequence_no": 3,
|
||||
"scenario_variant_id": "variant-voice-unseen-resistant",
|
||||
"scenario_novelty": "unseen_transfer",
|
||||
"difficulty_level": 4,
|
||||
"criterion": {
|
||||
"criterion_id": "criterion.reflect-pause-check",
|
||||
"status": "observed",
|
||||
"source_kind": "observed_runtime",
|
||||
"perspective": "runtime_observation",
|
||||
"evidence_refs": [
|
||||
{
|
||||
"ref_id": "b004-a3-eval",
|
||||
"scene_id": "scene-voice-unseen-resistant",
|
||||
"turn_index": 3,
|
||||
"actor": "observer",
|
||||
"kind": "evaluator_decision"
|
||||
}
|
||||
],
|
||||
"counterevidence": [],
|
||||
"uncertainty": 0.24
|
||||
},
|
||||
"client_response": "explicit_alignment",
|
||||
"evidence_refs": [
|
||||
{
|
||||
"ref_id": "b004-a3-learner",
|
||||
"scene_id": "scene-voice-unseen-resistant",
|
||||
"turn_index": 1,
|
||||
"actor": "learner",
|
||||
"kind": "learner_behavior"
|
||||
},
|
||||
{
|
||||
"ref_id": "b004-a3-client",
|
||||
"scene_id": "scene-voice-unseen-resistant",
|
||||
"turn_index": 2,
|
||||
"actor": "client",
|
||||
"kind": "client_response"
|
||||
},
|
||||
{
|
||||
"ref_id": "b004-a3-voice",
|
||||
"scene_id": "scene-voice-unseen-resistant",
|
||||
"turn_index": 1,
|
||||
"actor": "runtime",
|
||||
"kind": "voice_feature"
|
||||
}
|
||||
],
|
||||
"uncertainty": 0.24,
|
||||
"counterevidence": [],
|
||||
"utterance_template_id": "voice-space-adapted-v2"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"expected": {
|
||||
"episode_progress": ["mastered"],
|
||||
"final_competency_id": "competency.presence.response-space",
|
||||
"final_band": "transfer_verified",
|
||||
"selected_prescription_id": "oas-g4-practice-voice-space"
|
||||
},
|
||||
"tags": ["unseen_transfer_gate", "genuine_transfer"],
|
||||
"forbidden_claims": ["운율 특징을 임상 상태나 성격 진단으로 해석하지 않는다."]
|
||||
},
|
||||
{
|
||||
"case_id": "oas-g4-bench-005",
|
||||
"title_ko": "문맥별 분기에서 목표 재합의 선택지 비교",
|
||||
"coaching_cards": [
|
||||
{
|
||||
"card_id": "oas-g4-card-context-branch",
|
||||
"scene_id": "scene-context-branch",
|
||||
"coach_claim": "내담자의 저항 의미가 다른 분기에서 목표 재합의 전략을 비교한다.",
|
||||
"evidence_refs": [
|
||||
{
|
||||
"ref_id": "b005-card-scene",
|
||||
"scene_id": "scene-context-branch",
|
||||
"turn_index": 5,
|
||||
"actor": "client",
|
||||
"kind": "scene_context"
|
||||
}
|
||||
],
|
||||
"source_refs": ["source-pack:goal-reagreement:v1"],
|
||||
"uncertainty": 0.3,
|
||||
"counterevidence": ["one_branch_cannot_establish_generalization"],
|
||||
"targets": [
|
||||
{
|
||||
"prescription_id": "oas-g4-practice-context-branch",
|
||||
"competency_id": "competency.goal.reagreement",
|
||||
"criterion_id": "criterion.select-context-fit-reagreement",
|
||||
"observable_behavior": "저항의 의미를 확인하고 그 맥락에 맞는 목표 재합의 발화를 선택한다.",
|
||||
"activity": {
|
||||
"mode": "branch",
|
||||
"scenario_variant_id": "variant-context-branch",
|
||||
"scenario_novelty": "familiar",
|
||||
"difficulty_level": 3,
|
||||
"branch_options": [
|
||||
"목표 자체를 다시 묻는다",
|
||||
"현재 과제의 이유를 공동 목표와 연결한다",
|
||||
"저항의 의미를 먼저 확인한다"
|
||||
],
|
||||
"client_responses_hidden": true
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"graph": {
|
||||
"definitions": [
|
||||
{
|
||||
"competency_id": "competency.goal.reagreement",
|
||||
"label_ko": "목표 재합의",
|
||||
"description": "불일치의 맥락을 확인한 뒤 목표를 내담자와 다시 합의하는 역량이다.",
|
||||
"prerequisite_ids": []
|
||||
}
|
||||
],
|
||||
"states": [
|
||||
{
|
||||
"competency_id": "competency.goal.reagreement",
|
||||
"band": "unassessed",
|
||||
"forgetting_risk": 0.48,
|
||||
"uncertainty": 1.0,
|
||||
"attempt_count": 0,
|
||||
"familiar_demonstrations": 0,
|
||||
"unseen_transfer_demonstrations": 0,
|
||||
"highest_familiar_difficulty": 0,
|
||||
"evidence_refs": [],
|
||||
"counterevidence": []
|
||||
}
|
||||
]
|
||||
},
|
||||
"episodes": [],
|
||||
"expected": {
|
||||
"episode_progress": [],
|
||||
"final_competency_id": "competency.goal.reagreement",
|
||||
"final_band": "unassessed",
|
||||
"selected_prescription_id": "oas-g4-practice-context-branch"
|
||||
},
|
||||
"tags": ["contextual_branch"],
|
||||
"forbidden_claims": ["선택지 한 번의 성공을 숙련이나 전이로 표시하지 않는다."]
|
||||
}
|
||||
]
|
||||
}
|
||||
32
apps/api/app/data/multimodal_alliance_benchmark_g7.v1.json
Normal file
32
apps/api/app/data/multimodal_alliance_benchmark_g7.v1.json
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
{
|
||||
"schema_version": "vignette.multimodal-alliance-benchmark.v1",
|
||||
"version": "1.0.0",
|
||||
"data_classification": "synthetic_educational",
|
||||
"clinical_claim_allowed": false,
|
||||
"cases": [
|
||||
{
|
||||
"case_id":"oas-g7-bench-001","title_ko":"검증된 음성 추가 이득이 있는 bond 축",
|
||||
"text_measurement":{"measurement_id":"oas-g7-measurement-text-help","axis":"bond","modality":"text","status":"ready","value":0.62,"confidence":0.82,"uncertainty":0.18,"evidence_refs":["turn-text-1"],"model_run_id":"11111111-1111-1111-1111-111111111111","error_code":null},
|
||||
"voice_measurement":{"measurement_id":"oas-g7-measurement-voice-help","axis":"bond","modality":"voice","status":"ready","value":0.48,"confidence":0.75,"uncertainty":0.25,"evidence_refs":["oas-g7-event-silence-1"],"model_run_id":"22222222-2222-2222-2222-222222222222","error_code":null},
|
||||
"calibration":{"calibration_id":"oas-g7-fusion-bond-help","axis":"bond","text_weight":0.7,"voice_weight":0.3,"text_only_accuracy":0.70,"fused_accuracy":0.76,"benchmark_version":"1.0.0","minimum_incremental_gain":0.01},
|
||||
"target_value":0.48,
|
||||
"expected_fusion_applied":true
|
||||
},
|
||||
{
|
||||
"case_id":"oas-g7-bench-002","title_ko":"음성 추가 이득이 없어 text-only를 유지하는 task 축",
|
||||
"text_measurement":{"measurement_id":"oas-g7-measurement-text-no-gain","axis":"task","modality":"text","status":"ready","value":0.72,"confidence":0.88,"uncertainty":0.12,"evidence_refs":["turn-text-2"],"model_run_id":"33333333-3333-3333-3333-333333333333","error_code":null},
|
||||
"voice_measurement":{"measurement_id":"oas-g7-measurement-voice-no-gain","axis":"task","modality":"voice","status":"ready","value":0.40,"confidence":0.60,"uncertainty":0.40,"evidence_refs":["oas-g7-event-pace-2"],"model_run_id":"44444444-4444-4444-4444-444444444444","error_code":null},
|
||||
"calibration":{"calibration_id":"oas-g7-fusion-task-no-gain","axis":"task","text_weight":0.8,"voice_weight":0.2,"text_only_accuracy":0.82,"fused_accuracy":0.80,"benchmark_version":"1.0.0","minimum_incremental_gain":0.01},
|
||||
"target_value":0.72,
|
||||
"expected_fusion_applied":false
|
||||
},
|
||||
{
|
||||
"case_id":"oas-g7-bench-003","title_ko":"음성 평가 오류를 정상값으로 보간하지 않는 goal 축",
|
||||
"text_measurement":{"measurement_id":"oas-g7-measurement-text-error-fallback","axis":"goal","modality":"text","status":"ready","value":0.67,"confidence":0.84,"uncertainty":0.16,"evidence_refs":["turn-text-3"],"model_run_id":"55555555-5555-5555-5555-555555555555","error_code":null},
|
||||
"voice_measurement":{"measurement_id":"oas-g7-measurement-voice-error","axis":"goal","modality":"voice","status":"error","value":null,"confidence":null,"uncertainty":1.0,"evidence_refs":[],"model_run_id":null,"error_code":"audio_quality_unusable"},
|
||||
"calibration":{"calibration_id":"oas-g7-fusion-goal-error","axis":"goal","text_weight":0.75,"voice_weight":0.25,"text_only_accuracy":0.74,"fused_accuracy":0.79,"benchmark_version":"1.0.0","minimum_incremental_gain":0.01},
|
||||
"target_value":0.67,
|
||||
"expected_fusion_applied":false
|
||||
}
|
||||
]
|
||||
}
|
||||
150
apps/api/app/data/outcome_alliance_benchmark_g0.v1.json
Normal file
150
apps/api/app/data/outcome_alliance_benchmark_g0.v1.json
Normal file
|
|
@ -0,0 +1,150 @@
|
|||
{
|
||||
"schema": "vignette.outcome_alliance_benchmark.v1",
|
||||
"cases": [
|
||||
{
|
||||
"case_id": "oas-g0-001",
|
||||
"version": "1.0.0",
|
||||
"scene_type": "goal_mismatch",
|
||||
"title_ko": "상담 목표가 내담자의 우선순위와 다름",
|
||||
"description_ko": "수련생은 진로 결정을 서두르지만 내담자는 당장의 수면 회복을 원한다.",
|
||||
"turns": [
|
||||
{"speaker": "client", "text": "요즘 잠을 거의 못 자서 일단 하루를 버티는 게 너무 힘들어요."},
|
||||
{"speaker": "counselor", "text": "그럼 오늘은 앞으로 어떤 직업을 선택할지부터 정해보죠."},
|
||||
{"speaker": "client", "text": "진로도 문제지만 지금은 잠 얘기를 먼저 하고 싶었는데요."}
|
||||
],
|
||||
"expected": [
|
||||
{"construct": "working_alliance", "dimension": "goal", "perspective": "independent_observer", "source_kind": "model_inferred", "direction": "low", "evidence_turn_indices": [0, 1, 2]}
|
||||
],
|
||||
"forbidden_claims": ["bond가 따뜻하면 goal 합의도 높다고 판정", "진로 목표를 내담자가 합의했다고 판정"],
|
||||
"tags": ["alliance", "goal", "mismatch"]
|
||||
},
|
||||
{
|
||||
"case_id": "oas-g0-002",
|
||||
"version": "1.0.0",
|
||||
"scene_type": "task_mismatch",
|
||||
"title_ko": "개입 방법에 대한 납득이 없음",
|
||||
"description_ko": "수련생이 근거 설명 없이 기록 과제를 제시하고 내담자가 거부감을 표현한다.",
|
||||
"turns": [
|
||||
{"speaker": "counselor", "text": "이번 주에는 매일 감정 기록지를 세 장씩 작성해 오세요."},
|
||||
{"speaker": "client", "text": "왜 해야 하는지 모르겠고, 숙제처럼 느껴져서 부담돼요."},
|
||||
{"speaker": "counselor", "text": "원래 상담에서는 이런 과제를 하는 게 도움이 됩니다."}
|
||||
],
|
||||
"expected": [
|
||||
{"construct": "working_alliance", "dimension": "task", "perspective": "independent_observer", "source_kind": "model_inferred", "direction": "low", "evidence_turn_indices": [0, 1, 2]}
|
||||
],
|
||||
"forbidden_claims": ["과제를 제시했다는 사실만으로 task 합의가 있다고 판정"],
|
||||
"tags": ["alliance", "task", "rationale"]
|
||||
},
|
||||
{
|
||||
"case_id": "oas-g0-003",
|
||||
"version": "1.0.0",
|
||||
"scene_type": "empathic_miss",
|
||||
"title_ko": "정확하지만 수용되지 않은 공감",
|
||||
"description_ko": "수련생은 반영 기법을 사용하지만 내담자는 자신의 핵심 감정이 빗나갔다고 말한다.",
|
||||
"turns": [
|
||||
{"speaker": "client", "text": "친구들이 저를 빼고 만난 걸 알고 나니 제가 쓸모없는 사람 같았어요."},
|
||||
{"speaker": "counselor", "text": "친구들에게 화가 많이 났군요."},
|
||||
{"speaker": "client", "text": "화라기보다 제가 버려진 것 같아서 무서웠어요."}
|
||||
],
|
||||
"expected": [
|
||||
{"construct": "counselor_skill", "dimension": "empathy_received", "perspective": "client_agent_report", "source_kind": "agent_reported", "direction": "low", "evidence_turn_indices": [0, 1, 2]},
|
||||
{"construct": "working_alliance", "dimension": "bond", "perspective": "independent_observer", "source_kind": "model_inferred", "direction": "drop", "evidence_turn_indices": [1, 2]}
|
||||
],
|
||||
"forbidden_claims": ["공감 문장 형식 사용만으로 empathy_received를 높게 판정"],
|
||||
"tags": ["empathy", "bond", "client-received"]
|
||||
},
|
||||
{
|
||||
"case_id": "oas-g0-004",
|
||||
"version": "1.0.0",
|
||||
"scene_type": "withdrawal",
|
||||
"title_ko": "철수형 관계 균열",
|
||||
"description_ko": "내담자가 짧은 대답과 주제 회피로 관계에서 물러난다.",
|
||||
"turns": [
|
||||
{"speaker": "counselor", "text": "그 선택이 잘못됐다는 걸 이제는 인정할 수 있겠어요?"},
|
||||
{"speaker": "client", "text": "네, 뭐 그런 것 같아요."},
|
||||
{"speaker": "counselor", "text": "조금 더 이야기해 볼까요?"},
|
||||
{"speaker": "client", "text": "딱히 할 말은 없어요."}
|
||||
],
|
||||
"expected": [
|
||||
{"construct": "rupture_repair", "dimension": "withdrawal", "perspective": "independent_observer", "source_kind": "model_inferred", "direction": "detected", "evidence_turn_indices": [1, 3]}
|
||||
],
|
||||
"forbidden_claims": ["순응 표현을 동맹 상승으로 판정", "짧은 대답만으로 임상 진단을 추론"],
|
||||
"tags": ["rupture", "withdrawal", "compliance"]
|
||||
},
|
||||
{
|
||||
"case_id": "oas-g0-005",
|
||||
"version": "1.0.0",
|
||||
"scene_type": "confrontation",
|
||||
"title_ko": "대립형 관계 균열",
|
||||
"description_ko": "내담자가 상담자의 평가적 태도를 직접 지적한다.",
|
||||
"turns": [
|
||||
{"speaker": "counselor", "text": "계속 피하기만 하면 아무것도 달라지지 않아요."},
|
||||
{"speaker": "client", "text": "선생님도 저를 의지가 없는 사람으로 보는 것 같네요."},
|
||||
{"speaker": "counselor", "text": "저는 사실을 말씀드린 것뿐이에요."}
|
||||
],
|
||||
"expected": [
|
||||
{"construct": "rupture_repair", "dimension": "confrontation", "perspective": "independent_observer", "source_kind": "model_inferred", "direction": "detected", "evidence_turn_indices": [0, 1, 2]},
|
||||
{"construct": "working_alliance", "dimension": "bond", "perspective": "client_agent_report", "source_kind": "agent_reported", "direction": "low", "evidence_turn_indices": [1]}
|
||||
],
|
||||
"forbidden_claims": ["상담자의 직면 기법 사용을 자동으로 적절하다고 판정"],
|
||||
"tags": ["rupture", "confrontation", "judgment"]
|
||||
},
|
||||
{
|
||||
"case_id": "oas-g0-006",
|
||||
"version": "1.0.0",
|
||||
"scene_type": "successful_repair",
|
||||
"title_ko": "균열을 확인하고 목표를 다시 합의함",
|
||||
"description_ko": "수련생이 자신의 기여를 인정하고 내담자와 대화 방향을 재합의한다.",
|
||||
"turns": [
|
||||
{"speaker": "client", "text": "제가 원하는 얘기보다 자꾸 해결책만 듣는 느낌이에요."},
|
||||
{"speaker": "counselor", "text": "제가 너무 빨리 해결하려 해서 듣지 못했다는 느낌을 드렸네요. 미안해요."},
|
||||
{"speaker": "counselor", "text": "지금은 해결책보다 어떤 일이 가장 버거운지 이해하는 데 집중해도 괜찮을까요?"},
|
||||
{"speaker": "client", "text": "네, 그렇게 해주시면 말해볼 수 있을 것 같아요."}
|
||||
],
|
||||
"expected": [
|
||||
{"construct": "rupture_repair", "dimension": "repair", "perspective": "independent_observer", "source_kind": "model_inferred", "direction": "detected", "evidence_turn_indices": [0, 1, 2, 3]},
|
||||
{"construct": "working_alliance", "dimension": "task", "perspective": "client_agent_report", "source_kind": "agent_reported", "direction": "rise", "evidence_turn_indices": [2, 3]}
|
||||
],
|
||||
"forbidden_claims": ["사과 한 문장만으로 repair resolved 판정", "내담자 후속 반응 없이 복구 완료 판정"],
|
||||
"tags": ["repair", "ownership", "renegotiation"]
|
||||
},
|
||||
{
|
||||
"case_id": "oas-g0-007",
|
||||
"version": "1.0.0",
|
||||
"scene_type": "failed_repair",
|
||||
"title_ko": "형식적 사과 뒤 같은 패턴 반복",
|
||||
"description_ko": "수련생이 사과하지만 즉시 자신의 해석을 다시 강요한다.",
|
||||
"turns": [
|
||||
{"speaker": "client", "text": "제 말을 이미 결론 내놓고 듣는 것 같아요."},
|
||||
{"speaker": "counselor", "text": "그렇게 느꼈다면 미안해요. 하지만 회피하고 계신 건 맞잖아요."},
|
||||
{"speaker": "client", "text": "또 제 말을 안 듣고 계시네요."}
|
||||
],
|
||||
"expected": [
|
||||
{"construct": "rupture_repair", "dimension": "repair", "perspective": "independent_observer", "source_kind": "model_inferred", "direction": "not_detected", "evidence_turn_indices": [0, 1, 2]},
|
||||
{"construct": "working_alliance", "dimension": "bond", "perspective": "client_agent_report", "source_kind": "agent_reported", "direction": "low", "evidence_turn_indices": [2]}
|
||||
],
|
||||
"forbidden_claims": ["사과 표현 존재만으로 성공적 복구 판정"],
|
||||
"tags": ["repair", "failed-repair", "pseudo-apology"]
|
||||
},
|
||||
{
|
||||
"case_id": "oas-g0-008",
|
||||
"version": "1.0.0",
|
||||
"scene_type": "warm_but_directionless",
|
||||
"title_ko": "따뜻하지만 방향 없는 회기",
|
||||
"description_ko": "유대감은 높지만 목표와 방법의 합의가 확인되지 않는다.",
|
||||
"turns": [
|
||||
{"speaker": "counselor", "text": "여기서는 어떤 이야기를 해도 괜찮아요. 천천히 들어볼게요."},
|
||||
{"speaker": "client", "text": "편하게 들어주셔서 고마워요."},
|
||||
{"speaker": "counselor", "text": "오늘 무엇을 함께 다루면 좋을지는 아직 정하지 않아도 돼요."},
|
||||
{"speaker": "client", "text": "그런데 어디서부터 시작해야 할지는 계속 모르겠어요."}
|
||||
],
|
||||
"expected": [
|
||||
{"construct": "working_alliance", "dimension": "bond", "perspective": "client_agent_report", "source_kind": "agent_reported", "direction": "high", "evidence_turn_indices": [0, 1]},
|
||||
{"construct": "working_alliance", "dimension": "goal", "perspective": "independent_observer", "source_kind": "model_inferred", "direction": "low", "evidence_turn_indices": [2, 3]},
|
||||
{"construct": "working_alliance", "dimension": "task", "perspective": "independent_observer", "source_kind": "model_inferred", "direction": "low", "evidence_turn_indices": [2, 3]}
|
||||
],
|
||||
"forbidden_claims": ["bond가 높다는 이유로 단일 alliance 총점을 높게 표시", "goal과 task의 낮은 값을 상쇄"],
|
||||
"tags": ["alliance", "non-compensation", "directionless"]
|
||||
}
|
||||
]
|
||||
}
|
||||
167
apps/api/app/data/outcome_trajectory_benchmark_g2.v1.json
Normal file
167
apps/api/app/data/outcome_trajectory_benchmark_g2.v1.json
Normal file
|
|
@ -0,0 +1,167 @@
|
|||
{
|
||||
"schema_version": "vignette.outcome-trajectory-benchmark.v1",
|
||||
"expected_arc": {
|
||||
"arc_id": "oas-g2-arc-001",
|
||||
"title_ko": "교육용 초기 5회기 기대 궤적",
|
||||
"data_classification": "synthetic_educational",
|
||||
"clinical_claim_allowed": false,
|
||||
"provenance_note": "교육용 합성 사례의 결정론 테스트 분포이며 실제 내담자, 임상 규준, 치료 효과 또는 진단 예측을 나타내지 않는다.",
|
||||
"distributions": [
|
||||
{"session_no": 1, "axis": "distress_load", "mean": 0.70, "standard_deviation": 0.10, "lower_reference": 0.50, "upper_reference": 0.90, "sample_size": 200, "expected_direction": "lower_is_better"},
|
||||
{"session_no": 1, "axis": "daily_functioning", "mean": 0.30, "standard_deviation": 0.10, "lower_reference": 0.10, "upper_reference": 0.50, "sample_size": 200, "expected_direction": "higher_is_better"},
|
||||
{"session_no": 1, "axis": "learning_engagement", "mean": 0.40, "standard_deviation": 0.10, "lower_reference": 0.20, "upper_reference": 0.60, "sample_size": 200, "expected_direction": "higher_is_better"},
|
||||
{"session_no": 2, "axis": "distress_load", "mean": 0.62, "standard_deviation": 0.10, "lower_reference": 0.42, "upper_reference": 0.82, "sample_size": 200, "expected_direction": "lower_is_better"},
|
||||
{"session_no": 2, "axis": "daily_functioning", "mean": 0.40, "standard_deviation": 0.10, "lower_reference": 0.20, "upper_reference": 0.60, "sample_size": 200, "expected_direction": "higher_is_better"},
|
||||
{"session_no": 2, "axis": "learning_engagement", "mean": 0.48, "standard_deviation": 0.10, "lower_reference": 0.28, "upper_reference": 0.68, "sample_size": 200, "expected_direction": "higher_is_better"},
|
||||
{"session_no": 3, "axis": "distress_load", "mean": 0.54, "standard_deviation": 0.10, "lower_reference": 0.34, "upper_reference": 0.74, "sample_size": 200, "expected_direction": "lower_is_better"},
|
||||
{"session_no": 3, "axis": "daily_functioning", "mean": 0.50, "standard_deviation": 0.10, "lower_reference": 0.30, "upper_reference": 0.70, "sample_size": 200, "expected_direction": "higher_is_better"},
|
||||
{"session_no": 3, "axis": "learning_engagement", "mean": 0.56, "standard_deviation": 0.10, "lower_reference": 0.36, "upper_reference": 0.76, "sample_size": 200, "expected_direction": "higher_is_better"},
|
||||
{"session_no": 4, "axis": "distress_load", "mean": 0.46, "standard_deviation": 0.10, "lower_reference": 0.26, "upper_reference": 0.66, "sample_size": 200, "expected_direction": "lower_is_better"},
|
||||
{"session_no": 4, "axis": "daily_functioning", "mean": 0.60, "standard_deviation": 0.10, "lower_reference": 0.40, "upper_reference": 0.80, "sample_size": 200, "expected_direction": "higher_is_better"},
|
||||
{"session_no": 4, "axis": "learning_engagement", "mean": 0.64, "standard_deviation": 0.10, "lower_reference": 0.44, "upper_reference": 0.84, "sample_size": 200, "expected_direction": "higher_is_better"},
|
||||
{"session_no": 5, "axis": "distress_load", "mean": 0.38, "standard_deviation": 0.10, "lower_reference": 0.18, "upper_reference": 0.58, "sample_size": 200, "expected_direction": "lower_is_better"},
|
||||
{"session_no": 5, "axis": "daily_functioning", "mean": 0.68, "standard_deviation": 0.10, "lower_reference": 0.48, "upper_reference": 0.88, "sample_size": 200, "expected_direction": "higher_is_better"},
|
||||
{"session_no": 5, "axis": "learning_engagement", "mean": 0.72, "standard_deviation": 0.10, "lower_reference": 0.52, "upper_reference": 0.92, "sample_size": 200, "expected_direction": "higher_is_better"}
|
||||
]
|
||||
},
|
||||
"cases": [
|
||||
{
|
||||
"case_id": "oas-g2-bench-001",
|
||||
"title_ko": "기대 범위 안의 연속성과 별도 safety 참조",
|
||||
"sessions": [
|
||||
{"session_no": 1, "axes": [
|
||||
{"axis": "distress_load", "value": 0.70, "confidence": 0.92, "source_kind": "simulated_state", "instrument_id": "g2-synthetic-benchmark", "instrument_version": "1.0.0", "evidence_refs": ["b001-s1-distress"]},
|
||||
{"axis": "daily_functioning", "value": 0.30, "confidence": 0.90, "source_kind": "simulated_state", "instrument_id": "g2-synthetic-benchmark", "instrument_version": "1.0.0", "evidence_refs": ["b001-s1-function"]},
|
||||
{"axis": "learning_engagement", "value": 0.40, "confidence": 0.88, "source_kind": "simulated_state", "instrument_id": "g2-synthetic-benchmark", "instrument_version": "1.0.0", "evidence_refs": ["b001-s1-engagement"]}
|
||||
], "relationship_events": [
|
||||
{"event_id": "b001-goal-agreement", "session_no": 1, "event_type": "goal_agreement", "visible_to": ["client", "counselor", "evaluator", "supervisor"], "summaries": {"client": "첫 회기에는 수면 부담을 먼저 살피기로 합의했다.", "counselor": "내담자와 수면 부담 확인을 첫 목표로 합의했다.", "evaluator": "양측 발화로 수면 부담 우선 목표 합의가 확인됐다.", "supervisor": "수면 부담을 첫 목표로 명시적으로 합의했다."}, "evidence_refs": ["b001-s1-turn-04"]}
|
||||
]},
|
||||
{"session_no": 2, "axes": [
|
||||
{"axis": "distress_load", "value": 0.62, "confidence": 0.90, "source_kind": "simulated_state", "instrument_id": "g2-synthetic-benchmark", "instrument_version": "1.0.0", "evidence_refs": ["b001-s2-distress"]},
|
||||
{"axis": "daily_functioning", "value": 0.40, "confidence": 0.91, "source_kind": "simulated_state", "instrument_id": "g2-synthetic-benchmark", "instrument_version": "1.0.0", "evidence_refs": ["b001-s2-function"]},
|
||||
{"axis": "learning_engagement", "value": 0.48, "confidence": 0.89, "source_kind": "simulated_state", "instrument_id": "g2-synthetic-benchmark", "instrument_version": "1.0.0", "evidence_refs": ["b001-s2-engagement"]}
|
||||
], "safety_signals": [{"safety_event_id": "b001-safety-001", "session_no": 2, "risk_level": "high", "escalated": true, "evidence_refs": ["b001-s2-turn-07"]}], "relationship_events": [
|
||||
{"event_id": "b001-private-rupture", "session_no": 2, "event_type": "unresolved_rupture", "visible_to": ["client", "evaluator", "supervisor"], "summaries": {"client": "과제를 거절하면 실망시킬까 봐 동의한 척했다.", "evaluator": "표면 동의 뒤 과제 부담이 남아 있는 철수형 균열이 관찰됐다.", "supervisor": "과제 합의가 표면 순응인지 다음 회기에 확인할 필요가 있다."}, "evidence_refs": ["b001-s2-turn-11"], "resolved_by_event_id": "b001-repair"}
|
||||
]},
|
||||
{"session_no": 3, "axes": [
|
||||
{"axis": "distress_load", "value": 0.54, "confidence": 0.90, "source_kind": "simulated_state", "instrument_id": "g2-synthetic-benchmark", "instrument_version": "1.0.0", "evidence_refs": ["b001-s3-distress"]},
|
||||
{"axis": "daily_functioning", "value": 0.50, "confidence": 0.90, "source_kind": "simulated_state", "instrument_id": "g2-synthetic-benchmark", "instrument_version": "1.0.0", "evidence_refs": ["b001-s3-function"]},
|
||||
{"axis": "learning_engagement", "value": 0.56, "confidence": 0.90, "source_kind": "simulated_state", "instrument_id": "g2-synthetic-benchmark", "instrument_version": "1.0.0", "evidence_refs": ["b001-s3-engagement"]}
|
||||
], "relationship_events": [
|
||||
{"event_id": "b001-repair", "session_no": 3, "event_type": "repair_confirmed", "visible_to": ["client", "counselor", "evaluator", "supervisor"], "summaries": {"client": "과제 부담을 솔직히 말한 뒤 더 작은 연습으로 바꿨다.", "counselor": "과제 부담을 확인하고 내담자가 선택한 작은 연습으로 재합의했다.", "evaluator": "부담 확인, 상담자 기여 인정, 후속 합의가 모두 관찰됐다.", "supervisor": "2회기 미해결 균열이 3회기 재합의로 복구됐다."}, "evidence_refs": ["b001-s3-turn-08"]}
|
||||
]},
|
||||
{"session_no": 4, "axes": [
|
||||
{"axis": "distress_load", "value": 0.46, "confidence": 0.91, "source_kind": "simulated_state", "instrument_id": "g2-synthetic-benchmark", "instrument_version": "1.0.0", "evidence_refs": ["b001-s4-distress"]},
|
||||
{"axis": "daily_functioning", "value": 0.60, "confidence": 0.90, "source_kind": "simulated_state", "instrument_id": "g2-synthetic-benchmark", "instrument_version": "1.0.0", "evidence_refs": ["b001-s4-function"]},
|
||||
{"axis": "learning_engagement", "value": 0.64, "confidence": 0.90, "source_kind": "simulated_state", "instrument_id": "g2-synthetic-benchmark", "instrument_version": "1.0.0", "evidence_refs": ["b001-s4-engagement"]}
|
||||
]},
|
||||
{"session_no": 5, "axes": [
|
||||
{"axis": "distress_load", "value": 0.38, "confidence": 0.92, "source_kind": "simulated_state", "instrument_id": "g2-synthetic-benchmark", "instrument_version": "1.0.0", "evidence_refs": ["b001-s5-distress"]},
|
||||
{"axis": "daily_functioning", "value": 0.68, "confidence": 0.91, "source_kind": "simulated_state", "instrument_id": "g2-synthetic-benchmark", "instrument_version": "1.0.0", "evidence_refs": ["b001-s5-function"]},
|
||||
{"axis": "learning_engagement", "value": 0.72, "confidence": 0.90, "source_kind": "simulated_state", "instrument_id": "g2-synthetic-benchmark", "instrument_version": "1.0.0", "evidence_refs": ["b001-s5-engagement"]}
|
||||
]}
|
||||
],
|
||||
"expected": [{"session_no": 1, "status": "on_track"}, {"session_no": 2, "status": "on_track"}, {"session_no": 3, "status": "on_track"}, {"session_no": 4, "status": "on_track"}, {"session_no": 5, "status": "on_track"}],
|
||||
"forbidden_claims": ["high safety event를 outcome deterioration로 합산", "합성 궤적을 실제 치료 효과로 표시"]
|
||||
},
|
||||
{
|
||||
"case_id": "oas-g2-bench-002",
|
||||
"title_ko": "3회기부터 여러 축에서 악화되는 조기경보",
|
||||
"sessions": [
|
||||
{"session_no": 1, "axes": [
|
||||
{"axis": "distress_load", "value": 0.70, "confidence": 0.90, "source_kind": "simulated_state", "instrument_id": "g2-synthetic-benchmark", "instrument_version": "1.0.0", "evidence_refs": ["b002-s1-d"]},
|
||||
{"axis": "daily_functioning", "value": 0.30, "confidence": 0.90, "source_kind": "simulated_state", "instrument_id": "g2-synthetic-benchmark", "instrument_version": "1.0.0", "evidence_refs": ["b002-s1-f"]},
|
||||
{"axis": "learning_engagement", "value": 0.40, "confidence": 0.90, "source_kind": "simulated_state", "instrument_id": "g2-synthetic-benchmark", "instrument_version": "1.0.0", "evidence_refs": ["b002-s1-e"]}
|
||||
]},
|
||||
{"session_no": 2, "axes": [
|
||||
{"axis": "distress_load", "value": 0.75, "confidence": 0.84, "source_kind": "simulated_state", "instrument_id": "g2-synthetic-benchmark", "instrument_version": "1.0.0", "evidence_refs": ["b002-s2-d"]},
|
||||
{"axis": "daily_functioning", "value": 0.30, "confidence": 0.85, "source_kind": "simulated_state", "instrument_id": "g2-synthetic-benchmark", "instrument_version": "1.0.0", "evidence_refs": ["b002-s2-f"]},
|
||||
{"axis": "learning_engagement", "value": 0.40, "confidence": 0.82, "source_kind": "simulated_state", "instrument_id": "g2-synthetic-benchmark", "instrument_version": "1.0.0", "evidence_refs": ["b002-s2-e"]}
|
||||
]},
|
||||
{"session_no": 3, "axes": [
|
||||
{"axis": "distress_load", "value": 0.82, "confidence": 0.88, "source_kind": "simulated_state", "instrument_id": "g2-synthetic-benchmark", "instrument_version": "1.0.0", "evidence_refs": ["b002-s3-d"]},
|
||||
{"axis": "daily_functioning", "value": 0.24, "confidence": 0.87, "source_kind": "simulated_state", "instrument_id": "g2-synthetic-benchmark", "instrument_version": "1.0.0", "evidence_refs": ["b002-s3-f"]},
|
||||
{"axis": "learning_engagement", "value": 0.32, "confidence": 0.86, "source_kind": "simulated_state", "instrument_id": "g2-synthetic-benchmark", "instrument_version": "1.0.0", "evidence_refs": ["b002-s3-e"]}
|
||||
]},
|
||||
{"session_no": 4, "axes": [
|
||||
{"axis": "distress_load", "value": 0.86, "confidence": 0.89, "source_kind": "simulated_state", "instrument_id": "g2-synthetic-benchmark", "instrument_version": "1.0.0", "evidence_refs": ["b002-s4-d"]},
|
||||
{"axis": "daily_functioning", "value": 0.20, "confidence": 0.88, "source_kind": "simulated_state", "instrument_id": "g2-synthetic-benchmark", "instrument_version": "1.0.0", "evidence_refs": ["b002-s4-f"]},
|
||||
{"axis": "learning_engagement", "value": 0.26, "confidence": 0.87, "source_kind": "simulated_state", "instrument_id": "g2-synthetic-benchmark", "instrument_version": "1.0.0", "evidence_refs": ["b002-s4-e"]}
|
||||
]},
|
||||
{"session_no": 5, "axes": [
|
||||
{"axis": "distress_load", "value": 0.90, "confidence": 0.90, "source_kind": "simulated_state", "instrument_id": "g2-synthetic-benchmark", "instrument_version": "1.0.0", "evidence_refs": ["b002-s5-d"]},
|
||||
{"axis": "daily_functioning", "value": 0.16, "confidence": 0.89, "source_kind": "simulated_state", "instrument_id": "g2-synthetic-benchmark", "instrument_version": "1.0.0", "evidence_refs": ["b002-s5-f"]},
|
||||
{"axis": "learning_engagement", "value": 0.22, "confidence": 0.88, "source_kind": "simulated_state", "instrument_id": "g2-synthetic-benchmark", "instrument_version": "1.0.0", "evidence_refs": ["b002-s5-e"]}
|
||||
]}
|
||||
],
|
||||
"expected": [{"session_no": 1, "status": "on_track"}, {"session_no": 2, "status": "watch"}, {"session_no": 3, "status": "deteriorating"}, {"session_no": 4, "status": "deteriorating"}, {"session_no": 5, "status": "deteriorating"}],
|
||||
"forbidden_claims": ["여러 축을 하나의 총점으로 평균", "악화 신호를 진단 또는 실제 임상 예후로 표현"]
|
||||
},
|
||||
{
|
||||
"case_id": "oas-g2-bench-003",
|
||||
"title_ko": "일시적 watch 뒤 회복되는 false-alert 방어",
|
||||
"sessions": [
|
||||
{"session_no": 1, "axes": [
|
||||
{"axis": "distress_load", "value": 0.70, "confidence": 0.86, "source_kind": "simulated_state", "instrument_id": "g2-synthetic-benchmark", "instrument_version": "1.0.0", "evidence_refs": ["b003-s1-d"]},
|
||||
{"axis": "daily_functioning", "value": 0.30, "confidence": 0.86, "source_kind": "simulated_state", "instrument_id": "g2-synthetic-benchmark", "instrument_version": "1.0.0", "evidence_refs": ["b003-s1-f"]},
|
||||
{"axis": "learning_engagement", "value": 0.40, "confidence": 0.86, "source_kind": "simulated_state", "instrument_id": "g2-synthetic-benchmark", "instrument_version": "1.0.0", "evidence_refs": ["b003-s1-e"]}
|
||||
]},
|
||||
{"session_no": 2, "axes": [
|
||||
{"axis": "distress_load", "value": 0.72, "confidence": 0.70, "source_kind": "simulated_state", "instrument_id": "g2-synthetic-benchmark", "instrument_version": "1.0.0", "evidence_refs": ["b003-s2-d"]},
|
||||
{"axis": "daily_functioning", "value": 0.32, "confidence": 0.72, "source_kind": "simulated_state", "instrument_id": "g2-synthetic-benchmark", "instrument_version": "1.0.0", "evidence_refs": ["b003-s2-f"]},
|
||||
{"axis": "learning_engagement", "value": 0.40, "confidence": 0.68, "source_kind": "simulated_state", "instrument_id": "g2-synthetic-benchmark", "instrument_version": "1.0.0", "evidence_refs": ["b003-s2-e"]}
|
||||
]},
|
||||
{"session_no": 3, "axes": [
|
||||
{"axis": "distress_load", "value": 0.54, "confidence": 0.88, "source_kind": "simulated_state", "instrument_id": "g2-synthetic-benchmark", "instrument_version": "1.0.0", "evidence_refs": ["b003-s3-d"]},
|
||||
{"axis": "daily_functioning", "value": 0.50, "confidence": 0.88, "source_kind": "simulated_state", "instrument_id": "g2-synthetic-benchmark", "instrument_version": "1.0.0", "evidence_refs": ["b003-s3-f"]},
|
||||
{"axis": "learning_engagement", "value": 0.56, "confidence": 0.88, "source_kind": "simulated_state", "instrument_id": "g2-synthetic-benchmark", "instrument_version": "1.0.0", "evidence_refs": ["b003-s3-e"]}
|
||||
]},
|
||||
{"session_no": 4, "axes": [
|
||||
{"axis": "distress_load", "value": 0.46, "confidence": 0.90, "source_kind": "simulated_state", "instrument_id": "g2-synthetic-benchmark", "instrument_version": "1.0.0", "evidence_refs": ["b003-s4-d"]},
|
||||
{"axis": "daily_functioning", "value": 0.60, "confidence": 0.90, "source_kind": "simulated_state", "instrument_id": "g2-synthetic-benchmark", "instrument_version": "1.0.0", "evidence_refs": ["b003-s4-f"]},
|
||||
{"axis": "learning_engagement", "value": 0.64, "confidence": 0.90, "source_kind": "simulated_state", "instrument_id": "g2-synthetic-benchmark", "instrument_version": "1.0.0", "evidence_refs": ["b003-s4-e"]}
|
||||
]},
|
||||
{"session_no": 5, "axes": [
|
||||
{"axis": "distress_load", "value": 0.38, "confidence": 0.90, "source_kind": "simulated_state", "instrument_id": "g2-synthetic-benchmark", "instrument_version": "1.0.0", "evidence_refs": ["b003-s5-d"]},
|
||||
{"axis": "daily_functioning", "value": 0.68, "confidence": 0.90, "source_kind": "simulated_state", "instrument_id": "g2-synthetic-benchmark", "instrument_version": "1.0.0", "evidence_refs": ["b003-s5-f"]},
|
||||
{"axis": "learning_engagement", "value": 0.72, "confidence": 0.90, "source_kind": "simulated_state", "instrument_id": "g2-synthetic-benchmark", "instrument_version": "1.0.0", "evidence_refs": ["b003-s5-e"]}
|
||||
]}
|
||||
],
|
||||
"expected": [{"session_no": 1, "status": "on_track"}, {"session_no": 2, "status": "watch"}, {"session_no": 3, "status": "on_track"}, {"session_no": 4, "status": "on_track"}, {"session_no": 5, "status": "on_track"}],
|
||||
"forbidden_claims": ["한 회기의 작은 이탈을 악화 경보로 과대표시", "불확실성을 숨김"]
|
||||
},
|
||||
{
|
||||
"case_id": "oas-g2-bench-004",
|
||||
"title_ko": "누락값을 정상값으로 채우지 않는 궤적",
|
||||
"sessions": [
|
||||
{"session_no": 1, "axes": [
|
||||
{"axis": "distress_load", "value": 0.70, "confidence": 0.90, "source_kind": "simulated_state", "instrument_id": "g2-synthetic-benchmark", "instrument_version": "1.0.0", "evidence_refs": ["b004-s1-d"]},
|
||||
{"axis": "daily_functioning", "value": 0.30, "confidence": 0.90, "source_kind": "simulated_state", "instrument_id": "g2-synthetic-benchmark", "instrument_version": "1.0.0", "evidence_refs": ["b004-s1-f"]},
|
||||
{"axis": "learning_engagement", "value": 0.40, "confidence": 0.90, "source_kind": "simulated_state", "instrument_id": "g2-synthetic-benchmark", "instrument_version": "1.0.0", "evidence_refs": ["b004-s1-e"]}
|
||||
]},
|
||||
{"session_no": 2, "axes": [
|
||||
{"axis": "distress_load", "value": 0.62, "confidence": 0.90, "source_kind": "simulated_state", "instrument_id": "g2-synthetic-benchmark", "instrument_version": "1.0.0", "evidence_refs": ["b004-s2-d"]},
|
||||
{"axis": "daily_functioning", "value": 0.40, "confidence": 0.90, "source_kind": "simulated_state", "instrument_id": "g2-synthetic-benchmark", "instrument_version": "1.0.0", "evidence_refs": ["b004-s2-f"]},
|
||||
{"axis": "learning_engagement", "status": "missing", "source_kind": "simulated_state", "instrument_id": "g2-synthetic-benchmark", "instrument_version": "1.0.0", "missing_reason": "synthetic_response_omitted", "evidence_refs": []}
|
||||
]},
|
||||
{"session_no": 3, "axes": [
|
||||
{"axis": "distress_load", "value": 0.54, "confidence": 0.90, "source_kind": "simulated_state", "instrument_id": "g2-synthetic-benchmark", "instrument_version": "1.0.0", "evidence_refs": ["b004-s3-d"]},
|
||||
{"axis": "daily_functioning", "value": 0.50, "confidence": 0.90, "source_kind": "simulated_state", "instrument_id": "g2-synthetic-benchmark", "instrument_version": "1.0.0", "evidence_refs": ["b004-s3-f"]},
|
||||
{"axis": "learning_engagement", "value": 0.56, "confidence": 0.90, "source_kind": "simulated_state", "instrument_id": "g2-synthetic-benchmark", "instrument_version": "1.0.0", "evidence_refs": ["b004-s3-e"]}
|
||||
]},
|
||||
{"session_no": 4, "axes": [
|
||||
{"axis": "distress_load", "value": 0.46, "confidence": 0.90, "source_kind": "simulated_state", "instrument_id": "g2-synthetic-benchmark", "instrument_version": "1.0.0", "evidence_refs": ["b004-s4-d"]},
|
||||
{"axis": "daily_functioning", "value": 0.60, "confidence": 0.90, "source_kind": "simulated_state", "instrument_id": "g2-synthetic-benchmark", "instrument_version": "1.0.0", "evidence_refs": ["b004-s4-f"]},
|
||||
{"axis": "learning_engagement", "value": 0.64, "confidence": 0.90, "source_kind": "simulated_state", "instrument_id": "g2-synthetic-benchmark", "instrument_version": "1.0.0", "evidence_refs": ["b004-s4-e"]}
|
||||
]},
|
||||
{"session_no": 5, "axes": [
|
||||
{"axis": "distress_load", "value": 0.38, "confidence": 0.90, "source_kind": "simulated_state", "instrument_id": "g2-synthetic-benchmark", "instrument_version": "1.0.0", "evidence_refs": ["b004-s5-d"]},
|
||||
{"axis": "daily_functioning", "value": 0.68, "confidence": 0.90, "source_kind": "simulated_state", "instrument_id": "g2-synthetic-benchmark", "instrument_version": "1.0.0", "evidence_refs": ["b004-s5-f"]},
|
||||
{"axis": "learning_engagement", "value": 0.72, "confidence": 0.90, "source_kind": "simulated_state", "instrument_id": "g2-synthetic-benchmark", "instrument_version": "1.0.0", "evidence_refs": ["b004-s5-e"]}
|
||||
]}
|
||||
],
|
||||
"expected": [{"session_no": 1, "status": "on_track"}, {"session_no": 2, "status": "insufficient_evidence"}, {"session_no": 3, "status": "on_track"}, {"session_no": 4, "status": "on_track"}, {"session_no": 5, "status": "on_track"}],
|
||||
"forbidden_claims": ["누락값을 기대 평균으로 대체", "근거 없는 정상 판정"]
|
||||
}
|
||||
]
|
||||
}
|
||||
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":["동일 복구 문구를 맥락과 무관하게 성공 처리한다"]
|
||||
}
|
||||
]
|
||||
}
|
||||
47
apps/api/app/data/supervision_research_benchmark_g6.v1.json
Normal file
47
apps/api/app/data/supervision_research_benchmark_g6.v1.json
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
{
|
||||
"schema_version": "vignette.supervision-research-benchmark.v1",
|
||||
"version": "1.0.0",
|
||||
"data_classification": "synthetic_educational",
|
||||
"clinical_claim_allowed": false,
|
||||
"attention_signals": [
|
||||
{"signal_id":"oas-g6-signal-deterioration","learner_ref":"learner-d","signal_type":"deterioration","severity":"high","state":"active","uncertainty":0.1,"observed_sequence":6,"evidence":[{"ledger":"outcome_trajectory_revision","event_id":"trajectory-d","session_id":"session-d","route_hint":"/teach/analysis/learner-d?tab=outcome"}],"counterevidence":[]},
|
||||
{"signal_id":"oas-g6-signal-rupture","learner_ref":"learner-r","signal_type":"unresolved_rupture","severity":"high","state":"active","uncertainty":0.2,"observed_sequence":5,"evidence":[{"ledger":"rupture_observation_event","event_id":"rupture-r","session_id":"session-r","route_hint":"/teach/analysis/learner-r?tab=rupture"}],"counterevidence":[]},
|
||||
{"signal_id":"oas-g6-signal-safety","learner_ref":"learner-s","signal_type":"safety_boundary","severity":"high","state":"active","uncertainty":0.0,"observed_sequence":4,"evidence":[{"ledger":"safety_event","event_id":"safety-s","session_id":"session-s","route_hint":"/teach/analysis/learner-s?tab=safety"}],"counterevidence":[]},
|
||||
{"signal_id":"oas-g6-signal-calibration","learner_ref":"learner-c","signal_type":"persistent_overconfidence","severity":"moderate","state":"monitoring","uncertainty":0.2,"observed_sequence":3,"evidence":[{"ledger":"calibration_assessment","event_id":"calibration-c","session_id":null,"route_hint":"/teach/analysis/learner-c?tab=calibration"}],"counterevidence":[]},
|
||||
{"signal_id":"oas-g6-signal-stagnation","learner_ref":"learner-g","signal_type":"growth_stagnation","severity":"moderate","state":"active","uncertainty":0.3,"observed_sequence":2,"evidence":[{"ledger":"practice_attempt","event_id":"practice-g","session_id":"session-g","route_hint":"/teach/analysis/learner-g?tab=practice"}],"counterevidence":[]},
|
||||
{"signal_id":"oas-g6-signal-transfer","learner_ref":"learner-t","signal_type":"transfer_failure","severity":"moderate","state":"active","uncertainty":0.2,"observed_sequence":1,"evidence":[{"ledger":"transfer_assessment","event_id":"transfer-t","session_id":null,"route_hint":"/teach/analysis/learner-t?tab=transfer"}],"counterevidence":[]}
|
||||
],
|
||||
"expected_queue_order": ["learner-s","learner-d","learner-r","learner-c","learner-g","learner-t"],
|
||||
"disagreements": [
|
||||
{"disagreement_id":"oas-g6-disagreement-001","case_ref":"synthetic-case-001","competency_id":"competency.rupture-repair","ai_label":"resolved","teacher_label":"partial","ai_model":"evaluator-v1","prompt_version":"1.0.0","instrument_id":"rupture-repair-evaluator","instrument_version":"1.0.0","ai_evidence":[{"ledger":"rupture_reconciliation_revision","event_id":"reconcile-ai-001","session_id":"session-001","route_hint":"/sessions/session-001/ruptures"}],"teacher_correction_evidence":[{"ledger":"rupture_observation_event","event_id":"correction-human-001","session_id":"session-001","route_hint":"/sessions/session-001/ruptures"}],"correction_reason_code":"repair_impact_not_confirmed"}
|
||||
],
|
||||
"baseline_batch": {
|
||||
"batch_id":"oas-g6-batch-baseline","model":"evaluator-v1","prompt_version":"1.0.0","instrument_id":"rupture-eval","instrument_version":"1.0.0",
|
||||
"observations":[
|
||||
{"case_ref":"case-a1","competency_id":"competency.repair","synthetic_subgroup":"synthetic-a","gold_label":"resolved","predicted_label":"resolved","evidence_event_id":"base-a1"},
|
||||
{"case_ref":"case-a2","competency_id":"competency.repair","synthetic_subgroup":"synthetic-a","gold_label":"partial","predicted_label":"partial","evidence_event_id":"base-a2"},
|
||||
{"case_ref":"case-a3","competency_id":"competency.repair","synthetic_subgroup":"synthetic-a","gold_label":"missed","predicted_label":"missed","evidence_event_id":"base-a3"},
|
||||
{"case_ref":"case-b1","competency_id":"competency.repair","synthetic_subgroup":"synthetic-b","gold_label":"resolved","predicted_label":"resolved","evidence_event_id":"base-b1"},
|
||||
{"case_ref":"case-b2","competency_id":"competency.repair","synthetic_subgroup":"synthetic-b","gold_label":"partial","predicted_label":"partial","evidence_event_id":"base-b2"},
|
||||
{"case_ref":"case-b3","competency_id":"competency.repair","synthetic_subgroup":"synthetic-b","gold_label":"missed","predicted_label":"missed","evidence_event_id":"base-b3"}
|
||||
]
|
||||
},
|
||||
"candidate_batch": {
|
||||
"batch_id":"oas-g6-batch-candidate","model":"evaluator-v2","prompt_version":"2.0.0","instrument_id":"rupture-eval","instrument_version":"1.1.0",
|
||||
"observations":[
|
||||
{"case_ref":"case-a1","competency_id":"competency.repair","synthetic_subgroup":"synthetic-a","gold_label":"resolved","predicted_label":"resolved","evidence_event_id":"candidate-a1"},
|
||||
{"case_ref":"case-a2","competency_id":"competency.repair","synthetic_subgroup":"synthetic-a","gold_label":"partial","predicted_label":"partial","evidence_event_id":"candidate-a2"},
|
||||
{"case_ref":"case-a3","competency_id":"competency.repair","synthetic_subgroup":"synthetic-a","gold_label":"missed","predicted_label":"missed","evidence_event_id":"candidate-a3"},
|
||||
{"case_ref":"case-b1","competency_id":"competency.repair","synthetic_subgroup":"synthetic-b","gold_label":"resolved","predicted_label":"resolved","evidence_event_id":"candidate-b1"},
|
||||
{"case_ref":"case-b2","competency_id":"competency.repair","synthetic_subgroup":"synthetic-b","gold_label":"partial","predicted_label":"resolved","evidence_event_id":"candidate-b2"},
|
||||
{"case_ref":"case-b3","competency_id":"competency.repair","synthetic_subgroup":"synthetic-b","gold_label":"missed","predicted_label":"partial","evidence_event_id":"candidate-b3"}
|
||||
]
|
||||
},
|
||||
"expected_drift_status": "drift_flagged",
|
||||
"phase3_artifacts": [
|
||||
{"domain":"alliance","artifact_id":"alliance-v1","schema_version":"vignette.alliance-pulse.v1","content_sha256":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","record_count":9,"provenance_uri":"db://app/measurement_event/alliance","clinical_claim_allowed":false},
|
||||
{"domain":"rupture","artifact_id":"rupture-v1","schema_version":"vignette.rupture-repair.v1","content_sha256":"bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb","record_count":6,"provenance_uri":"db://app/rupture_observation_event","clinical_claim_allowed":false},
|
||||
{"domain":"transfer","artifact_id":"transfer-v1","schema_version":"vignette.transfer-assessment.v1","content_sha256":"cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc","record_count":4,"provenance_uri":"audit://transfer/assessment","clinical_claim_allowed":false},
|
||||
{"domain":"calibration","artifact_id":"calibration-v1","schema_version":"vignette.calibration-assessment.v1","content_sha256":"dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd","record_count":6,"provenance_uri":"audit://calibration/assessment","clinical_claim_allowed":false}
|
||||
]
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue