{"abstract":"The tab workspace reports an incorrect unused spacer.","category":"Tab interfaces","checks":6,"contract":"A strip reserves fixed control and pinned widths before distributing remaining width equally among normal tabs, clamped to min/max; report overflow and spacer.","contract_signature":"x","evaluation_group":"s3-tabs-tab-width-budget","failed_approach":"The partial repair 0 still violates a workspace boundary or normal case.","family":"s3-tab-interfaces-tab-width-budget-unused-spacer","id":"FA-35756","implementations":{"attempt":{"sha256":"84ddb95c0e2d914dd992392207e5b190a3e1cc2d24c6dfc7b1dbcb6cf160ecba","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    r0 = x['viewport']-x['controls']\n    r1 = x['pins']*x['pin_width']\n    r2 = max(0,x['viewport']-x['controls']-x['pins']*x['pin_width'])//x['normal']\n    r3 = min(x['max_width'],max(x['min_width'],(x['viewport']-x['controls']-x['pins']*x['pin_width'])//x['normal']))\n    r4 = max(0,x['normal']*x['min_width']+x['pins']*x['pin_width']+x['controls']-x['viewport'])\n    r5 = 0\n    return [r0,r1,r2,r3,r4,r5]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = {1: [({'viewport': 500, 'controls': 40, 'pins': 2, 'pin_width': 30, 'normal': 4, 'min_width': 80, 'max_width': 160}, [460, 60, 100, 100, 0, 0]), ({'viewport': 300, 'controls': 40, 'pins': 2, 'pin_width': 30, 'normal': 4, 'min_width': 80, 'max_width': 160}, [260, 60, 50, 80, 120, 0]), ({'viewport': 500, 'controls': 40, 'pins': 2, 'pin_width': 30, 'normal': 1, 'min_width': 80, 'max_width': 160}, [460, 60, 400, 160, 0, 240]), ({'viewport': 500, 'controls': 40, 'pins': 0, 'pin_width': 30, 'normal': 4, 'min_width': 80, 'max_width': 160}, [460, 0, 115, 115, 0, 0]), ({'viewport': 900, 'controls': 40, 'pins': 2, 'pin_width': 30, 'normal': 4, 'min_width': 80, 'max_width': 160}, [860, 60, 200, 160, 0, 160]), ({'viewport': 500, 'controls': 0, 'pins': 2, 'pin_width': 30, 'normal': 4, 'min_width': 80, 'max_width': 160}, [500, 60, 110, 110, 0, 0])], 2: [({'viewport': 1000, 'controls': 80, 'pins': 2, 'pin_width': 60, 'normal': 4, 'min_width': 160, 'max_width': 320}, [920, 120, 200, 200, 0, 0]), ({'viewport': 600, 'controls': 80, 'pins': 2, 'pin_width': 60, 'normal': 4, 'min_width': 160, 'max_width': 320}, [520, 120, 100, 160, 240, 0]), ({'viewport': 1000, 'controls': 80, 'pins': 2, 'pin_width': 60, 'normal': 1, 'min_width': 160, 'max_width': 320}, [920, 120, 800, 320, 0, 480]), ({'viewport': 1000, 'controls': 80, 'pins': 0, 'pin_width': 60, 'normal': 4, 'min_width': 160, 'max_width': 320}, [920, 0, 230, 230, 0, 0]), ({'viewport': 1800, 'controls': 80, 'pins': 2, 'pin_width': 60, 'normal': 4, 'min_width': 160, 'max_width': 320}, [1720, 120, 400, 320, 0, 320]), ({'viewport': 1000, 'controls': 0, 'pins': 2, 'pin_width': 60, 'normal': 4, 'min_width': 160, 'max_width': 320}, [1000, 120, 220, 220, 0, 0])], 3: [({'viewport': 1500, 'controls': 120, 'pins': 2, 'pin_width': 90, 'normal': 4, 'min_width': 240, 'max_width': 480}, [1380, 180, 300, 300, 0, 0]), ({'viewport': 900, 'controls': 120, 'pins': 2, 'pin_width': 90, 'normal': 4, 'min_width': 240, 'max_width': 480}, [780, 180, 150, 240, 360, 0]), ({'viewport': 1500, 'controls': 120, 'pins': 2, 'pin_width': 90, 'normal': 1, 'min_width': 240, 'max_width': 480}, [1380, 180, 1200, 480, 0, 720]), ({'viewport': 1500, 'controls': 120, 'pins': 0, 'pin_width': 90, 'normal': 4, 'min_width': 240, 'max_width': 480}, [1380, 0, 345, 345, 0, 0]), ({'viewport': 2700, 'controls': 120, 'pins': 2, 'pin_width': 90, 'normal': 4, 'min_width': 240, 'max_width': 480}, [2580, 180, 600, 480, 0, 480]), ({'viewport': 1500, 'controls': 0, 'pins': 2, 'pin_width': 90, 'normal': 4, 'min_width': 240, 'max_width': 480}, [1500, 180, 330, 330, 0, 0])], 4: [({'viewport': 2000, 'controls': 160, 'pins': 2, 'pin_width': 120, 'normal': 4, 'min_width': 320, 'max_width': 640}, [1840, 240, 400, 400, 0, 0]), ({'viewport': 1200, 'controls': 160, 'pins': 2, 'pin_width': 120, 'normal': 4, 'min_width': 320, 'max_width': 640}, [1040, 240, 200, 320, 480, 0]), ({'viewport': 2000, 'controls': 160, 'pins': 2, 'pin_width': 120, 'normal': 1, 'min_width': 320, 'max_width': 640}, [1840, 240, 1600, 640, 0, 960]), ({'viewport': 2000, 'controls': 160, 'pins': 0, 'pin_width': 120, 'normal': 4, 'min_width': 320, 'max_width': 640}, [1840, 0, 460, 460, 0, 0]), ({'viewport': 3600, 'controls': 160, 'pins': 2, 'pin_width': 120, 'normal': 4, 'min_width': 320, 'max_width': 640}, [3440, 240, 800, 640, 0, 640]), ({'viewport': 2000, 'controls': 0, 'pins': 2, 'pin_width': 120, 'normal': 4, 'min_width': 320, 'max_width': 640}, [2000, 240, 440, 440, 0, 0])], 5: [({'viewport': 2500, 'controls': 200, 'pins': 2, 'pin_width': 150, 'normal': 4, 'min_width': 400, 'max_width': 800}, [2300, 300, 500, 500, 0, 0]), ({'viewport': 1500, 'controls': 200, 'pins': 2, 'pin_width': 150, 'normal': 4, 'min_width': 400, 'max_width': 800}, [1300, 300, 250, 400, 600, 0]), ({'viewport': 2500, 'controls': 200, 'pins': 2, 'pin_width': 150, 'normal': 1, 'min_width': 400, 'max_width': 800}, [2300, 300, 2000, 800, 0, 1200]), ({'viewport': 2500, 'controls': 200, 'pins': 0, 'pin_width': 150, 'normal': 4, 'min_width': 400, 'max_width': 800}, [2300, 0, 575, 575, 0, 0]), ({'viewport': 4500, 'controls': 200, 'pins': 2, 'pin_width': 150, 'normal': 4, 'min_width': 400, 'max_width': 800}, [4300, 300, 1000, 800, 0, 800]), ({'viewport': 2500, 'controls': 0, 'pins': 2, 'pin_width': 150, 'normal': 4, 'min_width': 400, 'max_width': 800}, [2500, 300, 550, 550, 0, 0])]}\nfor i, (inputs, expected) in enumerate(fixtures[N]):\n    check(\"workspace regression \"+str(i), solve(inputs), 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":"6ef77259158f1762ed5ca933d32b15bb6797e38ba974caf1dfce330f2271c836","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    r0 = x['viewport']-x['controls']\n    r1 = x['pins']*x['pin_width']\n    r2 = max(0,x['viewport']-x['controls']-x['pins']*x['pin_width'])//x['normal']\n    r3 = min(x['max_width'],max(x['min_width'],(x['viewport']-x['controls']-x['pins']*x['pin_width'])//x['normal']))\n    r4 = max(0,x['normal']*x['min_width']+x['pins']*x['pin_width']+x['controls']-x['viewport'])\n    r5 = x['viewport']%x['normal']\n    return [r0,r1,r2,r3,r4,r5]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = {1: [({'viewport': 500, 'controls': 40, 'pins': 2, 'pin_width': 30, 'normal': 4, 'min_width': 80, 'max_width': 160}, [460, 60, 100, 100, 0, 0]), ({'viewport': 300, 'controls': 40, 'pins': 2, 'pin_width': 30, 'normal': 4, 'min_width': 80, 'max_width': 160}, [260, 60, 50, 80, 120, 0]), ({'viewport': 500, 'controls': 40, 'pins': 2, 'pin_width': 30, 'normal': 1, 'min_width': 80, 'max_width': 160}, [460, 60, 400, 160, 0, 240]), ({'viewport': 500, 'controls': 40, 'pins': 0, 'pin_width': 30, 'normal': 4, 'min_width': 80, 'max_width': 160}, [460, 0, 115, 115, 0, 0]), ({'viewport': 900, 'controls': 40, 'pins': 2, 'pin_width': 30, 'normal': 4, 'min_width': 80, 'max_width': 160}, [860, 60, 200, 160, 0, 160]), ({'viewport': 500, 'controls': 0, 'pins': 2, 'pin_width': 30, 'normal': 4, 'min_width': 80, 'max_width': 160}, [500, 60, 110, 110, 0, 0])], 2: [({'viewport': 1000, 'controls': 80, 'pins': 2, 'pin_width': 60, 'normal': 4, 'min_width': 160, 'max_width': 320}, [920, 120, 200, 200, 0, 0]), ({'viewport': 600, 'controls': 80, 'pins': 2, 'pin_width': 60, 'normal': 4, 'min_width': 160, 'max_width': 320}, [520, 120, 100, 160, 240, 0]), ({'viewport': 1000, 'controls': 80, 'pins': 2, 'pin_width': 60, 'normal': 1, 'min_width': 160, 'max_width': 320}, [920, 120, 800, 320, 0, 480]), ({'viewport': 1000, 'controls': 80, 'pins': 0, 'pin_width': 60, 'normal': 4, 'min_width': 160, 'max_width': 320}, [920, 0, 230, 230, 0, 0]), ({'viewport': 1800, 'controls': 80, 'pins': 2, 'pin_width': 60, 'normal': 4, 'min_width': 160, 'max_width': 320}, [1720, 120, 400, 320, 0, 320]), ({'viewport': 1000, 'controls': 0, 'pins': 2, 'pin_width': 60, 'normal': 4, 'min_width': 160, 'max_width': 320}, [1000, 120, 220, 220, 0, 0])], 3: [({'viewport': 1500, 'controls': 120, 'pins': 2, 'pin_width': 90, 'normal': 4, 'min_width': 240, 'max_width': 480}, [1380, 180, 300, 300, 0, 0]), ({'viewport': 900, 'controls': 120, 'pins': 2, 'pin_width': 90, 'normal': 4, 'min_width': 240, 'max_width': 480}, [780, 180, 150, 240, 360, 0]), ({'viewport': 1500, 'controls': 120, 'pins': 2, 'pin_width': 90, 'normal': 1, 'min_width': 240, 'max_width': 480}, [1380, 180, 1200, 480, 0, 720]), ({'viewport': 1500, 'controls': 120, 'pins': 0, 'pin_width': 90, 'normal': 4, 'min_width': 240, 'max_width': 480}, [1380, 0, 345, 345, 0, 0]), ({'viewport': 2700, 'controls': 120, 'pins': 2, 'pin_width': 90, 'normal': 4, 'min_width': 240, 'max_width': 480}, [2580, 180, 600, 480, 0, 480]), ({'viewport': 1500, 'controls': 0, 'pins': 2, 'pin_width': 90, 'normal': 4, 'min_width': 240, 'max_width': 480}, [1500, 180, 330, 330, 0, 0])], 4: [({'viewport': 2000, 'controls': 160, 'pins': 2, 'pin_width': 120, 'normal': 4, 'min_width': 320, 'max_width': 640}, [1840, 240, 400, 400, 0, 0]), ({'viewport': 1200, 'controls': 160, 'pins': 2, 'pin_width': 120, 'normal': 4, 'min_width': 320, 'max_width': 640}, [1040, 240, 200, 320, 480, 0]), ({'viewport': 2000, 'controls': 160, 'pins': 2, 'pin_width': 120, 'normal': 1, 'min_width': 320, 'max_width': 640}, [1840, 240, 1600, 640, 0, 960]), ({'viewport': 2000, 'controls': 160, 'pins': 0, 'pin_width': 120, 'normal': 4, 'min_width': 320, 'max_width': 640}, [1840, 0, 460, 460, 0, 0]), ({'viewport': 3600, 'controls': 160, 'pins': 2, 'pin_width': 120, 'normal': 4, 'min_width': 320, 'max_width': 640}, [3440, 240, 800, 640, 0, 640]), ({'viewport': 2000, 'controls': 0, 'pins': 2, 'pin_width': 120, 'normal': 4, 'min_width': 320, 'max_width': 640}, [2000, 240, 440, 440, 0, 0])], 5: [({'viewport': 2500, 'controls': 200, 'pins': 2, 'pin_width': 150, 'normal': 4, 'min_width': 400, 'max_width': 800}, [2300, 300, 500, 500, 0, 0]), ({'viewport': 1500, 'controls': 200, 'pins': 2, 'pin_width': 150, 'normal': 4, 'min_width': 400, 'max_width': 800}, [1300, 300, 250, 400, 600, 0]), ({'viewport': 2500, 'controls': 200, 'pins': 2, 'pin_width': 150, 'normal': 1, 'min_width': 400, 'max_width': 800}, [2300, 300, 2000, 800, 0, 1200]), ({'viewport': 2500, 'controls': 200, 'pins': 0, 'pin_width': 150, 'normal': 4, 'min_width': 400, 'max_width': 800}, [2300, 0, 575, 575, 0, 0]), ({'viewport': 4500, 'controls': 200, 'pins': 2, 'pin_width': 150, 'normal': 4, 'min_width': 400, 'max_width': 800}, [4300, 300, 1000, 800, 0, 800]), ({'viewport': 2500, 'controls': 0, 'pins': 2, 'pin_width': 150, 'normal': 4, 'min_width': 400, 'max_width': 800}, [2500, 300, 550, 550, 0, 0])]}\nfor i, (inputs, expected) in enumerate(fixtures[N]):\n    check(\"workspace regression \"+str(i), solve(inputs), 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":"Finite stipulated workspace snapshots only. Independent result fields describe observable obligations, not a full UI runtime. 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":"s3-tab-interfaces-tab-width-budget-unused-spacer","generated_at":"2026-09-29T14:42:44.654314+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Offline tab/panel workspace behavior; no browser or desktop framework is emulated.","root_cause":"The unused spacer decision uses x['viewport']%x['normal'] instead of max(0,x['viewport']-x['controls']-x['pins']*x['pin_width']-x['normal']*x['max_width']).","sha256":"e27f289b8f095c35731e7c2ab5a3995cb34eade3e5939d5618e09dbe73274f0b","title":"Tab width budget: unused spacer · 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":41.075,"exit_code":1,"observations":[{"actual":[460,60,100,100,0,0],"check":"workspace regression 0","expected":[460,60,100,100,0,0],"passed":true},{"actual":[260,60,50,80,120,0],"check":"workspace regression 1","expected":[260,60,50,80,120,0],"passed":true},{"actual":[460,60,400,160,0,0],"check":"workspace regression 2","expected":[460,60,400,160,0,240],"passed":false},{"actual":[460,0,115,115,0,0],"check":"workspace regression 3","expected":[460,0,115,115,0,0],"passed":true},{"actual":[860,60,200,160,0,0],"check":"workspace regression 4","expected":[860,60,200,160,0,160],"passed":false},{"actual":[500,60,110,110,0,0],"check":"workspace regression 5","expected":[500,60,110,110,0,0],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"workspace regression 0\", \"actual\": [460, 60, 100, 100, 0, 0], \"expected\": [460, 60, 100, 100, 0, 0], \"passed\": true}, {\"check\": \"workspace regression 1\", \"actual\": [260, 60, 50, 80, 120, 0], \"expected\": [260, 60, 50, 80, 120, 0], \"passed\": true}, {\"check\": \"workspace regression 2\", \"actual\": [460, 60, 400, 160, 0, 0], \"expected\": [460, 60, 400, 160, 0, 240], \"passed\": false}, {\"check\": \"workspace regression 3\", \"actual\": [460, 0, 115, 115, 0, 0], \"expected\": [460, 0, 115, 115, 0, 0], \"passed\": true}, {\"check\": \"workspace regression 4\", \"actual\": [860, 60, 200, 160, 0, 0], \"expected\": [860, 60, 200, 160, 0, 160], \"passed\": false}, {\"check\": \"workspace regression 5\", \"actual\": [500, 60, 110, 110, 0, 0], \"expected\": [500, 60, 110, 110, 0, 0], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":39.606,"exit_code":1,"observations":[{"actual":[460,60,100,100,0,0],"check":"workspace regression 0","expected":[460,60,100,100,0,0],"passed":true},{"actual":[260,60,50,80,120,0],"check":"workspace regression 1","expected":[260,60,50,80,120,0],"passed":true},{"actual":[460,60,400,160,0,0],"check":"workspace regression 2","expected":[460,60,400,160,0,240],"passed":false},{"actual":[460,0,115,115,0,0],"check":"workspace regression 3","expected":[460,0,115,115,0,0],"passed":true},{"actual":[860,60,200,160,0,0],"check":"workspace regression 4","expected":[860,60,200,160,0,160],"passed":false},{"actual":[500,60,110,110,0,0],"check":"workspace regression 5","expected":[500,60,110,110,0,0],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"workspace regression 0\", \"actual\": [460, 60, 100, 100, 0, 0], \"expected\": [460, 60, 100, 100, 0, 0], \"passed\": true}, {\"check\": \"workspace regression 1\", \"actual\": [260, 60, 50, 80, 120, 0], \"expected\": [260, 60, 50, 80, 120, 0], \"passed\": true}, {\"check\": \"workspace regression 2\", \"actual\": [460, 60, 400, 160, 0, 0], \"expected\": [460, 60, 400, 160, 0, 240], \"passed\": false}, {\"check\": \"workspace regression 3\", \"actual\": [460, 0, 115, 115, 0, 0], \"expected\": [460, 0, 115, 115, 0, 0], \"passed\": true}, {\"check\": \"workspace regression 4\", \"actual\": [860, 60, 200, 160, 0, 0], \"expected\": [860, 60, 200, 160, 0, 160], \"passed\": false}, {\"check\": \"workspace regression 5\", \"actual\": [500, 60, 110, 110, 0, 0], \"expected\": [500, 60, 110, 110, 0, 0], \"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."}}