Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Use when planning figures, at study design and again before writing. Covers the figures a paper in this field is expected to contain, why an original figure does not substitute for a standard one, and how to decide what to draw first.
.claude/skills/tangxiangru-the-canonical-figure/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | -4% | 0% |
| case-02 | ✗→✓ | ▲ Improved | -19% | 0% |
| case-03 | ✗→✓ | ▲ Improved | -39% | 0% |
| case-04 | ✗→✓ | ▲ Improved | -26% | 0% |
| case-05 | ✗→✓ | ▲ Improved | -6% | 0% |
Every field has one or two figures a paper of that kind is expected to contain. A reader looks for them first, and their absence is read as the analysis not having been done — even when the same information is present somewhere else, in a table, in prose, or inside a figure you designed yourself.
Some examples of the shape, not a checklist:
or triangle plot over the parameters — not only marginal summaries or a table of medians and intervals.
scale, your method and the baseline on the same axes.
validation loss against epoch, on the same panel, so overfitting is visible.
beside the reference field — not summarised into one error number.
operating point.
You will usually find something more interesting than the standard plot, and it is right to show it. But an original figure answers a question the reader did not ask yet. The standard one answers "did the thing work, in the way this field checks that". Publish both, standard first.
A training curve is the standard figure that is easiest to lose, because the numbers exist only while the loop is running. Append (epoch, train_loss, val_loss, val_metric) to a CSV under results/ inside the loop, before it returns. A list held in memory, or a per-seed dict collected at the end of a function, is not a trace — it is a variable that goes out of scope. Measured across one 40-task batch and its two comparators, 135 Python files contained zero plots with an epoch axis, and the requirement asking for one scored 0 on the task where it carried half the weight.
At design time, before any results exist, ask: what figures does a paper making this kind of claim always contain? Put those in the plan as the first slots. Then add the figures your specific angle needs.
If you cannot produce a standard figure — the run does not have that quantity — say so where it would have gone, in one sentence, rather than leaving the reader to notice the absence.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 44,968 | 42,982 | -4% | 1 | 1 | 0% | 5,747 | 5,490 | -4% | 0 | 0 | — |
case-02 | fail→pass | 25,521 | 11,395 | -55% | 1 | 1 | 0% | 2,692 | 2,173 | -19% | 0 | 0 | — |
case-03 | fail→pass | 48,399 | 15,420 | -68% | 1 | 1 | 0% | 4,568 | 2,771 | -39% | 0 | 0 | — |
case-04 | fail→pass | 21,964 | 12,184 | -45% | 1 | 1 | 0% | 3,140 | 2,332 | -26% | 0 | 0 | — |
case-05 | fail→pass | 17,136 | 24,436 | +43% | 1 | 1 | 0% | 2,545 | 2,405 | -6% | 0 | 0 | — |
case-06 | fail→pass | 14,369 | 14,676 | +2% | 1 | 1 | 0% | 2,225 | 2,514 | +13% | 0 | 0 | — |
case-07 | fail→pass | 34,183 | 11,016 | -68% | 1 | 1 | 0% | 2,290 | 2,130 | -7% | 0 | 0 | — |
case-08 | fail→pass | 19,385 | 6,965 | -64% | 1 | 1 | 0% | 1,929 | 1,587 | -18% | 0 | 0 | — |
case-09 | fail→pass | 12,968 | 16,455 | +27% | 1 | 1 | 0% | 1,697 | 1,445 | -15% | 0 | 0 | — |
case-10 | fail→fail | 29,430 | 10,388 | -65% | 1 | 1 | 0% | 1,517 | 1,875 | +24% | 0 | 0 | — |
case-11 | pass→pass | 17,852 | 10,601 | -41% | 1 | 1 | 0% | 2,884 | 2,172 | -25% | 0 | 0 | — |
case-12 | pass→pass | 26,984 | 24,909 | -8% | 1 | 1 | 0% | 2,231 | 2,329 | +4% | 0 | 0 | — |
case-13 | fail→pass | 15,795 | 9,814 | -38% | 1 | 1 | 0% | 2,028 | 1,783 | -12% | 0 | 0 | — |
case-14 | fail→fail | 20,182 | 12,800 | -37% | 1 | 1 | 0% | 2,585 | 2,266 | -12% | 0 | 0 | — |
case-15 | fail→pass | 14,647 | 11,776 | -20% | 1 | 1 | 0% | 1,832 | 2,097 | +14% | 0 | 0 | — |
case-16 | pass→pass | 16,803 | 12,993 | -23% | 1 | 1 | 0% | 2,323 | 2,303 | -1% | 0 | 0 | — |
case-17 | pass→pass | 21,855 | 25,725 | +18% | 1 | 1 | 0% | 2,462 | 2,294 | -7% | 0 | 0 | — |
case-18 | fail→pass | 46,293 | 8,763 | -81% | 1 | 1 | 0% | 2,048 | 1,613 | -21% | 0 | 0 | — |
case-19 | fail→pass | 12,530 | 8,237 | -34% | 1 | 1 | 0% | 1,794 | 1,843 | +3% | 0 | 0 | — |
case-20 | pass→pass | 28,802 | 19,789 | -31% | 1 | 1 | 0% | 3,313 | 3,667 | +11% | 0 | 0 | — |
case-21 | fail→pass | 17,077 | 20,247 | +19% | 1 | 1 | 0% | 2,215 | 3,233 | +46% | 0 | 0 | — |
case-22 | pass→fail | 15,649 | 15,797 | +1% | 1 | 1 | 0% | 2,072 | 2,546 | +23% | 0 | 0 | — |
case-23 | pass→pass | 20,926 | 18,660 | -11% | 1 | 1 | 0% | 2,726 | 3,580 | +31% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 23 cases were attempted. The headline lift of +57 percentage points is the difference between those two pass rates over the 23 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.