{"abstract":"A run with no remaining work is labeled completed despite having no final answer.","category":"Agent workflow termination","checks":7,"contract":"Given final_seen and remaining_steps, return complete when final_seen, budget_exhausted when steps are zero, else continue.","contract_signature":"final_seen, remaining_steps","evaluation_group":"w3-agent-workflow-termination-completion-reason","failed_approach":"Prioritizing the budget label misclassifies a run that did produce its final answer.","family":"w3-agent-workflow-termination-completion-reason","id":"FA-99916","implementations":{"attempt":{"sha256":"d7fe2651f870976e495ad73777b0cf6dde1a2d101b297f91a0d7b120cac26b1d","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(final_seen, remaining_steps):\n    return 'budget_exhausted' if remaining_steps == 0 else ('complete' if final_seen else 'continue')\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('final at exhausted budget', solve(True,0),'complete')\ncheck('budget without final', solve(False,0),'budget_exhausted')\ncheck('active without final', solve(False,N),'continue')\ncheck('final with room', solve(True,N),'complete')\ncheck('positive step', solve(False,1),'continue')\ncheck('extra budget without final', solve(False,N+1),'continue')\ncheck('answer wins', solve(True,1),'complete')\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":"6be80ec96f0ce5eef881462f8ed672fc083c2b44d41cfda28a6d0594e1459290","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(final_seen, remaining_steps):\n    return 'complete' if remaining_steps == 0 else 'continue'\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('final at exhausted budget', solve(True,0),'complete')\ncheck('budget without final', solve(False,0),'budget_exhausted')\ncheck('active without final', solve(False,N),'continue')\ncheck('final with room', solve(True,N),'complete')\ncheck('positive step', solve(False,1),'continue')\ncheck('extra budget without final', solve(False,N+1),'continue')\ncheck('answer wins', solve(True,1),'complete')\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":"remaining_steps is nonnegative; failure and cancellation reasons are outside this precedence rule. 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-agent-workflow-termination-completion-reason","generated_at":"2026-09-30T16:48:29.449039+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"This toy decision rule isolates one bounded agent-loop completion contract.","root_cause":"The finish reason is inferred from an empty queue alone.","sha256":"5afa2c118f2ee54768e6025c3bace123cdaf4452805fc938b2bc72359b4c3048","title":"Workflow: budget exhaustion is reported as successful completion · case 01","variant":1,"variant_policy":"The fixture code references N, supplied as 1 through 5. Fixed boundary checks may repeat. These records share one mechanism and must remain together in evaluation splits.","verified":true,"visibility":"public","verification":{"attempt":{"elapsed_ms":27.637,"exit_code":1,"observations":[{"actual":"budget_exhausted","check":"final at exhausted budget","expected":"complete","passed":false},{"actual":"budget_exhausted","check":"budget without final","expected":"budget_exhausted","passed":true},{"actual":"continue","check":"active without final","expected":"continue","passed":true},{"actual":"complete","check":"final with room","expected":"complete","passed":true},{"actual":"continue","check":"positive step","expected":"continue","passed":true},{"actual":"continue","check":"extra budget without final","expected":"continue","passed":true},{"actual":"complete","check":"answer wins","expected":"complete","passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"final at exhausted budget\", \"actual\": \"budget_exhausted\", \"expected\": \"complete\", \"passed\": false}, {\"check\": \"budget without final\", \"actual\": \"budget_exhausted\", \"expected\": \"budget_exhausted\", \"passed\": true}, {\"check\": \"active without final\", \"actual\": \"continue\", \"expected\": \"continue\", \"passed\": true}, {\"check\": \"final with room\", \"actual\": \"complete\", \"expected\": \"complete\", \"passed\": true}, {\"check\": \"positive step\", \"actual\": \"continue\", \"expected\": \"continue\", \"passed\": true}, {\"check\": \"extra budget without final\", \"actual\": \"continue\", \"expected\": \"continue\", \"passed\": true}, {\"check\": \"answer wins\", \"actual\": \"complete\", \"expected\": \"complete\", \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":29.123,"exit_code":1,"observations":[{"actual":"complete","check":"final at exhausted budget","expected":"complete","passed":true},{"actual":"complete","check":"budget without final","expected":"budget_exhausted","passed":false},{"actual":"continue","check":"active without final","expected":"continue","passed":true},{"actual":"continue","check":"final with room","expected":"complete","passed":false},{"actual":"continue","check":"positive step","expected":"continue","passed":true},{"actual":"continue","check":"extra budget without final","expected":"continue","passed":true},{"actual":"continue","check":"answer wins","expected":"complete","passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"final at exhausted budget\", \"actual\": \"complete\", \"expected\": \"complete\", \"passed\": true}, {\"check\": \"budget without final\", \"actual\": \"complete\", \"expected\": \"budget_exhausted\", \"passed\": false}, {\"check\": \"active without final\", \"actual\": \"continue\", \"expected\": \"continue\", \"passed\": true}, {\"check\": \"final with room\", \"actual\": \"continue\", \"expected\": \"complete\", \"passed\": false}, {\"check\": \"positive step\", \"actual\": \"continue\", \"expected\": \"continue\", \"passed\": true}, {\"check\": \"extra budget without final\", \"actual\": \"continue\", \"expected\": \"continue\", \"passed\": true}, {\"check\": \"answer wins\", \"actual\": \"continue\", \"expected\": \"complete\", \"passed\": false}], \"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."}}