Pooled ablation (TruthfulQA + TriviaQA + NQ-Open, n=657)
Target: is_correct (mixed flexible-judge and string-match labels — caveat)
A4: full (10 pert feats + baseline_confidence + derived + dataset dummy)
A1: no_pert (baseline_confidence + derived + dataset dummy)

n_pool = 657   pos_rate = 0.376
  TruthfulQA n=382  pos=0.393
  TriviaQA   n=200  pos=0.280
  NQ-Open    n=75  pos=0.547

AUC:   A4=0.6325  A1=0.6209  Δ=+0.0117  95%CI=[-0.0205, +0.0450]  p=0.474
Brier: A4=0.2409  A1=0.2369  Δ=+0.0040  95%CI=[-0.0049, +0.0133]  p=0.413

== Caveats ==
  * label source is NOT identical across datasets (flexible judge for TruthfulQA,
    string-match for TriviaQA / NQ-Open). Pooling is a simplification.
  * Dataset dummy absorbs difficulty shift, but per-dataset slope differences are
    not modelled — a proper fix is hierarchical regression.
  * verbal_logprob_gap / verbalized_confidence missing in TriviaQA ⇒ A1 is weaker
    here than in the TruthfulQA-only analysis.
