> Design or audit a model-agnostic evaluation harness for an LLM or multimodal LLM on a clinical task (radiology report generation, visual question answering, clinical text extraction/classification) — the adjudicated reference standard, clinical-efficacy metrics (RadGraph-F1 / CheXbert-F1 beyond BLEU/ROUGE), faithfulness and hallucination, pretraining-contamination of public benchmarks, prompt-sensitivity and determinism, answer-matching, and a reader study — and gate the plan for those axes. Works on a closed API or open weights. Never fabricates outputs or scores, and never reports n-gram overlap as clinical correctness.
npx skills add https://github.com/Aperivue/medsci-skills --skill mllm-eval
This skill makes an LLM / MLLM clinical evaluation defensible: a real adjudicated reference standard,
faithfulness measured not assumed, clinical-efficacy metrics beyond n-gram overlap, a pretraining-
contamination check, prompt-sensitivity disclosed, and a reader study where text is generated. It is
model-agnostic — every check applies to a closed API and to open weights — and read-only (an
advisory design/audit skill): it audits the evaluation design and specifies and routes the
clinical-efficacy metrics (RadGraph-F1 / CheXbert-F1 via their published extractors) rather than running
the model or computing the metrics itself.
It is the LLM/MLLM evaluation-design counterpart in the lane — an auditor that hands the specified
metrics to their extractors and /analyze-stats, parallel to how /model-validation audits an imaging
model's design (the imaging metrics themselves are computed by /model-evaluation). The reviewer-side
audit of a finished manuscript uses the mllm_evaluation.md (ME0–ME8) probe via /self-review and
/peer-review; this skill is the author-side harness design. It routes the reader study to
/design-ai-benchmarking, the sizing to /calc-sample-size, and TRIPOD-LLM / MI-CLEAR-LLM compliance to
/check-reporting.
axes a reviewer will check (reference standard, faithfulness, contamination, prompt sensitivity, reader
study).
/design-ai-benchmarking./model-evaluation + /model-validation.image_synthesis probe./check-reporting.State the task (report generation / VQA / extraction-classification), the exact model + version/date
(closed API or open-weights id), the decoding settings (temperature, seed, max tokens), and what the
outputs are scored against.
Require an adjudicated expert reference (not a single unverified report or a model-derived label).
For report generation, report a clinical-efficacy metric — RadGraph-F1 (Jain et al., NeurIPS
2021) or CheXbert-F1 (Smit et al., 2020), or the composite RadCliQ (Yu et al., *Patterns* 2023)
— alongside any BLEU/ROUGE, with CIs. For VQA/classification, report accuracy at the
real prevalence with a stated answer-matching rule.
Add an atomic-fact faithfulness measure + a false-premise / abstention probe (MedVH, Med-HALT) —
report a hallucination rate, not just accuracy. For any public benchmark (VQA-RAD, SLAKE, MIMIC-CXR-
derived, MedQA), add a contamination statement: training cutoff vs benchmark release, a held-out /
post-cutoff set, or a contamination probe.
Disclose the exact prompt(s), temperature/seed, ≥ 3 runs with variance, and a prompt-robustness
check. For a deployment/utility claim, design a blinded reader study with an error taxonomy (route
the rubric/IRR to /design-ai-benchmarking, ICC/κ to /analyze-stats, sizing to /calc-sample-size).
python3 ${CLAUDE_SKILL_DIR}/scripts/check_mllm_eval_completeness.py \
--plan plan.md --task report_generation|vqa|classification --strict
NGRAM_ONLY / FAITHFULNESS_MISSING / REFERENCE_STANDARD_MISSING / CONTAMINATION_UNADDRESSED /
READER_STUDY_MISSING must be resolved.
Methods/Results → /write-paper; compliance (TRIPOD-LLM / MI-CLEAR-LLM) → /check-reporting; reviewer
audit → /self-review (loads ME0–ME8).
outputs allow; if a reference standard or outputs are missing, say so and stop.
metric, and flag the n-gram score for what it is.
[VERIFY] and ask ratherthan inventing a number.
scripts/check_mllm_eval_completeness.py — task-aware presence gate on the evaluation plan (stdlib,
network-free). Reproducible challenge:
bash ${CLAUDE_SKILL_DIR}/scripts/mllm_eval_completeness_challenge/verify.sh.
mllm-eval (this skill: harness design + completeness gate, model-agnostic)
├─ design-ai-benchmarking (reader-study rubric / IRR)
├─ calc-sample-size (reader + case sizing)
├─ write-paper + check-reporting (TRIPOD-LLM / MI-CLEAR-LLM)
└─ self-review / peer-review (ME0–ME8 reviewer probe)
${CLAUDE_SKILL_DIR}/references/evaluation_axes.md — the *why* behind the ME2–ME7 axes:clinical-efficacy metrics beyond n-gram overlap (e.g. RadGraph-F1 / CheXbert-F1 vs BLEU/ROUGE),
faithfulness & hallucination, pretraining/benchmark contamination, prompt-sensitivity &
determinism, answer-matching, and the reader study — each mapped to its gate verdict. Load on
demand during Phases 2–4.
Work with Data Commons, a platform providing programmatic access to public statistical data from global sources. Use this skill when working with demographic data, economic indicators, health statistics, environmental data, or any public datasets available through Data Commons. Applicable for querying population statistics, GDP figures, unemployment rates, disease prevalence, geographic entity resolution, and exploring relationships between statistical entities.
Neuropixels neural recording analysis. Load SpikeGLX/OpenEphys data, preprocess, motion correction, Kilosort4 spike sorting, quality metrics, Allen/IBL curation, AI-assisted visual analysis, for Neuropixels 1.0/2.0 extracellular electrophysiology. Use when working with neural recordings, spike sorting, extracellular electrophysiology, or when the user mentions Neuropixels, SpikeGLX, Open Ephys, Kilosort, quality metrics, or unit curation.
Fast in-memory DataFrame library for datasets that fit in RAM. Use when pandas is too slow but data still fits in memory. Lazy evaluation, parallel execution, Apache Arrow backend. Best for 1-100GB datasets, ETL pipelines, faster pandas replacement. For larger-than-RAM data use dask or vaex.
World-class data science skill for statistical modeling, experimentation, causal inference, and advanced analytics. Expertise in Python (NumPy, Pandas, Scikit-learn), R, SQL, statistical methods, A/B testing, time series, and business intelligence. Includes experiment design, feature engineering, model evaluation, and stakeholder communication. Use when designing experiments, building predictive models, performing causal analysis, or driving data-driven decisions.
Python interface to OpenMS for mass spectrometry data analysis. Use for LC-MS/MS proteomics and metabolomics workflows including file handling (mzML, mzXML, mzTab, FASTA, pepXML, protXML, mzIdentML), signal processing, feature detection, peptide identification, and quantitative analysis. Apply when working with mass spectrometry data, analyzing proteomics experiments, or processing metabolomics datasets.
Parallel/distributed computing. Scale pandas/NumPy beyond memory, parallel DataFrames/Arrays, multi-file processing, task graphs, for larger-than-RAM datasets and parallel workflows.
Visualize training metrics, debug models with histograms, compare experiments, visualize model graphs, and profile performance with TensorBoard - Google's ML visualization toolkit
Work with Data Commons, a platform providing programmatic access to public statistical data from global sources. Use this skill when working with demographic data, economic indicators, health statistics, environmental data, or any public datasets available through Data Commons. Applicable for querying population statistics, GDP figures, unemployment rates, disease prevalence, geographic entity resolution, and exploring relationships between statistical entities.
Take aperivue/mllm-eval from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.