#!/usr/bin/env python3
"""Decision-use grading for every corpus claim.

Grades answer Owen's question: is this claim actually usable for making decisions
under CURRENT capabilities (Claude Fable/Opus class, GPT-5.5/5.6 class), or is it
verified-but-stale signal?

  A  durable          — capability-invariant: law/standards, mathematics & statistical
                        method, human-rater/feedback science, adversarial & economic
                        floors (results that only strengthen as models improve),
                        documented production practice. Decide on it now.
  B  current-gen      — measured in the 2025–26 frontier window (some GPT-5-class),
                        but NOT on the deployment tier and almost never on human
                        evaluative writeups. Strong prior; confirm at the bakeoff.
  C  superseded-gen   — magnitude measured on 2023–mid-2025 models (GPT-4o / o1 /
                        flash-tier). The MECHANISM is informative; the NUMBER must not
                        set a current threshold in either direction. Re-measure.

measured_on regimes: model-outputs | human-work | adjacent-domain | structural
(structural = law, math, standards, practice facts — no measurement regime applies).
"""
import json
from pathlib import Path

EX = Path(__file__).resolve().parent

# (grade, basis, measured_on, note)
G = {
# ---------- academic-judges ----------
"AJ-01": ("C", "superseded-gen capability", "model-outputs", "Late-2024 snapshot (o1-preview vs GPT-4o, PandaLM). Direction (reasoning models dominate trained judges) has held through 2026 follow-ons; the specific accuracies are two generations stale. Re-rank at the deployment-tier bakeoff."),
"AJ-02": ("A", "validation-design result", "structural", "A result about how gold labels are elicited and aggregated, not about model skill. Applies to validating Fable/GPT-5.5-class judges exactly as it did to GPT-4o-class."),
"AJ-03": ("B", "current-gen capability", "model-outputs", "Includes April-2026 frontier models; the kappa-deflation statistics are properties of agreement measurement and transfer; per-judge rankings do not. Deployment tier and human-writeup QA untested."),
"AJ-04": ("B", "current-gen capability", "model-outputs", "March-2026 on GPT-4o / Claude-Sonnet-4.5 / o3. One tier behind deployment; hard-subset ~55% is a prior, not a ceiling, for Fable/GPT-5.5-class. The +7–12pp per-criterion-reasoning effect is the durable part."),
"AJ-05": ("B", "current-gen capability", "model-outputs", "June-2026, 41 judges. Subjective-vs-verifiable axis geometry is the mechanism; Indic community-health scope noted in corpus. Consensus-is-not-validity conclusion is method-level and durable."),
"AJ-06": ("C", "superseded-gen capability", "model-outputs", "Measured on mini-tier judges (GPT-4o-mini / GPT-4.1-mini). Flip rates for deployment-tier reasoners are unknown and plausibly far lower; k-sampling remains cheap hygiene either way."),
"AJ-07": ("C", "superseded-gen capability", "model-outputs", "GPT-4o-era kappa 0.28±0.32. Use as the canonical warning against percent-agreement narratives, not as an estimate of current judge–human agreement."),
"AJ-08": ("B", "current-gen mechanism", "model-outputs", "ICLR 2026. Lineage-based contamination is structural to training pipelines and likely persists at the deployment tier; exact PLS magnitudes are tier-bound. Cross-family routing stays the defense."),
"AJ-09": ("C", "superseded-gen capability", "model-outputs", "Mid-2025 trained-judge landscape (J1, CompassJudger-2, Skywork-V2). This market moves quarterly; treat as a map of the design space, not a current ranking."),
"AJ-10": ("C", "superseded-gen capability", "model-outputs", "June-2025; top models <40% on Precise Instruction Following predates GPT-5-class. The warning (instruction-compliance checking is not solved) held then; current magnitude unknown — exactly why it needs its own gold set."),
"AJ-11": ("C", "superseded-gen capability", "model-outputs", "2024 study (IUI 2025). The 64–68% expert-agreement figures predate reasoning-model maturity. Mechanism (expertise-heavy axes are the weak lane) is plausible but the deployment-tier boundary is E1/E3's to measure — in either direction."),
"AJ-12": ("B", "current-gen capability", "model-outputs", "June-2026 benchmark. Long-form instability at the current tier; deployment-tier behavior untested."),
# ---------- annotation-quality ----------
"AQ-01": ("A", "behavioral floor", "adjacent-domain", "Crowdworker LLM-use base rate (2023, replicated 2025). A floor that rises as tools improve; the decision input (assume pervasive assistance) only strengthens."),
"AQ-02": ("A", "adversarial floor", "adjacent-domain", "Survey-agent result. Attack capability is a lower bound that strengthens with every model generation; the economic asymmetry ($0.05 vs $1.50) widens. Content detection stays beaten."),
"AQ-03": ("A", "validation-design result", "structural", "How to validate judges under human-label uncertainty — statistics of the gold set, not model capability."),
"AQ-04": ("A", "human science", "human-work", "Attribution of annotator disagreement to underspecification/style. Human raters have not changed."),
"AQ-05": ("A", "human science", "human-work", "2022 NLI disagreement taxonomy. Human disagreement structure, not model capability."),
"AQ-06": ("A", "statistical fact", "structural", "Kappa paradox under extreme base rates. Mathematics."),
"AQ-07": ("A", "statistical method", "structural", "Dawid-Skene/MACE-class aggregation. Method, not capability."),
"AQ-08": ("A", "statistical method", "structural", "Worker-level contamination auditing without per-item detection. Method survives model improvement on both sides."),
"AQ-09": ("A", "field practice", "structural", "Disagreement-as-signal institutionalized (LeWiDi-2025). Practice fact."),
"AQ-10": ("A", "dataset audit", "structural", "≥3.3% gold-label error floor across canonical test sets. Property of datasets and labeling processes, not of judges."),
"AQ-11": ("A", "human science", "human-work", "Anchoring on shown suggestions is human behavior; better suggestions anchor harder. Blind-first design stays mandatory."),
"AQ-12": ("B", "current-gen capability", "model-outputs", "Jan-2026: RLVR training degrades disagreement modeling. Mechanism relevant to judge-model selection at the deployment tier; magnitude tier-bound."),
# ---------- critique-models ----------
"CM-01": ("C", "superseded-gen capability + human floor", "human-work", "CriticGPT (GPT-4-era, 2024). Critic-assisted-beats-either-alone is a floor that should strengthen with critic quality, but the 63% preference number is two generations stale and unreplicated in 24+ months."),
"CM-02": ("C", "superseded-gen capability + human floor", "human-work", "The 24%-vs-6% flawless-slice lift is GPT-4-era. Direction (audit confident passes with critic assistance) is the durable design input; the 4× magnitude is not a current estimate."),
"CM-03": ("B", "current-gen + human science", "adjacent-domain", "2025 DeepMind amplified-oversight. The format effect (verdict-visible → over-reliance; evidence-only safe) is human behavior and durable; the 91.3/87.7/75.1 magnitudes are tier- and task-bound (fact verification, not annotation QA)."),
"CM-04": ("A", "human science (direction)", "adjacent-domain", "Meta-analytic human-AI complementarity result. As deployment-tier models widen the human-AI gap, the warning against naive verify-the-AI designs strengthens."),
"CM-05": ("B", "human response to AI feedback", "human-work", "2025 RCT on >20k real peer reviews — one of the few human-work measurements in the corpus. Revision behavior is human; feedback quality rises with model tier, so 27% is closer to a floor than a ceiling. Domain transfer (peer review → paid annotation) untested (E6)."),
"CM-06": ("C", "superseded-gen capability", "model-outputs", "AbsenceBench on 2025 flash-tier (Gemini-2.5-flash). Omission-blindness is attention-mechanics and plausibly persists, but deployment-tier recall is unmeasured — E2 measures it before any absence-claim verdict is trusted."),
"CM-07": ("C", "superseded-gen method demo", "model-outputs", "MetaCritique (GPT-4, 2024). The critique-decomposition METHOD is reusable; its reported reliability numbers are stale."),
"CM-08": ("C", "superseded-gen capability", "model-outputs", "Right-verdict/poor-critique dissociation measured on 2024–25 models; re-check found headline numbers span sibling benchmarks. Keep the failure mode, drop the numbers."),
"CM-09": ("B", "current-gen capability", "model-outputs", "Same study family as AJ-03; June-2026 window."),
"CM-10": ("A", "production practice", "structural", "Toloka's deployed pass/fail/unable-to-verify QA with human escalation. Existence proof of the architecture in production — vendor-reported, flagged as such."),
"CM-11": ("A", "human science (direction)", "human-work", "2022 foundational result: model critiques help humans find flaws they'd miss. Floor-type: strengthens with critic quality."),
"CM-12": ("A", "adversarial floor", "human-work", "Deployed checklist assistant gamed in one shot (NeurIPS 2024). Attackers improve with model tier; the design lesson is permanent."),
# ---------- grounding-faithfulness ----------
"GF-01": ("C", "superseded-gen capability", "model-outputs", "The ~77 bacc AggreFact ceiling and specialists-within-2.5-points are GPT-4o/Llama-3.1-era. Deployment-tier entailment ceilings are unknown; the two-tier screening economics need repricing at the bakeoff."),
"GF-02": ("B", "current-gen architecture result", "model-outputs", "FaithJudge (late-2025, o3-mini-era). Exemplar-anchoring-beats-zero-shot is an architecture effect expected to persist; margins are tier-bound."),
"GF-03": ("C", "superseded-gen capability", "model-outputs", "MiniCheck/GPT-4o-mini-era decomposition harm. Adaptive granularity stays the design default; the 80→71 magnitude is not a current estimate."),
"GF-04": ("B", "current-gen mechanism", "model-outputs", "2025 decomposition/decontextualization tension analysis. Design-level tension, partially structural."),
"GF-05": ("A", "method / typology", "structural", "Verifiability triage before entailment (VeriScore/FactBench). A pipeline design pattern, not a capability claim."),
"GF-06": ("C", "superseded-gen capability", "model-outputs", "ContextualJudgeBench ~55% on o1-era judges. Holistic-vs-claim-level gap direction is consistent across studies; magnitude stale."),
"GF-07": ("B", "current-gen capability (flash-tier graders)", "model-outputs", "FACTS (Dec 2025, gemini-2.5-flash graders). The agreement-default asymmetry (85/46) is the single most decision-relevant grounding mechanism — and it was measured on flash-tier graders. Deployment-tier asymmetry is E2's first number."),
"GF-08": ("B", "current-gen practice", "model-outputs", "FACTS v1→v2 ensemble evolution; includes GPT-5-class by v2. Cross-provider ensembling as self-preference mitigation is practice-level."),
"GF-09": ("B", "current-gen method critique", "model-outputs", "2025: span-restricted citation checking is insufficient. Method-level; motivates the dual-pass citation design."),
"GF-10": ("B", "current-gen brittleness", "model-outputs", "FactEval (2025): verifier verdicts flip under meaning-preserving perturbation. Perturbation harness stays a ship gate; deployment-tier flip rates unknown (could be far lower — measure, don't assume)."),
"GF-11": ("B", "current-gen capability", "model-outputs", "FaithLens (ACL 2026, GPT-5.2-era comparison) — among the most current capability anchors in the corpus. Still model-output verification, not human-writeup QA."),
"GF-12": ("C", "superseded-gen capability", "model-outputs", "Lynx-vs-GPT-4-era comparison (2024). Fine-tuned-specialist economics need current repricing."),
# ---------- hybrid-statistical ----------
"HS-01": ("A", "statistical method", "structural", "PPI/PPI++ unbiasedness and judge-robust intervals are mathematics; they get MORE useful as judges improve. (Empirical demos in the paper are GPT-4-era; the method is the decision input. Title changed on arXiv v3 — noted in re-check.)"),
"HS-02": ("A", "statistical method (numbers dated)", "model-outputs", "Trust-or-Escalate's guarantee construction is method-level and durable. Its reported coverage numbers are GPT-4-era; recalibrate on deployment-tier judges — the framework exists precisely to do that."),
"HS-03": ("A", "statistical method", "structural", "Closed-form gold-set sizing. Mathematics."),
"HS-04": ("A", "statistical method", "structural", "Confidence-driven human-annotation allocation. Method."),
"HS-05": ("A", "tooling fact", "structural", "GLIDE library unifying PPI-class estimators (May 2026). Tooling availability, current."),
"HS-06": ("A", "statistical theory", "structural", "EIF/PPI++ efficiency results. Mathematics (interval-width empirics corpus-flagged as not independently recomputed)."),
"HS-07": ("A", "statistical method", "structural", "'Noisy but Valid' certification: judge-assisted testing provably more powerful under conditions. Mathematics."),
"HS-08": ("A", "statistical method", "structural", "Sensitivity/specificity-corrected pass-rate reporting. Mathematics."),
"HS-09": ("B", "current-gen method + measurement", "model-outputs", "Conformal per-item uncertainty for judge ratings (2025–26). Method durable; measured widths tier-bound."),
"HS-10": ("A", "statistical method", "structural", "Anchor-set drift attribution with anytime-valid statistics. Method."),
"HS-11": ("A", "statistical finding", "structural", "Sequential estimation: uncertainty-based querying bought little vs uniform. Regime-dependent statistics; the design response (A/B routing against uniform) is already encoded."),
"HS-12": ("A", "tooling fact", "structural", "Cleanlab TLM: trust-scored judgments with calibration tooling. Vendor tooling fact, current."),
# ---------- rubrics-recent ----------
"RR-01": ("B", "current-gen practice + capability", "model-outputs", "HealthBench grader meta-evaluation (2025, GPT-4.1/o3-era graders). The per-criterion meta-evaluation PATTERN is the durable input; MF1 0.709 is tier-bound."),
"RR-02": ("A", "production practice", "structural", "48,562 physician-written per-item criteria: what expert-grounded rubric authoring costs at production scale. Practice fact."),
"RR-03": ("B", "current-gen result", "model-outputs", "Rubrics-as-Rewards (2025): reference-grounded synthesis matches human authorship except pitfall criteria. The pitfall exception drives the compilation design; re-test as generators improve."),
"RR-04": ("B", "current-gen capability", "model-outputs", "RubricBench (Mar 2026, DeepSeek-v3.2/Gemini-3-era): 26–27pp self-vs-expert rubric gap that test-time compute doesn't close. Current-window; deployment-tier gap unknown."),
"RR-05": ("A", "human science", "human-work", "EvalGen criteria drift: human graders' criteria change as they grade. Human behavior; durable."),
"RR-06": ("B", "current-gen capability", "model-outputs", "RIFT (Apr 2026, GPT-5.2/Gemini-3-era linting): Subjective detectable (F1 .925), Hackable not (~0). Current-window; the human-red-team conclusion for anti-gaming review stands until a later tier changes it."),
"RR-07": ("B", "current-gen result", "model-outputs", "Support Vector Rubrics (Jun 2026): contrastive mining closes the rubric gap to ~0.3pp given preference pairs. Current-window; depends on adjudication data the pilot creates."),
"RR-08": ("B", "current-gen practice + capability", "model-outputs", "PaperBench (2025, o1/o3-era judge F1 0.83 at ~1/100 cost). Decomposition-at-scale pattern durable; judge F1 and cost tier-bound."),
"RR-09": ("A", "production practice", "structural", "OpenAI grader doctrine: every model grader validated on its own expert-graded eval. Practice prescription, current."),
"RR-10": ("B", "current-gen literature position", "model-outputs", "2026 RL-rubrics cluster: static rubrics are exploitable specifications under optimization. Conceptual; strengthens with optimizer capability."),
"RR-11": ("A", "tooling fact", "structural", "Autorubric open-source framework. Tooling availability."),
"RR-12": ("A", "tooling fact", "structural", "LangSmith Align Evals: judge-calibration workflow productized. Tooling fact."),
# ---------- industry-practice ----------
"IP-01": ("A", "production practice", "structural", "An annotation platform and its labeler network QA stack: double-blind labeling, α≥0.80 bar, judge flags-not-sanctions. Vendor-reported practice; existence proof for A4's flag-only posture."),
"IP-02": ("B", "current-gen vendor eval", "human-work", "The banking meta-eval (May 2026): 3,204 practicing-banker labels — a rare human-work meta-eval. Vendor research; benchmark release pending per corpus."),
"IP-03": ("A", "market practice", "structural", "2026 eval-tooling convergence on human-calibrated judges. Market fact."),
"IP-04": ("A", "documented postmortem", "adjacent-domain", "Scale/Bulba spam postmortem (journalism-of-documents, disputed by Scale, pre-LLM-judge era — corpus flags all three). Economic lesson durable; treat operational details as reported, not established."),
"IP-05": ("A", "market fact", "structural", "An AI data vendor acquired a data-quality startup for no-second-human flagging (Jan 2026). Market signal, current."),
"IP-06": ("A", "market practice", "structural", "Surge QA-as-dashboards practice. Vendor-reported."),
"IP-07": ("A", "market practice", "structural", "micro1 real-time QA verification layers. Vendor-reported."),
"IP-08": ("B", "market pricing", "structural", "Braintrust cost arithmetic (judge $5–15/10k vs expert $800–1,800/500). Pricing is current but moves with model economics — reprice at bakeoff; the routing logic it supports is durable."),
"IP-09": ("C", "superseded-gen capability", "model-outputs", "Lynx vs GPT-4o-era comparisons. Specialist-vs-frontier margins need current repricing."),
"IP-10": ("A", "tooling practice", "structural", "DeepEval G-Eval→DAG progression. Tooling doctrine."),
"IP-11": ("A", "structural/incentive analysis", "human-work", "Scale-vendor reviewer layer unreliability for incentive reasons. Structural; the AutoQA must not inherit it."),
"IP-12": ("A", "practice observation", "structural", "Vendors attribute low precision to instruction/rubric defects. Consistent with AQ-04; practice-level."),
# ---------- contrarian ----------
"CT-01": ("B", "current-gen capability", "model-outputs", "Contrarian read of the June-2026 meta-evaluation (same source as AJ-03; not independent)."),
"CT-02": ("A", "human science (direction)", "adjacent-domain", "g=−0.23 across 370 effect sizes, mostly older-gen AI and adjacent tasks (incl. hiring deference). The mechanism — humans defer when AI outperforms them — is human behavior and strengthens as the capability gap widens. Magnitudes are not current estimates."),
"CT-03": ("A", "theorem", "structural", "The 2× ceiling is mathematics. Note the flip side: if deployment-tier judges materially EXCEED attempter accuracy on a lane, the constraint relaxes there — a bakeoff-measurable condition, not an assumption."),
"CT-04": ("A", "human science", "human-work", "Grader criteria instability. Human behavior."),
"CT-05": ("B", "current-gen mechanism", "model-outputs", "Mistake-similarity bias + industry-wide error-correlation trend (2025). Mechanism expected to persist; magnitudes tier-bound. Cross-family routing + permanent audit remain the response."),
"CT-06": ("B", "current-gen capability", "model-outputs", "2025: judges don't follow their own rubrics (schema explains under half of verdict variance). Motivates the schematic-adherence ship gate; deployment-tier adherence is measurable there."),
"CT-07": ("B", "current-gen capability", "model-outputs", "2025 intra-rater reliability findings. k-sampling + entropy routing remain hygiene."),
"CT-08": ("B", "current-gen capability", "model-outputs", "2025: judges weakest on questions they cannot themselves answer. Same mechanism family as re-solving (F26-01); E3 probes it on our workload."),
"CT-09": ("A", "adversarial floor", "model-outputs", "Universal adversarial phrases transfer to unseen judges (2024). Attack floors strengthen with attacker capability; comparative/anchored scoring and perturbation probes stay day-one requirements."),
"CT-10": ("A", "economic history", "adjacent-domain", "Spam economics beat industrial QA once already. Economic asymmetry is durable."),
"CT-11": ("A", "statistical method", "human-work", "NUTMEG: separating systematic subpopulation disagreement from noise. Method for human-label modeling."),
"CT-12": ("A", "human science (direction)", "human-work", "AI assistance homogenizes population output while raising individual quality (2025). Monoculture pressure rises with assistance quality; the diversity drift metric stays."),
# ---------- frontier-2026 ----------
"F26-01": ("B", "current-gen mechanism (single study, under review)", "model-outputs", "Re-solving collapse (68→9%) is the corpus's own flagged single-source provisional claim; C2 holds it at 'replicate before hard-gating'. Current-window measurement."),
"F26-02": ("B", "current-gen vendor result", "human-work", "The vendor's agent-judge (May 2026): architecture>model on expert-graded human work. Vendor research; among the most decision-relevant current results — and exactly the kind the bakeoff must reproduce in-house."),
"F26-03": ("B", "current-gen mechanism", "model-outputs", "Evaluation faking under consequence framing (2026). Stakes-sterile prompting is cheap insurance regardless of tier; behavioral bias measurement stays mandatory."),
"F26-04": ("A", "statistical method", "structural", "HyPAC dual-threshold routing with error budgets. Method."),
"F26-05": ("B", "current-gen method + measurement", "model-outputs", "Per-criterion conformal reliability ceilings (2026). Method durable; measured ceilings tier-bound — recompute per project."),
"F26-06": ("B", "current-gen capability", "model-outputs", "RubricEval 2026 restatement (same underlying source family as AJ-04)."),
"F26-07": ("B", "current-gen result", "model-outputs", "LLM-as-a-Verifier (Jul 2026): verification as a scaling axis; decomposition monotonically improves it. The most current capability signal in the corpus; still model-output verification."),
"F26-08": ("B", "current-gen practice", "human-work", "CoVal (Jan 2026): rubric-vs-collective-eval concordance on crowd judgments. Re-check flagged in-sample vs out-of-sample number nuance — see ledger entry."),
"F26-09": ("A", "statistical method", "structural", "Corrected pass-rate certification under imperfect judges. Mathematics (re-check corrected a per-class-vs-total sizing detail — see ledger entry)."),
"F26-10": ("A", "dataset availability", "structural", "FindTheFlaws: expert-annotated flawed-solution datasets exist for seeded-recall measurement (E2's raw material)."),
"F26-11": ("A", "production practice", "structural", "2026 norm: closed calibration loop on sampled human corrections. Practice pattern."),
"F26-12": ("A", "tooling fact", "structural", "Autorubric framework packaging 2026 judge-reliability techniques."),
# ---------- critic-and-gapfill ----------
"CG-01": ("A", "psychometric method", "human-work", "MFRM adjustment changes rankings built on human ratings; estimability needs 3–5 ratings/output linkage. Method + human-rater behavior; applies unchanged."),
"CG-02": ("A", "human science", "human-work", "Weigle 1998: training buys self-consistency, not severity equality. Canonical, replicated; humans unchanged."),
"CG-03": ("A", "human science", "human-work", "FOR training d≈0.50 ceiling on the best rater-training intervention. Durable."),
"CG-04": ("A", "human science", "human-work", "G-theory: interactions dominate rater main effects. Durable; the strongest independent argument for per-claim verification."),
"CG-05": ("A", "human science", "human-work", "Within-session rater severity drift. Durable; rolling-window reviewer effects stay."),
"CG-06": ("B", "current-gen method application", "model-outputs", "MFRM applied to 2025 LLM judges. The symmetric-measurement idea is method-level; the specific judge rankings are tier-bound."),
"CG-07": ("A", "law", "structural", "Platform Work Directive Art 10(5). Binding for EU workers from transposition (2026-12-02); capability-independent by definition."),
"CG-08": ("A", "law", "structural", "PWD Art 11 explanation/review rights."),
"CG-09": ("A", "law", "structural", "PWD scope covers online-performed platform work."),
"CG-10": ("A", "law", "structural", "PWD Art 7 telemetry prohibitions + DPIA."),
"CG-11": ("A", "case law", "structural", "SCHUFA doctrine; active enforcement. (Re-check: doctrine confirmed; the phrase 'determining role' traces to the CJEU judgment rather than the fetched commentary — see ledger entry.)"),
"CG-12": ("A", "standard", "structural", "ISO/IEC 5259 published series. Standards fact."),
"CG-13": ("A", "production practice", "adjacent-domain", "Facebook/Cognizant audit architecture. Decade-scale deployed practice for humans-reviewing-human-judgment."),
"CG-14": ("A", "industry codification", "adjacent-domain", "TSPA QA curriculum: seeding indistinguishability, appeals bias, wrong-selection errors."),
"CG-15": ("B", "current-gen practice", "human-work", "Pinterest decision-quality framework (Feb 2026, GPT-5-class agents in scope): reliability-vs-correctness separation, dual-labeling on policy change. Most current deployed analog."),
"CG-16": ("A", "human incentive result", "human-work", "Consensus-rewarded auditing induces conformity (Community Notes). Incentive design; durable."),
"CG-17": ("A", "method", "human-work", "Per-rubric-question agreement decomposition (Google). Method."),
"CG-18": ("A", "human science", "adjacent-domain", "Throughput pressure degrades moderator judgment (2025 observational). Human factors; durable."),
"CG-19": ("A", "human science", "human-work", "Kluger & DeNisi FIT: a third of feedback interventions backfire; task-referenced helps. Foundational; durable."),
"CG-20": ("A", "human science", "adjacent-domain", "Cochrane 2025 audit-and-feedback update: modest median effects, concentrated in low performers. Durable."),
"CG-21": ("A", "human science", "human-work", "Dow CSCW 2012: task-specific feedback improves paid microtask quality; self-ratings inflate. Closest crowdwork RCT; durable."),
"CG-22": ("A", "human science", "adjacent-domain", "Information content dominates feedback efficacy (d≈0.99 high-information vs 0.46 bare verdicts). Durable."),
"CG-23": ("A", "human science", "adjacent-domain", "25-year workplace-feedback retrospective: field immature; effects heterogeneous. Calibrates expectations."),
"CG-24": ("A", "human incentive result", "adjacent-domain", "Rank feedback under incentives induces gaming/sabotage. Benchmark against exemplar work, never ranked people."),
}


def main():
    master = json.load(open(EX / "master_claims.json"))
    ids = {c["id"] for c in master["claims"]}
    missing = ids - set(G)
    extra = set(G) - ids
    assert not missing and not extra, f"missing={sorted(missing)} extra={sorted(extra)}"
    out = {cid: {"grade": g, "basis": b, "measured_on": m, "note": n} for cid, (g, b, m, n) in G.items()}
    (EX / "decision_grades.json").write_text(json.dumps(out, indent=2, ensure_ascii=False), encoding="utf-8")
    from collections import Counter
    print("grade distribution:", dict(Counter(v[0] for v in G.values())))
    print("measured_on:", dict(Counter(v[2] for v in G.values())))


if __name__ == "__main__":
    main()
