{"abstract":"A provenance fingerprint erases processing order.","category":"Scientific pipeline provenance","checks":6,"contract":"Return the pipeline stage sequence unchanged as the symbolic provenance fingerprint; order and multiplicity matter.","evaluation_group":"model-b6ba5c084ba27077","failed_approach":"Preserving first occurrence loses intentional repeated passes.","family":"z-scientific_pipelines-ordered-processing","id":"FA-11906","implementations":{"attempt":{"sha256":"0b69ac11c7b2289f620da9914bce8175538bd10beb83e7b00e890e22747c1de1","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(stages):\n    return list(dict.fromkeys(stages))\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ns='wash'+str(N)\ncheck('repeat wash after extraction', solve([s,'extract',s]), [s,'extract',s])\ncheck('order preserved', solve(['normalize','filter']), ['normalize','filter'])\ncheck('empty process', solve([]), [])\ncheck('one stage', solve([s]), [s])\ncheck('consecutive passes', solve([s,s]), [s,s])\ncheck('reverse sequence', solve(['z','a','z','b']), ['z','a','z','b'])\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":"53a14d93ce23e9565d66177fceb23f3527c9f9ac6ca4c54dc727c415187bfca4","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(stages):\n    return sorted(set(stages))\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ns='wash'+str(N)\ncheck('repeat wash after extraction', solve([s,'extract',s]), [s,'extract',s])\ncheck('order preserved', solve(['normalize','filter']), ['normalize','filter'])\ncheck('empty process', solve([]), [])\ncheck('one stage', solve([s]), [s])\ncheck('consecutive passes', solve([s,s]), [s,s])\ncheck('reverse sequence', solve(['z','a','z','b']), ['z','a','z','b'])\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":"38666f5aabba8f5061cb5da1fe8c38947b802c9f1fc983314af18c16030e8287","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(stages):\n    return list(stages)\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ns='wash'+str(N)\ncheck('repeat wash after extraction', solve([s,'extract',s]), [s,'extract',s])\ncheck('order preserved', solve(['normalize','filter']), ['normalize','filter'])\ncheck('empty process', solve([]), [])\ncheck('one stage', solve([s]), [s])\ncheck('consecutive passes', solve([s,s]), [s,s])\ncheck('reverse sequence', solve(['z','a','z','b']), ['z','a','z','b'])\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-ordered-processing","generated_at":"2026-09-29T14:38:52.101256+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.","repair":"Preserve the full ordered sequence including repeated stages.","root_cause":"Stage names are treated as an unordered set.","sha256":"d5a612d4065634a8ae4be04be74011066842360dd7686c1f88c298a8797998c6","title":"A provenance fingerprint erases processing order · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":43.004,"exit_code":1,"observations":[{"actual":["wash1","extract"],"check":"repeat wash after extraction","expected":["wash1","extract","wash1"],"passed":false},{"actual":["normalize","filter"],"check":"order preserved","expected":["normalize","filter"],"passed":true},{"actual":[],"check":"empty process","expected":[],"passed":true},{"actual":["wash1"],"check":"one stage","expected":["wash1"],"passed":true},{"actual":["wash1"],"check":"consecutive passes","expected":["wash1","wash1"],"passed":false},{"actual":["z","a","b"],"check":"reverse sequence","expected":["z","a","z","b"],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"repeat wash after extraction\", \"actual\": [\"wash1\", \"extract\"], \"expected\": [\"wash1\", \"extract\", \"wash1\"], \"passed\": false}, {\"check\": \"order preserved\", \"actual\": [\"normalize\", \"filter\"], \"expected\": [\"normalize\", \"filter\"], \"passed\": true}, {\"check\": \"empty process\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"one stage\", \"actual\": [\"wash1\"], \"expected\": [\"wash1\"], \"passed\": true}, {\"check\": \"consecutive passes\", \"actual\": [\"wash1\"], \"expected\": [\"wash1\", \"wash1\"], \"passed\": false}, {\"check\": \"reverse sequence\", \"actual\": [\"z\", \"a\", \"b\"], \"expected\": [\"z\", \"a\", \"z\", \"b\"], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":38.937,"exit_code":1,"observations":[{"actual":["extract","wash1"],"check":"repeat wash after extraction","expected":["wash1","extract","wash1"],"passed":false},{"actual":["filter","normalize"],"check":"order preserved","expected":["normalize","filter"],"passed":false},{"actual":[],"check":"empty process","expected":[],"passed":true},{"actual":["wash1"],"check":"one stage","expected":["wash1"],"passed":true},{"actual":["wash1"],"check":"consecutive passes","expected":["wash1","wash1"],"passed":false},{"actual":["a","b","z"],"check":"reverse sequence","expected":["z","a","z","b"],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"repeat wash after extraction\", \"actual\": [\"extract\", \"wash1\"], \"expected\": [\"wash1\", \"extract\", \"wash1\"], \"passed\": false}, {\"check\": \"order preserved\", \"actual\": [\"filter\", \"normalize\"], \"expected\": [\"normalize\", \"filter\"], \"passed\": false}, {\"check\": \"empty process\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"one stage\", \"actual\": [\"wash1\"], \"expected\": [\"wash1\"], \"passed\": true}, {\"check\": \"consecutive passes\", \"actual\": [\"wash1\"], \"expected\": [\"wash1\", \"wash1\"], \"passed\": false}, {\"check\": \"reverse sequence\", \"actual\": [\"a\", \"b\", \"z\"], \"expected\": [\"z\", \"a\", \"z\", \"b\"], \"passed\": false}], \"passed\": false}\n"},"fixed":{"elapsed_ms":38.241,"exit_code":0,"observations":[{"actual":["wash1","extract","wash1"],"check":"repeat wash after extraction","expected":["wash1","extract","wash1"],"passed":true},{"actual":["normalize","filter"],"check":"order preserved","expected":["normalize","filter"],"passed":true},{"actual":[],"check":"empty process","expected":[],"passed":true},{"actual":["wash1"],"check":"one stage","expected":["wash1"],"passed":true},{"actual":["wash1","wash1"],"check":"consecutive passes","expected":["wash1","wash1"],"passed":true},{"actual":["z","a","z","b"],"check":"reverse sequence","expected":["z","a","z","b"],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"repeat wash after extraction\", \"actual\": [\"wash1\", \"extract\", \"wash1\"], \"expected\": [\"wash1\", \"extract\", \"wash1\"], \"passed\": true}, {\"check\": \"order preserved\", \"actual\": [\"normalize\", \"filter\"], \"expected\": [\"normalize\", \"filter\"], \"passed\": true}, {\"check\": \"empty process\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"one stage\", \"actual\": [\"wash1\"], \"expected\": [\"wash1\"], \"passed\": true}, {\"check\": \"consecutive passes\", \"actual\": [\"wash1\", \"wash1\"], \"expected\": [\"wash1\", \"wash1\"], \"passed\": true}, {\"check\": \"reverse sequence\", \"actual\": [\"z\", \"a\", \"z\", \"b\"], \"expected\": [\"z\", \"a\", \"z\", \"b\"], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}