{
  "example_kind": "original synthetic manual planning case",
  "slug": "idempotent-rehearsal-result-check",
  "title": "Check repeated actions against a declared invariant",
  "scenario": "Synthetic planning case: An external toy acknowledgement action adds an obligation ID to a set and always appends an attempt to the journal. Two attempts acknowledge the same obligation A.",
  "layout": "evaluation",
  "dataset": {
    "heading": "Inspect the invented case records",
    "headers": [
      "Attempt",
      "Set before",
      "Set after",
      "Cumulative journal records"
    ],
    "rows": [
      [
        "First ACK A",
        "{}",
        "{A}",
        "1"
      ],
      [
        "Second ACK A",
        "{A}",
        "{A}",
        "2"
      ]
    ]
  },
  "derivation": "Set insertion of the same ID twice leaves one unique element. Journal append runs twice and records two attempts by design. Idempotence here concerns the acknowledgement effect, not byte-identical logs.",
  "result": "After both attempts the acknowledgement set should be {A}, with cardinality one, while the attempt journal can contain two records. Test the declared effect separately from the history volume.",
  "boundary": "The artifact tests a repeated effect invariant while preserving allowed attempt-history differences.",
  "limitations": "No native API, deduplication mechanism or repeat-submission protection is claimed.",
  "sources": [
    "nist-state"
  ],
  "tasks": [
    [
      "Declare the repeatable effect",
      "Model owner",
      "Acknowledgements use unique obligation IDs; attempts remain append-only history."
    ],
    [
      "Replay the same identified action",
      "Rehearsal owner",
      "Both attempts target A, not two different obligations."
    ],
    [
      "Check effects and logs separately",
      "Reviewer",
      "Cardinality remains one and both attempts remain visible."
    ]
  ],
  "faqs": [
    [
      "Should the second journal row be deleted?",
      "No. The supplied contract records both attempts; extra history is not an extra acknowledged obligation."
    ],
    [
      "Does this prove a real endpoint is idempotent?",
      "No. It checks a toy effect contract; persistence, failures and concurrent behavior need real evidence."
    ]
  ],
  "method_references": [
    {
      "id": "nist-state",
      "title": "NIST: state-based and event-sequence testing context",
      "url": "https://csrc.nist.gov/Projects/automated-combinatorial-testing-for-software",
      "scope": "General context for state-based and event-sequence testing. All graphs, guards, fixtures and recovery contracts here are original toy definitions; the source does not certify their completeness or product behavior."
    }
  ]
}
