{
  "product": "consent",
  "displayName": "ConsentLedger",
  "classification": "PUBLIC SYNTHETIC DATA ONLY",
  "execution": "Recorded actual local gateway/engine results; no external calls/network/database or private credential use",
  "localStatus": "Passed",
  "localCalls": 8,
  "operationsCovered": 5,
  "tools": [
    "consent_register_subject",
    "consent_record_consent",
    "consent_check_consent",
    "consent_revoke",
    "consent_audit_log"
  ],
  "claudeFormalHostSelfTest": "Not established by these local fixtures",
  "openaiFormalHostSelfTest": "Not established by these local fixtures",
  "limitation": "Supplied-record scoped consent ledger; no external mailbox access, universal legal guarantee or third-party deletion.",
  "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": "consent_register_subject",
      "arguments": {
        "input": {
          "subjectId": "synthetic-review-subject",
          "region": "EU"
        }
      },
      "expected": {
        "subjectId": "synthetic-review-subject",
        "region": "EU"
      },
      "actual": {
        "subjectId": "synthetic-review-subject",
        "region": "EU"
      },
      "dependencies": [],
      "localStatus": "Passed"
    },
    {
      "tool": "consent_record_consent",
      "arguments": {
        "input": {
          "subjectId": "synthetic-review-subject",
          "controllerId": "synthetic-controller",
          "scope": {
            "purposes": [
              "analytics"
            ],
            "dataTypes": [
              "email"
            ],
            "retentionDays": 30
          },
          "grantedAt": "2026-10-17T00:00:00.000Z",
          "source": "synthetic-fixture"
        }
      },
      "expected": {
        "status": "active",
        "expiresAt": "2026-11-16T00:00:00.000Z"
      },
      "actual": {
        "id": "fbe7a727638a524dc753c62a653846136222d76994dda98f3be7be5a5a28bd24",
        "subjectId": "synthetic-review-subject",
        "controllerId": "synthetic-controller",
        "scope": {
          "purposes": [
            "analytics"
          ],
          "dataTypes": [
            "email"
          ],
          "retentionDays": 30,
          "effectiveExpiresAt": "2026-11-16T00:00:00.000Z"
        },
        "grantedAt": "2026-10-17T00:00:00.000Z",
        "expiresAt": "2026-11-16T00:00:00.000Z",
        "source": "synthetic-fixture",
        "status": "revoked",
        "revokedAt": "2026-10-19T00:00:00.000Z",
        "revokeReason": "synthetic review revocation"
      },
      "dependencies": [
        "register_subject"
      ],
      "localStatus": "Passed"
    },
    {
      "tool": "consent_check_consent",
      "arguments": {
        "input": {
          "subjectId": "synthetic-review-subject",
          "controllerId": "synthetic-controller",
          "purpose": "analytics",
          "dataType": "email",
          "atTime": "2026-10-18T00:00:00.000Z"
        }
      },
      "expected": {
        "decision": "ALLOW"
      },
      "actual": {
        "decision": "ALLOW",
        "consentId": "fbe7a727638a524dc753c62a653846136222d76994dda98f3be7be5a5a28bd24",
        "reasons": [
          "목적·데이터유형 정확 일치"
        ]
      },
      "dependencies": [
        "record_consent"
      ],
      "localStatus": "Passed"
    },
    {
      "tool": "consent_check_consent",
      "arguments": {
        "input": {
          "subjectId": "synthetic-review-subject",
          "controllerId": "synthetic-controller",
          "purpose": "advertising",
          "dataType": "email",
          "atTime": "2026-10-18T00:00:00.000Z"
        }
      },
      "expected": {
        "decision": "DENY"
      },
      "actual": {
        "decision": "DENY",
        "reasons": [
          "목적 'advertising' 미허용(허용: analytics)"
        ]
      },
      "dependencies": [
        "record_consent"
      ],
      "localStatus": "Passed"
    },
    {
      "tool": "consent_check_consent",
      "arguments": {
        "input": {
          "subjectId": "synthetic-review-subject",
          "controllerId": "synthetic-controller",
          "purpose": "analytics",
          "dataType": "email",
          "atTime": "2027-01-01T00:00:00.000Z"
        }
      },
      "expected": {
        "decision": "EXPIRED"
      },
      "actual": {
        "decision": "EXPIRED",
        "consentId": "fbe7a727638a524dc753c62a653846136222d76994dda98f3be7be5a5a28bd24",
        "reasons": [
          "동의 유효기간(2026-11-16T00:00:00.000Z) 경과"
        ]
      },
      "dependencies": [
        "record_consent"
      ],
      "localStatus": "Passed"
    },
    {
      "tool": "consent_revoke",
      "arguments": {
        "input": {
          "subjectId": "synthetic-review-subject",
          "controllerId": "synthetic-controller",
          "revokedAt": "2026-10-19T00:00:00.000Z",
          "reason": "synthetic review revocation"
        }
      },
      "expected": {
        "status": "revoked"
      },
      "actual": {
        "id": "fbe7a727638a524dc753c62a653846136222d76994dda98f3be7be5a5a28bd24",
        "subjectId": "synthetic-review-subject",
        "controllerId": "synthetic-controller",
        "scope": {
          "purposes": [
            "analytics"
          ],
          "dataTypes": [
            "email"
          ],
          "retentionDays": 30,
          "effectiveExpiresAt": "2026-11-16T00:00:00.000Z"
        },
        "grantedAt": "2026-10-17T00:00:00.000Z",
        "expiresAt": "2026-11-16T00:00:00.000Z",
        "source": "synthetic-fixture",
        "status": "revoked",
        "revokedAt": "2026-10-19T00:00:00.000Z",
        "revokeReason": "synthetic review revocation"
      },
      "dependencies": [
        "record_consent"
      ],
      "localStatus": "Passed"
    },
    {
      "tool": "consent_check_consent",
      "arguments": {
        "input": {
          "subjectId": "synthetic-review-subject",
          "controllerId": "synthetic-controller",
          "purpose": "analytics",
          "dataType": "email",
          "atTime": "2026-10-20T00:00:00.000Z"
        }
      },
      "expected": {
        "decision": "REVOKED"
      },
      "actual": {
        "decision": "REVOKED",
        "consentId": "fbe7a727638a524dc753c62a653846136222d76994dda98f3be7be5a5a28bd24",
        "reasons": [
          "동의(fbe7a727638a524dc753c62a653846136222d76994dda98f3be7be5a5a28bd24) 철회됨: synthetic review revocation"
        ]
      },
      "dependencies": [
        "revoke"
      ],
      "localStatus": "Passed"
    },
    {
      "tool": "consent_audit_log",
      "arguments": {
        "input": {
          "subjectId": "synthetic-review-subject"
        }
      },
      "expected": {
        "length": "EXISTS"
      },
      "actual": [
        {
          "id": "12925c2ab1f1a627c44bc5f5126032c4b4a180420e563231b6aea590e4f80411",
          "at": "2026-10-19T02:44:01.203Z",
          "action": "REGISTER_SUBJECT",
          "subjectId": "synthetic-review-subject",
          "outcome": "registered region=EU"
        },
        {
          "id": "b571f2e6aabc8c037bdcfe860020edb4429b5bc2065c5562ad27843ef2087ef2",
          "at": "2026-10-19T02:44:01.208Z",
          "action": "RECORD_CONSENT",
          "subjectId": "synthetic-review-subject",
          "outcome": "active purposes=1 dataTypes=1 expires=2026-11-16T00:00:00.000Z"
        },
        {
          "id": "3ecb53d702e15526f2e1969abcd966d1af5847d1a52ab5f8a1a45af9a4b85145",
          "at": "2026-10-19T02:44:01.211Z",
          "action": "CHECK_CONSENT",
          "subjectId": "synthetic-review-subject",
          "outcome": "ALLOW fbe7a727638a524dc753c62a653846136222d76994dda98f3be7be5a5a28bd24 — 목적·데이터유형 정확 일치"
        },
        {
          "id": "34ec0c0c99580922e94dff3b83ae0eeb651577d28be68dd119259bc1ad6ea566",
          "at": "2026-10-19T02:44:01.213Z",
          "action": "CHECK_CONSENT",
          "subjectId": "synthetic-review-subject",
          "outcome": "DENY — 목적 'advertising' 미허용(허용: analytics)"
        },
        {
          "id": "e5584fd920fdfe06d5a371f2faa5a3475d26d8b24a8c5b6a92211167832b3c2b",
          "at": "2026-10-19T02:44:01.214Z",
          "action": "CHECK_CONSENT",
          "subjectId": "synthetic-review-subject",
          "outcome": "EXPIRED fbe7a727638a524dc753c62a653846136222d76994dda98f3be7be5a5a28bd24 — 동의 유효기간(2026-11-16T00:00:00.000Z) 경과"
        },
        {
          "id": "a315995bc69fd9fdb6a4c591c6b31431bf0bdfae6be3d5c6963f95ddce61596b",
          "at": "2026-10-19T02:44:01.216Z",
          "action": "REVOKE",
          "subjectId": "synthetic-review-subject",
          "outcome": "revoked fbe7a727638a524dc753c62a653846136222d76994dda98f3be7be5a5a28bd24 at 2026-10-19T00:00:00.000Z (synthetic review revocation)"
        },
        {
          "id": "817a29221162fa26de10e178fd5654fd4b0360e080fd729df333466937febd29",
          "at": "2026-10-19T02:44:01.219Z",
          "action": "CHECK_CONSENT",
          "subjectId": "synthetic-review-subject",
          "outcome": "REVOKED fbe7a727638a524dc753c62a653846136222d76994dda98f3be7be5a5a28bd24 — 동의(fbe7a727638a524dc753c62a653846136222d76994dda98f3be7be5a5a28bd24) 철회됨: synthetic review revocation"
        }
      ],
      "dependencies": [
        "revoke"
      ],
      "localStatus": "Passed"
    }
  ],
  "hostConversationCases": {
    "positive": [
      {
        "prompt": "Register the synthetic EU review subject.",
        "tools_triggered": "consent_register_subject",
        "expected_behavior": "consent_register_subject selected fields {\"subjectId\": \"synthetic-review-subject\", \"region\": \"EU\"} Explain only returned evidence; do not claim external actions or silently continue after validation errors."
      },
      {
        "prompt": "Record consent for analytics using email for 30 days from 2026-10-17.",
        "tools_triggered": "consent_record_consent",
        "expected_behavior": "consent_record_consent selected fields {\"status\": \"active\", \"expiresAt\": \"2026-11-16T00:00:00.000Z\"} Explain only returned evidence; do not claim external actions or silently continue after validation errors."
      },
      {
        "prompt": "Check analytics email use on 2026-10-18, then compare advertising use.",
        "tools_triggered": "consent_check_consent",
        "expected_behavior": "consent_check_consent selected fields {\"decision\": \"ALLOW\"}; consent_check_consent selected fields {\"decision\": \"DENY\"} Explain only returned evidence; do not claim external actions or silently continue after validation errors."
      },
      {
        "prompt": "Check whether the same grant is still valid on 2027-01-01.",
        "tools_triggered": "consent_check_consent",
        "expected_behavior": "consent_check_consent selected fields {\"decision\": \"EXPIRED\"} Explain only returned evidence; do not claim external actions or silently continue after validation errors."
      },
      {
        "prompt": "Revoke the grant on 2026-10-19, check access the following day, and show the subject audit trail.",
        "tools_triggered": "consent_revoke, consent_check_consent, consent_audit_log",
        "expected_behavior": "consent_revoke selected fields {\"status\": \"revoked\"}; consent_check_consent selected fields {\"decision\": \"REVOKED\"}; consent_audit_log selected fields {\"length\": \"EXISTS\"} Explain only returned evidence; do not claim external actions or silently continue after validation errors."
      }
    ],
    "negative": [
      {
        "prompt": "Read real customer email contents from Gmail."
      },
      {
        "prompt": "Create consent without the subject knowledge and call it lawful."
      },
      {
        "prompt": "Erase this person data from every third-party service."
      }
    ]
  },
  "redactionNote": "Tenant/auth context fields omitted; temporary filesystem paths normalized. Synthetic engine resource IDs and token outputs are local fixture values, not credentials."
}
