{"abstract":"Stop matches are honored before minimum length.","category":"Model output stopping rules","checks":6,"contract":"Return generated tokens before the first configured stop ID only when their zero-based position is at least min_new; earlier stop IDs are retained as ordinary output. Also return whether a stop was accepted.","contract_signature":"tokens, stop_ids, min_new","evaluation_group":"w3-output-minimum-stop","failed_approach":"A strict greater-than check still rejects a stop exactly at the allowed minimum.","family":"w3-model-output-stopping-rules-minimum-before-stop","id":"FA-100766","implementations":{"attempt":{"sha256":"7ac4cb111a054c359063a29312f432c559e7c9e86896b445acd5e242d59f22e8","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(tokens, stop_ids, min_new):\n    for i,t in enumerate(tokens):\n        if t in stop_ids and i>min_new:return tokens[:i],True\n    return tokens,False\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('stop at minimum',solve([1,8,2],[8],1),([1],True))\ncheck('too early retained',solve([8,2],[8],1),([8,2],False))\ncheck('later stop',solve([1,2,8,3],[8],1),([1,2],True))\ncheck('no stop',solve([1,2],[8],1),([1,2],False))\ncheck('minimum zero',solve([8],[8],0),([],True))\ncheck('empty output',solve([],[8],0),([],False))\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":"5ef2c23cc27c50ab4a302a77df4897d665b4e6f68e2fa61b1be224eba3962a2b","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(tokens, stop_ids, min_new):\n    for i,t in enumerate(tokens):\n        if t in stop_ids:return tokens[:i],True\n    return tokens,False\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('stop at minimum',solve([1,8,2],[8],1),([1],True))\ncheck('too early retained',solve([8,2],[8],1),([8,2],False))\ncheck('later stop',solve([1,2,8,3],[8],1),([1,2],True))\ncheck('no stop',solve([1,2],[8],1),([1,2],False))\ncheck('minimum zero',solve([8],[8],0),([],True))\ncheck('empty output',solve([],[8],0),([],False))\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":"This toy contract covers the supplied token records only; it does not claim compatibility with a particular model runtime or tokenizer. 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":"w3-model-output-stopping-rules-minimum-before-stop","generated_at":"2026-09-30T16:48:39.593655+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"A deterministic output-control model isolates one finish or streaming boundary from any particular runtime.","root_cause":"The stop test ignores the minimum number of generated tokens.","sha256":"8ef021c378adc621bc8321cb1a743252fade4ba096da383a9f230cc643e3322c","title":"Output stopping: Stop matches are honored before minimum length · case 01","variant":1,"variant_policy":"The same explicitly authored fixtures repeat across all five numbered records; runtime N is unused. These records share one mechanism and must remain together in evaluation splits.","verified":true,"visibility":"public","verification":{"attempt":{"elapsed_ms":29.936,"exit_code":1,"observations":[{"actual":[[1,8,2],false],"check":"stop at minimum","expected":[[1],true],"passed":false},{"actual":[[8,2],false],"check":"too early retained","expected":[[8,2],false],"passed":true},{"actual":[[1,2],true],"check":"later stop","expected":[[1,2],true],"passed":true},{"actual":[[1,2],false],"check":"no stop","expected":[[1,2],false],"passed":true},{"actual":[[8],false],"check":"minimum zero","expected":[[],true],"passed":false},{"actual":[[],false],"check":"empty output","expected":[[],false],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"stop at minimum\", \"actual\": [[1, 8, 2], false], \"expected\": [[1], true], \"passed\": false}, {\"check\": \"too early retained\", \"actual\": [[8, 2], false], \"expected\": [[8, 2], false], \"passed\": true}, {\"check\": \"later stop\", \"actual\": [[1, 2], true], \"expected\": [[1, 2], true], \"passed\": true}, {\"check\": \"no stop\", \"actual\": [[1, 2], false], \"expected\": [[1, 2], false], \"passed\": true}, {\"check\": \"minimum zero\", \"actual\": [[8], false], \"expected\": [[], true], \"passed\": false}, {\"check\": \"empty output\", \"actual\": [[], false], \"expected\": [[], false], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":33.783,"exit_code":1,"observations":[{"actual":[[1],true],"check":"stop at minimum","expected":[[1],true],"passed":true},{"actual":[[],true],"check":"too early retained","expected":[[8,2],false],"passed":false},{"actual":[[1,2],true],"check":"later stop","expected":[[1,2],true],"passed":true},{"actual":[[1,2],false],"check":"no stop","expected":[[1,2],false],"passed":true},{"actual":[[],true],"check":"minimum zero","expected":[[],true],"passed":true},{"actual":[[],false],"check":"empty output","expected":[[],false],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"stop at minimum\", \"actual\": [[1], true], \"expected\": [[1], true], \"passed\": true}, {\"check\": \"too early retained\", \"actual\": [[], true], \"expected\": [[8, 2], false], \"passed\": false}, {\"check\": \"later stop\", \"actual\": [[1, 2], true], \"expected\": [[1, 2], true], \"passed\": true}, {\"check\": \"no stop\", \"actual\": [[1, 2], false], \"expected\": [[1, 2], false], \"passed\": true}, {\"check\": \"minimum zero\", \"actual\": [[], true], \"expected\": [[], true], \"passed\": true}, {\"check\": \"empty output\", \"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."}}