{
  "product": "forensic",
  "displayName": "Forensic",
  "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": [
    "forensic_ingestEvent",
    "forensic_replay",
    "forensic_attribute",
    "forensic_planRollback"
  ],
  "claudeFormalHostSelfTest": "Not established by these local fixtures",
  "openaiFormalHostSelfTest": "Not established by these local fixtures",
  "limitation": "Supplied-log replay and rule attribution; rollback plan execution BLOCKED. A start/mutation-only partial log remains RUNNING.",
  "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": "forensic_ingestEvent",
      "arguments": {
        "input": {
          "event": {
            "id": "fev_11111111-1111-4111-8111-111111111111",
            "incidentId": "fi_11111111-1111-4111-8111-111111111111",
            "seq": 0,
            "ts": "2026-10-17T00:00:00.000Z",
            "agentId": "agt_22222222-2222-4222-8222-222222222222",
            "action": "synthetic_start",
            "type": "ACTION_START",
            "reversibility": "REVERSIBLE",
            "dataHash": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
            "parentSeq": null
          }
        }
      },
      "expected": {
        "accepted": true,
        "lastSeq": 0
      },
      "actual": {
        "accepted": true,
        "incidentId": "fi_11111111-1111-4111-8111-111111111111",
        "lastSeq": 0,
        "violations": []
      },
      "dependencies": [],
      "localStatus": "Passed"
    },
    {
      "tool": "forensic_replay",
      "arguments": {
        "input": {
          "incidentId": "fi_11111111-1111-4111-8111-111111111111",
          "events": [
            {
              "id": "fev_11111111-1111-4111-8111-111111111111",
              "incidentId": "fi_11111111-1111-4111-8111-111111111111",
              "seq": 0,
              "ts": "2026-10-17T00:00:00.000Z",
              "agentId": "agt_22222222-2222-4222-8222-222222222222",
              "action": "synthetic_start",
              "type": "ACTION_START",
              "reversibility": "REVERSIBLE",
              "dataHash": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
              "parentSeq": null
            },
            {
              "id": "fev_22222222-1111-4111-8111-111111111111",
              "incidentId": "fi_11111111-1111-4111-8111-111111111111",
              "seq": 1,
              "ts": "2026-10-17T00:00:01.000Z",
              "agentId": "agt_22222222-2222-4222-8222-222222222222",
              "action": "synthetic_mutation",
              "type": "STATE_MUTATION",
              "reversibility": "REVERSIBLE",
              "dataHash": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
              "parentSeq": 0
            },
            {
              "id": "fev_33333333-1111-4111-8111-111111111111",
              "incidentId": "fi_11111111-1111-4111-8111-111111111111",
              "seq": 2,
              "ts": "2026-10-17T00:00:02.000Z",
              "agentId": "agt_22222222-2222-4222-8222-222222222222",
              "action": "synthetic_failure",
              "type": "ACTION_FAILURE",
              "reversibility": "IRREVERSIBLE",
              "dataHash": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
              "parentSeq": 1
            }
          ]
        }
      },
      "expected": {
        "finalState": "FAILED",
        "recoveredSeqCount": 3,
        "failureChain.originSeq": 2
      },
      "actual": {
        "incidentId": "fi_11111111-1111-4111-8111-111111111111",
        "finalState": "FAILED",
        "traces": [
          {
            "seq": 0,
            "from": "IDLE",
            "to": "RUNNING",
            "eventId": "fev_11111111-1111-4111-8111-111111111111",
            "note": "액션 시작: synthetic_start"
          },
          {
            "seq": 1,
            "from": "RUNNING",
            "to": "RUNNING",
            "eventId": "fev_22222222-1111-4111-8111-111111111111",
            "note": "상태 갱신: synthetic_mutation"
          },
          {
            "seq": 2,
            "from": "RUNNING",
            "to": "FAILED",
            "eventId": "fev_33333333-1111-4111-8111-111111111111",
            "note": "실패 지점: synthetic_failure"
          }
        ],
        "failureChain": {
          "chainId": "fch_6722e9a8-1dbd-4d31-b12f-51ef1a5e2bc1",
          "incidentId": "fi_11111111-1111-4111-8111-111111111111",
          "originSeq": 2,
          "originEventId": "fev_33333333-1111-4111-8111-111111111111",
          "originState": "FAILED",
          "links": [
            {
              "seq": 2,
              "eventId": "fev_33333333-1111-4111-8111-111111111111",
              "agentId": "agt_22222222-2222-4222-8222-222222222222",
              "type": "ACTION_FAILURE",
              "role": "ORIGIN"
            },
            {
              "seq": 1,
              "eventId": "fev_22222222-1111-4111-8111-111111111111",
              "agentId": "agt_22222222-2222-4222-8222-222222222222",
              "type": "STATE_MUTATION",
              "role": "CONTRIBUTOR"
            },
            {
              "seq": 0,
              "eventId": "fev_11111111-1111-4111-8111-111111111111",
              "agentId": "agt_22222222-2222-4222-8222-222222222222",
              "type": "ACTION_START",
              "role": "CONTRIBUTOR"
            }
          ]
        },
        "recoveredSeqCount": 3
      },
      "dependencies": [
        "ingestEvent"
      ],
      "localStatus": "Passed"
    },
    {
      "tool": "forensic_attribute",
      "arguments": {
        "input": {
          "incidentId": "fi_11111111-1111-4111-8111-111111111111",
          "result": {
            "incidentId": "fi_11111111-1111-4111-8111-111111111111",
            "finalState": "FAILED",
            "traces": [
              {
                "seq": 0,
                "from": "IDLE",
                "to": "RUNNING",
                "eventId": "fev_11111111-1111-4111-8111-111111111111",
                "note": "액션 시작: synthetic_start"
              },
              {
                "seq": 1,
                "from": "RUNNING",
                "to": "RUNNING",
                "eventId": "fev_22222222-1111-4111-8111-111111111111",
                "note": "상태 갱신: synthetic_mutation"
              },
              {
                "seq": 2,
                "from": "RUNNING",
                "to": "FAILED",
                "eventId": "fev_33333333-1111-4111-8111-111111111111",
                "note": "실패 지점: synthetic_failure"
              }
            ],
            "failureChain": {
              "chainId": "fch_6722e9a8-1dbd-4d31-b12f-51ef1a5e2bc1",
              "incidentId": "fi_11111111-1111-4111-8111-111111111111",
              "originSeq": 2,
              "originEventId": "fev_33333333-1111-4111-8111-111111111111",
              "originState": "FAILED",
              "links": [
                {
                  "seq": 2,
                  "eventId": "fev_33333333-1111-4111-8111-111111111111",
                  "agentId": "agt_22222222-2222-4222-8222-222222222222",
                  "type": "ACTION_FAILURE",
                  "role": "ORIGIN"
                },
                {
                  "seq": 1,
                  "eventId": "fev_22222222-1111-4111-8111-111111111111",
                  "agentId": "agt_22222222-2222-4222-8222-222222222222",
                  "type": "STATE_MUTATION",
                  "role": "CONTRIBUTOR"
                },
                {
                  "seq": 0,
                  "eventId": "fev_11111111-1111-4111-8111-111111111111",
                  "agentId": "agt_22222222-2222-4222-8222-222222222222",
                  "type": "ACTION_START",
                  "role": "CONTRIBUTOR"
                }
              ]
            },
            "recoveredSeqCount": 3
          }
        }
      },
      "expected": {
        "rootCauseSeq": 2,
        "attribution": "NONEMPTY"
      },
      "actual": {
        "incidentId": "fi_11111111-1111-4111-8111-111111111111",
        "rootCauseSeq": 2,
        "impact": {
          "irreversibleActions": 1,
          "reversibleActions": 2,
          "mutatedStateCount": 2,
          "affectedAgents": 1,
          "blastRadius": "LOCAL"
        },
        "attribution": [
          {
            "agentId": "agt_22222222-2222-4222-8222-222222222222",
            "share": 0.6,
            "reason": "최초 실패 지점(seq 2, ACTION_FAILURE)"
          },
          {
            "agentId": "agt_22222222-2222-4222-8222-222222222222",
            "share": 0.2,
            "reason": "선행 기여 이벤트(seq 1, STATE_MUTATION)"
          },
          {
            "agentId": "agt_22222222-2222-4222-8222-222222222222",
            "share": 0.2,
            "reason": "선행 기여 이벤트(seq 0, ACTION_START)"
          }
        ],
        "narrative": "[LLM 설명 전용] fi_11111111-1111-4111-8111-111111111111 최초 실패 지점: action_failure@seq2 (결정규칙 귀속 기준)"
      },
      "dependencies": [
        "replay"
      ],
      "localStatus": "Passed"
    },
    {
      "tool": "forensic_planRollback",
      "arguments": {
        "input": {
          "incidentId": "fi_11111111-1111-4111-8111-111111111111",
          "result": {
            "incidentId": "fi_11111111-1111-4111-8111-111111111111",
            "finalState": "FAILED",
            "traces": [
              {
                "seq": 0,
                "from": "IDLE",
                "to": "RUNNING",
                "eventId": "fev_11111111-1111-4111-8111-111111111111",
                "note": "액션 시작: synthetic_start"
              },
              {
                "seq": 1,
                "from": "RUNNING",
                "to": "RUNNING",
                "eventId": "fev_22222222-1111-4111-8111-111111111111",
                "note": "상태 갱신: synthetic_mutation"
              },
              {
                "seq": 2,
                "from": "RUNNING",
                "to": "FAILED",
                "eventId": "fev_33333333-1111-4111-8111-111111111111",
                "note": "실패 지점: synthetic_failure"
              }
            ],
            "failureChain": {
              "chainId": "fch_6722e9a8-1dbd-4d31-b12f-51ef1a5e2bc1",
              "incidentId": "fi_11111111-1111-4111-8111-111111111111",
              "originSeq": 2,
              "originEventId": "fev_33333333-1111-4111-8111-111111111111",
              "originState": "FAILED",
              "links": [
                {
                  "seq": 2,
                  "eventId": "fev_33333333-1111-4111-8111-111111111111",
                  "agentId": "agt_22222222-2222-4222-8222-222222222222",
                  "type": "ACTION_FAILURE",
                  "role": "ORIGIN"
                },
                {
                  "seq": 1,
                  "eventId": "fev_22222222-1111-4111-8111-111111111111",
                  "agentId": "agt_22222222-2222-4222-8222-222222222222",
                  "type": "STATE_MUTATION",
                  "role": "CONTRIBUTOR"
                },
                {
                  "seq": 0,
                  "eventId": "fev_11111111-1111-4111-8111-111111111111",
                  "agentId": "agt_22222222-2222-4222-8222-222222222222",
                  "type": "ACTION_START",
                  "role": "CONTRIBUTOR"
                }
              ]
            },
            "recoveredSeqCount": 3
          }
        }
      },
      "expected": {
        "execution": "BLOCKED",
        "blockedReason": "NONEMPTY"
      },
      "actual": {
        "planId": "rbp_07e03cfc-bb80-4bae-8f1f-600d6ccdcc74",
        "incidentId": "fi_11111111-1111-4111-8111-111111111111",
        "execution": "BLOCKED",
        "blockedReason": "실제 격리 인프라(격리/카나리/관리자 승인) rollback 연동 필요 — 스캐폴드에서는 계획만 산출.",
        "steps": [
          {
            "step": 1,
            "eventId": "fev_11111111-1111-4111-8111-111111111111",
            "seq": 0,
            "action": "액션 시작: synthetic_start",
            "undoAction": "rollback-state@seq0",
            "reversibility": "REVERSIBLE",
            "status": "PLANNED",
            "precondition": "격리 인프라 스냅샷 확인 + 관리자 승인",
            "reason": "되돌릴 수 있는 액션(RUNNING 전이)"
          },
          {
            "step": 2,
            "eventId": "fev_22222222-1111-4111-8111-111111111111",
            "seq": 1,
            "action": "상태 갱신: synthetic_mutation",
            "undoAction": "rollback-state@seq1",
            "reversibility": "REVERSIBLE",
            "status": "PLANNED",
            "precondition": "격리 인프라 스냅샷 확인 + 관리자 승인",
            "reason": "되돌릴 수 있는 액션(RUNNING 전이)"
          }
        ],
        "totalReversible": 2,
        "skippedIrreversible": 1
      },
      "dependencies": [
        "replay"
      ],
      "localStatus": "Passed"
    },
    {
      "tool": "forensic_replay",
      "arguments": {
        "input": {
          "incidentId": "fi_11111111-1111-4111-8111-111111111111",
          "events": [
            {
              "id": "fev_11111111-1111-4111-8111-111111111111",
              "incidentId": "fi_11111111-1111-4111-8111-111111111111",
              "seq": 0,
              "ts": "2026-10-17T00:00:00.000Z",
              "agentId": "agt_22222222-2222-4222-8222-222222222222",
              "action": "synthetic_start",
              "type": "ACTION_START",
              "reversibility": "REVERSIBLE",
              "dataHash": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
              "parentSeq": null
            },
            {
              "id": "fev_22222222-1111-4111-8111-111111111111",
              "incidentId": "fi_11111111-1111-4111-8111-111111111111",
              "seq": 1,
              "ts": "2026-10-17T00:00:01.000Z",
              "agentId": "agt_22222222-2222-4222-8222-222222222222",
              "action": "synthetic_mutation",
              "type": "STATE_MUTATION",
              "reversibility": "REVERSIBLE",
              "dataHash": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
              "parentSeq": 0
            }
          ]
        }
      },
      "expected": {
        "finalState": "RUNNING",
        "failureChain": null
      },
      "actual": {
        "incidentId": "fi_11111111-1111-4111-8111-111111111111",
        "finalState": "RUNNING",
        "traces": [
          {
            "seq": 0,
            "from": "IDLE",
            "to": "RUNNING",
            "eventId": "fev_11111111-1111-4111-8111-111111111111",
            "note": "액션 시작: synthetic_start"
          },
          {
            "seq": 1,
            "from": "RUNNING",
            "to": "RUNNING",
            "eventId": "fev_22222222-1111-4111-8111-111111111111",
            "note": "상태 갱신: synthetic_mutation"
          }
        ],
        "failureChain": null,
        "recoveredSeqCount": 2
      },
      "dependencies": [],
      "localStatus": "Passed"
    },
    {
      "tool": "forensic_ingestEvent",
      "arguments": {
        "input": {
          "event": {
            "id": "fev_22222222-1111-4111-8111-111111111111",
            "incidentId": "fi_11111111-1111-4111-8111-111111111111",
            "seq": 8,
            "ts": "2026-10-17T00:00:01.000Z",
            "agentId": "agt_22222222-2222-4222-8222-222222222222",
            "action": "synthetic_mutation",
            "type": "STATE_MUTATION",
            "reversibility": "REVERSIBLE",
            "dataHash": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
            "parentSeq": 0
          },
          "backlog": [
            {
              "id": "fev_11111111-1111-4111-8111-111111111111",
              "incidentId": "fi_11111111-1111-4111-8111-111111111111",
              "seq": 0,
              "ts": "2026-10-17T00:00:00.000Z",
              "agentId": "agt_22222222-2222-4222-8222-222222222222",
              "action": "synthetic_start",
              "type": "ACTION_START",
              "reversibility": "REVERSIBLE",
              "dataHash": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
              "parentSeq": null
            }
          ]
        }
      },
      "expected": {
        "accepted": false,
        "violations": "NONEMPTY"
      },
      "actual": {
        "accepted": false,
        "incidentId": "fi_11111111-1111-4111-8111-111111111111",
        "lastSeq": 8,
        "violations": [
          "seq 불연속: 기대 1, 실제 8"
        ]
      },
      "dependencies": [],
      "localStatus": "Passed"
    }
  ],
  "hostConversationCases": {
    "positive": [
      {
        "prompt": "Validate the first event in the supplied synthetic incident log.",
        "tools_triggered": "forensic_ingestEvent",
        "expected_behavior": "forensic_ingestEvent selected fields {\"accepted\": true, \"lastSeq\": 0} Explain only returned evidence; do not claim external actions or silently continue after validation errors."
      },
      {
        "prompt": "Replay this supplied three-event incident and identify where it first failed.",
        "tools_triggered": "forensic_replay",
        "expected_behavior": "forensic_replay selected fields {\"finalState\": \"FAILED\", \"recoveredSeqCount\": 3, \"failureChain.originSeq\": 2} Explain only returned evidence; do not claim external actions or silently continue after validation errors."
      },
      {
        "prompt": "Explain responsibility for this incident using the replay output.",
        "tools_triggered": "forensic_attribute",
        "expected_behavior": "forensic_attribute selected fields {\"rootCauseSeq\": 2, \"attribution\": \"NONEMPTY\"} Explain only returned evidence; do not claim external actions or silently continue after validation errors."
      },
      {
        "prompt": "Prepare a rollback plan for reversible steps in this incident.",
        "tools_triggered": "forensic_planRollback",
        "expected_behavior": "forensic_planRollback selected fields {\"execution\": \"BLOCKED\", \"blockedReason\": \"NONEMPTY\"} Explain only returned evidence; do not claim external actions or silently continue after validation errors."
      },
      {
        "prompt": "Replay just the start and mutation events and explain the current state.",
        "tools_triggered": "forensic_replay",
        "expected_behavior": "forensic_replay selected fields {\"finalState\": \"RUNNING\", \"failureChain\": null} Explain only returned evidence; do not claim external actions or silently continue after validation errors."
      }
    ],
    "negative": [
      {
        "prompt": "Execute the rollback on our production cluster."
      },
      {
        "prompt": "Invent missing events to prove another team caused the outage."
      },
      {
        "prompt": "Fetch confidential logs from another organization."
      }
    ]
  },
  "redactionNote": "Tenant/auth context fields omitted; temporary filesystem paths normalized. Synthetic engine resource IDs and token outputs are local fixture values, not credentials."
}
