{"abstract":"Shift-Undo dispatches undo instead of redo.","category":"Keyboard interactions","checks":9,"contract":"Ignore prevented, repeated, and editable-origin events; use platform primary modifier; Alt blocks shortcuts; Shift-Z redoes, Z undoes, unshifted S saves.","contract_signature":"key, ctrl, meta, alt, shift, platform, editable, repeat, prevented","evaluation_group":"xi-shortcut","failed_approach":"Always redoing breaks the ordinary undo shortcut.","family":"xi-shortcut-redo-modifier","id":"FA-9026","implementations":{"attempt":{"sha256":"8d30794fad02bfc057cbbea61439fc485ccf07b3c1a85f622ce8f4f878b5f54c","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(key, ctrl, meta, alt, shift, platform, editable, repeat, prevented):\n    if prevented or repeat: return None\n    if editable: return None\n    primary = meta if platform == 'mac' else ctrl\n    if not primary or alt: return None\n    if key.lower() == 'z': return 'redo'\n    if key.lower() == 's' and not shift: return 'save'\n    return None\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('prevented', solve('z', True, False, False, False, 'win', False, False, True), None)\ncheck('repeat', solve('z', True, False, False, False, 'win', False, True, False), None)\ncheck('editable', solve('z', True, False, False, False, 'win', True, False, False), None)\ncheck('mac', solve('z', False, True, False, False, 'mac', False, False, False), 'undo')\ncheck('win', solve('z', True, False, False, False, 'win', False, False, False), 'undo')\ncheck('redo', solve('z', True, False, False, True, 'win', False, False, False), 'redo')\ncheck('alt', solve('z', True, False, True, False, 'win', False, False, False), None)\ncheck('parameterized target context', solve('z',True,False,False,False,'win',bool(N%2),False,False), None if N%2 else 'undo')\nfor repetition in range(N):\n    check('repeat alt', solve('z', True, False, True, False, 'win', False, False, False), None)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"broken":{"sha256":"421364f26b7443e914339cd19e908cb7c61a1b2bcc74ef6f693f6e3c203fdb86","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(key, ctrl, meta, alt, shift, platform, editable, repeat, prevented):\n    if prevented or repeat: return None\n    if editable: return None\n    primary = meta if platform == 'mac' else ctrl\n    if not primary or alt: return None\n    if key.lower() == 'z': return 'undo'\n    if key.lower() == 's' and not shift: return 'save'\n    return None\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('prevented', solve('z', True, False, False, False, 'win', False, False, True), None)\ncheck('repeat', solve('z', True, False, False, False, 'win', False, True, False), None)\ncheck('editable', solve('z', True, False, False, False, 'win', True, False, False), None)\ncheck('mac', solve('z', False, True, False, False, 'mac', False, False, False), 'undo')\ncheck('win', solve('z', True, False, False, False, 'win', False, False, False), 'undo')\ncheck('redo', solve('z', True, False, False, True, 'win', False, False, False), 'redo')\ncheck('alt', solve('z', True, False, True, False, 'win', False, False, False), None)\ncheck('parameterized target context', solve('z',True,False,False,False,'win',bool(N%2),False,False), None if N%2 else 'undo')\nfor repetition in range(N):\n    check('repeat alt', solve('z', True, False, True, False, 'win', False, False, False), None)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"}},"limitations":" This reproducer isolates one failure mechanism. Results cover the supplied fixtures. Variants within a family share a test contract and should remain grouped when constructing evaluation splits. Related mechanisms with a shared evaluation_group must also remain together; these controlled models are not independent production incidents.","method":"Deterministic executable model with adversarial boundary fixtures.","provenance":{"created_by":"Failure Map","dependencies":"Python standard library","family":"xi-shortcut-redo-modifier","generated_at":"2026-09-29T14:38:26.451863+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"A deterministic model of scoped keyboard shortcut dispatch; this isolates one interface invariant without requiring a browser.","root_cause":"The redo modifier operation uses `'undo'` where the contract requires `'redo' if shift else 'undo'`.","sha256":"64b40ea2a4cd372a35a5a63fed001770602653e1fc2bb1e20735a6e5765f1644","title":"Scoped keyboard shortcut dispatch: Shift-Undo dispatches undo instead of redo · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verified":true,"visibility":"public","verification":{"attempt":{"elapsed_ms":38.275,"exit_code":1,"observations":[{"actual":null,"check":"prevented","expected":null,"passed":true},{"actual":null,"check":"repeat","expected":null,"passed":true},{"actual":null,"check":"editable","expected":null,"passed":true},{"actual":"redo","check":"mac","expected":"undo","passed":false},{"actual":"redo","check":"win","expected":"undo","passed":false},{"actual":"redo","check":"redo","expected":"redo","passed":true},{"actual":null,"check":"alt","expected":null,"passed":true},{"actual":null,"check":"parameterized target context","expected":null,"passed":true},{"actual":null,"check":"repeat alt","expected":null,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"prevented\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"repeat\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"editable\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"mac\", \"actual\": \"redo\", \"expected\": \"undo\", \"passed\": false}, {\"check\": \"win\", \"actual\": \"redo\", \"expected\": \"undo\", \"passed\": false}, {\"check\": \"redo\", \"actual\": \"redo\", \"expected\": \"redo\", \"passed\": true}, {\"check\": \"alt\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"parameterized target context\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"repeat alt\", \"actual\": null, \"expected\": null, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":38.313,"exit_code":1,"observations":[{"actual":null,"check":"prevented","expected":null,"passed":true},{"actual":null,"check":"repeat","expected":null,"passed":true},{"actual":null,"check":"editable","expected":null,"passed":true},{"actual":"undo","check":"mac","expected":"undo","passed":true},{"actual":"undo","check":"win","expected":"undo","passed":true},{"actual":"undo","check":"redo","expected":"redo","passed":false},{"actual":null,"check":"alt","expected":null,"passed":true},{"actual":null,"check":"parameterized target context","expected":null,"passed":true},{"actual":null,"check":"repeat alt","expected":null,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"prevented\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"repeat\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"editable\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"mac\", \"actual\": \"undo\", \"expected\": \"undo\", \"passed\": true}, {\"check\": \"win\", \"actual\": \"undo\", \"expected\": \"undo\", \"passed\": true}, {\"check\": \"redo\", \"actual\": \"undo\", \"expected\": \"redo\", \"passed\": false}, {\"check\": \"alt\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"parameterized target context\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"repeat alt\", \"actual\": null, \"expected\": null, \"passed\": true}], \"passed\": false}\n"}},"member_only":{"stages":["fixed"],"fields":["implementations.fixed","verification.fixed","harness","repair"],"note":"The verified repair, its recorded checks, the repair description, and the scoring harness are available to members."}}