Skip to content

evals: post-guard live run on main — GREEN - #8

Open
Wynelson94 wants to merge 1 commit into
mainfrom
evals/post-guard-run
Open

evals: post-guard live run on main — GREEN#8
Wynelson94 wants to merge 1 commit into
mainfrom
evals/post-guard-run

Conversation

@Wynelson94

Copy link
Copy Markdown
Owner

Second live eval of the day, this time on merged main (trafilatura 2.2 + the guard-coverage pass). The first run covered the dependency upgrade only; this one exercises the crawl and extract refusal paths that the 194-page cache replay structurally could not reach — that replay only drives assess_extraction over stored HTML.

VERDICT: GREEN

All 9 gates PASS. 40 items + 45-scrape burst (40 ok, 5 honest refusals, 0 FAIL, 0 exceptions). Zero fabrications, zero cache poison, baselines stable across the 5 pinned immutables. crawl_ruff passes with the new index format (refused: 0).

Exactly one item changed — and it's external

item baseline post-guard
irs_p15 pass unreachable (HTTP 403)

Everything else is identical across 40 items. I verified the cause rather than assuming it:

  • fetch.py and config.py are byte-identical between 06296c8 (pre-guard) and 77196fc (post-guard) — git diff is empty, so the guard PR cannot have caused it
  • curl gets HTTP 200 from the same URL using tearsheet's exact User-Agent and Accept header, over both HTTP/1.1 and HTTP/2
  • the other PDF item (berkshire_pdf) still extracts figures normally, so the PDF path is healthy

The discriminator therefore sits below the HTTP layer — TLS client fingerprinting. irs.gov has joined the Akamai class that already 403s eCFR and dodcio for this tool. Tearsheet reported it honestly as a fetch error rather than serving anything invented; the zero-fabrication record holds.

No corpus change proposed here — corpus.json is the trust instrument and shouldn't be edited to make a run look cleaner. If irs.gov stays blocked, swapping that item for a reachable PDF is a separate, deliberate decision.

Note on the preserved report

run_eval.py:503 hardcodes the output directory to reports/<today>, so re-running today would have silently overwritten the pre-guard baseline that #6 references. That report is now reports/2026-08-11-run1/, matching the existing 2026-07-16 / 2026-07-16-run1 convention, and the plain-date directory holds the latest run.

🤖 Generated with Claude Code

Second run of the day, on merged main (trafilatura 2.2 + the guard-coverage
pass). The first run covered the dependency upgrade only; this one exercises
the crawl and extract refusal paths the 194-page cache replay structurally
could not reach, since that replay only drives assess_extraction over stored
HTML.

The earlier report is preserved as reports/2026-08-11-run1/ rather than being
overwritten — run_eval.py hardcodes the output directory to today's date, and
that report is the pre-guard baseline referenced by #6. Matches the existing
2026-07-16 / 2026-07-16-run1 convention.

VERDICT: GREEN. All 9 gates PASS. 40 items + 45-scrape burst (40 ok, 5 honest
refusals, 0 FAIL, 0 exceptions). Zero fabrications, zero cache poison, zero
unhandled exceptions, baselines stable.

Exactly ONE item changed status against the baseline:

  irs_p15   pass -> unreachable (HTTP 403)

That is external, and it was verified rather than assumed:
  - fetch.py and config.py are BYTE-IDENTICAL between 06296c8 (pre-guard) and
    77196fc (post-guard), so the guard PR cannot have caused it
  - curl gets HTTP 200 from the same URL with tearsheet's exact User-Agent AND
    Accept header, over both HTTP/1.1 and HTTP/2
  - the other PDF item (berkshire_pdf) still extracts figures normally

So the discriminator sits below the HTTP layer — TLS client fingerprinting.
irs.gov has joined the Akamai class that already 403s eCFR and dodcio, and
tearsheet reported it honestly as a fetch error instead of serving anything
made up. The record of zero fabrications holds.

crawl_ruff passes with the new index format (`refused: 0`).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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