{"abstract":"FLAG_DARK-MODE-V2 can never be set from a shell, so the env layer is unreachable for dashed keys.","category":"Feature flag rollout bucketing","checks":8,"contract":"Layers in precedence order: env var FLAG_<KEY uppercased with \"-\" -> \"_\">, local overrides[key], remote[key], then the default. A layer is used only if its value is valid for the default's type, else the next layer is tried. Non-env values must have exactly the default's type (bool is not int). Env strings: bool defaults accept \"true\"/\"false\" case-insensitively; int defaults accept digits with an optional leading \"-\"; str defaults accept any string. Return [value, source].","contract_signature":"key, default, remote, overrides, env","evaluation_group":"w2-feature-flag-rollout-bucketing-override-resolution","failed_approach":"Replacing dashes without uppercasing looks up a lowercase variable name.","family":"w2-feature-flag-rollout-bucketing-override-resolution-env-name-mangling","id":"FA-74231","implementations":{"attempt":{"sha256":"32efceb93c33e59cf00446cca6623661d50301c68c92f04a3570e4d9e54f00a0","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(key, default, remote, overrides, env):\n    def coerce(v, from_env):\n        if from_env:\n            if isinstance(default, bool):\n                low = v.lower()\n                return (True, low == 'true') if low in ('true', 'false') else (False, None)\n            if isinstance(default, int):\n                body = v[1:] if v.startswith('-') else v\n                return (True, int(v)) if body.isdigit() else (False, None)\n            return (True, v)\n        return (True, v) if type(v) is type(default) else (False, None)\n    name = 'FLAG_' + key.replace('-', '_')\n    layers = [('env', env, name, True), ('override', overrides, key, False), ('remote', remote, key, False)]\n    for source, table, k, from_env in layers:\n        if k in table:\n            ok, value = coerce(table[k], from_env)\n            if ok:\n                return [value, source]\n    return [default, 'default']\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('boolean remote value rejected for integer flag', ['beta', 3, {'beta': True}, {}, {}], [3, 'default']),\n  ('environment beats local override',\n   ['new-ui', False, {}, {'new-ui': False}, {'FLAG_NEW_UI': 'true'}],\n   [True, 'env']),\n  ('dashed key maps to underscored env name',\n   ['dark-mode-v2', 'blue', {}, {}, {'FLAG_DARK_MODE_V2': 'green'}],\n   ['green', 'env']),\n  ('invalid env value falls through to remote',\n   ['beta', 0, {'beta': 5}, {}, {'FLAG_BETA': 'lots'}],\n   [5, 'remote']),\n  ('negative integer from env', ['beta', 0, {}, {}, {'FLAG_BETA': '-3'}], [-3, 'env']),\n  ('env boolean is case-insensitive', ['beta', False, {}, {}, {'FLAG_BETA': 'TRUE'}], [True, 'env']),\n  ('override layer sample 1', ['beta', 7, {'beta': 1}, {}, {}], [1, 'remote']),\n  ('override layer sample 2', ['new-ui', 'blue', {'new-ui': False}, {}, {}], ['blue', 'default'])],\n [('environment beats local override',\n   ['new-ui', False, {}, {'new-ui': False}, {'FLAG_NEW_UI': 'true'}],\n   [True, 'env']),\n  ('dashed key maps to underscored env name',\n   ['dark-mode-v2', 'blue', {}, {}, {'FLAG_DARK_MODE_V2': 'green'}],\n   ['green', 'env']),\n  ('invalid env value falls through to remote',\n   ['beta', 0, {'beta': 5}, {}, {'FLAG_BETA': 'lots'}],\n   [5, 'remote']),\n  ('negative integer from env', ['beta', 0, {}, {}, {'FLAG_BETA': '-3'}], [-3, 'env']),\n  ('plus sign is not a valid integer', ['beta', 0, {'beta': 9}, {}, {'FLAG_BETA': '+4'}], [9, 'remote']),\n  ('env boolean is case-insensitive', ['beta', False, {}, {}, {'FLAG_BETA': 'TRUE'}], [True, 'env']),\n  ('override layer sample 6', ['beta', True, {}, {'beta': 0}, {'FLAG_beta': '-3'}], [True, 'default']),\n  ('override layer sample 22',\n   ['dark-mode-v2', 'blue', {'dark-mode-v2': 1}, {}, {'FLAG_dark_mode_v2': 'True'}],\n   ['blue', 'default'])],\n [('environment beats local override',\n   ['new-ui', False, {}, {'new-ui': False}, {'FLAG_NEW_UI': 'true'}],\n   [True, 'env']),\n  ('dashed key maps to underscored env name',\n   ['dark-mode-v2', 'blue', {}, {}, {'FLAG_DARK_MODE_V2': 'green'}],\n   ['green', 'env']),\n  ('invalid env value falls through to remote',\n   ['beta', 0, {'beta': 5}, {}, {'FLAG_BETA': 'lots'}],\n   [5, 'remote']),\n  ('negative integer from env', ['beta', 0, {}, {}, {'FLAG_BETA': '-3'}], [-3, 'env']),\n  ('plus sign is not a valid integer', ['beta', 0, {'beta': 9}, {}, {'FLAG_BETA': '+4'}], [9, 'remote']),\n  ('env boolean is case-insensitive', ['beta', False, {}, {}, {'FLAG_BETA': 'TRUE'}], [True, 'env']),\n  ('override layer sample 11', ['beta', True, {'beta': -2}, {'beta': 0}, {}], [True, 'default']),\n  ('override layer sample 12', ['dark-mode-v2', 'blue', {}, {'dark-mode-v2': 0}, {}], ['blue', 'default'])],\n [('environment beats local override',\n   ['new-ui', False, {}, {'new-ui': False}, {'FLAG_NEW_UI': 'true'}],\n   [True, 'env']),\n  ('invalid env value falls through to remote',\n   ['beta', 0, {'beta': 5}, {}, {'FLAG_BETA': 'lots'}],\n   [5, 'remote']),\n  ('negative integer from env', ['beta', 0, {}, {}, {'FLAG_BETA': '-3'}], [-3, 'env']),\n  ('plus sign is not a valid integer', ['beta', 0, {'beta': 9}, {}, {'FLAG_BETA': '+4'}], [9, 'remote']),\n  ('env boolean is case-insensitive', ['beta', False, {}, {}, {'FLAG_BETA': 'TRUE'}], [True, 'env']),\n  ('non-boolean env text is invalid for boolean flag',\n   ['beta', True, {'beta': True}, {}, {'FLAG_BETA': 'yes'}],\n   [True, 'remote']),\n  ('override layer sample 16', ['dark-mode-v2', 'blue', {'dark-mode-v2': 1}, {}, {}], ['blue', 'default']),\n  ('override layer sample 22',\n   ['dark-mode-v2', 'blue', {'dark-mode-v2': 1}, {}, {'FLAG_dark_mode_v2': 'True'}],\n   ['blue', 'default'])],\n [('environment beats local override',\n   ['new-ui', False, {}, {'new-ui': False}, {'FLAG_NEW_UI': 'true'}],\n   [True, 'env']),\n  ('negative integer from env', ['beta', 0, {}, {}, {'FLAG_BETA': '-3'}], [-3, 'env']),\n  ('plus sign is not a valid integer', ['beta', 0, {'beta': 9}, {}, {'FLAG_BETA': '+4'}], [9, 'remote']),\n  ('env boolean is case-insensitive', ['beta', False, {}, {}, {'FLAG_BETA': 'TRUE'}], [True, 'env']),\n  ('non-boolean env text is invalid for boolean flag',\n   ['beta', True, {'beta': True}, {}, {'FLAG_BETA': 'yes'}],\n   [True, 'remote']),\n  ('local override beats remote', ['beta', 'a', {'beta': 'b'}, {'beta': 'c'}, {}], ['c', 'override']),\n  ('override layer sample 21',\n   ['dark-mode-v2', False, {}, {}, {'FLAG_DARK-MODE-V2': 'true'}],\n   [False, 'default']),\n  ('override layer sample 22',\n   ['dark-mode-v2', 'blue', {'dark-mode-v2': 1}, {}, {'FLAG_dark_mode_v2': 'True'}],\n   ['blue', 'default'])]]\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":"483fd7f94f925c03aa8276c6a25e5c9e1e8f1911e87c2929b54ec33b558881c4","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(key, default, remote, overrides, env):\n    def coerce(v, from_env):\n        if from_env:\n            if isinstance(default, bool):\n                low = v.lower()\n                return (True, low == 'true') if low in ('true', 'false') else (False, None)\n            if isinstance(default, int):\n                body = v[1:] if v.startswith('-') else v\n                return (True, int(v)) if body.isdigit() else (False, None)\n            return (True, v)\n        return (True, v) if type(v) is type(default) else (False, None)\n    name = 'FLAG_' + key.upper()\n    layers = [('env', env, name, True), ('override', overrides, key, False), ('remote', remote, key, False)]\n    for source, table, k, from_env in layers:\n        if k in table:\n            ok, value = coerce(table[k], from_env)\n            if ok:\n                return [value, source]\n    return [default, 'default']\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('boolean remote value rejected for integer flag', ['beta', 3, {'beta': True}, {}, {}], [3, 'default']),\n  ('environment beats local override',\n   ['new-ui', False, {}, {'new-ui': False}, {'FLAG_NEW_UI': 'true'}],\n   [True, 'env']),\n  ('dashed key maps to underscored env name',\n   ['dark-mode-v2', 'blue', {}, {}, {'FLAG_DARK_MODE_V2': 'green'}],\n   ['green', 'env']),\n  ('invalid env value falls through to remote',\n   ['beta', 0, {'beta': 5}, {}, {'FLAG_BETA': 'lots'}],\n   [5, 'remote']),\n  ('negative integer from env', ['beta', 0, {}, {}, {'FLAG_BETA': '-3'}], [-3, 'env']),\n  ('env boolean is case-insensitive', ['beta', False, {}, {}, {'FLAG_BETA': 'TRUE'}], [True, 'env']),\n  ('override layer sample 1', ['beta', 7, {'beta': 1}, {}, {}], [1, 'remote']),\n  ('override layer sample 2', ['new-ui', 'blue', {'new-ui': False}, {}, {}], ['blue', 'default'])],\n [('environment beats local override',\n   ['new-ui', False, {}, {'new-ui': False}, {'FLAG_NEW_UI': 'true'}],\n   [True, 'env']),\n  ('dashed key maps to underscored env name',\n   ['dark-mode-v2', 'blue', {}, {}, {'FLAG_DARK_MODE_V2': 'green'}],\n   ['green', 'env']),\n  ('invalid env value falls through to remote',\n   ['beta', 0, {'beta': 5}, {}, {'FLAG_BETA': 'lots'}],\n   [5, 'remote']),\n  ('negative integer from env', ['beta', 0, {}, {}, {'FLAG_BETA': '-3'}], [-3, 'env']),\n  ('plus sign is not a valid integer', ['beta', 0, {'beta': 9}, {}, {'FLAG_BETA': '+4'}], [9, 'remote']),\n  ('env boolean is case-insensitive', ['beta', False, {}, {}, {'FLAG_BETA': 'TRUE'}], [True, 'env']),\n  ('override layer sample 6', ['beta', True, {}, {'beta': 0}, {'FLAG_beta': '-3'}], [True, 'default']),\n  ('override layer sample 22',\n   ['dark-mode-v2', 'blue', {'dark-mode-v2': 1}, {}, {'FLAG_dark_mode_v2': 'True'}],\n   ['blue', 'default'])],\n [('environment beats local override',\n   ['new-ui', False, {}, {'new-ui': False}, {'FLAG_NEW_UI': 'true'}],\n   [True, 'env']),\n  ('dashed key maps to underscored env name',\n   ['dark-mode-v2', 'blue', {}, {}, {'FLAG_DARK_MODE_V2': 'green'}],\n   ['green', 'env']),\n  ('invalid env value falls through to remote',\n   ['beta', 0, {'beta': 5}, {}, {'FLAG_BETA': 'lots'}],\n   [5, 'remote']),\n  ('negative integer from env', ['beta', 0, {}, {}, {'FLAG_BETA': '-3'}], [-3, 'env']),\n  ('plus sign is not a valid integer', ['beta', 0, {'beta': 9}, {}, {'FLAG_BETA': '+4'}], [9, 'remote']),\n  ('env boolean is case-insensitive', ['beta', False, {}, {}, {'FLAG_BETA': 'TRUE'}], [True, 'env']),\n  ('override layer sample 11', ['beta', True, {'beta': -2}, {'beta': 0}, {}], [True, 'default']),\n  ('override layer sample 12', ['dark-mode-v2', 'blue', {}, {'dark-mode-v2': 0}, {}], ['blue', 'default'])],\n [('environment beats local override',\n   ['new-ui', False, {}, {'new-ui': False}, {'FLAG_NEW_UI': 'true'}],\n   [True, 'env']),\n  ('invalid env value falls through to remote',\n   ['beta', 0, {'beta': 5}, {}, {'FLAG_BETA': 'lots'}],\n   [5, 'remote']),\n  ('negative integer from env', ['beta', 0, {}, {}, {'FLAG_BETA': '-3'}], [-3, 'env']),\n  ('plus sign is not a valid integer', ['beta', 0, {'beta': 9}, {}, {'FLAG_BETA': '+4'}], [9, 'remote']),\n  ('env boolean is case-insensitive', ['beta', False, {}, {}, {'FLAG_BETA': 'TRUE'}], [True, 'env']),\n  ('non-boolean env text is invalid for boolean flag',\n   ['beta', True, {'beta': True}, {}, {'FLAG_BETA': 'yes'}],\n   [True, 'remote']),\n  ('override layer sample 16', ['dark-mode-v2', 'blue', {'dark-mode-v2': 1}, {}, {}], ['blue', 'default']),\n  ('override layer sample 22',\n   ['dark-mode-v2', 'blue', {'dark-mode-v2': 1}, {}, {'FLAG_dark_mode_v2': 'True'}],\n   ['blue', 'default'])],\n [('environment beats local override',\n   ['new-ui', False, {}, {'new-ui': False}, {'FLAG_NEW_UI': 'true'}],\n   [True, 'env']),\n  ('negative integer from env', ['beta', 0, {}, {}, {'FLAG_BETA': '-3'}], [-3, 'env']),\n  ('plus sign is not a valid integer', ['beta', 0, {'beta': 9}, {}, {'FLAG_BETA': '+4'}], [9, 'remote']),\n  ('env boolean is case-insensitive', ['beta', False, {}, {}, {'FLAG_BETA': 'TRUE'}], [True, 'env']),\n  ('non-boolean env text is invalid for boolean flag',\n   ['beta', True, {'beta': True}, {}, {'FLAG_BETA': 'yes'}],\n   [True, 'remote']),\n  ('local override beats remote', ['beta', 'a', {'beta': 'b'}, {'beta': 'c'}, {}], ['c', 'override']),\n  ('override layer sample 21',\n   ['dark-mode-v2', False, {}, {}, {'FLAG_DARK-MODE-V2': 'true'}],\n   [False, 'default']),\n  ('override layer sample 22',\n   ['dark-mode-v2', 'blue', {'dark-mode-v2': 1}, {}, {'FLAG_dark_mode_v2': 'True'}],\n   ['blue', 'default'])]]\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-override-resolution-env-name-mangling","generated_at":"2026-09-29T14:48:54.760797+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Local and environment overrides are how operators pin flags during incidents; precedence must be exact.","root_cause":"The key is uppercased but dashes are not replaced with underscores.","sha256":"5b9f01037af9df23ef8871ae42241922e122701a0e11b6ccacc746f290a1ddf1","title":"Flag override resolution: Dashes survive in environment variable names · 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":40.476,"exit_code":1,"observations":[{"actual":[3,"default"],"check":"boolean remote value rejected for integer flag","expected":[3,"default"],"passed":true},{"actual":[false,"override"],"check":"environment beats local override","expected":[true,"env"],"passed":false},{"actual":["blue","default"],"check":"dashed key maps to underscored env name","expected":["green","env"],"passed":false},{"actual":[5,"remote"],"check":"invalid env value falls through to remote","expected":[5,"remote"],"passed":true},{"actual":[0,"default"],"check":"negative integer from env","expected":[-3,"env"],"passed":false},{"actual":[false,"default"],"check":"env boolean is case-insensitive","expected":[true,"env"],"passed":false},{"actual":[1,"remote"],"check":"override layer sample 1","expected":[1,"remote"],"passed":true},{"actual":["blue","default"],"check":"override layer sample 2","expected":["blue","default"],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"boolean remote value rejected for integer flag\", \"actual\": [3, \"default\"], \"expected\": [3, \"default\"], \"passed\": true}, {\"check\": \"environment beats local override\", \"actual\": [false, \"override\"], \"expected\": [true, \"env\"], \"passed\": false}, {\"check\": \"dashed key maps to underscored env name\", \"actual\": [\"blue\", \"default\"], \"expected\": [\"green\", \"env\"], \"passed\": false}, {\"check\": \"invalid env value falls through to remote\", \"actual\": [5, \"remote\"], \"expected\": [5, \"remote\"], \"passed\": true}, {\"check\": \"negative integer from env\", \"actual\": [0, \"default\"], \"expected\": [-3, \"env\"], \"passed\": false}, {\"check\": \"env boolean is case-insensitive\", \"actual\": [false, \"default\"], \"expected\": [true, \"env\"], \"passed\": false}, {\"check\": \"override layer sample 1\", \"actual\": [1, \"remote\"], \"expected\": [1, \"remote\"], \"passed\": true}, {\"check\": \"override layer sample 2\", \"actual\": [\"blue\", \"default\"], \"expected\": [\"blue\", \"default\"], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":37.929,"exit_code":1,"observations":[{"actual":[3,"default"],"check":"boolean remote value rejected for integer flag","expected":[3,"default"],"passed":true},{"actual":[false,"override"],"check":"environment beats local override","expected":[true,"env"],"passed":false},{"actual":["blue","default"],"check":"dashed key maps to underscored env name","expected":["green","env"],"passed":false},{"actual":[5,"remote"],"check":"invalid env value falls through to remote","expected":[5,"remote"],"passed":true},{"actual":[-3,"env"],"check":"negative integer from env","expected":[-3,"env"],"passed":true},{"actual":[true,"env"],"check":"env boolean is case-insensitive","expected":[true,"env"],"passed":true},{"actual":[1,"remote"],"check":"override layer sample 1","expected":[1,"remote"],"passed":true},{"actual":["blue","default"],"check":"override layer sample 2","expected":["blue","default"],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"boolean remote value rejected for integer flag\", \"actual\": [3, \"default\"], \"expected\": [3, \"default\"], \"passed\": true}, {\"check\": \"environment beats local override\", \"actual\": [false, \"override\"], \"expected\": [true, \"env\"], \"passed\": false}, {\"check\": \"dashed key maps to underscored env name\", \"actual\": [\"blue\", \"default\"], \"expected\": [\"green\", \"env\"], \"passed\": false}, {\"check\": \"invalid env value falls through to remote\", \"actual\": [5, \"remote\"], \"expected\": [5, \"remote\"], \"passed\": true}, {\"check\": \"negative integer from env\", \"actual\": [-3, \"env\"], \"expected\": [-3, \"env\"], \"passed\": true}, {\"check\": \"env boolean is case-insensitive\", \"actual\": [true, \"env\"], \"expected\": [true, \"env\"], \"passed\": true}, {\"check\": \"override layer sample 1\", \"actual\": [1, \"remote\"], \"expected\": [1, \"remote\"], \"passed\": true}, {\"check\": \"override layer sample 2\", \"actual\": [\"blue\", \"default\"], \"expected\": [\"blue\", \"default\"], \"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."}}