design-ai-benchmarking
Design and validity review for studies that benchmark one or more AI systems against a human-expert panel as the reference. Covers the evaluation question and arm definition, decoupled multi-dimensional rubrics with anchors, planted calibration probes, reviewer-panel construction
Install
npx skills add https://github.com/Aperivue/medsci-skills/tree/main/skills/design-ai-benchmarking
claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install aperivue-medsci-skills@llmmart
git clone https://github.com/Aperivue/medsci-skills.git
The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole aperivue/medsci-skills collection as a plugin from our marketplace. Git is the plain clone.
Skill manifest
Design-AI-Benchmarking Skill
Purpose
This skill pressure-tests an AI-vs-human-expert benchmark before any ratings are collected, so that
the comparison is fair, the rubric measures distinct constructs, the scale is calibrated, and the
reported reliability is interpretable. It is the AI-evaluation specialization of /design-study: where
/design-study reviews a study in general, this skill owns the specific machinery of comparing AI
system(s) to a panel of human experts (or to each other) on rated outputs.
Use it when:
- one or more AI systems will be scored against a human-expert reference (reader study, annotation panel, AI-output evaluation, model-vs-model bench)
- a rubric and rating protocol must be locked before reviewers begin
- a benchmark feels vulnerable to "the highest score is just the most tautological item" or "low agreement, but we cannot tell why" criticism
- a reviewer or editor asks how the evaluation controlled for rater drift, leakage, or judge bias
Do not use it for: general study/validity review (use /design-study); statistical execution such
as ICC or DeLong (use /analyze-stats); reporting-guideline item audits (use /check-reporting);
or reviewing an already-written manuscript (use /peer-review or /self-review).
Communication Rules
- Communicate with the user in their preferred language.
- Use English for statistical, machine-learning, and reporting-guideline terminology.
- Be direct about evaluation-validity risks, but always propose the smallest feasible fix first.
- Never invent reviewer ratings, reference labels, or agreement statistics; those come from collected data only.
Standard Output
## AI-Benchmark Design Review
Evaluation question: ...
Arms / systems compared: ...
Reference (human-expert panel): ...
Unit of rating: (item / case / output)
### Rubric (decoupled dimensions)
- dimension -> construct -> anchors (1..k)
### Calibration probes (blinded, randomized)
- positive-control / known-bad / instability / mechanism-contradiction
### Reviewer panel
- n reviewers, metadata captured, per-reviewer randomized order
### Reliability plan
- overall IRR target + control-item IRR (reported separately)
### Judge strategy
- human-as-judge / LLM-as-judge / both + adjudication rule
### Validity risks
1. ...
### Minimal fixes
- ...
### Decision
- Ready to collect / Needs rubric revision / Needs arm or judge redesign
Workflow
Phase 1: Define the evaluation question and arms
Pin down, in writing:
- the exact claim the benchmark must support (e.g., "system A's outputs are perceptually indistinguishable from expert outputs", not "system A is deployment-ready")
- every arm/system being compared, and what each arm receives as input (same items, same information access, same output format) so no arm has a hidden advantage
- the human-expert reference: who they are, and whether they set ground truth, provide a comparison arm, or both
- the unit of rating (item, case, output) and how many units each reviewer sees
Gate: Present the reconstructed evaluation question, arms, and reference to the user and confirm before designing the rubric. A wrong reconstruction misdirects the entire benchmark.
Phase 2: Design a decoupled multi-dimensional rubric
- Decouple the axes. Each rated dimension measures one construct. Keep "is the output valid/correct" separate from "is it novel", "is it feasible/measurable", "does it add value over current tools", and "would it change action". A candidate can be high-validity yet low-added-value ("real but redundant"); a single blended score hides this divergence.
- Anchor every scale point with a short verbal descriptor; pilot the anchors with at least one reviewer before locking.
- Pre-specify discriminant validity: hypothesize which dimensions should correlate vs be orthogonal, then report the full inter-dimension correlation matrix to confirm the rubric measures distinct constructs.
- A worked rubric template lives in
${CLAUDE_SKILL_DIR}/references/elicitation_rubric_template.md.
Phase 3: Insert and randomize calibration probes
Plant a small number of deliberate control items, blinded and randomized across raters (record who
received which via a probe_arm flag), to (i) anchor the scale, (ii) measure rater drift/fatigue, and
(iii) audit the rubric and pipeline itself. Four useful flavors:
- Positive control / "too-good" item — a known-strong or near-tautological item; tests whether raters equate "largest effect" with "best", and whether the construct-independence gate (Phase 7) works.
- Known-bad negative control — an engineered defect (fabricated reference, missing key statistic); expected to score low.
- Instability item — an estimate that reverses or fails to replicate on a holdout; tests caveat-handling.
- Mechanism-contradiction item — an empirical direction that opposes the proposed mechanism.
Probes are planted or adjudicated, never fabricated to fit a hypothesis.
Phase 4: Construct the reviewer panel
- Recruit reviewers spanning the intended expertise gradient; pre-specify any expertise stratification.
- Capture reviewer metadata (years of experience, prior AI-evaluation experience, subspecialty) for descriptive reporting and stratified analysis.
- Randomize item order per reviewer (not one global seed) and record the order; plan to analyze order and fatigue effects.
- Require each item to be judged standalone; discourage cross-item references in free-text, which signal non-independent rating.
Gate: Present the panel composition, stratification, and randomization plan for user review before recruitment is finalized.
Phase 5: Set inter-rater reliability targets
- Pre-specify the agreement statistic (e.g., ICC for continuous ratings, weighted kappa for ordinal) and a target with justification.
- Report reliability on the planted control items separately as primary evidence of rubric and scale validity. A low overall ICC is interpretable only if raters at least converge on the controls; surfacing both numbers prevents "low agreement => bad rubric" or "bad raters" misreads.
- Plan the minimum ratings-per-item needed for a stable agreement estimate (delegate the math to
/analyze-stats).
Phase 5b: Reader allocation under burden constraints (anchor-and-rotate)
When the item pool is larger than one reader can rate in a session, do not force every reader
to rate every item (that caps the total pool at the per-reader limit and discards coverage). Use an
anchor-and-rotate (balanced-incomplete-block) layout: all readers rate a shared anchor set
(which carries the inter-rater ICC/kappa, alongside the planted controls), and each reader
additionally rates a rotating unique block, so total coverage grows independently of the
per-reader cap. The usually-binding constraint is the number of available expert readers, not the
item count — solve the reverse problem (max_pool = anchor + R*(cap-anchor)//m) to size the must-rate
set to a realistic panel. Pre-specify anchor membership, raters-per-item, and the rotation seed before
rating. Formulas, trade-offs, and a stdlib reference implementation are in
${CLAUDE_SKILL_DIR}/references/anchor_rotate_reader_allocation.md.
Phase 6: Choose the judge strategy and adjudication
- Decide human-as-judge, LLM-as-judge, or both. If an LLM is used as a judge, treat it as one more arm whose ratings must themselves be validated against the human panel on the control items.
- Pre-specify the adjudication rule for disagreement (e.g., majority, a third senior reviewer, consensus discussion) and who adjudicates.
- Blind judges to arm identity wherever feasible; record any unavoidable unblinding.
Phase 7: Construct-independence and leakage guards
- Exclude any predictor or input that is a definitional component of the outcome (mathematical definition), and flag near-tautological composites built from the outcome's defining components — they produce an inflated, near-circular result and belong as labeled probes, not discoveries.
- Verify no arm sees post-decision or outcome-derived information the others do not.
- Confirm the reference labels were not derived from the same model output being evaluated.
Phase 8: Lock a structured export schema
Define the machine-readable rating record up front: per-item ratings across every rubric dimension,
free-text justifications, follow-up flags, the probe_arm flag, reviewer id and metadata, item order,
and timing. A synthetic schema lives in ${CLAUDE_SKILL_DIR}/references/benchmark_export_schema.json.
Gate: Present the final rubric, probe set, panel plan, judge strategy, and export schema together; collect explicit user approval before any rating begins. Locking these before data collection is the whole point — changes afterward compromise the comparison.
Handoff Rules
- route to
/analyze-statsfor ICC / weighted kappa / DeLong, agreement sample size, and effect-size real-world translation of the benchmark results - route to
/check-reportingfor STARD-AI, CLAIM, or TRIPOD+AI item-level reporting once the design is locked - route to
/design-studywhen the broader study around the benchmark (cohort logic, analysis unit, comparator) also needs review - route to
/peer-reviewor/self-reviewonly after ratings exist and a manuscript is being assessed
What This Skill Does NOT Do
- It does not compute agreement statistics or run analyses directly (that is
/analyze-stats). - It does not collect or fabricate ratings, reference labels, or probe outcomes.
- It does not draft manuscript prose or run a reporting-guideline audit.
- It does not replace a full peer review of a finished manuscript.
Anti-Hallucination
- Never fabricate references. All citations must be verified via
/search-litwith a confirmed DOI or PMID. Mark unverified references as[UNVERIFIED - NEEDS MANUAL CHECK]. - Never invent reviewer ratings, agreement statistics, reference labels, or probe outcomes — these come from collected data only. A reported ICC, kappa, or score with no underlying rating record is the failure mode this skill exists to prevent.
- Never invent clinical definitions, diagnostic criteria, or guideline recommendations. If uncertain,
flag with
[VERIFY]and ask the user. - If a reporting-guideline item, journal policy, or evaluation standard is uncertain, state the uncertainty rather than guessing.
Reference Files
${CLAUDE_SKILL_DIR}/references/elicitation_rubric_template.md-- a synthetic, decoupled multi-dimension rating rubric with anchors and a planted-probe column.${CLAUDE_SKILL_DIR}/references/benchmark_export_schema.json-- a synthetic JSON schema for the per-item rating export (ratings, justifications, probe_arm, reviewer metadata, order, timing).${CLAUDE_SKILL_DIR}/references/anchor_rotate_reader_allocation.md-- anchor-and-rotate (balanced-incomplete-block) reader allocation: formulas, the reverse "max pool for R readers" ceiling, trade-offs, and a stdlib reference implementation (Phase 5b).
Files (medsci-skills)
-
references
-
anchor_rotate_reader_allocation.md 4.5 KB
# Reader allocation under burden constraints — anchor-and-rotate (incomplete-block) A reviewer panel that must rate many items often cannot have **every reader rate every item**: a per-reader session cap (time/fatigue) bounds how many items one reader can score. Forcing full overlap caps the *total* item pool at the per-reader cap, which throws away coverage. This note gives a deterministic allocation that keeps per-reader burden bounded while expanding total coverage, and still yields inter-rater reliability. This complements the reliability plan (set ICC / weighted-kappa targets; report reliability on planted control items separately). It does **not** compute agreement statistics — carry the resulting rating records into `/analyze-stats` for ICC / kappa / agreement sample size. ## The design A **balanced-incomplete-block** layout with two strata: - **Anchor set** (size `A`): rated by **all** readers → carries the inter-rater ICC/kappa (and, if you plant calibration probes, the control-item reliability). - **Rotating unique blocks**: the remaining `pool - A` items are split into per-reader blocks of size `cap - A`, distributed across readers so each unique item is seen by `m` raters on average. This grows the total pool **independently of the per-reader cap**. ### Parameters - `cap` — max items one reader rates per session (the hard ceiling). - `pool` — total **unique** items you want evaluated. - `A` — anchor-set size (rated by all readers). - `m` — target average raters per unique (non-anchor) item. ### Formulas ``` rot_budget = cap - A # each reader's rotating (unique) slots; must be > 0 unique = pool - A R (readers) = ceil(m * unique / rot_budget) # readers needed for ~m raters per unique item reads_per_reader = A + rot_budget (= cap) raters_per_unique = R * rot_budget / unique anchor_reads = R * A # reliability strength on the anchor set ``` ### Reverse (the usually-binding question) Given **R available readers** (expert raters are typically the scarce resource), the largest unique pool you can evaluate at `m` raters/item is: ``` max_pool = A + (R * (cap - A)) // m ``` This is the real ceiling: with a small expert panel, total feature-scored coverage is small. Curate the must-rate item set to fit `max_pool` rather than assuming the cap is per-study. ## Trade-off (report honestly) - Anchor items get all `R` raters → strong, reportable ICC/kappa. - Unique (non-anchor) items get only ~`m` raters → usable for **point estimates**, weaker per-item reliability. Report anchor-set reliability and unique-item coverage **separately**. - The per-reader cap is **per session, not per study**: rotation decouples total coverage from the cap. The binding constraint is usually the **number of available expert readers**, not the item count. ## Reference implementation (stdlib only, deterministic) ```python import math def plan(cap, pool, anchor, m): """Anchor-and-rotate allocation. Returns readers needed + per-reader load, or None if infeasible.""" rot = cap - anchor if rot <= 0: return None # anchor >= cap: no room to rotate unique = pool - anchor R = max(m, math.ceil(m * unique / rot)) return { "readers": R, "reads_per_reader": anchor + rot, # == cap "raters_per_unique": (R * rot) / unique if unique else float("inf"), "anchor_reads": R * anchor, "within_cap": (anchor + rot) <= cap, } def max_pool_for_readers(cap, anchor, m, R): """Reverse: largest unique pool for R available readers at m raters/item.""" rot = cap - anchor return None if rot <= 0 else anchor + (R * rot) // m # Example: cap=30 items/expert/session, anchor=20, target 2 raters/unique item. # With only 4-8 expert readers, max feature-scored pool is ~40-70 items — curate to fit. ``` ## When to use / cautions - Use when a multi-reader study has a **large item pool** and a **bounded per-reader session**. - Pre-specify `A`, `m`, the rotation seed, and which items are anchor vs rotating **before** rating (and pre-register if applicable) — post-hoc reassignment biases reliability. - A two-pass study (fast screening pass for many readers + deep rubric pass for few experts) can use different `cap` / `A` / `m` per pass; the deep-rubric expert pass is usually the binding one. - This allocates raters; it does not replace a power/sample-size calculation for the primary estimand — pair with `/calc-sample-size` and `/analyze-stats`. -
benchmark_export_schema.json 2.7 KB
{ "$schema": "http://json-schema.org/draft-07/schema#", "title": "AI-vs-expert benchmark rating export (synthetic template)", "description": "One record per (reviewer, item) rating. Lock this schema before collecting ratings. All example values are illustrative placeholders, not real data.", "type": "object", "required": ["reviewer_id", "item_id", "arm", "probe_arm", "order_index", "ratings", "justification"], "properties": { "reviewer_id": { "type": "string", "description": "Stable pseudonymous id for the reviewer (no personal identifiers).", "examples": ["R01"] }, "reviewer_metadata": { "type": "object", "description": "Captured once per reviewer; repeated here for convenience.", "properties": { "years_experience": {"type": "integer", "minimum": 0}, "prior_ai_evaluation": {"type": "boolean"}, "subspecialty": {"type": "string"} } }, "item_id": {"type": "string", "examples": ["item_0042"]}, "arm": { "type": "string", "description": "Which system produced the rated output, or the human-expert reference arm.", "examples": ["system_a", "system_b", "expert_reference"] }, "probe_arm": { "type": ["string", "null"], "description": "Non-null when this is a planted control item.", "enum": ["pos_control", "neg_control", "instability", "mechanism_contra", null] }, "order_index": { "type": "integer", "minimum": 0, "description": "Position in this reviewer's randomized item order (for fatigue analysis)." }, "ratings": { "type": "object", "description": "One score per decoupled rubric dimension.", "required": ["validity", "novelty", "feasibility", "added_value", "actionability"], "properties": { "validity": {"type": "integer", "minimum": 1, "maximum": 5}, "novelty": {"type": "integer", "minimum": 1, "maximum": 5}, "feasibility": {"type": "integer", "minimum": 1, "maximum": 5}, "added_value": {"type": "integer", "minimum": 1, "maximum": 5}, "actionability": {"type": "integer", "minimum": 1, "maximum": 5} } }, "justification": { "type": "string", "description": "Free text, judged standalone; no cross-item references." }, "follow_up": { "type": ["string", "null"], "description": "What additional evidence would change the rating." }, "judge_type": { "type": "string", "enum": ["human", "llm"], "description": "Whether the rater is a human expert or an LLM-as-judge arm." }, "timing_seconds": { "type": ["number", "null"], "minimum": 0, "description": "Time spent on this item, for fatigue/drift analysis." } } } -
elicitation_rubric_template.md 2.4 KB
# Decoupled Elicitation Rubric Template (synthetic) A starting rubric for an AI-vs-human-expert benchmark. Every dimension measures one construct, so a candidate can score high on validity yet low on added value ("real but redundant"). All values below are illustrative placeholders, not real data — replace them for your own evaluation. ## Per-item rating dimensions | Dimension | Construct (one only) | Anchor 1 (low) | Anchor 3 (mid) | Anchor 5 (high) | |-----------|----------------------|----------------|----------------|-----------------| | Validity | Is the output correct against the reference? | Contradicted by reference | Partially supported | Fully supported | | Novelty | Is it new vs prior work? | Restates known result | Incremental extension | Genuinely new | | Feasibility | Can it be measured/obtained in practice? | Not measurable | Measurable with effort | Routinely measurable | | Added value | Does it add over a measure already in use? | Redundant with a routine measure | Marginal gain | Clear gain over current tools | | Actionability | Would a clinician act on it for an individual? | Would not change action | Might change action | Would change action | Notes: - Pilot the anchors with at least one reviewer before locking the scale. - Pre-specify which dimensions are expected to correlate (e.g., validity and actionability) vs be orthogonal (e.g., novelty and feasibility); report the inter-dimension correlation matrix afterward. ## Planted calibration probes `probe_arm` marks a control item; it is randomized across reviewers and excluded from the primary estimate but reported separately for scale validity. | probe_arm | Flavor | What it tests | Expected behavior | |-----------|--------|---------------|-------------------| | pos_control | Positive / "too-good" (near-tautological) | Whether raters equate "largest effect" with "best"; whether the construct-independence gate fires | High validity, low added value | | neg_control | Known-bad (engineered defect) | Whether obvious defects are caught | Low validity | | instability | Reverses on holdout | Caveat-handling for unstable estimates | Lower confidence ratings | | mechanism_contra | Direction opposes mechanism | Whether raters notice mechanism conflict | Flagged in free-text | ## Per-item free-text fields - justification (required): one or two sentences, judged standalone (no cross-item references) - follow_up (optional): what additional evidence would change the rating
-
-
SKILL.md 11.8 KB
--- name: design-ai-benchmarking description: > Design and validity review for studies that benchmark one or more AI systems against a human-expert panel as the reference. Covers the evaluation question and arm definition, decoupled multi-dimensional rubrics with anchors, planted calibration probes, reviewer-panel construction, inter-rater reliability targets, LLM-as-judge versus human-as-judge adjudication, construct-independence guards, and a structured rating-export schema. Use before data collection on an AI-vs-expert evaluation. triggers: AI benchmarking, AI vs human expert, reader study design, expert panel evaluation, LLM-as-judge, AI evaluation rubric, model benchmark design, human baseline comparison, AI-output rating, evaluation rubric design tools: Read, Write, Edit, Bash, Grep, Glob model: inherit --- # Design-AI-Benchmarking Skill ## Purpose This skill pressure-tests an AI-vs-human-expert benchmark **before any ratings are collected**, so that the comparison is fair, the rubric measures distinct constructs, the scale is calibrated, and the reported reliability is interpretable. It is the AI-evaluation specialization of `/design-study`: where `/design-study` reviews a study in general, this skill owns the specific machinery of comparing AI system(s) to a panel of human experts (or to each other) on rated outputs. Use it when: - one or more AI systems will be scored against a human-expert reference (reader study, annotation panel, AI-output evaluation, model-vs-model bench) - a rubric and rating protocol must be locked before reviewers begin - a benchmark feels vulnerable to "the highest score is just the most tautological item" or "low agreement, but we cannot tell why" criticism - a reviewer or editor asks how the evaluation controlled for rater drift, leakage, or judge bias Do **not** use it for: general study/validity review (use `/design-study`); statistical execution such as ICC or DeLong (use `/analyze-stats`); reporting-guideline item audits (use `/check-reporting`); or reviewing an already-written manuscript (use `/peer-review` or `/self-review`). --- ## Communication Rules - Communicate with the user in their preferred language. - Use English for statistical, machine-learning, and reporting-guideline terminology. - Be direct about evaluation-validity risks, but always propose the smallest feasible fix first. - Never invent reviewer ratings, reference labels, or agreement statistics; those come from collected data only. --- ## Standard Output ```text ## AI-Benchmark Design Review Evaluation question: ... Arms / systems compared: ... Reference (human-expert panel): ... Unit of rating: (item / case / output) ### Rubric (decoupled dimensions) - dimension -> construct -> anchors (1..k) ### Calibration probes (blinded, randomized) - positive-control / known-bad / instability / mechanism-contradiction ### Reviewer panel - n reviewers, metadata captured, per-reviewer randomized order ### Reliability plan - overall IRR target + control-item IRR (reported separately) ### Judge strategy - human-as-judge / LLM-as-judge / both + adjudication rule ### Validity risks 1. ... ### Minimal fixes - ... ### Decision - Ready to collect / Needs rubric revision / Needs arm or judge redesign ``` --- ## Workflow ### Phase 1: Define the evaluation question and arms Pin down, in writing: - the exact claim the benchmark must support (e.g., "system A's outputs are perceptually indistinguishable from expert outputs", not "system A is deployment-ready") - every arm/system being compared, and what each arm receives as input (same items, same information access, same output format) so no arm has a hidden advantage - the human-expert reference: who they are, and whether they set ground truth, provide a comparison arm, or both - the unit of rating (item, case, output) and how many units each reviewer sees **Gate:** Present the reconstructed evaluation question, arms, and reference to the user and confirm before designing the rubric. A wrong reconstruction misdirects the entire benchmark. ### Phase 2: Design a decoupled multi-dimensional rubric - **Decouple the axes.** Each rated dimension measures one construct. Keep "is the output valid/correct" separate from "is it novel", "is it feasible/measurable", "does it add value over current tools", and "would it change action". A candidate can be high-validity yet low-added-value ("real but redundant"); a single blended score hides this divergence. - **Anchor every scale point** with a short verbal descriptor; pilot the anchors with at least one reviewer before locking. - **Pre-specify discriminant validity**: hypothesize which dimensions should correlate vs be orthogonal, then report the full inter-dimension correlation matrix to confirm the rubric measures distinct constructs. - A worked rubric template lives in `${CLAUDE_SKILL_DIR}/references/elicitation_rubric_template.md`. ### Phase 3: Insert and randomize calibration probes Plant a small number of deliberate control items, blinded and randomized across raters (record who received which via a `probe_arm` flag), to (i) anchor the scale, (ii) measure rater drift/fatigue, and (iii) audit the rubric and pipeline itself. Four useful flavors: - **Positive control / "too-good" item** — a known-strong or near-tautological item; tests whether raters equate "largest effect" with "best", and whether the construct-independence gate (Phase 7) works. - **Known-bad negative control** — an engineered defect (fabricated reference, missing key statistic); expected to score low. - **Instability item** — an estimate that reverses or fails to replicate on a holdout; tests caveat-handling. - **Mechanism-contradiction item** — an empirical direction that opposes the proposed mechanism. Probes are *planted or adjudicated*, never fabricated to fit a hypothesis. ### Phase 4: Construct the reviewer panel - Recruit reviewers spanning the intended expertise gradient; pre-specify any expertise stratification. - Capture reviewer metadata (years of experience, prior AI-evaluation experience, subspecialty) for descriptive reporting and stratified analysis. - Randomize item order **per reviewer** (not one global seed) and record the order; plan to analyze order and fatigue effects. - Require each item to be judged standalone; discourage cross-item references in free-text, which signal non-independent rating. **Gate:** Present the panel composition, stratification, and randomization plan for user review before recruitment is finalized. ### Phase 5: Set inter-rater reliability targets - Pre-specify the agreement statistic (e.g., ICC for continuous ratings, weighted kappa for ordinal) and a target with justification. - **Report reliability on the planted control items separately** as primary evidence of rubric and scale validity. A low overall ICC is interpretable only if raters at least converge on the controls; surfacing both numbers prevents "low agreement => bad rubric" or "bad raters" misreads. - Plan the minimum ratings-per-item needed for a stable agreement estimate (delegate the math to `/analyze-stats`). ### Phase 5b: Reader allocation under burden constraints (anchor-and-rotate) When the item pool is larger than one reader can rate in a session, do **not** force every reader to rate every item (that caps the total pool at the per-reader limit and discards coverage). Use an **anchor-and-rotate** (balanced-incomplete-block) layout: all readers rate a shared **anchor set** (which carries the inter-rater ICC/kappa, alongside the planted controls), and each reader additionally rates a **rotating unique block**, so total coverage grows independently of the per-reader cap. The usually-binding constraint is the **number of available expert readers**, not the item count — solve the reverse problem (`max_pool = anchor + R*(cap-anchor)//m`) to size the must-rate set to a realistic panel. Pre-specify anchor membership, raters-per-item, and the rotation seed before rating. Formulas, trade-offs, and a stdlib reference implementation are in `${CLAUDE_SKILL_DIR}/references/anchor_rotate_reader_allocation.md`. ### Phase 6: Choose the judge strategy and adjudication - Decide human-as-judge, LLM-as-judge, or both. If an LLM is used as a judge, treat it as one more arm whose ratings must themselves be validated against the human panel on the control items. - Pre-specify the **adjudication rule** for disagreement (e.g., majority, a third senior reviewer, consensus discussion) and who adjudicates. - Blind judges to arm identity wherever feasible; record any unavoidable unblinding. ### Phase 7: Construct-independence and leakage guards - Exclude any predictor or input that is a definitional component of the outcome (mathematical definition), and flag near-tautological composites built from the outcome's defining components — they produce an inflated, near-circular result and belong as labeled probes, not discoveries. - Verify no arm sees post-decision or outcome-derived information the others do not. - Confirm the reference labels were not derived from the same model output being evaluated. ### Phase 8: Lock a structured export schema Define the machine-readable rating record up front: per-item ratings across every rubric dimension, free-text justifications, follow-up flags, the `probe_arm` flag, reviewer id and metadata, item order, and timing. A synthetic schema lives in `${CLAUDE_SKILL_DIR}/references/benchmark_export_schema.json`. **Gate:** Present the final rubric, probe set, panel plan, judge strategy, and export schema together; collect explicit user approval before any rating begins. Locking these before data collection is the whole point — changes afterward compromise the comparison. --- ## Handoff Rules - route to `/analyze-stats` for ICC / weighted kappa / DeLong, agreement sample size, and effect-size real-world translation of the benchmark results - route to `/check-reporting` for STARD-AI, CLAIM, or TRIPOD+AI item-level reporting once the design is locked - route to `/design-study` when the broader study around the benchmark (cohort logic, analysis unit, comparator) also needs review - route to `/peer-review` or `/self-review` only after ratings exist and a manuscript is being assessed --- ## What This Skill Does NOT Do - It does not compute agreement statistics or run analyses directly (that is `/analyze-stats`). - It does not collect or fabricate ratings, reference labels, or probe outcomes. - It does not draft manuscript prose or run a reporting-guideline audit. - It does not replace a full peer review of a finished manuscript. ## Anti-Hallucination - **Never fabricate references.** All citations must be verified via `/search-lit` with a confirmed DOI or PMID. Mark unverified references as `[UNVERIFIED - NEEDS MANUAL CHECK]`. - **Never invent reviewer ratings, agreement statistics, reference labels, or probe outcomes** — these come from collected data only. A reported ICC, kappa, or score with no underlying rating record is the failure mode this skill exists to prevent. - **Never invent clinical definitions, diagnostic criteria, or guideline recommendations.** If uncertain, flag with `[VERIFY]` and ask the user. - If a reporting-guideline item, journal policy, or evaluation standard is uncertain, state the uncertainty rather than guessing. ## Reference Files - `${CLAUDE_SKILL_DIR}/references/elicitation_rubric_template.md` -- a synthetic, decoupled multi-dimension rating rubric with anchors and a planted-probe column. - `${CLAUDE_SKILL_DIR}/references/benchmark_export_schema.json` -- a synthetic JSON schema for the per-item rating export (ratings, justifications, probe_arm, reviewer metadata, order, timing). - `${CLAUDE_SKILL_DIR}/references/anchor_rotate_reader_allocation.md` -- anchor-and-rotate (balanced-incomplete-block) reader allocation: formulas, the reverse "max pool for R readers" ceiling, trade-offs, and a stdlib reference implementation (Phase 5b). -
skill.yml 2.1 KB
schema_version: 2 name: design-ai-benchmarking layer: D owner_domain: study_design maturity: official when_to_use: "Design or review a study that benchmarks one or more AI systems against a human-expert panel: arm definition, decoupled rubric, calibration probes, reviewer panel, IRR targets, judge adjudication, and a structured export schema, before ratings are collected." when_NOT_to_use: "General study/validity review (use design-study); statistical execution such as ICC/DeLong (use analyze-stats); reporting-guideline item audits (use check-reporting); reviewing a finished manuscript (use peer-review or self-review)." inputs: - "evaluation question and the AI system(s) / arms to compare" - "candidate outputs or items to be rated" - "available human-expert reviewers and their metadata" outputs: - "benchmark design and validity review (decision notes)" - "decoupled rating rubric with anchors and planted calibration probes" - "structured rating-export schema (JSON)" side_effects: - writes_decision_notes downstream_consumers: - analyze-stats - check-reporting - design-study forbidden_actions: - fabricate_reviewer_ratings_or_reference_labels - approve_benchmark_with_unblinded_or_leaky_rubric - report_irr_without_separate_control_item_reliability # v2.1 quality card purpose: "Surface design and validity risks specific to AI-vs-human-expert benchmarks (rubric coupling, scale calibration, rater independence, judge choice) before data collection begins." safety_boundaries: - "Advisory only: writes decision notes plus rubric/schema artifacts, never ratings or analysis results." - "Calibration probes and reference labels are planted or adjudicated, never fabricated to fit a hypothesis." known_limitations: - "A design review reduces but cannot eliminate evaluation bias; it does not guarantee a valid benchmark." - "No standalone demo; rubric and panel decisions require domain-expert judgement." validation_commands: - "carry the rubric and export schema into analyze-stats for ICC/agreement, then check-reporting (STARD-AI / CLAIM / TRIPOD+AI)" evidence_surface: manual_workflow
Comments (0)
Sign in to join the conversation.
Reviews (0)
No reviews yet.
No comments yet.