{"abstract":"A user created at exactly the clause instant matches both before-rules and the next launch rule.","category":"Feature flag rollout bucketing","checks":8,"contract":"Values are epoch milliseconds (int or float) or UTC strings exactly \"YYYY-MM-DDTHH:MM:SSZ\" converted to milliseconds; booleans, other strings and invalid dates are unusable and make the clause false. op before means user < clause, after means user > clause (strict); other ops are false.","contract_signature":"user_value, op, clause_value","evaluation_group":"w2-feature-flag-rollout-bucketing-date-clause","failed_approach":"Requiring a one-millisecond gap rejects values that are genuinely earlier.","family":"w2-feature-flag-rollout-bucketing-date-clause-strict-before","id":"FA-74296","implementations":{"attempt":{"sha256":"0825edd7106dbd69127eef3c058ab8ffef87639aebe2ce065d0e790f51694b4c","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport datetime\nN = 1\nobservations = []\ndef solve(user_value, op, clause_value):\n    def ms(v):\n        if isinstance(v, bool):\n            return None\n        if isinstance(v, (int, float)):\n            return v\n        if isinstance(v, str) and len(v) == 20 and v.endswith('Z'):\n            try:\n                d = datetime.datetime.strptime(v, '%Y-%m-%dT%H:%M:%SZ').replace(tzinfo=datetime.timezone.utc)\n            except ValueError:\n                return None\n            return int(d.timestamp()) * 1000\n        return None\n    a, b = ms(user_value), ms(clause_value)\n    if a is None or b is None:\n        return False\n    if op == 'before':\n        return a + 1 < b\n    if op == 'after':\n        return a > b\n    return False\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('ISO clause converts to milliseconds', [1700000000001, 'after', '2023-11-14T22:13:20Z'], True),\n  ('boolean user value is unusable', [True, 'after', 0], False),\n  ('false user value is unusable', [False, 'before', 1], False),\n  ('equal timestamps are not before', [1700000000000, 'before', '2023-11-14T22:13:20Z'], False),\n  ('one millisecond earlier is before', [1699999999999, 'before', 1700000000000], True),\n  ('timestamp pair sample 1', ['2023-11-14T23:13:20+01:00', 'on', True], False),\n  ('timestamp pair sample 2', [0, 'before', 1700000000000], True),\n  ('timestamp pair sample 3', [1700000000, 'after', 1700000000001], False)],\n [('boolean user value is unusable', [True, 'after', 0], False),\n  ('false user value is unusable', [False, 'before', 1], False),\n  ('equal timestamps are not before', [1700000000000, 'before', '2023-11-14T22:13:20Z'], False),\n  ('one millisecond earlier is before', [1699999999999, 'before', 1700000000000], True),\n  ('offset string is unusable', ['2023-11-14T23:13:20+01:00', 'before', '2023-11-14T22:13:21Z'], False),\n  ('timestamp pair sample 6', [True, 'after', 1700000000001], False),\n  ('timestamp pair sample 13', [1700000000, 'before', 1700000000], False),\n  ('timestamp pair sample 42', ['2023-11-14T22:13:20Z', 'before', 1700000000001], True)],\n [('false user value is unusable', [False, 'before', 1], False),\n  ('equal timestamps are not before', [1700000000000, 'before', '2023-11-14T22:13:20Z'], False),\n  ('one millisecond earlier is before', [1699999999999, 'before', 1700000000000], True),\n  ('offset string is unusable', ['2023-11-14T23:13:20+01:00', 'before', '2023-11-14T22:13:21Z'], False),\n  ('explicit UTC offset spelling is unusable', ['2023-11-14T22:13:20+00:00', 'before', 1800000000000], False),\n  ('timestamp pair sample 11', ['soon', 'after', 1700000000001], False),\n  ('timestamp pair sample 12', ['2023-11-14T22:13:21Z', 'after', 1700000000001], True),\n  ('timestamp pair sample 40', [1699999999999, 'before', 1699999999999], False)],\n [('equal timestamps are not before', [1700000000000, 'before', '2023-11-14T22:13:20Z'], False),\n  ('one millisecond earlier is before', [1699999999999, 'before', 1700000000000], True),\n  ('offset string is unusable', ['2023-11-14T23:13:20+01:00', 'before', '2023-11-14T22:13:21Z'], False),\n  ('explicit UTC offset spelling is unusable', ['2023-11-14T22:13:20+00:00', 'before', 1800000000000], False),\n  ('invalid calendar date is unusable', ['2023-02-30T00:00:00Z', 'before', 1800000000000], False),\n  ('timestamp pair sample 16', ['2023-11-14T22:13:20Z', 'before', True], False),\n  ('timestamp pair sample 17', [1699999999999, 'before', 1], False),\n  ('timestamp pair sample 42', ['2023-11-14T22:13:20Z', 'before', 1700000000001], True)],\n [('one millisecond earlier is before', [1699999999999, 'before', 1700000000000], True),\n  ('offset string is unusable', ['2023-11-14T23:13:20+01:00', 'before', '2023-11-14T22:13:21Z'], False),\n  ('explicit UTC offset spelling is unusable', ['2023-11-14T22:13:20+00:00', 'before', 1800000000000], False),\n  ('invalid calendar date is unusable', ['2023-02-30T00:00:00Z', 'before', 1800000000000], False),\n  ('seconds epoch compared as milliseconds', [1700000000, 'before', '2023-11-14T22:13:20Z'], True),\n  ('timestamp pair sample 13', [1700000000, 'before', 1700000000], False),\n  ('timestamp pair sample 21', ['soon', 'after', '2023-11-14T22:13:20Z'], False),\n  ('timestamp pair sample 22', ['2023-11-14T22:13:20Z', 'after', '2023-11-14T22:13:20+00:00'], False)]]\nfor label, args, expected in fixtures[N - 1]:\n    check(label, solve(*args), expected)\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":"33b8fe31b3ee6d9b2e40599be149c2589956384c104f07b72b186a043c0d4c51","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport datetime\nN = 1\nobservations = []\ndef solve(user_value, op, clause_value):\n    def ms(v):\n        if isinstance(v, bool):\n            return None\n        if isinstance(v, (int, float)):\n            return v\n        if isinstance(v, str) and len(v) == 20 and v.endswith('Z'):\n            try:\n                d = datetime.datetime.strptime(v, '%Y-%m-%dT%H:%M:%SZ').replace(tzinfo=datetime.timezone.utc)\n            except ValueError:\n                return None\n            return int(d.timestamp()) * 1000\n        return None\n    a, b = ms(user_value), ms(clause_value)\n    if a is None or b is None:\n        return False\n    if op == 'before':\n        return a <= b\n    if op == 'after':\n        return a > b\n    return False\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('ISO clause converts to milliseconds', [1700000000001, 'after', '2023-11-14T22:13:20Z'], True),\n  ('boolean user value is unusable', [True, 'after', 0], False),\n  ('false user value is unusable', [False, 'before', 1], False),\n  ('equal timestamps are not before', [1700000000000, 'before', '2023-11-14T22:13:20Z'], False),\n  ('one millisecond earlier is before', [1699999999999, 'before', 1700000000000], True),\n  ('timestamp pair sample 1', ['2023-11-14T23:13:20+01:00', 'on', True], False),\n  ('timestamp pair sample 2', [0, 'before', 1700000000000], True),\n  ('timestamp pair sample 3', [1700000000, 'after', 1700000000001], False)],\n [('boolean user value is unusable', [True, 'after', 0], False),\n  ('false user value is unusable', [False, 'before', 1], False),\n  ('equal timestamps are not before', [1700000000000, 'before', '2023-11-14T22:13:20Z'], False),\n  ('one millisecond earlier is before', [1699999999999, 'before', 1700000000000], True),\n  ('offset string is unusable', ['2023-11-14T23:13:20+01:00', 'before', '2023-11-14T22:13:21Z'], False),\n  ('timestamp pair sample 6', [True, 'after', 1700000000001], False),\n  ('timestamp pair sample 13', [1700000000, 'before', 1700000000], False),\n  ('timestamp pair sample 42', ['2023-11-14T22:13:20Z', 'before', 1700000000001], True)],\n [('false user value is unusable', [False, 'before', 1], False),\n  ('equal timestamps are not before', [1700000000000, 'before', '2023-11-14T22:13:20Z'], False),\n  ('one millisecond earlier is before', [1699999999999, 'before', 1700000000000], True),\n  ('offset string is unusable', ['2023-11-14T23:13:20+01:00', 'before', '2023-11-14T22:13:21Z'], False),\n  ('explicit UTC offset spelling is unusable', ['2023-11-14T22:13:20+00:00', 'before', 1800000000000], False),\n  ('timestamp pair sample 11', ['soon', 'after', 1700000000001], False),\n  ('timestamp pair sample 12', ['2023-11-14T22:13:21Z', 'after', 1700000000001], True),\n  ('timestamp pair sample 40', [1699999999999, 'before', 1699999999999], False)],\n [('equal timestamps are not before', [1700000000000, 'before', '2023-11-14T22:13:20Z'], False),\n  ('one millisecond earlier is before', [1699999999999, 'before', 1700000000000], True),\n  ('offset string is unusable', ['2023-11-14T23:13:20+01:00', 'before', '2023-11-14T22:13:21Z'], False),\n  ('explicit UTC offset spelling is unusable', ['2023-11-14T22:13:20+00:00', 'before', 1800000000000], False),\n  ('invalid calendar date is unusable', ['2023-02-30T00:00:00Z', 'before', 1800000000000], False),\n  ('timestamp pair sample 16', ['2023-11-14T22:13:20Z', 'before', True], False),\n  ('timestamp pair sample 17', [1699999999999, 'before', 1], False),\n  ('timestamp pair sample 42', ['2023-11-14T22:13:20Z', 'before', 1700000000001], True)],\n [('one millisecond earlier is before', [1699999999999, 'before', 1700000000000], True),\n  ('offset string is unusable', ['2023-11-14T23:13:20+01:00', 'before', '2023-11-14T22:13:21Z'], False),\n  ('explicit UTC offset spelling is unusable', ['2023-11-14T22:13:20+00:00', 'before', 1800000000000], False),\n  ('invalid calendar date is unusable', ['2023-02-30T00:00:00Z', 'before', 1800000000000], False),\n  ('seconds epoch compared as milliseconds', [1700000000, 'before', '2023-11-14T22:13:20Z'], True),\n  ('timestamp pair sample 13', [1700000000, 'before', 1700000000], False),\n  ('timestamp pair sample 21', ['soon', 'after', '2023-11-14T22:13:20Z'], False),\n  ('timestamp pair sample 22', ['2023-11-14T22:13:20Z', 'after', '2023-11-14T22:13:20+00:00'], False)]]\nfor label, args, expected in fixtures[N - 1]:\n    check(label, solve(*args), expected)\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":"A deterministic toy flag-evaluation model with a stipulated contract; it does not reproduce any vendor SDK byte for byte. 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":"w2-feature-flag-rollout-bucketing-date-clause-strict-before","generated_at":"2026-09-29T14:48:55.269492+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Date clauses schedule launches and trials; unit and timezone slips shift them by days or years.","root_cause":"The before operator uses a <= b.","sha256":"bcb2f87f1946742e2d75d4ea5eccf8702f671a94f738adcae73a22ac4110e0d2","title":"Timestamp targeting clause: Equal timestamps satisfy \"before\" · 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":39.84,"exit_code":1,"observations":[{"actual":true,"check":"ISO clause converts to milliseconds","expected":true,"passed":true},{"actual":false,"check":"boolean user value is unusable","expected":false,"passed":true},{"actual":false,"check":"false user value is unusable","expected":false,"passed":true},{"actual":false,"check":"equal timestamps are not before","expected":false,"passed":true},{"actual":false,"check":"one millisecond earlier is before","expected":true,"passed":false},{"actual":false,"check":"timestamp pair sample 1","expected":false,"passed":true},{"actual":true,"check":"timestamp pair sample 2","expected":true,"passed":true},{"actual":false,"check":"timestamp pair sample 3","expected":false,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"ISO clause converts to milliseconds\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"boolean user value is unusable\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"false user value is unusable\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"equal timestamps are not before\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"one millisecond earlier is before\", \"actual\": false, \"expected\": true, \"passed\": false}, {\"check\": \"timestamp pair sample 1\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"timestamp pair sample 2\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"timestamp pair sample 3\", \"actual\": false, \"expected\": false, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":40.874,"exit_code":1,"observations":[{"actual":true,"check":"ISO clause converts to milliseconds","expected":true,"passed":true},{"actual":false,"check":"boolean user value is unusable","expected":false,"passed":true},{"actual":false,"check":"false user value is unusable","expected":false,"passed":true},{"actual":true,"check":"equal timestamps are not before","expected":false,"passed":false},{"actual":true,"check":"one millisecond earlier is before","expected":true,"passed":true},{"actual":false,"check":"timestamp pair sample 1","expected":false,"passed":true},{"actual":true,"check":"timestamp pair sample 2","expected":true,"passed":true},{"actual":false,"check":"timestamp pair sample 3","expected":false,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"ISO clause converts to milliseconds\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"boolean user value is unusable\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"false user value is unusable\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"equal timestamps are not before\", \"actual\": true, \"expected\": false, \"passed\": false}, {\"check\": \"one millisecond earlier is before\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"timestamp pair sample 1\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"timestamp pair sample 2\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"timestamp pair sample 3\", \"actual\": false, \"expected\": false, \"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."}}