# CALIBRATION_HARNESS_RECORD

**Type:** Output schema template
**Producer:** Self-Audit Resistance Monitor, Step 4 (Phase 9 schedule and on-demand)
**Consumer:** Calibration-record archive + downstream silence emissions (reference the record by `calibration_record_id`).
**One record per calibration run.**

---

```yaml
calibration_harness_record:
  record_header:
    calibration_record_id: <string>
    calibration_date: <iso8601>
    phase_9_schedule_slot: <string>
    trigger: scheduled | on_demand_refresh | rae_requested
    taxonomy_version: E9.v1
    taxonomy_last_reviewed: <iso8601>
    staleness_flag: <bool>          # true if review older than threshold
  mutant_batch:
    per_class_batch_size:
      fabricated_citations: 20
      cherry_picked_quota: 20
      method_claim_mismatch: 20
      optimistic_verdict: 20
      monoculture: 20
      covert_tier: 20
      forced_closure: 20
      publication_bias_miss: 20
      retraction_miss: 20
      ai_contamination_miss: 20
    total_mutants: <int>
    ground_truth_retained: true
    mutant_plausibility_check: passed   # Jia & Harman 2011 -- plausible-but-incorrect
  indistinguishability_verdict:
    surface_feature_ks_tests:
      length: <p-value>
      vocabulary: <p-value>
      structure: <p-value>
      citation_density: <p-value>
    sonnet_4_5_detection_probe_rate: <float>
    detection_ceiling: 0.58
    status: passed | aborted_indistinguishability_failure
    aborted_if_failed: true
  scoring_multi_metric:
    # Minderer et al. 2021 -- multi-metric mandatory
    expected_calibration_error:
      aggregate: <float>
      per_class:
        fabricated_citations: <float>
        cherry_picked_quota: <float>
        method_claim_mismatch: <float>
        optimistic_verdict: <float>
        monoculture: <float>
        covert_tier: <float>
        forced_closure: <float>
        publication_bias_miss: <float>
        retraction_miss: <float>
        ai_contamination_miss: <float>
    brier_score:
      aggregate: <float>
      per_class: { ... same 10 classes ... }
    reliability_diagram:
      bins: 10
      per_bin_miscalibration: [<float>, ...]
      concentration_bin: <int or null>    # bin where miscalibration concentrates
    clarte_expectation_consistency: passed | drift_detected
  per_class_catch_rate:
    fabricated_citations: <float>
    cherry_picked_quota: <float>
    method_claim_mismatch: <float>
    optimistic_verdict: <float>
    monoculture: <float>
    covert_tier: <float>
    forced_closure: <float>
    publication_bias_miss: <float>
    retraction_miss: <float>
    ai_contamination_miss: <float>
    aggregate: <float>
    is_lower_bound: true
  equivalence_test_parameters:
    # Lakens 2016 TOST -- used by downstream silence emissions
    tolerance_band_lower: <float>
    tolerance_band_upper: <float>
    alpha: 0.05
    pre_registered: true
  residuals:
    taxonomy_completeness_residual: |
      Taxonomy can only calibrate against imagined defect classes
      (Metaxa et al. 2021). Novel failure modes invisible.
    staleness_note: <string or null>
    arms_race_note: |
      Sonnet 4.5 detection baseline 58%. Current generation detection
      rate above baseline would indicate arms-race losing.
  anti_sycophancy_attestation:
    catch_rate_not_self_promoted: true
    no_reward_coupling_to_catch_count: true
```

## Hard rules

- `indistinguishability_verdict.status=aborted_indistinguishability_failure` MUST cause the run to NOT produce a valid catch rate. A tainted calibration cannot be reported as valid.
- `per_class_catch_rate` MUST be reported per class -- never collapse to aggregate only (hides class-specific under-report).
- `taxonomy_last_reviewed` within threshold; `staleness_flag=true` requires an explicit taxonomy review pass before the record is used to license silence.
- The phrase "positive-nothing-found" does NOT appear in this template in any form.

## Archive contract

Records are archived by `calibration_record_id` and referenced by downstream calibrated-silence reports. Stale records are marked but retained for trajectory analysis (arms-race posture, Step 8 cross-audit tracking).
