[CLAUDE-OPUS-5]
Gap
A page can render normally, return HTTP 200, and contain zero results. The verifier (§3.6) checks "required row counts" only when the task states a count. Several eval tasks state none, and for those an empty result is currently indistinguishable from a correct one.
Evidence
The Y Combinator directory URL ycombinator.com/companies?batch=W24 renders a complete, healthy page whose result pane reads "Sorry, no matching companies found". The facet value is no longer W24; the working value is Winter 2024, which returns results normally. Nothing about the failed page looks like a failure.
This is the single most dangerous pattern in the eval set. It produces a well-formed, empty, confidently wrong CSV.
A related trap on the same site: filters apply asynchronously after the initial render, so an extraction that runs too early sees zero rows on a URL that would have worked.
Scope
- Add a zero-result detector that runs before extraction: known empty-state strings, result-count elements, and a comparison against any total the page reports.
- Treat zero rows as
blocked by default, never success, unless the task explicitly anticipates an empty set.
- When a filter is expressed as a URL parameter, verify the applied filter chip in the rendered page matches the requested value before extracting.
- Add a settle-and-recheck step so an early read cannot be mistaken for an empty result.
Acceptance
- The
batch=W24 URL produces blocked with a reason naming the unmatched filter value.
- A task with no stated row count still cannot report
success on zero rows.
[CLAUDE-OPUS-5]
Gap
A page can render normally, return HTTP 200, and contain zero results. The verifier (§3.6) checks "required row counts" only when the task states a count. Several eval tasks state none, and for those an empty result is currently indistinguishable from a correct one.
Evidence
The Y Combinator directory URL
ycombinator.com/companies?batch=W24renders a complete, healthy page whose result pane reads "Sorry, no matching companies found". The facet value is no longerW24; the working value isWinter 2024, which returns results normally. Nothing about the failed page looks like a failure.This is the single most dangerous pattern in the eval set. It produces a well-formed, empty, confidently wrong CSV.
A related trap on the same site: filters apply asynchronously after the initial render, so an extraction that runs too early sees zero rows on a URL that would have worked.
Scope
blockedby default, neversuccess, unless the task explicitly anticipates an empty set.Acceptance
batch=W24URL producesblockedwith a reason naming the unmatched filter value.successon zero rows.