{"abstract":"C# major and Cb major (seven accidentals) are rejected although both are legal key signatures.","category":"Music interval and transposition theory","checks":8,"contract":"Input [midi, fifths] with midi 0..127 and fifths -7..7. Use flat names when fifths < 0, sharp names otherwise; in keys with at least six sharps pitch class 5 is E#, with seven sharps pitch class 0 is B# of the previous octave, and with at least six flats pitch class 11 is Cb of the next octave. Octave -1 starts at key 0. Invalid input returns None.","evaluation_group":"w2-music-interval-midi-spelling-key","failed_approach":"Widening only the sharp side still rejects Cb major with seven flats.","family":"w2-music-interval-midi-spelling-key-fifths-range","id":"FA-80876","implementations":{"attempt":{"sha256":"69b65cb5bbcc823c28cbb9245d06d1c85d1e3012da8e6c3692a24803d8209afe","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    if not isinstance(x, list) or len(x) != 2:\n        return None\n    m, f = x\n    if not isinstance(m, int) or m < 0 or m > 127:\n        return None\n    if not isinstance(f, int) or f < -6 or f > 7:\n        return None\n    sharps = ['C', 'C#', 'D', 'D#', 'E', 'F', 'F#', 'G', 'G#', 'A', 'A#', 'B']\n    flats = ['C', 'Db', 'D', 'Eb', 'E', 'F', 'Gb', 'G', 'Ab', 'A', 'Bb', 'B']\n    table = flats if f < 0 else sharps\n    pc = m % 12\n    octave = m // 12 - 1\n    name = table[pc]\n    if f >= 6 and pc == 5:\n        name = 'E#'\n    if f == 7 and pc == 0:\n        name = 'B#'\n        octave -= 1\n    if f <= -6 and pc == 11:\n        name = 'Cb'\n        octave += 1\n    return name + str(octave)\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[([60, 0], 'C4'), ([61, 0], 'C#4'), ([61, -1], 'Db4'), ([61, 1], 'C#4'), ([65, 7], 'E#4'), ([48, 7], 'B#2'), ([71, -7], 'Cb5'), ([64, -7], 'E4')], [([61, 1], 'C#4'), ([70, -2], 'Bb4'), ([70, 2], 'A#4'), ([65, 6], 'E#4'), ([65, 5], 'F4'), ([60, 7], 'B#3'), ([71, -7], 'Cb5'), ([60, -7], 'C4')], [([65, 6], 'E#4'), ([65, 5], 'F4'), ([65, -6], 'F4'), ([48, 7], 'B#2'), ([71, -6], 'Cb5'), ([127, 7], 'G9'), ([60, -7], 'C4'), ([66, -7], 'Gb4')], [([71, -6], 'Cb5'), ([71, -7], 'Cb5'), ([59, -6], 'Cb4'), ([0, 0], 'C-1'), ([1, -3], 'Db-1'), ([60, -7], 'C4'), ([66, -7], 'Gb4'), ([64, -7], 'E4')], [([71, -7], 'Cb5'), ([1, -3], 'Db-1'), ([11, 0], 'B-1'), ([127, 0], 'G9'), ([127, 7], 'G9'), ([128, 0], None), ([66, -7], 'Gb4'), ([64, -7], 'E4')]]\nfor i, (args, expected) in enumerate(fixtures[N-1]):\n    check(\"oracle %d\" % i, 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":"c762d340118efc97ebcaf447a055fe9a9b3bd31208e8c245eb4de231aac4c3d7","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    if not isinstance(x, list) or len(x) != 2:\n        return None\n    m, f = x\n    if not isinstance(m, int) or m < 0 or m > 127:\n        return None\n    if not isinstance(f, int) or abs(f) > 6:\n        return None\n    sharps = ['C', 'C#', 'D', 'D#', 'E', 'F', 'F#', 'G', 'G#', 'A', 'A#', 'B']\n    flats = ['C', 'Db', 'D', 'Eb', 'E', 'F', 'Gb', 'G', 'Ab', 'A', 'Bb', 'B']\n    table = flats if f < 0 else sharps\n    pc = m % 12\n    octave = m // 12 - 1\n    name = table[pc]\n    if f >= 6 and pc == 5:\n        name = 'E#'\n    if f == 7 and pc == 0:\n        name = 'B#'\n        octave -= 1\n    if f <= -6 and pc == 11:\n        name = 'Cb'\n        octave += 1\n    return name + str(octave)\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[([60, 0], 'C4'), ([61, 0], 'C#4'), ([61, -1], 'Db4'), ([61, 1], 'C#4'), ([65, 7], 'E#4'), ([48, 7], 'B#2'), ([71, -7], 'Cb5'), ([64, -7], 'E4')], [([61, 1], 'C#4'), ([70, -2], 'Bb4'), ([70, 2], 'A#4'), ([65, 6], 'E#4'), ([65, 5], 'F4'), ([60, 7], 'B#3'), ([71, -7], 'Cb5'), ([60, -7], 'C4')], [([65, 6], 'E#4'), ([65, 5], 'F4'), ([65, -6], 'F4'), ([48, 7], 'B#2'), ([71, -6], 'Cb5'), ([127, 7], 'G9'), ([60, -7], 'C4'), ([66, -7], 'Gb4')], [([71, -6], 'Cb5'), ([71, -7], 'Cb5'), ([59, -6], 'Cb4'), ([0, 0], 'C-1'), ([1, -3], 'Db-1'), ([60, -7], 'C4'), ([66, -7], 'Gb4'), ([64, -7], 'E4')], [([71, -7], 'Cb5'), ([1, -3], 'Db-1'), ([11, 0], 'B-1'), ([127, 0], 'G9'), ([127, 7], 'G9'), ([128, 0], None), ([66, -7], 'Gb4'), ([64, -7], 'E4')]]\nfor i, (args, expected) in enumerate(fixtures[N-1]):\n    check(\"oracle %d\" % i, 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"},"fixed":{"sha256":"a224835075261e420033b06c0d271a67ec7d12e354b6105093fda25b15afdf15","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    if not isinstance(x, list) or len(x) != 2:\n        return None\n    m, f = x\n    if not isinstance(m, int) or m < 0 or m > 127:\n        return None\n    if not isinstance(f, int) or f < -7 or f > 7:\n        return None\n    sharps = ['C', 'C#', 'D', 'D#', 'E', 'F', 'F#', 'G', 'G#', 'A', 'A#', 'B']\n    flats = ['C', 'Db', 'D', 'Eb', 'E', 'F', 'Gb', 'G', 'Ab', 'A', 'Bb', 'B']\n    table = flats if f < 0 else sharps\n    pc = m % 12\n    octave = m // 12 - 1\n    name = table[pc]\n    if f >= 6 and pc == 5:\n        name = 'E#'\n    if f == 7 and pc == 0:\n        name = 'B#'\n        octave -= 1\n    if f <= -6 and pc == 11:\n        name = 'Cb'\n        octave += 1\n    return name + str(octave)\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[([60, 0], 'C4'), ([61, 0], 'C#4'), ([61, -1], 'Db4'), ([61, 1], 'C#4'), ([65, 7], 'E#4'), ([48, 7], 'B#2'), ([71, -7], 'Cb5'), ([64, -7], 'E4')], [([61, 1], 'C#4'), ([70, -2], 'Bb4'), ([70, 2], 'A#4'), ([65, 6], 'E#4'), ([65, 5], 'F4'), ([60, 7], 'B#3'), ([71, -7], 'Cb5'), ([60, -7], 'C4')], [([65, 6], 'E#4'), ([65, 5], 'F4'), ([65, -6], 'F4'), ([48, 7], 'B#2'), ([71, -6], 'Cb5'), ([127, 7], 'G9'), ([60, -7], 'C4'), ([66, -7], 'Gb4')], [([71, -6], 'Cb5'), ([71, -7], 'Cb5'), ([59, -6], 'Cb4'), ([0, 0], 'C-1'), ([1, -3], 'Db-1'), ([60, -7], 'C4'), ([66, -7], 'Gb4'), ([64, -7], 'E4')], [([71, -7], 'Cb5'), ([1, -3], 'Db-1'), ([11, 0], 'B-1'), ([127, 0], 'G9'), ([127, 7], 'G9'), ([128, 0], None), ([66, -7], 'Gb4'), ([64, -7], 'E4')]]\nfor i, (args, expected) in enumerate(fixtures[N-1]):\n    check(\"oracle %d\" % i, 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 bounded teaching model with a stipulated toy contract; it is not a complete music notation or theory engine. 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-music-interval-midi-spelling-key-fifths-range","generated_at":"2026-09-29T14:49:57.985320+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Pitch spelling and interval arithmetic decide the notes that notation, transposition and analysis tools display or play.","repair":"Restore the fifths range step so that it reads `f < -7 or f > 7`.","root_cause":"The key range check treats six accidentals as the maximum.","sha256":"5192acc55ba363ada3bd4f4e43aa87fdd67ac3022d224c8e6b779bec2b0877d3","title":"Key-aware MIDI note spelling: seven-accidental keys rejected · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":38.802,"exit_code":1,"observations":[{"actual":"C4","check":"oracle 0","expected":"C4","passed":true},{"actual":"C#4","check":"oracle 1","expected":"C#4","passed":true},{"actual":"Db4","check":"oracle 2","expected":"Db4","passed":true},{"actual":"C#4","check":"oracle 3","expected":"C#4","passed":true},{"actual":"E#4","check":"oracle 4","expected":"E#4","passed":true},{"actual":"B#2","check":"oracle 5","expected":"B#2","passed":true},{"actual":null,"check":"oracle 6","expected":"Cb5","passed":false},{"actual":null,"check":"oracle 7","expected":"E4","passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"oracle 0\", \"actual\": \"C4\", \"expected\": \"C4\", \"passed\": true}, {\"check\": \"oracle 1\", \"actual\": \"C#4\", \"expected\": \"C#4\", \"passed\": true}, {\"check\": \"oracle 2\", \"actual\": \"Db4\", \"expected\": \"Db4\", \"passed\": true}, {\"check\": \"oracle 3\", \"actual\": \"C#4\", \"expected\": \"C#4\", \"passed\": true}, {\"check\": \"oracle 4\", \"actual\": \"E#4\", \"expected\": \"E#4\", \"passed\": true}, {\"check\": \"oracle 5\", \"actual\": \"B#2\", \"expected\": \"B#2\", \"passed\": true}, {\"check\": \"oracle 6\", \"actual\": null, \"expected\": \"Cb5\", \"passed\": false}, {\"check\": \"oracle 7\", \"actual\": null, \"expected\": \"E4\", \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":39.529,"exit_code":1,"observations":[{"actual":"C4","check":"oracle 0","expected":"C4","passed":true},{"actual":"C#4","check":"oracle 1","expected":"C#4","passed":true},{"actual":"Db4","check":"oracle 2","expected":"Db4","passed":true},{"actual":"C#4","check":"oracle 3","expected":"C#4","passed":true},{"actual":null,"check":"oracle 4","expected":"E#4","passed":false},{"actual":null,"check":"oracle 5","expected":"B#2","passed":false},{"actual":null,"check":"oracle 6","expected":"Cb5","passed":false},{"actual":null,"check":"oracle 7","expected":"E4","passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"oracle 0\", \"actual\": \"C4\", \"expected\": \"C4\", \"passed\": true}, {\"check\": \"oracle 1\", \"actual\": \"C#4\", \"expected\": \"C#4\", \"passed\": true}, {\"check\": \"oracle 2\", \"actual\": \"Db4\", \"expected\": \"Db4\", \"passed\": true}, {\"check\": \"oracle 3\", \"actual\": \"C#4\", \"expected\": \"C#4\", \"passed\": true}, {\"check\": \"oracle 4\", \"actual\": null, \"expected\": \"E#4\", \"passed\": false}, {\"check\": \"oracle 5\", \"actual\": null, \"expected\": \"B#2\", \"passed\": false}, {\"check\": \"oracle 6\", \"actual\": null, \"expected\": \"Cb5\", \"passed\": false}, {\"check\": \"oracle 7\", \"actual\": null, \"expected\": \"E4\", \"passed\": false}], \"passed\": false}\n"},"fixed":{"elapsed_ms":39.422,"exit_code":0,"observations":[{"actual":"C4","check":"oracle 0","expected":"C4","passed":true},{"actual":"C#4","check":"oracle 1","expected":"C#4","passed":true},{"actual":"Db4","check":"oracle 2","expected":"Db4","passed":true},{"actual":"C#4","check":"oracle 3","expected":"C#4","passed":true},{"actual":"E#4","check":"oracle 4","expected":"E#4","passed":true},{"actual":"B#2","check":"oracle 5","expected":"B#2","passed":true},{"actual":"Cb5","check":"oracle 6","expected":"Cb5","passed":true},{"actual":"E4","check":"oracle 7","expected":"E4","passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"oracle 0\", \"actual\": \"C4\", \"expected\": \"C4\", \"passed\": true}, {\"check\": \"oracle 1\", \"actual\": \"C#4\", \"expected\": \"C#4\", \"passed\": true}, {\"check\": \"oracle 2\", \"actual\": \"Db4\", \"expected\": \"Db4\", \"passed\": true}, {\"check\": \"oracle 3\", \"actual\": \"C#4\", \"expected\": \"C#4\", \"passed\": true}, {\"check\": \"oracle 4\", \"actual\": \"E#4\", \"expected\": \"E#4\", \"passed\": true}, {\"check\": \"oracle 5\", \"actual\": \"B#2\", \"expected\": \"B#2\", \"passed\": true}, {\"check\": \"oracle 6\", \"actual\": \"Cb5\", \"expected\": \"Cb5\", \"passed\": true}, {\"check\": \"oracle 7\", \"actual\": \"E4\", \"expected\": \"E4\", \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}