Problem
The compare_context7.py --emit-readme --check drift guard (and its test_emit_readme_block_matches_committed_readme twin) is genuinely fail-loud when run, but .github/workflows/ci.yml runs only swift build + swift test — the Python suite is manual/periodic by project policy (CLAUDE.md: "CI runs swift build + swift test per push/PR"). So a reviewer who hand-edits the README competitive chart's numbers merges green through CI; the drift is caught only if a human independently remembers to run pytest or --check.
The verify ensemble (requirements + devil's-advocate lenses, #46) flagged this as the guard is least likely to fire precisely when it is needed — nothing prompts a --check after a prose/README edit, unlike sync-test-counts.sh which a dev naturally triggers when touching tests.
Why this is a separate issue (not part of #46)
#46's locked scope was README-top + chart + harness-generated, and its framing was explicitly "à la sync-test-counts.sh" — which is also manual. Making the Python suite (or a targeted --emit-readme --check step) part of CI is a pre-existing project CI-policy decision that predates #46 and affects the whole Python suite, not just the chart.
Options
- Add a lightweight
python3 evals/look-up/compare_context7.py --emit-readme --check step to ci.yml (cheapest — just the chart drift, no claude -p cost).
- Or run the full
pytest evals/look-up/tests/ in CI (broader, but the suite is deliberately kept off the critical path because run_eval.py makes real claude -p calls — note the unit tests don't).
Expected
A decision + (if yes) a CI step so the "measured, never asserted" guarantee is enforced mechanically at the PR gate, not just on a remembered manual run.
Source: surfaced during /idd-verify #46 (requirements + devil's-advocate lenses). Non-blocking follow-up — beyond #46's locked scope.
Current Status
Phase: closed (merged + verified; see Closing Summary)
Problem
The
compare_context7.py --emit-readme --checkdrift guard (and itstest_emit_readme_block_matches_committed_readmetwin) is genuinely fail-loud when run, but.github/workflows/ci.ymlruns onlyswift build+swift test— the Python suite is manual/periodic by project policy (CLAUDE.md: "CI runs swift build + swift test per push/PR"). So a reviewer who hand-edits the README competitive chart's numbers merges green through CI; the drift is caught only if a human independently remembers to run pytest or--check.The verify ensemble (requirements + devil's-advocate lenses, #46) flagged this as the guard is least likely to fire precisely when it is needed — nothing prompts a
--checkafter a prose/README edit, unlikesync-test-counts.shwhich a dev naturally triggers when touching tests.Why this is a separate issue (not part of #46)
#46's locked scope was README-top + chart + harness-generated, and its framing was explicitly "à la
sync-test-counts.sh" — which is also manual. Making the Python suite (or a targeted--emit-readme --checkstep) part of CI is a pre-existing project CI-policy decision that predates #46 and affects the whole Python suite, not just the chart.Options
python3 evals/look-up/compare_context7.py --emit-readme --checkstep toci.yml(cheapest — just the chart drift, noclaude -pcost).pytest evals/look-up/tests/in CI (broader, but the suite is deliberately kept off the critical path becauserun_eval.pymakes realclaude -pcalls — note the unit tests don't).Expected
A decision + (if yes) a CI step so the "measured, never asserted" guarantee is enforced mechanically at the PR gate, not just on a remembered manual run.
Current Status
Phase: closed (merged + verified; see Closing Summary)