agentsclimarketplace

Uncertainty imaging

Skill Aperivue/medsci-skills/skills/uncertainty-imaging

Design or audit the uncertainty-quantification, out-of-distribution (OOD) detection, and selective-prediction layer of a medical-imaging model framed for deployment — so a clinical-use claim carries calibrated per-case uncertainty (MC-dropout / deep ensemble / conformal / Bayesian), an OOD guard validated on a held-out OOD set, an abstention rule at a pre-specified operating point, and uncertainty checked under distribution shift. Emits an uncertainty manifest and a deterministic gate that flags a deployment claim built on point predictions, conformal intervals with unmeasured coverage, and an OOD claim with no held-out OOD data. Integrates MAPIE / captum / pretrained OOD scorers; it does not reimplement them and never runs a model on real patient data.From its SKILL.md

Install
npx -y skills add Aperivue/medsci-skills --skill uncertainty-imaging

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

SKILL.md

8.0 KB, ~1.7k tokens by cl100k_base, as published. Nobody here has run it

Uncertainty-Imaging Skill

Purpose

A medical-imaging model framed for deployment must say more than "class 1, 0.87". It needs a calibrated uncertainty on each case, an out-of-distribution (OOD) guard validated on data known to be out-of-distribution, and — if it abstains — a pre-specified operating point. The failures are predictable and reviewer-visible: a clinical-use claim built on point predictions, conformal intervals quoted without ever measuring their coverage, an "OOD detector" evaluated only on in-distribution data, a deep ensemble whose members share a seed, and uncertainty validated only in-distribution when deployment sees scanner/site/case-mix shift. This skill designs that layer and audits an existing one (Gal 2016; Lakshminarayanan 2017; Angelopoulos & Bates; Ovadia 2019; DECIDE-AI).

It is the deployment-safety companion in the model-engineering lane: /model-evaluation computes the held-out metrics and calibration, and uncertainty-imaging covers the uncertainty / OOD / abstention machinery a deployment claim rests on. It integrates MAPIE (conformal), captum, and pretrained OOD scorers; it does not reimplement them and never runs a model on real patient data.

When to use

  • Your model is framed for clinical use / deployment and a reviewer will ask "what does it do when it is unsure, or off-distribution?"
  • You report conformal / MC-dropout / ensemble uncertainty and want the coverage, independence, and shift checks right before submission.
  • You want to audit an existing uncertainty/OOD section for the failure modes below.

When NOT to use

  • Held-out discrimination / calibration metrics of the point predictor → /model-evaluation then /analyze-stats.
  • Training-repo scaffolding / the split → /model-scaffold (+ /model-validation).
  • Interpretability / saliency of a trained network → /explainability.
  • Classical-ML calibration of a tabular model → /radiomics-ml + /analyze-stats.
  • Reimplementing MAPIE / an OOD library → out of scope (this skill wires and audits them).

The failure modes (what the gate enforces)

  1. Point predictions under a deployment claim. A clinical-use claim with no uncertainty method at all — add MC-dropout, a deep ensemble, conformal prediction, or a Bayesian estimate.
  2. Conformal without coverage validation. Conformal's guarantee holds under exchangeability, which can fail on clinical data — measure achieved coverage on a held-out calibration/test set.
  3. OOD claim with no held-out OOD set. An OOD detector's operating point and AUROC are unmeasured until you evaluate on data known to be out-of-distribution (different scanner / site / pathology).
  4. Non-independent ensemble. A deep ensemble whose members share a seed/init (or has < 2 members) underestimates epistemic uncertainty.
  5. MC-dropout with dropout off at inference. Dropout must stay active during sampling; off, every pass is identical and the estimate collapses to a point prediction.
  6. Selective prediction without a target. Abstention chosen post hoc inflates accuracy-at-coverage; pre-specify the coverage / risk operating point.
  7. No calibration under shift. Uncertainty evaluated in-distribution only; deployment uncertainty degrades under shift, so report it on shifted / external data.

Workflow

Phase 1 — Choose the uncertainty method (integrate, don't reimplement)

  • Conformal prediction (MAPIE) — distribution-free prediction sets/intervals at a nominal coverage; the strongest default when a calibration set is available. Validate empirical coverage.
  • Deep ensembles (Lakshminarayanan 2017) — train K independent members (distinct seeds/inits); the best-quality epistemic uncertainty, at K× cost.
  • MC-dropout (Gal 2016) — keep dropout active at inference and sample T passes; cheap, weaker.
  • Bayesian / Laplace — a last-layer Laplace approximation is a light option. See references/uncertainty_guide.md.

Phase 2 — Add the OOD guard and the abstention rule

  • OOD detection — an energy score, Mahalanobis distance on features, ODIN, or max-softmax; evaluate on a held-out OOD set (different scanner/site/pathology) and report detection AUROC + the operating point.
  • Selective prediction — abstain below a confidence/uncertainty threshold set to a pre-specified target coverage or risk; report the risk–coverage curve.

Phase 3 — Stress it under shift

Report calibration / coverage on shifted or external data, not in-distribution only (Ovadia 2019).

Phase 4 — Emit the uncertainty manifest

{
  "task": "classification",
  "deployment_claim": true,
  "uncertainty_method": "conformal",
  "coverage_target": 0.90,
  "coverage_validated": true,
  "ood_method": "mahalanobis",
  "ood_heldout_set": "external-ood-cohort",
  "selective_prediction": true,
  "selective_target": 0.95,
  "calibration_under_shift": true
}

Phase 5 — Gate the spec (deterministic)

python3 scripts/check_uncertainty_reporting.py --manifest uncertainty_manifest.json --strict

Verdicts: POINT_PREDICTION_NO_UNCERTAINTY, CONFORMAL_NO_COVERAGE_VALIDATION, OOD_NO_HELDOUT_SET (Major); ENSEMBLE_NOT_INDEPENDENT, MCDROPOUT_DISABLED_AT_INFERENCE, SELECTIVE_NO_TARGET, NO_CALIBRATION_UNDER_SHIFT (Minor). Audits the declared spec at design/report time; it complements /model-evaluation's executed calibration/subgroup metrics.

Integration

  • /model-evaluation — the point predictor's held-out metrics + calibration this layer sits on top of.
  • /analyze-stats — calibration curve / risk–coverage plotting for the report.
  • /check-reporting — TRIPOD+AI / DECIDE-AI deployment-monitoring items.
  • /model-validation — the DECIDE-AI monitoring seam (the deployment-time counterpart of the split audit).

Anti-Hallucination

  • Never fabricate coverage, OOD AUROC, or calibration numbers. Every value in the manifest and every reported number comes from the researcher's executed code — never invented. This skill designs and audits the uncertainty spec; it does not run a model on real patient data.
  • Never report conformal coverage as guaranteed without measuring it. Exchangeability can fail on clinical data (CONFORMAL_NO_COVERAGE_VALIDATION).
  • Never report an uncertainty/OOD audit "pass" without running check_uncertainty_reporting.py. The verdict is reproduced deterministically, never asserted from prose.
  • Integrate, don't reimplement. Reference MAPIE / captum / OOD scorers; do not write a new conformal or OOD library or claim results for one.

Reproducible challenge

scripts/check_uncertainty_reporting_challenge/ ships a synthetic weak/strong uncertainty-manifest pair with a network-free verify.sh wired into the skill's validation commands.

What ships with it: 10 files

32.6 KB alongside SKILL.md, 3 of them executable

references/

Gives 0 of the 12 instructions most healthcare skills give in ~1.7k tokens

Counted across 147 of the 152 authors here whose files we hold, read 2026-08-07

  • Export trial data to CSV formatin 11 of 147, across 2 files
  • Retrieve trial details using an NCT IDin 11 of 147, across 2 files
  • Split clinical datasets strictly by patientin 11 of 147, across 3 files
  • Use the ClinicalTrials.gov API v2in 10 of 147, across 1 file
  • Search trials by condition, drug, location, status or phasein 10 of 147, across 1 file
  • Use maximum page size for bulk data retrievalin 10 of 147, across 1 file
  • Extract and summarize key study informationin 10 of 147, across 1 file
  • Combine multiple filters for targeted searchesin 10 of 147, across 1 file
  • Print and review dataset statistics before modelingin 8 of 147, across 1 file
  • Start model development with simple baselinesin 8 of 147, across 1 file
  • Match preprocessing processors directly to data typesin 8 of 147, across 1 file
  • Monitor validation metrics for task type and class imbalancein 8 of 147, across 1 file

Said here and by no other author read

  • add an uncertainty method for clinical deployment claims
  • measure achieved conformal coverage on held-out data
  • evaluate OOD detection on a held-out out-of-distribution set
  • use distinct seeds for deep ensemble members
  • keep dropout active during MC-dropout inference
  • pre-specify the abstention operating point

Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.