Skip to main content
Run the Recovery export:
The command writes recovery.jsonl, or split train and eval files, with one row per eligible red-to-green CI transition. It selects recovery_ci version
  1. For shared prerequisites, output inspection, schema guidance, and holdout checks, see Choose a training export.

Understand Recovery lineage

The Recovery export writes one row per red-to-green CI transition in a clean, resolved workflow lineage (Recovery pair). It pairs the last failed run with the next passed run on a descendant commit. The row carries the fixing diff and inference calls attributed to each side. Match workflow IDs within one provider, or paths when both IDs are absent. Names alone don’t establish a definition; workflow_identity_absent counts each excluded clean resolution. If an earlier attempt carries the identity, the resolved run retains it. Recovery pairs documents the Derivation gates: ancestry, suspected-flake exclusion, ambiguous-verdict exclusion, non-verdict exclusion, same-commit rerun decline, and the diff-size cap. Recovery is the one training-row format that a Derivation produces directly from Facts and the mirror. It doesn’t project from Attributed completions or Rollouts because its commit-pair shape can’t project from either canonical artifact. ADR 0004 sanctions this exception. The Recovery command has no --from form.

Read a Recovery row

Interpret the degradation tally

The projection declines each unrepresentable pair once under non_finite_number or unrepresentable_unicode. It checks emitted content and metadata, excluding omitted Inference-call messages. The separate inference_call_not_found tally counts attributed inference-call IDs that are missing from the inference-call lookup. The count makes degradation visible without dropping rows.