inc_0003 SIMULATED
duplicate_charge (rule SUSPECT_DUP), related ch_0001, ch_0002
Scenario D3 · outcome SKIPPED NO_ACTION_NEEDED · 4 steps · 2026-10-10T10:03:00Z to 2026-10-10T10:03:00Z
Scenario D3 · outcome SKIPPED NO_ACTION_NEEDED · 4 steps · 2026-10-10T10:03:00Z to 2026-10-10T10:03:00Z
Gate verdicts
| Step | Verdict | Code | Entry |
|---|---|---|---|
| No gate verdicts (nothing was proposed that needed the gate). | |||
Verification
Independent check by code: passed
- pass no_action_needed condition_still_true=false
Timeline (decision chain)
| Seq | Time | Kind | Summary |
|---|---|---|---|
| #28 | 2026-10-10T10:03:00Z | INCIDENT_OPENED | opened duplicate_charge by rule SUSPECT_DUP, related ch_0001, ch_0002entry JSON{
"body": {
"detector_rule": "SUSPECT_DUP",
"related": [
"ch_0001",
"ch_0002"
],
"type": "duplicate_charge"
},
"entry_hash": "sha256:dcd733e95e7ab84999d826e51c9e53631014c9f1fc4db09147c830f738d0f3c5",
"kind": "INCIDENT_OPENED",
"prev_hash": "sha256:5aac519d8800c5d33db2e50e97a1d6ac8fb4afeb87709ede5ca095a76a6b4ea7",
"seq": 28,
"trace_id": "offline-3",
"ts": "2026-10-10T10:03:00Z"
} |
| #29 | 2026-10-10T10:03:00Z | DECISION | INVESTIGATE get_incident: Read the incident record first.entry JSON{
"body": {
"args": {
"incident_id": "inc_0003"
},
"decision": "INVESTIGATE",
"rationale": "Read the incident record first.",
"step": 1,
"tool": "get_incident"
},
"entry_hash": "sha256:17b83d6847741fedc9a97683e3f21c3ce8f3f9ecb42a8cc6a7b15b9f3117433b",
"kind": "DECISION",
"prev_hash": "sha256:dcd733e95e7ab84999d826e51c9e53631014c9f1fc4db09147c830f738d0f3c5",
"seq": 29,
"trace_id": "offline-3",
"ts": "2026-10-10T10:03:00Z"
} |
| #30 | 2026-10-10T10:03:00Z | OBSERVATION | read get_incident: incident inc_0003 duplicate_charge related ch_0001,ch_0002 status INVESTIGATINGentry JSON{
"body": {
"args": {
"incident_id": "inc_0003"
},
"injection_suspected": false,
"result_sha256": "sha256:a31f6b73905beb9254117427026b05c7fb7da1135c6bd75e66923a37255744b6",
"result_summary": "incident inc_0003 duplicate_charge related ch_0001,ch_0002 status INVESTIGATING",
"step": 1,
"tool": "get_incident",
"untrusted_fields": []
},
"entry_hash": "sha256:b67890c4717949528cf366430261a0b9e1bb627f7c5bbc7ef3c1d304dfd75107",
"kind": "OBSERVATION",
"prev_hash": "sha256:17b83d6847741fedc9a97683e3f21c3ce8f3f9ecb42a8cc6a7b15b9f3117433b",
"seq": 30,
"trace_id": "offline-3",
"ts": "2026-10-10T10:03:00Z"
} |
| #31 | 2026-10-10T10:03:00Z | DECISION | INVESTIGATE get_provider_charge: Read charge ch_0001 at the provider.entry JSON{
"body": {
"args": {
"charge_id": "ch_0001"
},
"decision": "INVESTIGATE",
"rationale": "Read charge ch_0001 at the provider.",
"step": 2,
"tool": "get_provider_charge"
},
"entry_hash": "sha256:f71decf4b0969e00978920c67e9b4a797f1844bf2f8fbf53892e92850e85b1f9",
"kind": "DECISION",
"prev_hash": "sha256:b67890c4717949528cf366430261a0b9e1bb627f7c5bbc7ef3c1d304dfd75107",
"seq": 31,
"trace_id": "offline-3",
"ts": "2026-10-10T10:03:00Z"
} |
| #32 | 2026-10-10T10:03:00Z | OBSERVATION | read get_provider_charge: charge ch_0001 succeeded 2500000 NGN order ord_0001 customer cust_01 at 2026-10-10T10:02:00Zentry JSON{
"body": {
"args": {
"charge_id": "ch_0001"
},
"injection_suspected": false,
"result_sha256": "sha256:a42e58ffb4a02afbedf16c873c4a1c79cd37061b5dd0f536b7cf8295d799b816",
"result_summary": "charge ch_0001 succeeded 2500000 NGN order ord_0001 customer cust_01 at 2026-10-10T10:02:00Z",
"step": 2,
"tool": "get_provider_charge",
"untrusted_fields": []
},
"entry_hash": "sha256:d63897c646196a89ff3e9b590737f1edc442b82bedcc16163b207cc85adf06af",
"kind": "OBSERVATION",
"prev_hash": "sha256:f71decf4b0969e00978920c67e9b4a797f1844bf2f8fbf53892e92850e85b1f9",
"seq": 32,
"trace_id": "offline-3",
"ts": "2026-10-10T10:03:00Z"
} |
| #33 | 2026-10-10T10:03:00Z | DECISION | INVESTIGATE get_provider_charge: Read charge ch_0002 at the provider.entry JSON{
"body": {
"args": {
"charge_id": "ch_0002"
},
"decision": "INVESTIGATE",
"rationale": "Read charge ch_0002 at the provider.",
"step": 3,
"tool": "get_provider_charge"
},
"entry_hash": "sha256:721bc7d6fbf849c9c9ef40116130c8852205fcf08eabff6c1f3c8d01436b2893",
"kind": "DECISION",
"prev_hash": "sha256:d63897c646196a89ff3e9b590737f1edc442b82bedcc16163b207cc85adf06af",
"seq": 33,
"trace_id": "offline-3",
"ts": "2026-10-10T10:03:00Z"
} |
| #34 | 2026-10-10T10:03:00Z | OBSERVATION | read get_provider_charge: charge ch_0002 succeeded 2500000 NGN order ord_0002 customer cust_01 at 2026-10-10T10:02:40Zentry JSON{
"body": {
"args": {
"charge_id": "ch_0002"
},
"injection_suspected": false,
"result_sha256": "sha256:230b039a1c21b6c9148a6f729ae0e0624e86d0d3359f3d99a962f7a3c147f207",
"result_summary": "charge ch_0002 succeeded 2500000 NGN order ord_0002 customer cust_01 at 2026-10-10T10:02:40Z",
"step": 3,
"tool": "get_provider_charge",
"untrusted_fields": []
},
"entry_hash": "sha256:f9c83087935b4dc8cd4d91bbbb67a715b109b33bd9a83fd14668620ac92d6ade",
"kind": "OBSERVATION",
"prev_hash": "sha256:721bc7d6fbf849c9c9ef40116130c8852205fcf08eabff6c1f3c8d01436b2893",
"seq": 34,
"trace_id": "offline-3",
"ts": "2026-10-10T10:03:00Z"
} |
| #35 | 2026-10-10T10:03:00Z | DECISION | SKIP: The two charges do not form a duplicate.entry JSON{
"body": {
"args": {},
"decision": "SKIP",
"rationale": "The two charges do not form a duplicate.",
"step": 4,
"tool": null
},
"entry_hash": "sha256:ce4651a2306e3b8202d7b12f87665f51c4227dac926698bdfe77a3ad0702a3a8",
"kind": "DECISION",
"prev_hash": "sha256:f9c83087935b4dc8cd4d91bbbb67a715b109b33bd9a83fd14668620ac92d6ade",
"seq": 35,
"trace_id": "offline-3",
"ts": "2026-10-10T10:03:00Z"
} |
| #36 | 2026-10-10T10:03:00Z | VERIFICATION | verification passed (1/1 checks)entry JSON{
"body": {
"checks": [
{
"check": "no_action_needed",
"detail": "condition_still_true=false",
"passed": true
}
],
"ok": true,
"step": 4
},
"entry_hash": "sha256:df94d0e5d669e74bed02315f09ad2ece1b5d8bdea23ea8aebb8088d34623c8c0",
"kind": "VERIFICATION",
"prev_hash": "sha256:ce4651a2306e3b8202d7b12f87665f51c4227dac926698bdfe77a3ad0702a3a8",
"seq": 36,
"trace_id": "offline-3",
"ts": "2026-10-10T10:03:00Z"
} |
| #37 | 2026-10-10T10:03:00Z | OUTCOME | SKIPPED NO_ACTION_NEEDED: Verifier confirmed no action is needed.entry JSON{
"body": {
"outcome": "SKIPPED",
"reason_code": "NO_ACTION_NEEDED",
"summary": "Verifier confirmed no action is needed."
},
"entry_hash": "sha256:58a61f12b136fa6ce21f318685b7ffe1a57ad98cda807faa73a6808f0b54755b",
"kind": "OUTCOME",
"prev_hash": "sha256:df94d0e5d669e74bed02315f09ad2ece1b5d8bdea23ea8aebb8088d34623c8c0",
"seq": 37,
"trace_id": "offline-3",
"ts": "2026-10-10T10:03:00Z"
} |
Receipt
Raw receipt JSON
{
"digest": "sha256:113c88c29c09f2bfc7b6148ccef795bff894d391334bb13716683ed13d50bfeb",
"payload": {
"actions": [],
"closed_at": "2026-10-10T10:03:00Z",
"currency": "NGN",
"entire_checkpoint": null,
"entries": [
{
"hash": "sha256:dcd733e95e7ab84999d826e51c9e53631014c9f1fc4db09147c830f738d0f3c5",
"seq": 28
},
{
"hash": "sha256:17b83d6847741fedc9a97683e3f21c3ce8f3f9ecb42a8cc6a7b15b9f3117433b",
"seq": 29
},
{
"hash": "sha256:b67890c4717949528cf366430261a0b9e1bb627f7c5bbc7ef3c1d304dfd75107",
"seq": 30
},
{
"hash": "sha256:f71decf4b0969e00978920c67e9b4a797f1844bf2f8fbf53892e92850e85b1f9",
"seq": 31
},
{
"hash": "sha256:d63897c646196a89ff3e9b590737f1edc442b82bedcc16163b207cc85adf06af",
"seq": 32
},
{
"hash": "sha256:721bc7d6fbf849c9c9ef40116130c8852205fcf08eabff6c1f3c8d01436b2893",
"seq": 33
},
{
"hash": "sha256:f9c83087935b4dc8cd4d91bbbb67a715b109b33bd9a83fd14668620ac92d6ade",
"seq": 34
},
{
"hash": "sha256:ce4651a2306e3b8202d7b12f87665f51c4227dac926698bdfe77a3ad0702a3a8",
"seq": 35
},
{
"hash": "sha256:df94d0e5d669e74bed02315f09ad2ece1b5d8bdea23ea8aebb8088d34623c8c0",
"seq": 36
},
{
"hash": "sha256:58a61f12b136fa6ce21f318685b7ffe1a57ad98cda807faa73a6808f0b54755b",
"seq": 37
}
],
"git_sha": "35707c7",
"incident_id": "inc_0003",
"mode": "simulated",
"neatlogs_trace_id": "offline-3",
"opened_at": "2026-10-10T10:03:00Z",
"outcome": "SKIPPED",
"policy_sha256": null,
"reason_code": "NO_ACTION_NEEDED",
"run_label": "demo",
"scenario_id": "D3",
"type": "duplicate_charge",
"verification": {
"checks": [
{
"check": "no_action_needed",
"detail": "condition_still_true=false",
"passed": true
}
],
"ok": true
}
},
"receipt_version": 1
}