benchmark: triage first — advise before code is written; every output leads with the decision (0.4.0) - #33
benchmark: triage first — advise before code is written; every output leads with the decision (0.4.0)#33mmcky wants to merge 3 commits into
Conversation
… leads with the decision (0.4.0) Triage — "should this lecture be converted at all?" — becomes the skill's front door: SKILL.md leads with it behind a Which-mode router, the frontmatter description opens with the advise use case so natural-language invocation matches the common question, and the README puts it first throughout. Review mode is unchanged and stays for the day a conversion PR exists again. Recommendation-first output everywhere (skills#14, finding 6): score.py prints VERDICT above the weighted total, labels the total "for the record", and the deciding-flip lines name the verdict they flip to before the recomputed number; the report format's TL;DR opens with the full verdict and the dimension table gains a verdict row. The tutorial's quoted output follows. No rubric, weight, gate, or scorecard-JSON change: the regression anchors and fixtures reproduce unchanged. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
This PR reframes the benchmark plugin’s review-acceleration skill to be triage-first and makes the scorer/reporting output recommendation-first (verdict printed before the weighted total), while bumping the plugin version to 0.4.0 and updating docs accordingly.
Changes:
- Updated
score.pyoutput ordering and sensitivity “deciding flips” lines to lead with the verdict and treat the weighted total as “for the record”. - Reordered and revised skill/docs/README content so triage is presented as the default entry point and outputs emphasize the decision first.
- Released as
benchmarkv0.4.0 with matching manifest/version updates and changelog entry.
Reviewed changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| docs/tutorial-run-an-evaluation.md | Updates the tutorial’s quoted scorer output and explains verdict-first semantics. |
| benchmark/skills/review-acceleration/SKILL.md | Reorders the skill doc to triage-first and reinforces “decision-first” reporting. |
| benchmark/scripts/scoring/score.py | Prints VERDICT: before the weighted total; updates deciding-flip display text. |
| benchmark/README.md | Reorders mode presentation to put triage first; updates review-mode description to match decision-first outputs. |
| benchmark/CHANGELOG.md | Adds 0.4.0 release notes describing the triage-first reframing and verdict-first output. |
| benchmark/.claude-plugin/plugin.json | Bumps plugin version to 0.4.0. |
| .claude-plugin/marketplace.json | Bumps marketplace entry for benchmark to 0.4.0. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
The canonical "when to use JAX / when not to" guidance already exists — manual.quantecon.org/styleguide/jax.html, including Converting from Numba § Decide first. Triage now cites it rather than restating it, and frames its four checks as the measurement layer that tests whether the page's criteria hold for a given lecture. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…on convert / don't-convert The rule re-derived numbers from the rubric weights (0.15/0.25, +0.30, −0.50) in SKILL.md and README.md while the skill's own scoring step says weights live only in EVALUATION_FRAMEWORK.md — a drift risk if the rubric is recalibrated. Both places now state the conclusion and point at the framework. Triage's outcome vocabulary is convert / don't-convert throughout, replacing the review-mode "predicted verdict band". From Copilot's review of this PR. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
@xuanguang-li — requesting your review on this PR, as the designer of the evaluation system it reorders. Context is in the description above and on #10; the short version: triage ("should this lecture be converted at all?") becomes the skill's front door, and every output now leads with the recommendation rather than the number — your two comments on #10 are the documented evidence for that second change. What we would most value your judgement on, in order:
No urgency on the rubric-confirmation items from the #10 checklist — this PR is the priority ask, and none of it forecloses those. |
|
Thanks @mmcky. This summary is helpful! I'll look into it tonight. |
|
Hi @mmcky, Thanks for this update.
|
Reframes the benchmark skill around the question the org actually keeps asking, without removing anything: triage — "should this lecture be converted at all?" — becomes the front door, and review mode stays intact for the day a conversion PR exists again.
Why
Two grounds, both measured rather than aesthetic.
The demand is on triage's side. Every conversion-PR route the acceptance test was waiting on closed in one sweep: on 2026-08-05 QuantEcon/lecture-python.myst#657, #624 and #644 all merged with their JAX content dropped (style fixes only landed), after #654 was closed with the lecture staying in NumPy. There are currently zero open conversion PRs, while Table C alone lists eight candidate lectures with no PR — the prospective question is the one being asked, and it was the skill's second-billed mode.
The record says the triage layer decides. In every evaluation to date — ge_arrow, markov_asset, wald_friedman, and the 2026-08-06 ge_arrow re-run on #10 — the recommendation was determined by the as-used baseline and what a conversion could reach; the scorecard on top never flipped an outcome. Meanwhile the number-first presentation demonstrably misled: two careful readers in a row took the total for the headline (#14, finding 6).
What changed
references/EVALUATION_FRAMEWORK.md. Both now state the conclusion and point there, and triage's outcome vocabulary is standardized on convert / don't-convert, replacing the review-mode "predicted verdict band".score.pyprintsVERDICT:above the weighted total, labels the total "for the record", and the deciding-flip lines name the verdict they flip to before the recomputed number. The report format's TL;DR opens with the full verdict with the score carried alongside as candidate quality for the record, and the dimension table gains a verdict row so it still carries the decision when quoted on its own. This lands TESTING: benchmark triage run on wald_friedman — six plugin gaps, and a floor that measures the wrong quantity #14's finding 6.What deliberately did not change
The rubric, weights, gates, verdict bands, sensitivity machinery, and scorecard JSON are untouched — CI's regeneration check passes with byte-identical scorecards, and the anchors reproduce 2.85 / no-conversion / fragile and 2.25 / no-conversion / robust-at-floor. Review mode caught markov_asset's masked build defect and remains the mode that answers "should this PR merge?" when one arrives.
Remaining follow-up (not this PR): QuantEcon.manual#104 — distilling what the validation program measured (the 1 s floor, the addressable-share lesson from wald_friedman, the readability break-even) into the manual's JAX page as the rubric's companion, so the canonical criteria absorb the program's empirical findings. Kenko's review is requested in the comments below and on #10.
🤖 Generated with Claude Code