Repository navigation
test(eval): pin check error and baseline delta; fix harness docs - #346
Conversation
Settles three points the reviews of intel#116 and intel#280 left open. intel#116: preparing-a-repository.md said no loading behavior was measured for Codex and Copilot, while the built-in codex and copilot profiles record measurements on codex-cli 0.160 and Copilot CLI 1.0.91 in their guidance.notes. The sentence now points at those profiles; a harness without a built-in profile still needs its own harness_profile.v1 and a dokimi repo reach measurement. intel#280: two outputs had no test that failed when they changed. - A judge check whose call fails carries its "error" in the cell's checks entry, and a graded check has no "error" key (CheckResult.as_dict); the new test goes through eval reference's score(). - The baseline arm's per_arm delta_vs_baseline is present and null, not missing and not 0.0 (ArmRunner._summarize). Signed-off-by: Anton Volkov <antonwolfy@gmail.com>
There was a problem hiding this comment.
🟢 Approval recommended
No active review issues block the added regression assertions and corrected harness-loading documentation.
No open issues 🎉
What changed in this PR
0 new findings; nothing to fix.
This follow-up to #116 and #280 adds regression assertions for evaluation output and corrects harness-loading documentation. No package code changes.
Changes:
- Verify that failed judge checks include an error while successful match checks omit it.
- Pin the baseline arm’s
delta_vs_baselinefield as present andnull. - Clarify that Codex and Copilot CLI loading behavior was measured, with references to their built-in profiles.
| File | Description |
|---|---|
dokimi/tests/test_reference_checks.py |
Adds assertions for per-check error serialization. |
dokimi/tests/test_arm_cell_errors.py |
Verifies the baseline delta field exists and is None. |
dokimi/docs/preparing-a-repository.md |
Corrects measurement claims for Codex and Copilot CLI. |
Review effort: Balanced
|
✅ OpenCodeReview: Review complete: 0 finding(s) across 3 selected item(s). Review details
|
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #346 +/- ##
==========================================
+ Coverage 94.05% 94.06% +0.01%
==========================================
Files 297 297
Lines 38018 38018
Branches 6424 6424
==========================================
+ Hits 35758 35762 +4
+ Misses 1452 1449 -3
+ Partials 808 807 -1 🚀 New features to boost your workflow:
|
Summary
Follow-up to the reviews of #116 and #280, which left three points open.
docs/preparing-a-repository.mdsaid "Other harnesses (Codex, Copilot and others) are not listed because no loading behavior was measured for them." The built-in profiles say otherwise:dokimi/repos/profiles/codex.yamlrecords "Measured on 0.160 with gpt-6-luna (oneDAL review task): root AGENTS.md applied, …", andcopilot.yamlrecords "Measured on Copilot CLI 1.0.91 (BYOK, …)". The checklist half of that item was fixed in 25dd17d; this sentence was not.maineach of these changes leaves the suite green:mainmain"error"in itschecksentryCheckResult.as_dict,dokimi/eval/reference_checks.py:91-92errorlinesper_arm[<baseline>]["delta_vs_baseline"]is present andnullArmRunner._summarize,dokimi/eval/arm_runner.py:769-771else None→else 0.0Changes
docs/preparing-a-repository.md(section 7): the sentence under the table now says Codex (codex-cli 0.160) and Copilot CLI (1.0.91) were measured, and points at theguidance.notesof the built-incodexandcopilotprofiles. A harness without a built-in profile still needs its ownharness_profile.v1and adokimi repo reachmeasurement, and thetext-trace sentence stays. The table still has only the Claude Code row: the paragraph below it already lists the five built-in profiles and saysrepo reachrefusescodex-review.tests/test_reference_checks.py: newtest_the_failed_judge_check_names_its_error_in_the_cell_and_the_graded_check_has_none. It runseval reference'sscore()with a judge that raisesTimeoutErroron a question with amatchcheck and ajudgecheck. The judge check's entry in the cell'schecksmust carry"error": "judge: TimeoutError", and thematchentry must be exactly{"type": "match", "passed": true, "score": 1.0}, with noerrorkey.tests/test_arm_cell_errors.py:test_delta_vs_baseline_is_paired_over_the_questions_both_arms_scorednow also asserts that the baseline arm has thedelta_vs_baselinekey and that it isNone. In that test the baseline has scored questions, so a self-paired delta would come out as0.0.dokimi/dokimi/,dokimi/data/or the install metadata changes, and CI'sFragment for package changesstep agrees.Risk
None: no package code changes. The doc change is one paragraph of section 7.
Testing
On a Linux review host, at
989ef44(onmain27cc760):make ci-local: 30 passed, 0 failed, 7 skipped. Skipped:agent-quality.yml:external-catalog-smoke(needs docker and network),conda-forge.yml:conda-forge-deps(micromamba not on PATH), semgrep secrets (offline; runs on the PR),cli-interface.yml:cli-surface / Package the result(an output expression ci-local cannot evaluate), andci.yml:test-latest,docs.yml:deployandpip-audit.yml:report(their job conditions are false on a PR).12001 tests passed, 59 skipped, 6 xfailed. Changed-line coverage: no measurable lines, because only tests and docs change.
test_docs_code_refs.py,test_growth_ratchet.py,test_audit_test_quality.pyandtest_import_architecture.py: 381 passed.ruff checkis clean on both test files.if self.error is not None: out["error"] = self.errorinCheckResult.as_dict: the new reference-checks test fails (KeyError: 'error')._summarize,else None→else 0.0: the paired-delta test fails (assert 0.0 is None)._summarize, drop the baseline condition, so the baseline is paired with itself: fails (assert 0.0 is None)._summarize, setdelta_vs_baselineonly for non-baseline arms: fails ('delta_vs_baseline' in {'avg_aggregate': 63.3, 'n': 3, 'errors': 0}).Revert
A plain revert. Nothing is stored and no schema changes.
Checklist
pytestpassesruff,mypy, and schema checks passAGENTS.md.github/.licenserc.yaml)