recipe_id, recipe_version | recovery_ci, integer version 1 |
org_id, repo, branch | lineage identity |
workflow_name, workflow_path | the check that went red → green |
failed_commit_sha, fixed_commit_sha | the pair |
failed_outcome_id, fixed_outcome_id | the CI Facts behind it |
recovery_diff | the fixing diff (capped at derive time) |
failed_inference_call_ids, fixed_inference_call_ids | inference calls attributed to each side when available; absence is expected and never fabricated |
failed_attribution_evidence, fixed_attribution_evidence | Optional per-call Session, Attribution sources, and matching observation IDs for each side; missing records count as attribution_evidence_absent without excluding the CI pair |
provenance, split | split stamps at export time: eval if any resolvable Session on either side is eval; no Session evidence at all → train (the holdout covers captured Sessions only) |
repository_identity | provider, host, and immutable repository ID shared by failed and fixed commits; null for an unambiguous legacy repository |
schema_id, schema_version | canonical Recovery-row wire contract; independent of recovery_ci recipe version |