You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Testing and review protocol for @xuanguang-li — everything we'd like your eyes on, in order, with the machinery validation already done so your time goes to judgement, not reproduction.
Body updated 2026-08-03. PR #5 merged on 2026-07-27 and its branch was deleted, so the five links here 404'd; they now point at main. §3 has been replaced with the current install route, §1's last bullet corrected (#5 adopted the unconditional x64 cap), and §4 carries a status note about the PR it was written against. The comment below records the changes.
Context. Your evaluation system is packaged as the benchmark plugin, on main since #5 (shipped as v0.3.0 on 2026-07-27; current release 0.3.1): the deterministic engine (benchmark/scripts/scoring/), the framework (EVALUATION_FRAMEWORK.md), your ge_arrow (lecture-python.myst#717 → 2.85) and markov_asset (lecture-python.myst#654 → 2.25) evaluations as regression anchors, and a rubric-v2 revision from the 2026-07-21 adversarial design review (your measurement foundation was endorsed by both review tracks and is unchanged). We have already re-validated end-to-end from a fresh checkout of lecture-python.myst#717 on jax 0.10.1: exact reproduction of 2.85 / no-conversion / fragile with the same deciding flips — see reviews/validation-run-ge_arrow-2026-07-22.md. You do not need to repeat that exercise.
1. Review the rubric v2 changes (merged in #5 — read them on main)
The v2 changes touch only the verdict layer of your rubric — dimension scoring is untouched. Please push back on anything; rubric semantics stay yours.
Verdict gates — correctness 1 caps the verdict at net regression, correctness 2 at mixed/wash, enforced in score_all (rubric.py); the logic&design bug-cap is now derived from the correctness evidence (builds / x64 divergence) rather than a hand-set boolean
No-conversion verdict — fires when the baseline as-used total is under a 1 s materiality floor and the candidate is slower as-used; reconciles review mode with your triage bound (the polished-ge_arrow case). The 1 s floor is a labeled policy choice — is it the right one? A run since has produced a case that clears it while having nothing to sell; see TESTING: benchmark triage run on wald_friedman — six plugin gaps, and a floor that measures the wrong quantity #14, finding 4
Sensitivity stamp — score.py perturbs every scored input one at a time (booleans flipped, counts ±1, floats ±10%) and stamps the scorecard robust/fragile with deciding flips listed
K-repeat as-used — median of 3 fresh-process runs per side, with a contested-band annotation when runs span a band edge
The flagged Copilot thread, resolved in Land the lecture evaluation system (benchmark plugin 0.3.0: rubric v2, skill wired) #5 and needing your confirmation: x64 divergence originally forced correctness 1 only when shipped drift also exceeded 1e-8 (your original semantics). Copilot argued for making it unconditional and Land the lecture evaluation system (benchmark plugin 0.3.0: rubric v2, skill wired) #5 adopted that, so matches_under_x64 now caps correctness on its own in score_correctness, with the reasoning in that function's docstring. benchmark/CHANGELOG.md 0.3.0 records the effect: the "wrong economics masked by low precision" case moves from correctness 5 / total 3.25 to correctness 1 / total 2.30, gated to net regression. Confirm or amend
Readability instrument v2 — docstring coverage inverts your own exemplars (odu.py, your LOW example, measures 0.86; flagship-aiyagari style ~0.41–0.55, capped at 2). Proposal: equation-traceability — per numbered equation, cite the single implementing expression; fraction traceable old vs new, same citation discipline as your checklists
Extraction/replay verification — a mechanical diff of extracted code and replayed call sequence against the lecture's cells (our validation run caught an undisclosed whitespace normalisation this way); longer-term, whether executing the lecture itself at both refs should become the as-used source
Confirm or amend the x64 guard decision from item 1 as a rubric-level statement
3. Optional — see the skill in action
Not required (the validation already covers the machinery), but if you want to feel out what reviewers will receive: from a lecture-python.myst checkout, in a Claude Code session, with no clone of this repo and no branch checkout —
Restart the session (plugins register at startup), then:
/benchmark:review-acceleration 717
/plugin is a terminal-CLI built-in; in the VS Code extension or the web app use the equivalent claude plugin … commands (using-skills § Setup).
Evaluation artifacts land in benchmark-eval/<lecture>/ in your workspace; lecture-python.myst#717 should land on exactly 2.85 / no-conversion / fragile (your numbers are the answer key). Any conversion PR works. The by-hand walkthrough of the same steps is docs/tutorial-run-an-evaluation.md. What we most want from this: critique the report — is it something you would sign?
4. The acceptance test — expert-parallel on a conversion PR
Status note (2026-08-03): this section was written against lecture-python.myst#654, which @jstac had already closed unmerged on 2026-07-21 — a couple of hours before this issue was opened — concluding that the lecture stays in NumPy, the same conclusion the skill's markov_asset evaluation reached (2.25/5, headline verdict no-conversion). Step 4 below therefore has no live PR to land on. Whether the acceptance test becomes a retrospective adjudication of lecture-python.myst#654 or retargets to an open conversion PR is being decided in the comments. Two open PRs qualify as independent targets — lecture-python.myst#657 (multi_hyper) and lecture-python.myst#624 (mccall_q). lecture-python.myst#644 (kalman_2) is open and unevaluated but is @xuanguang-li's own, so it cannot serve as the independent half of an expert-parallel test; lecture-python.myst#717 is out for the opposite reason — its 2.85 is published as the answer key and committed as a regression anchor.
The part only you can do (tracked on #4; the #8 work plan that originally carried it was closed on 2026-07-27). Protocol:
The skill runs a complete v2 evaluation of the PR under test from scratch (fresh extraction, measurement, evidence, score, report) — we drive this and post the report here, not on the PR
You evaluate the same PR independently (or, if you prefer, adjudicate the skill's report line by line — your choice; independent-first is the stronger test)
We reconcile: every discrepancy resolved by evidence, with the rubric amended where your judgement and the instrument disagree
The reconciled report becomes the single authoritative comment on the PR under test
Target PR agreed (retrospective on lecture-python.myst#654, or an open conversion PR)
Skill evaluation posted on this issue
Independent expert evaluation (or line-by-line adjudication) by @xuanguang-li
Comment here, on #7, or on #14 — whatever is easiest. Relates to #4 (skill wiring and the named validation runs), #7 (rubric v2), #14 (triage-run findings).
Testing and review protocol for @xuanguang-li — everything we'd like your eyes on, in order, with the machinery validation already done so your time goes to judgement, not reproduction.
Body updated 2026-08-03. PR #5 merged on 2026-07-27 and its branch was deleted, so the five links here 404'd; they now point at
main. §3 has been replaced with the current install route, §1's last bullet corrected (#5 adopted the unconditional x64 cap), and §4 carries a status note about the PR it was written against. The comment below records the changes.Context. Your evaluation system is packaged as the
benchmarkplugin, onmainsince #5 (shipped as v0.3.0 on 2026-07-27; current release 0.3.1): the deterministic engine (benchmark/scripts/scoring/), the framework (EVALUATION_FRAMEWORK.md), your ge_arrow (lecture-python.myst#717 → 2.85) and markov_asset (lecture-python.myst#654 → 2.25) evaluations as regression anchors, and a rubric-v2 revision from the 2026-07-21 adversarial design review (your measurement foundation was endorsed by both review tracks and is unchanged). We have already re-validated end-to-end from a fresh checkout of lecture-python.myst#717 on jax 0.10.1: exact reproduction of 2.85 / no-conversion / fragile with the same deciding flips — see reviews/validation-run-ge_arrow-2026-07-22.md. You do not need to repeat that exercise.1. Review the rubric v2 changes (merged in #5 — read them on
main)The v2 changes touch only the verdict layer of your rubric — dimension scoring is untouched. Please push back on anything; rubric semantics stay yours.
score_all(rubric.py); the logic&design bug-cap is now derived from the correctness evidence (builds/ x64 divergence) rather than a hand-set booleanscore.pyperturbs every scored input one at a time (booleans flipped, counts ±1, floats ±10%) and stamps the scorecard robust/fragile with deciding flips listedmatches_under_x64now caps correctness on its own inscore_correctness, with the reasoning in that function's docstring.benchmark/CHANGELOG.md0.3.0 records the effect: the "wrong economics masked by low precision" case moves from correctness 5 / total 3.25 to correctness 1 / total 2.30, gated to net regression. Confirm or amend2. Three design calls (comment on #7)
3. Optional — see the skill in action
Not required (the validation already covers the machinery), but if you want to feel out what reviewers will receive: from a
lecture-python.mystcheckout, in a Claude Code session, with no clone of this repo and no branch checkout —Restart the session (plugins register at startup), then:
/pluginis a terminal-CLI built-in; in the VS Code extension or the web app use the equivalentclaude plugin …commands (using-skills § Setup).Evaluation artifacts land in
benchmark-eval/<lecture>/in your workspace; lecture-python.myst#717 should land on exactly 2.85 / no-conversion / fragile (your numbers are the answer key). Any conversion PR works. The by-hand walkthrough of the same steps is docs/tutorial-run-an-evaluation.md. What we most want from this: critique the report — is it something you would sign?4. The acceptance test — expert-parallel on a conversion PR
Status note (2026-08-03): this section was written against lecture-python.myst#654, which @jstac had already closed unmerged on 2026-07-21 — a couple of hours before this issue was opened — concluding that the lecture stays in NumPy, the same conclusion the skill's markov_asset evaluation reached (2.25/5, headline verdict no-conversion). Step 4 below therefore has no live PR to land on. Whether the acceptance test becomes a retrospective adjudication of lecture-python.myst#654 or retargets to an open conversion PR is being decided in the comments. Two open PRs qualify as independent targets — lecture-python.myst#657 (multi_hyper) and lecture-python.myst#624 (mccall_q). lecture-python.myst#644 (kalman_2) is open and unevaluated but is @xuanguang-li's own, so it cannot serve as the independent half of an expert-parallel test; lecture-python.myst#717 is out for the opposite reason — its 2.85 is published as the answer key and committed as a regression anchor.
The part only you can do (tracked on #4; the #8 work plan that originally carried it was closed on 2026-07-27). Protocol:
Comment here, on #7, or on #14 — whatever is easiest. Relates to #4 (skill wiring and the named validation runs), #7 (rubric v2), #14 (triage-run findings).