Skip to content

feat(eval): add public WCXB and AgentDocBench regression benchmarks - #58

Merged
chaliy merged 2 commits into
mainfrom
feat/public-benchmarks
Oct 28, 2026
Merged

chaliy merged 2 commits into
mainfrom
feat/public-benchmarks

Conversation

@chaliy

@chaliy chaliy commented Oct 28, 2026

Copy link
Copy Markdown
Contributor

What changed

Markkit now runs WCXB and AgentDocBench through Mira with pinned inputs, the unchanged upstream scorers, release CLI conversion timings, and a committed quality baseline. PRs and pushes run 178 cases; nightly runs evaluate 2,754 cases. Reports and provenance are uploaded even when a gate fails.

The fixed development slice gates canonical aggregates and per-type/category/format scores, allowing at most 0.005 absolute regression. Full dev runs gate that identical subset and report the complete selection separately. Manual test evaluation enforces coverage/execution while keeping test quality report-only.

Why

The existing extraction study has ten handcrafted HTML fixtures. Public corpora add realistic web page diversity and native-document/PDF coverage, while the internal structural, QA and security tests remain in place.

Before / After

Before: no public-corpus run, public baseline, or scheduled public regression gate.
After: just eval-public-setup, just eval-public-prepare, just eval-public produce canonical quality and fresh-process conversion timings through Mira.

Executed release results, committed under crates/markkit-eval/results/:

  • Fixed PR selection: 178/178 cases; zero regressions. WCXB F1 0.6771 default / 0.4999 main-content.
  • Complete development selection: 2,754/2,754 cases; zero regressions. WCXB F1 0.7366 default / 0.6534 main-content.
  • AgentDocBench: 0.7520 full category macro; supplementary no-OCR 0.8204. Three image-only PDFs remain zero in the full denominator.

The corpus audit found 139 identical HTML files shared by WCXB dev/test. Development runs exclude them, leaving 1,358 pages; the 511-page test split stays separate. Empty/absent full-text references retain upstream scoring behavior and are identified in reports.

Validation: just pre-pr passed; all 34 script tests passed in the scorer environment. Contract tests cover split leakage, verified-cache recovery, traversal, canonical weighting, missing/duplicate/N/A/invalid scores, regression policy, and failed runs replacing stale successful artifacts. Mira 0.5.0 and Python dependencies are checksum/hash pinned. Most added lines are immutable corpus locks, attribution and unchanged vendored SDK/scorers.

Risk

  • Low: development tooling and CI only; no published library/binding dependency or extraction behavior change.
  • External corpus/release availability can fail preparation; verified caching limits repeated downloads.
  • CI gates quality, not latency across different machines. Timings use three sequential fresh processes after one warm-up and include startup.

Checklist

  • Tests added or updated
  • Backward compatibility considered
  • Knowledge, usage docs, notices and Unreleased changelog updated

@chaliy
chaliy merged commit 78a26e3 into main Oct 28, 2026
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant