Metrics
Tracked, and stays valued — measured from telemetry.
Two headline metrics, both read straight from Whetstone’s events.jsonl telemetry and the recorded runs — never hand-set:
- Runs-to-stick — how many warm (post-correction) runs pass before a preference is applied without needing to be re-corrected. Lower is faster learning.
- Value-over-time — a learning’s
weight/recurrencetrajectory across later runs: does the correction keep being valued, or decay away?
Aggregate (all skills)
| metric | value |
|---|---|
| scenarios | 17 |
| preferences (total) | 38 |
| wrong in the cold run | 35 |
| stuck after correction | 37 (0.9737) |
| median runs-to-stick | 2 |
Per skill
| skill | scenarios | stuck after correction | median runs-to-stick |
|---|---|---|---|
| frontend-design | 3 | 5/6 (0.8333) | 2 |
| ggplot2 | 2 | 6/6 (1.0) | 2.0 |
| great-tables | 6 | 12/12 (1.0) | 2.0 |
| plotnine | 4 | 10/10 (1.0) | 2.0 |
| pptx | 2 | 4/4 (1.0) | 2.0 |
Per-preference detail
| skill | scenario | preference | polarity | runs-to-stick | final weight |
|---|---|---|---|---|---|
| frontend-design | landing_hero | accent-burnt-orange | learning | 2 | 0.667 |
| frontend-design | landing_hero | hero-wide-tracking | learning | 2 | 0.667 |
| frontend-design | pricing_cards | courier-body-font | learning | 2 | 0.667 |
| frontend-design | pricing_cards | sharp-corners | issue | 2 | — |
| frontend-design | pricing_comparison_table | cards-to-comparison-table | learning | 2 | 0.800 |
| frontend-design | pricing_comparison_table | enterprise-before-team | learning | didn’t stick | — |
| ggplot2 | ggplot2_gtcars_hp_price | palette-accent | learning | 2 | 0.667 |
| ggplot2 | ggplot2_gtcars_hp_price | price-plain-commas | learning | 2 | 0.667 |
| ggplot2 | ggplot2_gtcars_hp_price | legend-bottom | learning | 2 | 0.667 |
| ggplot2 | ggplot2_gtcars_hp_price | points-large | learning | 2 | 0.667 |
| ggplot2 | ggplot2_gtcars_hp_price | points-translucent | learning | 2 | 0.667 |
| ggplot2 | ggplot2_islands_top_sizes | fill-forest-green | learning | 2 | 0.667 |
| great-tables | airquality_monthly_summary | one-decimal | learning | 2 | 0.667 |
| great-tables | airquality_monthly_summary | labels-darkgreen | learning | 2 | 0.667 |
| great-tables | gtcars_hp_price | price-usd | learning | 2 | 0.667 |
| great-tables | gtcars_hp_price | price-heatmap-warm | learning | 2 | 0.667 |
| great-tables | gtcars_manufacturer_rollup | rollup-by-manufacturer | learning | 2 | 0.667 |
| great-tables | gtcars_manufacturer_rollup | rollup-count-column | learning | 2 | 0.667 |
| great-tables | gtcars_top10_by_country | powertrain-spanner | learning | 2 | 0.667 |
| great-tables | gtcars_top10_by_country | country-group-teal | learning | 2 | 0.667 |
| great-tables | sp500_monthly_performance | negatives-accounting | learning | 2 | 0.667 |
| great-tables | sp500_monthly_performance | pctchange-heatmap-amber | learning | 2 | 0.667 |
| great-tables | towny_growth_trends | pct-force-sign | learning | 2 | 0.667 |
| great-tables | towny_growth_trends | density-magenta | issue | 2 | — |
| plotnine | plotnine_gtcars_hp_faceted | facet-by-country | learning | 2 | 0.667 |
| plotnine | plotnine_gtcars_hp_faceted | facet-free-y | learning | 2 | 0.667 |
| plotnine | plotnine_gtcars_hp_msrp | palette-dark2 | learning | 2 | 0.667 |
| plotnine | plotnine_gtcars_hp_msrp | price-log-axis | learning | 2 | 0.667 |
| plotnine | plotnine_gtcars_hp_msrp | legend-bottom | learning | 2 | 0.667 |
| plotnine | plotnine_gtcars_hp_msrp | points-large | learning | 2 | 0.667 |
| plotnine | plotnine_gtcars_hp_msrp | points-translucent | learning | 2 | 0.667 |
| plotnine | plotnine_islands_top_sizes | theme-classic | learning | 2 | 0.667 |
| plotnine | plotnine_sp500_close_trend | line-crimson | learning | 2 | 0.667 |
| plotnine | plotnine_sp500_close_trend | line-thick | learning | 2 | 0.667 |
| pptx | pitch_deck | mono-font | learning | 2 | 0.667 |
| pptx | pitch_deck | square-format | learning | 2 | 0.667 |
| pptx | pitch_deck_reorder | cta-second | learning | 2 | 0.667 |
| pptx | pitch_deck_reorder | why-now-slide | learning | 2 | 0.667 |
Labeled KPIs (calibration harness)
The three §11 labeled KPIs — capture_rate, regressions_prevented, retrieval_precision — the product metrics tool returns null by design (ordinary runtime usage has no ground truth). The internal calibration harness (python -m harness.calibrate) scores them against a small hand-labeled set (harness/calibration/labels.yaml) and writes out/calibration.json, which this page reads. The runtime tool still returns null — only this published showcase, linked to the labeled set, shows the numbers.
| KPI | value |
|---|---|
| capture_rate | 0.75 |
| regressions_prevented | 1.0 Key-free proxy: verifies the in-scope issue was recalled for a violating intent (not a live generation). The published figure uses the –agent cold-vs-warm variant. |
| retrieval_precision | 0.5 |
Computed on the sentence-transformers backend at 2026-07-29T05:28:21.326640+00:00 from harness/calibration/labels.yaml.