Repository navigation
feat(eval): rebuild markkit-eval as a mira study - #25
Merged
Merged
Conversation
markkit-eval was a CLI stub. It is now a mira study binary (modeled on bashkit-eval) advertising markkit_extract: ten realistic HTML pages run through markkit in-process and scored by typed deterministic checks, with one scorer per quality metric (completeness, accuracy, formatting, noise). Offline and key-free; the single target is markkit itself. Baseline: 72.5% mean weighted rate, noise 34.3%. Gaps recorded in knowledge/operations/eval.md.
…-96emgz # Conflicts: # knowledge/log.md
markkit_extract gains a mode axis (default vs main_content) so reports
compare the two configs on the same pages. First full run committed as
results/markkit_extract-2026-10-27.{md,json}: default 73.6% (0/10 pages),
main_content 87.4% (3/10); main_content drops the forum question.
…-96emgz # Conflicts: # knowledge/log.md
Re-run after #23 (markdown escaping): product_page now fails contains "4.6 out of 5 stars" because the renderer emits 4\.6, which is not a list marker. Recorded as an open gap.
chaliy
added a commit
that referenced
this pull request
Oct 27, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Requested by Михайло · project thread
What changed
This PR replaces the stub
markkit-evalCLI with a mira eval study, modeled on bashkit-eval. The study has one eval,markkit_extract:crates/markkit-eval/data/pages/: news, docs, blog, commerce, recipe, wiki, forum, changelog, a data table and a 90s legacy layout. Each page wraps real content in the usual chrome (nav, cookie banners, ads, share buttons, comments, asides, footers). The pages are embedded withinclude_str!.extract_html_sync) and recordsextract_us,input_bytes,output_bytesandsize_ratio.modeaxis:default(the builder defaults) andmain_content(the opt-in main-content detector). Both modes run on the same pages and checks, so the report shows them side by side.markkit_expectationspasses only if every check passes, and its value is the weighted pass rate. There is also one scorer per metric:completeness,accuracy,formattingandnoise. Checks are typed JSON (contains,not_contains,line,heading,link,order), with no regex.Target::cli("markkit"). The eval is offline, needs no key and gives the same result on every run. LLM evals (an LLM judge, and downstream Q&A across a model matrix) come in a follow-up; they need a model API key in the environment.crates/markkit-eval/results/markkit_extract-2026-10-27.{md,json}. Mira run folders are gitignored.just evalandjust eval-listrunmira runandmira listwith--study-bin markkit-eval.knowledge/operations/eval.mdis rewritten to cover the design, dataset format, checks, mode axis, results and baseline.Why
This is roadmap initiative 9 ("yes, use mira"). There was no way to measure extraction quality.
Before / After
Before:
cargo run -p markkit-evalprintedevaluation harness not yet implemented.After:
just eval, run on main at 5a7434c.defaultmain_contentWhat the eval found:
<tr><th>Weight</th><td>1.2 kg</td></tr>) dropping every value. IR v2 has since fixed this.4.6 out of 5 starsnow renders as4\.6 out of 5 stars.4.6is not an ordered-list marker, so the backslash is just noise. Because of this,main_contenton the product page dropped from 100% to 95%.main_contentkeeps only the accepted answer on a Q&A page and drops the question. Forum scores 81% indefaultand 62% inmain_content.<tfoot>and<caption>are dropped and[edit]links leak into headings.Risk
publish = false), docs and knowledge. Library behavior is unchanged.mira-eval0.5 (MIT) and onmarkkitwithhtmlonly, so no reqwest or hyper.cargo deny checkpasses.mira runexits non-zero while any page fails. That is expected for a measurement, and CI does not run it.Checklist
main_contentchanges the output), and the subject.--providerand--datasetflags are removed; they never did anything.Locally, fmt, workspace clippy
-D warnings,cargo test --workspace, check_okf, okf-lint 0.1.1 andcargo deny checkall pass, and the eval runs end to end with the realmira0.5 CLI.🤖 Generated with Claude Code