{"abstract":"A reprocessed artifact retains the previous processing provenance.","category":"Scientific pipeline provenance","checks":6,"contract":"Return inherited ordered run IDs followed by the current run ID; repeated run IDs represent separate executions and are retained.","contract_signature":"history, run","evaluation_group":"model-f6a5cb659c1382f7","failed_approach":"Replacing history with the latest run discards earlier processing.","family":"z-scientific_pipelines-derived-artifact-lineage","id":"FA-11936","implementations":{"attempt":{"sha256":"0b3685ec5ba00cb80b8b40e38e4e89cb3993c35655ab87e3b9f21259e384addd","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(history, run):\n    return [run]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nr='run'+str(N)\ncheck('reprocessing records both runs', solve(['raw','filter'], r), ['raw','filter',r])\ncheck('initial processing', solve([], r), [r])\ncheck('same run repeated', solve([r], r), [r,r])\ncheck('one previous run', solve(['raw'], r), ['raw',r])\ncheck('order of ancestors retained', solve(['z','a'], r), ['z','a',r])\nh=['raw']\nsolve(h,r)\ncheck('parent provenance immutable', h, ['raw'])\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":"eaae151133dff2d21be7cc30d1b7e90c29e0cf53a61b26716b56cc8c68fd107b","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(history, run):\n    return list(history)\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nr='run'+str(N)\ncheck('reprocessing records both runs', solve(['raw','filter'], r), ['raw','filter',r])\ncheck('initial processing', solve([], r), [r])\ncheck('same run repeated', solve([r], r), [r,r])\ncheck('one previous run', solve(['raw'], r), ['raw',r])\ncheck('order of ancestors retained', solve(['z','a'], r), ['z','a',r])\nh=['raw']\nsolve(h,r)\ncheck('parent provenance immutable', h, ['raw'])\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":"In-memory symbolic records only; no instrument, assay, or production workflow validation. 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":"z-scientific_pipelines-derived-artifact-lineage","generated_at":"2026-09-29T14:38:52.365213+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"A deterministic offline model of scientific workflow bookkeeping; the fixtures test provenance contracts without modeling instruments or biological inference.","root_cause":"A new artifact inherits its parent processing history without recording the new run.","sha256":"c3716ef84e3bac7ccb0568996a55fa269bb2a6c20ef57d6f0f289a9bb945239c","title":"A reprocessed artifact retains the previous processing provenance · 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":40.966,"exit_code":1,"observations":[{"actual":["run1"],"check":"reprocessing records both runs","expected":["raw","filter","run1"],"passed":false},{"actual":["run1"],"check":"initial processing","expected":["run1"],"passed":true},{"actual":["run1"],"check":"same run repeated","expected":["run1","run1"],"passed":false},{"actual":["run1"],"check":"one previous run","expected":["raw","run1"],"passed":false},{"actual":["run1"],"check":"order of ancestors retained","expected":["z","a","run1"],"passed":false},{"actual":["raw"],"check":"parent provenance immutable","expected":["raw"],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"reprocessing records both runs\", \"actual\": [\"run1\"], \"expected\": [\"raw\", \"filter\", \"run1\"], \"passed\": false}, {\"check\": \"initial processing\", \"actual\": [\"run1\"], \"expected\": [\"run1\"], \"passed\": true}, {\"check\": \"same run repeated\", \"actual\": [\"run1\"], \"expected\": [\"run1\", \"run1\"], \"passed\": false}, {\"check\": \"one previous run\", \"actual\": [\"run1\"], \"expected\": [\"raw\", \"run1\"], \"passed\": false}, {\"check\": \"order of ancestors retained\", \"actual\": [\"run1\"], \"expected\": [\"z\", \"a\", \"run1\"], \"passed\": false}, {\"check\": \"parent provenance immutable\", \"actual\": [\"raw\"], \"expected\": [\"raw\"], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":42.154,"exit_code":1,"observations":[{"actual":["raw","filter"],"check":"reprocessing records both runs","expected":["raw","filter","run1"],"passed":false},{"actual":[],"check":"initial processing","expected":["run1"],"passed":false},{"actual":["run1"],"check":"same run repeated","expected":["run1","run1"],"passed":false},{"actual":["raw"],"check":"one previous run","expected":["raw","run1"],"passed":false},{"actual":["z","a"],"check":"order of ancestors retained","expected":["z","a","run1"],"passed":false},{"actual":["raw"],"check":"parent provenance immutable","expected":["raw"],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"reprocessing records both runs\", \"actual\": [\"raw\", \"filter\"], \"expected\": [\"raw\", \"filter\", \"run1\"], \"passed\": false}, {\"check\": \"initial processing\", \"actual\": [], \"expected\": [\"run1\"], \"passed\": false}, {\"check\": \"same run repeated\", \"actual\": [\"run1\"], \"expected\": [\"run1\", \"run1\"], \"passed\": false}, {\"check\": \"one previous run\", \"actual\": [\"raw\"], \"expected\": [\"raw\", \"run1\"], \"passed\": false}, {\"check\": \"order of ancestors retained\", \"actual\": [\"z\", \"a\"], \"expected\": [\"z\", \"a\", \"run1\"], \"passed\": false}, {\"check\": \"parent provenance immutable\", \"actual\": [\"raw\"], \"expected\": [\"raw\"], \"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."}}