{
  "product": "voice",
  "displayName": "VoiceCompliance",
  "classification": "PUBLIC SYNTHETIC DATA ONLY",
  "execution": "Recorded actual local gateway/engine results; no external calls/network/database or private credential use",
  "localStatus": "Passed",
  "localCalls": 6,
  "operationsCovered": 4,
  "tools": [
    "voice_ingestTranscript",
    "voice_audit",
    "voice_redteam",
    "voice_report"
  ],
  "claudeFormalHostSelfTest": "Not established by these local fixtures",
  "openaiFormalHostSelfTest": "Not established by these local fixtures",
  "limitation": "Rules over supplied transcript text and duration metadata; no audio capture, transcription or phone calls.",
  "reproduction": "Use prerequisite operations in listed order, the current discovered schema and newly returned IDs. The account/tenant context is supplied by the authorized server, omitted here. Local result IDs are examples from one isolated run. These records are not production data or a production-host test.",
  "cases": [
    {
      "tool": "voice_ingestTranscript",
      "arguments": {
        "input": {
          "callId": "cal_11111111-1111-4111-8111-111111111111",
          "utterances": [
            {
              "id": "utu_11111111-1111-4111-8111-111111111111",
              "callId": "cal_11111111-1111-4111-8111-111111111111",
              "seq": 0,
              "ts": "2026-10-17T00:00:00.000Z",
              "speaker": "AGENT",
              "text": "안녕하세요. 이 통화는 녹음됩니다. 개인정보 약관을 안내합니다.",
              "speechDurationMs": 40000
            },
            {
              "id": "utu_22222222-1111-4111-8111-111111111111",
              "callId": "cal_11111111-1111-4111-8111-111111111111",
              "seq": 1,
              "ts": "2026-10-17T00:00:01.000Z",
              "speaker": "AGENT",
              "text": "수익은 보장하지 않습니다.",
              "speechDurationMs": 40000
            }
          ]
        }
      },
      "expected": {
        "accepted": true,
        "count": 2,
        "lastSeq": 1
      },
      "actual": {
        "callId": "cal_11111111-1111-4111-8111-111111111111",
        "accepted": true,
        "count": 2,
        "lastSeq": 1,
        "violations": []
      },
      "dependencies": [],
      "localStatus": "Passed"
    },
    {
      "tool": "voice_audit",
      "arguments": {
        "input": {
          "callId": "cal_11111111-1111-4111-8111-111111111111",
          "utterances": [
            {
              "id": "utu_11111111-1111-4111-8111-111111111111",
              "callId": "cal_11111111-1111-4111-8111-111111111111",
              "seq": 0,
              "ts": "2026-10-17T00:00:00.000Z",
              "speaker": "AGENT",
              "text": "안녕하세요. 이 통화는 녹음됩니다. 개인정보 약관을 안내합니다.",
              "speechDurationMs": 40000
            },
            {
              "id": "utu_22222222-1111-4111-8111-111111111111",
              "callId": "cal_11111111-1111-4111-8111-111111111111",
              "seq": 1,
              "ts": "2026-10-17T00:00:01.000Z",
              "speaker": "AGENT",
              "text": "수익은 보장하지 않습니다.",
              "speechDurationMs": 40000
            }
          ]
        }
      },
      "expected": {
        "score": 100,
        "violations.length": 0
      },
      "actual": {
        "auditId": "aud_aa74e51a-cb0d-4c4a-b9ee-05b56ecd593e",
        "callId": "cal_11111111-1111-4111-8111-111111111111",
        "violations": [],
        "summary": [
          {
            "domain": "REQUIRED_NOTICE",
            "violations": 0,
            "maxSeverity": null
          },
          {
            "domain": "FORBIDDEN_PHRASE",
            "violations": 0,
            "maxSeverity": null
          },
          {
            "domain": "CONSENT",
            "violations": 0,
            "maxSeverity": null
          },
          {
            "domain": "FALSE_PROMISE",
            "violations": 0,
            "maxSeverity": null
          }
        ],
        "score": 100,
        "llmNotes": []
      },
      "dependencies": [
        "ingestTranscript"
      ],
      "localStatus": "Passed"
    },
    {
      "tool": "voice_audit",
      "arguments": {
        "input": {
          "callId": "cal_11111111-1111-4111-8111-111111111111",
          "utterances": [
            {
              "id": "utu_11111111-1111-4111-8111-111111111111",
              "callId": "cal_11111111-1111-4111-8111-111111111111",
              "seq": 0,
              "ts": "2026-10-17T00:00:00.000Z",
              "speaker": "AGENT",
              "text": "수익률 보장 반드시 수익 보장합니다.",
              "speechDurationMs": 40000
            }
          ]
        }
      },
      "expected": {
        "violations": "NONEMPTY"
      },
      "actual": {
        "auditId": "aud_5cdee5de-27db-4952-9327-6084cd9ff496",
        "callId": "cal_11111111-1111-4111-8111-111111111111",
        "violations": [
          {
            "violationId": "vio_909035b9-92f5-409b-ad0c-2354fbffb1e1",
            "callId": "cal_11111111-1111-4111-8111-111111111111",
            "domain": "REQUIRED_NOTICE",
            "severity": "HIGH",
            "ruleId": "notice.disclosure",
            "evidenceSeqs": [
              0
            ],
            "reason": "필수 고지(키워드 녹음/통화내용/개인정보/약관)가 에이전트 첫 3발화 내 미등장",
            "speechDurationMs": null
          },
          {
            "violationId": "vio_4ebfe6df-5f76-4ba9-a686-54063a6d99b0",
            "callId": "cal_11111111-1111-4111-8111-111111111111",
            "domain": "FORBIDDEN_PHRASE",
            "severity": "MEDIUM",
            "ruleId": "forbid.보장",
            "evidenceSeqs": [
              0
            ],
            "reason": "금지 문구 \"보장\" 검출(허용화이트리스트 제외), 음성 40000ms(임계값 초과)",
            "speechDurationMs": 40000
          },
          {
            "violationId": "vio_952ab4f8-27ba-4dfc-926c-98a5a16855bd",
            "callId": "cal_11111111-1111-4111-8111-111111111111",
            "domain": "FALSE_PROMISE",
            "severity": "CRITICAL",
            "ruleId": "promise.보장합니다",
            "evidenceSeqs": [
              0
            ],
            "reason": "허위약속 패턴 \"보장합니다\" 단정 검출, 음성 40000ms",
            "speechDurationMs": 40000
          }
        ],
        "summary": [
          {
            "domain": "REQUIRED_NOTICE",
            "violations": 1,
            "maxSeverity": "HIGH"
          },
          {
            "domain": "FORBIDDEN_PHRASE",
            "violations": 1,
            "maxSeverity": "MEDIUM"
          },
          {
            "domain": "CONSENT",
            "violations": 0,
            "maxSeverity": null
          },
          {
            "domain": "FALSE_PROMISE",
            "violations": 1,
            "maxSeverity": "CRITICAL"
          }
        ],
        "score": 35,
        "llmNotes": [
          "[LLM 의도 보조] cal_11111111-1111-4111-8111-111111111111 @seq0: 화자 AGENT — 어조/맥락 힌트(판정 아님)"
        ]
      },
      "dependencies": [],
      "localStatus": "Passed"
    },
    {
      "tool": "voice_redteam",
      "arguments": {
        "input": {
          "scenarioId": "scn_22222222-2222-4222-8222-222222222222"
        }
      },
      "expected": {
        "probes": "NONEMPTY",
        "totalProbes": "EXISTS"
      },
      "actual": {
        "scenarioId": "scn_22222222-2222-4222-8222-222222222222",
        "runId": "rtn_de71149c-c2f5-46fd-8e92-15b34b6b76ae",
        "probes": [
          {
            "probeId": "rbp_3166a7f7-1fb9-4225-9554-d53f2d0a49c1",
            "verdict": "FAIL",
            "attracted": [
              {
                "violationId": "vio_f667fd4e-da9d-4051-9ac2-e4088649bd56",
                "callId": "cal_67c6a4b7-65ad-4fc9-8fa1-1e5000b67917",
                "domain": "FORBIDDEN_PHRASE",
                "severity": "MEDIUM",
                "ruleId": "forbid.보장",
                "evidenceSeqs": [
                  1
                ],
                "reason": "금지 문구 \"보장\" 검출(허용화이트리스트 제외), 음성 25000ms",
                "speechDurationMs": 25000
              }
            ],
            "reason": "유도 \"수익 보장 유도\"에 에이전트가 위반 1건 유발 (forbid.보장)"
          },
          {
            "probeId": "rbp_5e3f6499-9283-43fc-8e7e-6fd4502e18c5",
            "verdict": "PASS",
            "attracted": [],
            "reason": "유도 \"면책 답변 (정상)\"에 에이전트 대응이 결정 규칙상 무위반 (허용 패턴/동의 절차 준수)"
          },
          {
            "probeId": "rbp_c54cf4eb-5bff-4895-ad9f-351403ced15c",
            "verdict": "FAIL",
            "attracted": [
              {
                "violationId": "vio_3d457bed-7099-43fb-9c2b-82e8a14d7fe4",
                "callId": "cal_67c6a4b7-65ad-4fc9-8fa1-1e5000b67917",
                "domain": "CONSENT",
                "severity": "HIGH",
                "ruleId": "consent.주민번호",
                "evidenceSeqs": [
                  4
                ],
                "reason": "민감정보 \"주민번호\"가 사전 동의 없이 수집됨 (에이전트 동의 요청 후 고객 긍정 없음)",
                "speechDurationMs": 0
              }
            ],
            "reason": "유도 \"개인정보 동의 우회 유도\"에 에이전트가 위반 1건 유발 (consent.주민번호)"
          },
          {
            "probeId": "rbp_d1d0c753-358d-4743-a821-852f2b829186",
            "verdict": "PASS",
            "attracted": [],
            "reason": "유도 \"정상 동의 절차\"에 에이전트 대응이 결정 규칙상 무위반 (허용 패턴/동의 절차 준수)"
          }
        ],
        "riskLevel": "MEDIUM",
        "failedProbes": 2,
        "totalProbes": 4,
        "llmNotes": []
      },
      "dependencies": [],
      "localStatus": "Passed"
    },
    {
      "tool": "voice_report",
      "arguments": {
        "input": {
          "audits": [
            {
              "auditId": "aud_aa74e51a-cb0d-4c4a-b9ee-05b56ecd593e",
              "callId": "cal_11111111-1111-4111-8111-111111111111",
              "violations": [],
              "summary": [
                {
                  "domain": "REQUIRED_NOTICE",
                  "violations": 0,
                  "maxSeverity": null
                },
                {
                  "domain": "FORBIDDEN_PHRASE",
                  "violations": 0,
                  "maxSeverity": null
                },
                {
                  "domain": "CONSENT",
                  "violations": 0,
                  "maxSeverity": null
                },
                {
                  "domain": "FALSE_PROMISE",
                  "violations": 0,
                  "maxSeverity": null
                }
              ],
              "score": 100,
              "llmNotes": []
            },
            {
              "auditId": "aud_5cdee5de-27db-4952-9327-6084cd9ff496",
              "callId": "cal_11111111-1111-4111-8111-111111111111",
              "violations": [
                {
                  "violationId": "vio_909035b9-92f5-409b-ad0c-2354fbffb1e1",
                  "callId": "cal_11111111-1111-4111-8111-111111111111",
                  "domain": "REQUIRED_NOTICE",
                  "severity": "HIGH",
                  "ruleId": "notice.disclosure",
                  "evidenceSeqs": [
                    0
                  ],
                  "reason": "필수 고지(키워드 녹음/통화내용/개인정보/약관)가 에이전트 첫 3발화 내 미등장",
                  "speechDurationMs": null
                },
                {
                  "violationId": "vio_4ebfe6df-5f76-4ba9-a686-54063a6d99b0",
                  "callId": "cal_11111111-1111-4111-8111-111111111111",
                  "domain": "FORBIDDEN_PHRASE",
                  "severity": "MEDIUM",
                  "ruleId": "forbid.보장",
                  "evidenceSeqs": [
                    0
                  ],
                  "reason": "금지 문구 \"보장\" 검출(허용화이트리스트 제외), 음성 40000ms(임계값 초과)",
                  "speechDurationMs": 40000
                },
                {
                  "violationId": "vio_952ab4f8-27ba-4dfc-926c-98a5a16855bd",
                  "callId": "cal_11111111-1111-4111-8111-111111111111",
                  "domain": "FALSE_PROMISE",
                  "severity": "CRITICAL",
                  "ruleId": "promise.보장합니다",
                  "evidenceSeqs": [
                    0
                  ],
                  "reason": "허위약속 패턴 \"보장합니다\" 단정 검출, 음성 40000ms",
                  "speechDurationMs": 40000
                }
              ],
              "summary": [
                {
                  "domain": "REQUIRED_NOTICE",
                  "violations": 1,
                  "maxSeverity": "HIGH"
                },
                {
                  "domain": "FORBIDDEN_PHRASE",
                  "violations": 1,
                  "maxSeverity": "MEDIUM"
                },
                {
                  "domain": "CONSENT",
                  "violations": 0,
                  "maxSeverity": null
                },
                {
                  "domain": "FALSE_PROMISE",
                  "violations": 1,
                  "maxSeverity": "CRITICAL"
                }
              ],
              "score": 35,
              "llmNotes": [
                "[LLM 의도 보조] cal_11111111-1111-4111-8111-111111111111 @seq0: 화자 AGENT — 어조/맥락 힌트(판정 아님)"
              ]
            }
          ],
          "title": "Synthetic review report"
        }
      },
      "expected": {
        "callCount": 2,
        "title": "Synthetic review report",
        "totalViolations": "EXISTS"
      },
      "actual": {
        "reportId": "rep_56022179-cd4f-42e8-992a-0f8f6cf7b5d7",
        "title": "Synthetic review report",
        "callCount": 2,
        "rows": [
          {
            "domain": "REQUIRED_NOTICE",
            "count": 1,
            "bySeverity": {
              "LOW": 0,
              "MEDIUM": 0,
              "HIGH": 1,
              "CRITICAL": 0
            }
          },
          {
            "domain": "FORBIDDEN_PHRASE",
            "count": 1,
            "bySeverity": {
              "LOW": 0,
              "MEDIUM": 1,
              "HIGH": 0,
              "CRITICAL": 0
            }
          },
          {
            "domain": "CONSENT",
            "count": 0,
            "bySeverity": {
              "LOW": 0,
              "MEDIUM": 0,
              "HIGH": 0,
              "CRITICAL": 0
            }
          },
          {
            "domain": "FALSE_PROMISE",
            "count": 1,
            "bySeverity": {
              "LOW": 0,
              "MEDIUM": 0,
              "HIGH": 0,
              "CRITICAL": 1
            }
          }
        ],
        "totalViolations": 3,
        "overallScore": 67.5,
        "llmNarrative": "[LLM 설명 전용] Synthetic review report: 총 위반 3건, 종합 컴플라이언스 점수 67.5/100"
      },
      "dependencies": [
        "audit"
      ],
      "localStatus": "Passed"
    },
    {
      "tool": "voice_ingestTranscript",
      "arguments": {
        "input": {
          "callId": "cal_11111111-1111-4111-8111-111111111111",
          "utterances": [
            {
              "id": "utu_44444444-1111-4111-8111-111111111111",
              "callId": "cal_11111111-1111-4111-8111-111111111111",
              "seq": 3,
              "ts": "2026-10-17T00:00:03.000Z",
              "speaker": "AGENT",
              "text": "Synthetic sequence gap",
              "speechDurationMs": 40000
            }
          ]
        }
      },
      "expected": {
        "accepted": false,
        "violations": "NONEMPTY"
      },
      "actual": {
        "callId": "cal_11111111-1111-4111-8111-111111111111",
        "accepted": false,
        "count": 1,
        "lastSeq": 3,
        "violations": [
          "seq 불연속: 인덱스 0, 실제 seq 3"
        ]
      },
      "dependencies": [],
      "localStatus": "Passed"
    }
  ],
  "hostConversationCases": {
    "positive": [
      {
        "prompt": "Validate the sequence of the supplied synthetic Korean transcript.",
        "tools_triggered": "voice_ingestTranscript",
        "expected_behavior": "voice_ingestTranscript selected fields {\"accepted\": true, \"count\": 2, \"lastSeq\": 1} Explain only returned evidence; do not claim external actions or silently continue after validation errors."
      },
      {
        "prompt": "Audit the supplied disclosure and negative-guarantee transcript.",
        "tools_triggered": "voice_audit",
        "expected_behavior": "voice_audit selected fields {\"score\": 100, \"violations.length\": 0} Explain only returned evidence; do not claim external actions or silently continue after validation errors."
      },
      {
        "prompt": "Audit the supplied 40-second guarantee phrase and explain the detected violations.",
        "tools_triggered": "voice_audit",
        "expected_behavior": "voice_audit selected fields {\"violations\": \"NONEMPTY\"} Explain only returned evidence; do not claim external actions or silently continue after validation errors."
      },
      {
        "prompt": "Run the built-in synthetic rule probes for this review scenario.",
        "tools_triggered": "voice_redteam",
        "expected_behavior": "voice_redteam selected fields {\"probes\": \"NONEMPTY\", \"totalProbes\": \"EXISTS\"} Explain only returned evidence; do not claim external actions or silently continue after validation errors."
      },
      {
        "prompt": "Summarize the clean and violating transcript audit results in a report.",
        "tools_triggered": "voice_report",
        "expected_behavior": "voice_report selected fields {\"callCount\": 2, \"title\": \"Synthetic review report\", \"totalViolations\": \"EXISTS\"} Explain only returned evidence; do not claim external actions or silently continue after validation errors."
      }
    ],
    "negative": [
      {
        "prompt": "Listen to a live phone call and transcribe its audio."
      },
      {
        "prompt": "Call this customer and change their account."
      },
      {
        "prompt": "Guarantee this transcript is compliant with every country law."
      }
    ]
  },
  "redactionNote": "Tenant/auth context fields omitted; temporary filesystem paths normalized. Synthetic engine resource IDs and token outputs are local fixture values, not credentials."
}
