Checkpoint Promotion
Seth HobsonCommunityCreated by Seth Hobson
- Skill
- Review and audit
- Software development
- MIT
- No issues found
AutoGineer summary
Written by AutoGineer from the skill’s own files, not by the author
Checkpoint Promotion provides a rigorous, multi-stage validation framework for fine-tuned model checkpoints. It ensures that improvements on a specific task do not come at the cost of general capability or data integrity. The process moves through four distinct gates: data quality verification, capability drift analysis against a frozen suite, paired arena comparison against the base model, and a canary rollout. The skill produces a structured report that concludes with a terminal PROMOTE or REJECT verdict, ensuring that only models meeting strict performance and safety standards reach production.
What it does
- Performs data quality checks including deduplication, leakage detection, and label noise scanning.
- Evaluates capability drift against a frozen benchmark suite to detect catastrophic forgetting.
- Conducts paired arena comparisons to validate model performance against the base model.
- Provides a structured remediation ladder for addressing drift-related failures.
- Generates a standardized promotion report with a terminal verdict.
- Supports canary rollout planning for production deployments.
When to use it
- After a training run produces a new model checkpoint.
- When deciding whether a tuned model is ready for production shipment.
- When a previously promoted model requires re-gating against updated golden datasets.
- To diagnose and remediate catastrophic forgetting in LoRA fine-tuned models.
Advantages
- Prevents the deployment of models that suffer from catastrophic forgetting.
- Enforces objective, data-driven decision making for model promotion.
- Provides clear, actionable remediation steps for failed checkpoints.
- Ensures consistency across the model development lifecycle via standardized reporting.
Usage examples
- “Evaluate the latest fine-tuned checkpoint against the frozen drift suite.”
- The agent runs the four-stage gate, compares performance against the baseline, and generates a promotion-report.md with a PROMOTE or REJECT verdict.
- “My model failed the drift budget check; how should I fix it?”
- The agent analyzes the failure, identifies the stage of the breach, and recommends a specific remediation from the escalation ladder, such as adjusting the replay-mix fraction.
Install
Download the skill as a ZIP:
https://autogineer.com/agent-skills/wshobson/checkpoint-promotion/downloadUnzip it into the cross-client skills folder of your project:
mkdir -p .agents/skills && unzip checkpoint-promotion.zip -d .agents/skills
Documentation by Seth Hobson
Checkpoint Promotion
The Phase 5 gate for the whole
plugin: a checkpoint that trains
cleanly and beats its task metric
still doesn't ship without
clearing all four stages below.
eval-harness-first built the
suite re-run here — this skill is
where that suite's baseline
decides something.
Input: a trained checkpoint,
eval/baseline-<model>.json from
eval-harness-first, and the
frozen eval/drift-suite.yaml.
Output format:
promotion-report.md — the
four-stage evidence plus a
terminal PROMOTE or REJECT
verdict that /finetune Phase 5
and /promote-checkpoint consume
directly.
The Four-Stage Gate
Each stage gates the next — a failure at stage 2 means stage 3 doesn't run. Stages 2 and 3 share one expensive inference pass, so running them concurrently and applying gate order at verdict time is licensed on a deterministic arena (nothing saved by serializing); a judge-based arena should still wait for stage 2 first — that's where the real savings are.
Data-quality gate. Before any eval touches the checkpoint: dedup the training set, check for eval-goldens leakage (the exact failure
trace-to-training-data's Hygiene section exists to prevent), and scan for label noise. A checkpoint trained on leaked goldens invalidates every later stage.Held-out + frozen capability-drift suite. Re-run
eval-harness-first'seval/drift-suite.yaml— MMLU/GSM8K/IFEval plus 200–500 domain-adjacent items — against the checkpoint and diff againstbaseline-<model>.jsonper benchmark against the Drift Budget table below.Paired arena vs. base. Position-randomized judge, checkpoint vs. base model, same prompts — or the deterministic paired-comparison variant in
references/gate-templates.mdwhen every grader in the harness is deterministic (no LLM-judge; position randomization N/A there). A holdout win that loses the live arena does not ship — stage-2 numbers and stage-3 judgments must agree; a win on frozen goldens and a loss in paired comparison is a real signal, not a discrepancy to explain away.Canary. 5–10% stratified rollout with auto-rollback for any checkpoint reaching production traffic. Local-only users stop at stage 3 — skipping stage 4 for a local deployment is the correct stopping point, not a shortcut.
Drift Budget
| Drift (pts) | Verdict |
|---|---|
| ≤1 | Noise — proceed |
| 2–5 | Rerun with seed variation before deciding |
| >5 | HARD FAIL — no exception for task gains |
The >5pt row governs regardless of the others: a checkpoint that gained 8 points on the target task and lost 6 points of general capability still fails here — task improvement never buys back a drift-budget breach.
Item count derives from the
budget, not convenience: the
strict n for a half-width under
half the 5pt hard-fail threshold
is ~1,300 at typical accuracy
(p≈0.7); n=200 is a pragmatic
floor (±6pt half-width at that
same p, n=50 ±13pt) — report the
half-width with every verdict,
and treat a margin smaller than
it as REJECT (uncertain), not
PASS/HARD FAIL. Full math and a
5-run cautionary example:
references/gate-templates.md.
RERUN is not a verdict. A
2–5pt drift only ever produces a
PROMOTE or REJECT after the
seed-variation rerun completes —
PROMOTE requires landing back
at ≤1pt (noise); any rerun still
1pt — 2–5pt band or >5pt breach alike — resolves stage 2 to a hard
REJECT. No report may reach the Verdict section with stage 2 still showingRERUN.
Catastrophic Forgetting
Unmanaged LoRA fine-tuning loses real general capability, and stage 2 is what catches it:
~43% knowledge loss unmanaged — no replay, no regularization.
~10% with basic management — some replay or a conservative LR.
~3% with replay + EWC — the disciplined case.
10–30% general-data replay mix is the standard mitigation — blend general- domain data into training rather than target-task data alone.
If a checkpoint hits the >5pt
hard fail in stage 2, work this
escalation ladder in order — the
one canonical order this skill
and references/gate-templates.md
both point to:
Adjust the replay-mix fraction — swap rows, don't add them (adding confounds fraction with total optimizer steps). Dose is not monotonic at small-run scale (<~100 steps) — re-check drift after any swap.
Lower the learning rate.
Fewer epochs.
A smaller LoRA rank — the same rank/LR levers
lora-qlora-recipesandpreference-optimizationtune for the training run, applied here in reverse.
This order is a default, not a
law: remediation guidance from
a single before/after run pair
is a hypothesis — label it
low-confidence once any lever
produces a reversal, and prefer
a seed-variation repeat over
trusting the next rung blindly.
A lever that clears the drift
breach but drops a
success-criterion metric below
target is a two-sided tradeoff
for a human, not a reason to
keep descending the ladder. Full
reasoning and the 5-run
trajectory behind both caveats:
references/gate-templates.md.
Disclose drift-suite instruction reuse. A replay row copying the drift harness's exact instruction phrasing (not just disjoint source items) makes that benchmark's post-replay score an upper bound — flag it instruction-familiar, or re-probe with a paraphrase, before treating a near-budget pass as clean.
The Verdict
promotion-report.md covers all
four stages as sections and
must end with a terminal
verdict: PROMOTE or REJECT,
the evidence that produced it,
and exactly one top remediation
when the verdict is REJECT.
Template: references/gate-templates.md.
The terminal contract other
skills parse:
## Verdict
REJECT
Evidence: domain-adjacent drift
suite dropped 6.2pt (threshold:
>5pt hard fail) despite +8pt on
the target task.
Top remediation: swap the
replay-mix fraction from 10%
toward 20%, holding step count
constant.REJECT is a result, not an error. A checkpoint that fails stage 2's drift budget or stage 3's arena comparison did its job. Don't treat a REJECT as a failed run needing a rerun of this skill; it's the correct output of a working gate.
One remediation, not a menu. Evidence sections may list everything observed; the verdict section names the single highest-leverage fix per the escalation ladder above. A report that hedges across three possible fixes hasn't done the prioritization this skill exists to do.
No auto-retraining. This skill produces a verdict and a report, not a re-triggered training run. A
REJECThands the remediation back to a human decision atfinetuning-method-selectionor the relevant training skill.
Related Skills
eval-harness-first— owns the drift suite and baseline this skill re-runs and diffs against; nobaseline-<model>.jsonmeans nothing to gate against.quantized-export— the only valid next step after aPROMOTEverdict.preference-optimizationandlora-qlora-recipes— own the LR and rank levers in the Catastrophic Forgetting escalation path; this skill diagnoses the breach, those skills own the config that caused it.dataset-curation— owns the replay-mix construction recipe the escalation ladder's first rung applies.
Complete promotion-report.md
template with all four stages,
the drift-suite scoring table,
the paired-arena protocol (item
count, position randomization,
win-rate threshold), and a
replay-mix configuration example:
references/gate-templates.md.
Files
- ATTRIBUTION.mdAdded by AutoGineer988 B
- LICENSELicence file added by AutoGineer1.0 KiB
- SKILL.md7.9 KiB
- references/gate-templates.md12.9 KiB
Requirements and compatibility
Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta
“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.
Security
No issues found by our static scan· No issues found
A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.
Attribution and licence
- Created by
- Seth Hobson
- Publisher
- Seth Hobson (Community)
- Source
- wshobson/agents · plugins/llm-finetuning/skills/checkpoint-promotion · commit 4bde316
- Licence
- MIT License (redistribution allowed)
- LICENSE (added by AutoGineer from LICENSE)
- ATTRIBUTION.md (written by AutoGineer)
- Synced
AutoGineer is not affiliated with or endorsed by Seth Hobson or Seth Hobson.
Download ZIP
The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download checkpoint-promotion.zip