{
  "example_kind": "original synthetic manual planning case",
  "slug": "transition-guard-condition-coverage",
  "title": "Review both sides of a state-transition guard",
  "scenario": "Synthetic planning case: A manual state model permits ready→accepted only when receiving approval is present. The only rehearsal starts ready with approval present; it reaches accepted.",
  "layout": "protocol",
  "dataset": {
    "heading": "Inspect the invented case records",
    "headers": [
      "Starting state",
      "Approval guard",
      "Expected result",
      "Current evidence"
    ],
    "rows": [
      [
        "Ready",
        "Present",
        "Accepted",
        "One matching rehearsal"
      ],
      [
        "Ready",
        "Absent",
        "Remain ready; reject transition",
        "Unexercised"
      ]
    ]
  },
  "derivation": "The same origin state and requested transition have two supplied guard values. One successful true-guard case cannot establish the false-guard rejection or its unchanged state.",
  "result": "The allowed transition is exercised, but its false-guard boundary is not. Add a ready-state case with approval absent whose expected outcome is remaining ready with a recorded rejection.",
  "boundary": "This checks both truth values of a state-transition guard and the rejected transition’s preserved state.",
  "limitations": "Approval is an invented model flag. The page does not assert native permissions, enforcement or authorization features.",
  "sources": [
    "nist-state"
  ],
  "tasks": [
    [
      "Declare the guard and rejection state",
      "Model owner",
      "Approval presence is the sole toy guard; rejection preserves ready."
    ],
    [
      "Create both origin-state fixtures",
      "Rehearsal owner",
      "The false-guard case genuinely starts ready without approval."
    ],
    [
      "Inspect state after rejected transition",
      "Reviewer",
      "Evidence includes rejection and unchanged state, not just a displayed error."
    ]
  ],
  "faqs": [
    [
      "Does an invalid-combination test prove this guard?",
      "Only if it exercises this starting state, guard and expected unchanged result; a role/operation grid alone does not."
    ],
    [
      "Can I infer rejection from no accepted output?",
      "No. Verify the resulting state and rejection evidence explicitly."
    ]
  ],
  "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."
    }
  ]
}
