Roadmap for iterating on the parsing-accuracy eval (the hard codex eval + the fixed rubric benchmark). Ordered by priority — from "do immediately" to "nice-to-have".
Context (where we are)
- The hard eval runs the real
codex exec annotate pipeline on eval/eval-cases.json (43 cases, medium → very-hard) and scores byte-exact resolution.
- The instrument now reports two signals — reliability (codex accuracy) vs capability (can the library express it) — plus auto-located drift, cross-round per-case reliability, and a clickable parse modal (Eval tab).
eval/gap-backlog.md tracks discovered ts-def gaps (fixed / won't-fix / open).
- Round 4 hit 100%, but that was N=1 — a single lucky-consistent sample. The cross-round view shows the truer per-case picture.
1. Immediate: multi-sample to turn the headline into trustworthy numbers
Round 4's 100% is one sample. Run a round at --samples 3–5 so every case gets a reliability band: solid (5/5) / flaky (2/5) / real gap (0/5). Until then every trend number still carries single-shot noise and shouldn't drive conclusions.
2. Core: couple the eval to the real course corpus (both directions)
Today the eval runs synthetic hard sentences, decoupled from product content.
3. Core: make the loop actually closed + add a CI regression gate
Each round is currently driven manually.
4. Growth: rotate the case set + map coverage to grammar points
A fixed 43-case set will get overfit.
5. Deepen: structured failure analysis + partial credit
Failures are currently binary + one drift span.
Open question (sets priority)
Is this eval primarily a quality gate for the course/library (then prioritize 3 + 4) or a research engine pushing codex+library capability (then prioritize 2 + 5)? Recommendation regardless: do 1 first (cheap, makes the numbers trustworthy), then 2 (lands value on the actual product).
Roadmap for iterating on the parsing-accuracy eval (the hard codex eval + the fixed rubric benchmark). Ordered by priority — from "do immediately" to "nice-to-have".
Context (where we are)
codex execannotate pipeline oneval/eval-cases.json(43 cases, medium → very-hard) and scores byte-exact resolution.eval/gap-backlog.mdtracks discoveredts-defgaps (fixed / won't-fix / open).1. Immediate: multi-sample to turn the headline into trustworthy numbers
Round 4's 100% is one sample. Run a round at
--samples 3–5so every case gets a reliability band: solid (5/5) / flaky (2/5) / real gap (0/5). Until then every trend number still carries single-shot noise and shouldn't drive conclusions.eval-codex --samples 3(or 5) on the full set; publish per-case reliability bands.2. Core: couple the eval to the real course corpus (both directions)
Today the eval runs synthetic hard sentences, decoupled from product content.
gap-backloglibrary gaps back into the course/library — close.d.tsgaps so spots that today must be raw literals become properly modeled.jpfrom chapter examples).3. Core: make the loop actually closed + add a CI regression gate
Each round is currently driven manually.
annotate.tsor the library is caught automatically (this was the point of building the medium tier).4. Growth: rotate the case set + map coverage to grammar points
A fixed 43-case set will get overfit.
5. Deepen: structured failure analysis + partial credit
Failures are currently binary + one drift span.
Open question (sets priority)
Is this eval primarily a quality gate for the course/library (then prioritize 3 + 4) or a research engine pushing codex+library capability (then prioritize 2 + 5)? Recommendation regardless: do 1 first (cheap, makes the numbers trustworthy), then 2 (lands value on the actual product).