Skip to main content
Training is useful when the task is meaningful, the assessment is trustworthy, and the model has learnable mistakes. Do not train just to make a progress bar move. In the reference qualification, Qwen scored fully on both initial practice cohorts; those results do not justify a claim that training improved Qwen. The learning experiment is qualified separately using learner-small.json: Qwen3.6-35B-A3B in the same reviewer recipe. Only its model selector differs from reviewer.json; the Qwen3.8-27B judge stays fixed. This is a different model, not a claim about improving the original Qwen3.8 reviewer. The filename is a teaching label, not a claim about parameter count.

What an actual improvement claim looks like

In a separate September 24 experiment, the reviewer trained on one fixed code-review task. Fresh reviews identified its accepted defect in 48/64 baseline samples, 30/32 after two updates, and 64/64 after five updates. Empty reviews fell from 13/64 to 0/64. Actual updates, saved checkpoints and checkpoint-consuming inference were verified. An independent AI assessor read all 160 reviews with arm labels and rewards hidden, locking the labels before unblinding. This was not a human assessment, and writing style can still reveal identity. Four baseline and four final reviews had material contradiction flags; unmatched extra findings remained in five reviews in each arm. Better detection did not mean flawless advice. That is evidence of same-task learning, not transfer to new tasks, repositories or customer work. The underlying task and review text are private; the disclosure-reviewed aggregate record exposes the counts and limitations, not a publicly reproducible benchmark. The complete public DispatchDesk experiment below is separate, with a negative result retained. Neither should be used to claim that every training job helps.

Freeze before looking at the exam

Use the eight core practice tasks for learning and the eight predeclared held-out tasks for the exam. Keep clean/buggy siblings together. The held-out policies are part of the known codebase, but their changes and scores are not training material. Do not select the exam after seeing which tasks produce an attractive gain. For the base/checkpoint comparison use the same task versions, judge, harness, context, limits and two samples per task. Change only the model from the qualified base to the saved checkpoint. The evidence-first prompt experiment in lesson 4 remains separate. Choose the promotion rule in advance: complete score coverage; more supported bug reviews; no new false finding on clean changes; no semantic regression after reading every result; no worse timeout rate. Report preliminary evidence on four policy families, not general coding ability or statistical certainty.

Require learning signal

Preview the eight-task qualification, then add --execute if authorized:
Export the terminal run with python3 -B tutorial.py ./my-course export learner-qualify and read it with report.py before deciding to train. Run the practice qualification with --actor learner-small.json. Inspect its mistakes and the judge rationales. In the recorded eight-task qualification, six reviews received full credit, one received 0.5 and one received 0.25. The lower scores came from duplicate findings and a false numerical claim—not infrastructure failures. A missing score, timeout, perfect set or broken output contract is not the signal you want. If no usable variation exists, stop the training step and improve practice-task coverage or choose a suitable supported baseline; do not corrupt the rubric or tune on the exam.

Submit the bounded training plan

After qualification, preview two batches, four tasks per batch and eight trials per task:
That is 64 planned trial slots, not 64 independent tasks. Add --execute only after checking your remaining authorized budget. The launcher saves the exact task/profile identities and receipt before you leave. Training uses fresh optimizer state by default. This is not a restart of a prior experiment.
Read the IDs from this run, not this page’s reference evidence. A training recovery file is not a published model checkpoint. A saved checkpoint is not proof that reviews improved. Inspect actual committed updates and the retrieved checkpoint separately.

Run fresh checkpoint inference

Copy my-course/profiles/learner-small.json to my-course/profiles/checkpoint.json. Change only agent.model to the exact saved checkpoint UUID. Leave every other field unchanged. Select the final committed checkpoint of the prescribed two-batch run, not whichever scores best on the exam. Validate it:
Then run matched held-out arms:
Each arm reserves 16 trials when executed. They may run concurrently once the checkpoint exists. Export both terminal results and compare all outputs with report.py. Follow the checkpoint-use verification to confirm the candidate requested and actually consumed the intended checkpoint, rather than silently falling back to the base model.

Three separate conclusions

  1. Mechanism exercised: actual updates, a saved/read-back checkpoint and fresh checkpoint inference.
  2. Exam completed: the frozen comparison has all attempts and a semantic review.
  3. Improvement: DEMONSTRATED, NOT DEMONSTRATED or INCONCLUSIVE under the predeclared rule.
A negative result is useful. A successful optimizer cannot promise a better agent on your work. The reference report states each conclusion separately, including failures and usage limitations. Next, use the evidence to decide what to deploy in your own workflow.

Recorded result: training worked; improvement was not demonstrated

The two-batch run took about 15½ minutes from admission to terminal state. It committed two optimizer updates and saved two checkpoints. The final checkpoint was read back and consumed by the fresh 16-trial exam; its execution identity matched the final saved model. This establishes the learning mechanism, not a better reviewer. Training had 51 scored trials and 13 missing scores out of 64. The 13 were verifier-stage timeouts, all with retained actor reviews. They are failures to assess—not zero-quality reviews—and remain in the report. A successful run state does not turn those trials into successes. There was no gain in supported reviews, so the predeclared promotion rule was not met. The final model was slower in these observations despite producing fewer actor tokens; no causal inference about the provider or training follows from two differently timed runs. Both arms had complete retained usage and zero timeouts. The semantic audit also caught under-penalized duplicates in both arms and legal-compliance language beyond the supplied policy in a final review. This was an author/operator review of all candidates and rationales plus independently recomputed executable counterexamples, not blinded or independent human validation. Two samples and four policy families do not establish transfer to new repositories. Keep the baseline.