{"abstract":"A 16-stitch taper is scheduled as 16 decrease rows, removing 32 stitches.","category":"Knitting and sewing pattern grading","checks":8,"contract":"Top-down sleeve from upper_sts to cuff_sts, decreasing 2 stitches per decrease row within rows rows. Errors: cuff wider (\"error: cuff wider than upper arm\"), odd difference (\"error: odd difference\"), rows fewer than decrease rows (\"error: not enough rows\"). pairs = difference/2; a = rows // pairs; y = rows - a*pairs decreases every a+1 rows, x = pairs-y every a rows. Return [[a, x], [a+1, y]] omitting a zero count; [] for no decreases.","evaluation_group":"w2-knitting_and_sewing_pattern_grading-sleeve-taper","failed_approach":"Subtracting a setup decrease leaves the sleeve two stitches too wide.","family":"w2-knitting_and_sewing_pattern_grading-sleeve-taper-decrease-pair-count","id":"FA-97391","implementations":{"attempt":{"sha256":"4c710b68d2e5167eccab7c2f58f5468c523565b5df5dea87a68f8ee7a7995327","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(cuff_sts, upper_sts, rows):\n    diff = upper_sts - cuff_sts\n    if diff < 0:\n        return 'error: cuff wider than upper arm'\n    if diff % 2:\n        return 'error: odd difference'\n    pairs = (diff - 2) // 2\n    if pairs == 0:\n        return []\n    a = rows // pairs\n    if a == 0:\n        return 'error: not enough rows'\n    y = rows - a * pairs\n    x = pairs - y\n    plan = []\n    if x:\n        plan.append([a, x])\n    if y:\n        plan.append([a + 1, y])\n    return plan\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['even schedule', [48, 64, 80], [[10, 8]]], ['two rates', [44, 60, 90], [[11, 6], [12, 2]]],\n  ['odd difference', [48, 53, 60], 'error: odd difference'],\n  ['regression: decrease pair count', [50, 62, 10], [[1, 2], [2, 4]]],\n  ['repair check: decrease pair count', [45, 45, 5], []], ['generated control 1', [60, 62, 40], [[40, 1]]],\n  ['generated control 2', [56, 61, 5], 'error: odd difference'],\n  ['generated control 3', [60, 65, 72], 'error: odd difference']],\n [['two rates', [44, 60, 90], [[11, 6], [12, 2]]], ['odd difference', [48, 53, 60], 'error: odd difference'],\n  ['too few rows', [40, 70, 10], 'error: not enough rows'],\n  ['regression: decrease pair count', [56, 72, 90], [[11, 6], [12, 2]]],\n  ['repair check: decrease pair count', [56, 64, 72], [[18, 4]]], ['generated control 1', [40, 40, 5], []],\n  ['generated control 2', [40, 45, 60], 'error: odd difference'], ['generated control 3', [60, 60, 5], []]],\n [['odd difference', [48, 53, 60], 'error: odd difference'],\n  ['too few rows', [40, 70, 10], 'error: not enough rows'],\n  ['cuff wider', [60, 50, 60], 'error: cuff wider than upper arm'],\n  ['regression: decrease pair count', [60, 90, 90], [[6, 15]]],\n  ['repair check: decrease pair count', [45, 69, 60], [[5, 12]]], ['generated control 1', [45, 45, 90], []],\n  ['generated control 2', [60, 84, 40], [[3, 8], [4, 4]]], ['generated control 3', [60, 76, 72], [[9, 8]]]],\n [['too few rows', [40, 70, 10], 'error: not enough rows'],\n  ['cuff wider', [60, 50, 60], 'error: cuff wider than upper arm'],\n  ['even schedule', [48, 64, 80], [[10, 8]]], ['regression: decrease pair count', [50, 58, 40], [[10, 4]]],\n  ['repair check: decrease pair count', [56, 86, 40], [[2, 5], [3, 10]]],\n  ['generated control 1', [48, 78, 100], [[6, 5], [7, 10]]],\n  ['generated control 2', [50, 66, 100], [[12, 4], [13, 4]]],\n  ['generated control 3', [56, 61, 40], 'error: odd difference']],\n [['cuff wider', [60, 50, 60], 'error: cuff wider than upper arm'],\n  ['even schedule', [48, 64, 80], [[10, 8]]], ['two rates', [44, 60, 90], [[11, 6], [12, 2]]],\n  ['regression: decrease pair count', [48, 64, 60], [[7, 4], [8, 4]]],\n  ['repair check: decrease pair count', [56, 86, 60], [[4, 15]]],\n  ['generated control 1', [45, 52, 100], 'error: odd difference'],\n  ['generated control 2', [51, 75, 5], 'error: not enough rows'],\n  ['generated control 3', [48, 50, 60], [[60, 1]]]]]\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":"1b83202c0254f54851728afaaa07d7af92d00fee54d382144b060c30ccafe25b","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(cuff_sts, upper_sts, rows):\n    diff = upper_sts - cuff_sts\n    if diff < 0:\n        return 'error: cuff wider than upper arm'\n    if diff % 2:\n        return 'error: odd difference'\n    pairs = diff\n    if pairs == 0:\n        return []\n    a = rows // pairs\n    if a == 0:\n        return 'error: not enough rows'\n    y = rows - a * pairs\n    x = pairs - y\n    plan = []\n    if x:\n        plan.append([a, x])\n    if y:\n        plan.append([a + 1, y])\n    return plan\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['even schedule', [48, 64, 80], [[10, 8]]], ['two rates', [44, 60, 90], [[11, 6], [12, 2]]],\n  ['odd difference', [48, 53, 60], 'error: odd difference'],\n  ['regression: decrease pair count', [50, 62, 10], [[1, 2], [2, 4]]],\n  ['repair check: decrease pair count', [45, 45, 5], []], ['generated control 1', [60, 62, 40], [[40, 1]]],\n  ['generated control 2', [56, 61, 5], 'error: odd difference'],\n  ['generated control 3', [60, 65, 72], 'error: odd difference']],\n [['two rates', [44, 60, 90], [[11, 6], [12, 2]]], ['odd difference', [48, 53, 60], 'error: odd difference'],\n  ['too few rows', [40, 70, 10], 'error: not enough rows'],\n  ['regression: decrease pair count', [56, 72, 90], [[11, 6], [12, 2]]],\n  ['repair check: decrease pair count', [56, 64, 72], [[18, 4]]], ['generated control 1', [40, 40, 5], []],\n  ['generated control 2', [40, 45, 60], 'error: odd difference'], ['generated control 3', [60, 60, 5], []]],\n [['odd difference', [48, 53, 60], 'error: odd difference'],\n  ['too few rows', [40, 70, 10], 'error: not enough rows'],\n  ['cuff wider', [60, 50, 60], 'error: cuff wider than upper arm'],\n  ['regression: decrease pair count', [60, 90, 90], [[6, 15]]],\n  ['repair check: decrease pair count', [45, 69, 60], [[5, 12]]], ['generated control 1', [45, 45, 90], []],\n  ['generated control 2', [60, 84, 40], [[3, 8], [4, 4]]], ['generated control 3', [60, 76, 72], [[9, 8]]]],\n [['too few rows', [40, 70, 10], 'error: not enough rows'],\n  ['cuff wider', [60, 50, 60], 'error: cuff wider than upper arm'],\n  ['even schedule', [48, 64, 80], [[10, 8]]], ['regression: decrease pair count', [50, 58, 40], [[10, 4]]],\n  ['repair check: decrease pair count', [56, 86, 40], [[2, 5], [3, 10]]],\n  ['generated control 1', [48, 78, 100], [[6, 5], [7, 10]]],\n  ['generated control 2', [50, 66, 100], [[12, 4], [13, 4]]],\n  ['generated control 3', [56, 61, 40], 'error: odd difference']],\n [['cuff wider', [60, 50, 60], 'error: cuff wider than upper arm'],\n  ['even schedule', [48, 64, 80], [[10, 8]]], ['two rates', [44, 60, 90], [[11, 6], [12, 2]]],\n  ['regression: decrease pair count', [48, 64, 60], [[7, 4], [8, 4]]],\n  ['repair check: decrease pair count', [56, 86, 60], [[4, 15]]],\n  ['generated control 1', [45, 52, 100], 'error: odd difference'],\n  ['generated control 2', [51, 75, 5], 'error: not enough rows'],\n  ['generated control 3', [48, 50, 60], [[60, 1]]]]]\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"},"fixed":{"sha256":"819a57ee5e56f722c3875a159c8916c761656457b716a66171217280746e920e","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(cuff_sts, upper_sts, rows):\n    diff = upper_sts - cuff_sts\n    if diff < 0:\n        return 'error: cuff wider than upper arm'\n    if diff % 2:\n        return 'error: odd difference'\n    pairs = diff // 2\n    if pairs == 0:\n        return []\n    a = rows // pairs\n    if a == 0:\n        return 'error: not enough rows'\n    y = rows - a * pairs\n    x = pairs - y\n    plan = []\n    if x:\n        plan.append([a, x])\n    if y:\n        plan.append([a + 1, y])\n    return plan\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['even schedule', [48, 64, 80], [[10, 8]]], ['two rates', [44, 60, 90], [[11, 6], [12, 2]]],\n  ['odd difference', [48, 53, 60], 'error: odd difference'],\n  ['regression: decrease pair count', [50, 62, 10], [[1, 2], [2, 4]]],\n  ['repair check: decrease pair count', [45, 45, 5], []], ['generated control 1', [60, 62, 40], [[40, 1]]],\n  ['generated control 2', [56, 61, 5], 'error: odd difference'],\n  ['generated control 3', [60, 65, 72], 'error: odd difference']],\n [['two rates', [44, 60, 90], [[11, 6], [12, 2]]], ['odd difference', [48, 53, 60], 'error: odd difference'],\n  ['too few rows', [40, 70, 10], 'error: not enough rows'],\n  ['regression: decrease pair count', [56, 72, 90], [[11, 6], [12, 2]]],\n  ['repair check: decrease pair count', [56, 64, 72], [[18, 4]]], ['generated control 1', [40, 40, 5], []],\n  ['generated control 2', [40, 45, 60], 'error: odd difference'], ['generated control 3', [60, 60, 5], []]],\n [['odd difference', [48, 53, 60], 'error: odd difference'],\n  ['too few rows', [40, 70, 10], 'error: not enough rows'],\n  ['cuff wider', [60, 50, 60], 'error: cuff wider than upper arm'],\n  ['regression: decrease pair count', [60, 90, 90], [[6, 15]]],\n  ['repair check: decrease pair count', [45, 69, 60], [[5, 12]]], ['generated control 1', [45, 45, 90], []],\n  ['generated control 2', [60, 84, 40], [[3, 8], [4, 4]]], ['generated control 3', [60, 76, 72], [[9, 8]]]],\n [['too few rows', [40, 70, 10], 'error: not enough rows'],\n  ['cuff wider', [60, 50, 60], 'error: cuff wider than upper arm'],\n  ['even schedule', [48, 64, 80], [[10, 8]]], ['regression: decrease pair count', [50, 58, 40], [[10, 4]]],\n  ['repair check: decrease pair count', [56, 86, 40], [[2, 5], [3, 10]]],\n  ['generated control 1', [48, 78, 100], [[6, 5], [7, 10]]],\n  ['generated control 2', [50, 66, 100], [[12, 4], [13, 4]]],\n  ['generated control 3', [56, 61, 40], 'error: odd difference']],\n [['cuff wider', [60, 50, 60], 'error: cuff wider than upper arm'],\n  ['even schedule', [48, 64, 80], [[10, 8]]], ['two rates', [44, 60, 90], [[11, 6], [12, 2]]],\n  ['regression: decrease pair count', [48, 64, 60], [[7, 4], [8, 4]]],\n  ['repair check: decrease pair count', [56, 86, 60], [[4, 15]]],\n  ['generated control 1', [45, 52, 100], 'error: odd difference'],\n  ['generated control 2', [51, 75, 5], 'error: not enough rows'],\n  ['generated control 3', [48, 50, 60], [[60, 1]]]]]\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 contract stated in full here; it is a bounded teaching model, not an authoritative reference or standards implementation. 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-knitting_and_sewing_pattern_grading-sleeve-taper-decrease-pair-count","generated_at":"2026-09-29T14:52:31.737819+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Pattern writers turn a stitch-count change over a length into \"decrease every N rows X times\".","repair":"Use half the stitch difference as the number of decrease rows.","root_cause":"Each decrease row removes two stitches but pairs counts single stitches.","sha256":"b5205d37dc4c07dd9167eab450c138eede6079cda3e9b8c4251bcd2d344bd3d7","title":"Sleeve taper decrease schedule: decrease pair count · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":42.551,"exit_code":1,"observations":[{"actual":[[11,4],[12,3]],"check":"even schedule","expected":[[10,8]],"passed":false},{"actual":[[12,1],[13,6]],"check":"two rates","expected":[[11,6],[12,2]],"passed":false},{"actual":"error: odd difference","check":"odd difference","expected":"error: odd difference","passed":true},{"actual":[[2,5]],"check":"regression: decrease pair count","expected":[[1,2],[2,4]],"passed":false},{"actual":[[-5,-1]],"check":"repair check: decrease pair count","expected":[],"passed":false},{"actual":[],"check":"generated control 1","expected":[[40,1]],"passed":false},{"actual":"error: odd difference","check":"generated control 2","expected":"error: odd difference","passed":true},{"actual":"error: odd difference","check":"generated control 3","expected":"error: odd difference","passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"even schedule\", \"actual\": [[11, 4], [12, 3]], \"expected\": [[10, 8]], \"passed\": false}, {\"check\": \"two rates\", \"actual\": [[12, 1], [13, 6]], \"expected\": [[11, 6], [12, 2]], \"passed\": false}, {\"check\": \"odd difference\", \"actual\": \"error: odd difference\", \"expected\": \"error: odd difference\", \"passed\": true}, {\"check\": \"regression: decrease pair count\", \"actual\": [[2, 5]], \"expected\": [[1, 2], [2, 4]], \"passed\": false}, {\"check\": \"repair check: decrease pair count\", \"actual\": [[-5, -1]], \"expected\": [], \"passed\": false}, {\"check\": \"generated control 1\", \"actual\": [], \"expected\": [[40, 1]], \"passed\": false}, {\"check\": \"generated control 2\", \"actual\": \"error: odd difference\", \"expected\": \"error: odd difference\", \"passed\": true}, {\"check\": \"generated control 3\", \"actual\": \"error: odd difference\", \"expected\": \"error: odd difference\", \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":43.685,"exit_code":1,"observations":[{"actual":[[5,16]],"check":"even schedule","expected":[[10,8]],"passed":false},{"actual":[[5,6],[6,10]],"check":"two rates","expected":[[11,6],[12,2]],"passed":false},{"actual":"error: odd difference","check":"odd difference","expected":"error: odd difference","passed":true},{"actual":"error: not enough rows","check":"regression: decrease pair count","expected":[[1,2],[2,4]],"passed":false},{"actual":[],"check":"repair check: decrease pair count","expected":[],"passed":true},{"actual":[[20,2]],"check":"generated control 1","expected":[[40,1]],"passed":false},{"actual":"error: odd difference","check":"generated control 2","expected":"error: odd difference","passed":true},{"actual":"error: odd difference","check":"generated control 3","expected":"error: odd difference","passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"even schedule\", \"actual\": [[5, 16]], \"expected\": [[10, 8]], \"passed\": false}, {\"check\": \"two rates\", \"actual\": [[5, 6], [6, 10]], \"expected\": [[11, 6], [12, 2]], \"passed\": false}, {\"check\": \"odd difference\", \"actual\": \"error: odd difference\", \"expected\": \"error: odd difference\", \"passed\": true}, {\"check\": \"regression: decrease pair count\", \"actual\": \"error: not enough rows\", \"expected\": [[1, 2], [2, 4]], \"passed\": false}, {\"check\": \"repair check: decrease pair count\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"generated control 1\", \"actual\": [[20, 2]], \"expected\": [[40, 1]], \"passed\": false}, {\"check\": \"generated control 2\", \"actual\": \"error: odd difference\", \"expected\": \"error: odd difference\", \"passed\": true}, {\"check\": \"generated control 3\", \"actual\": \"error: odd difference\", \"expected\": \"error: odd difference\", \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":43.716,"exit_code":0,"observations":[{"actual":[[10,8]],"check":"even schedule","expected":[[10,8]],"passed":true},{"actual":[[11,6],[12,2]],"check":"two rates","expected":[[11,6],[12,2]],"passed":true},{"actual":"error: odd difference","check":"odd difference","expected":"error: odd difference","passed":true},{"actual":[[1,2],[2,4]],"check":"regression: decrease pair count","expected":[[1,2],[2,4]],"passed":true},{"actual":[],"check":"repair check: decrease pair count","expected":[],"passed":true},{"actual":[[40,1]],"check":"generated control 1","expected":[[40,1]],"passed":true},{"actual":"error: odd difference","check":"generated control 2","expected":"error: odd difference","passed":true},{"actual":"error: odd difference","check":"generated control 3","expected":"error: odd difference","passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"even schedule\", \"actual\": [[10, 8]], \"expected\": [[10, 8]], \"passed\": true}, {\"check\": \"two rates\", \"actual\": [[11, 6], [12, 2]], \"expected\": [[11, 6], [12, 2]], \"passed\": true}, {\"check\": \"odd difference\", \"actual\": \"error: odd difference\", \"expected\": \"error: odd difference\", \"passed\": true}, {\"check\": \"regression: decrease pair count\", \"actual\": [[1, 2], [2, 4]], \"expected\": [[1, 2], [2, 4]], \"passed\": true}, {\"check\": \"repair check: decrease pair count\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"generated control 1\", \"actual\": [[40, 1]], \"expected\": [[40, 1]], \"passed\": true}, {\"check\": \"generated control 2\", \"actual\": \"error: odd difference\", \"expected\": \"error: odd difference\", \"passed\": true}, {\"check\": \"generated control 3\", \"actual\": \"error: odd difference\", \"expected\": \"error: odd difference\", \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}