# DEVIATION 1: B3 GraphWalks queried-node parser (O4)

Written 2026-10-27 ~07:30 MDT by Ford's executor, **before any B3 item file was built and before any nulltest run on B3**.
Departs from: PREREG.md (sha256 76b3091cc177df8c63a97e3d0c8efaef82d1e84b50abdfec17a2ebb8b1dcbc16), §3 O4 "Graph parser".

## What the prereg says
"The queried node is the node named in the final operation line (the token after "node", trailing punctuation stripped)."
"The final operation line" was defined as the last line containing `Operation:`.

## What the data shows (structure only, 2 prompts of the 128k file inspected)
In `openai/graphwalks` @ be6cc6ec the last line containing `Operation:` is the bare header `Operation:`. The operation
sentence is on the next line, e.g. `Find the parents of node <id>.`. Read literally, no queried node is found in any
task, so the parse-drop rate is ~100% (the exact literal-rule count is in build_summary.json / DATA_MANIFEST.json).

## Change
If the last `Operation:` line contains no `node <token>`, the queried node is taken from the **first non-empty line after
it** (same regex `\bnode\s+(\S+)`, same punctuation strip). Nothing else changes: the graph-block rule (last contiguous
`a -> b` block before the last `Operation:` line), the drop rules, the 10% cutoff, the ≤5 / 1:1 sampling, seed 20261028,
stratum `problem_type` and the controls are all as in PREREG.md.

## Why
It is the minimal reading that matches the prereg's evident intent (the card: "the graph and the operation"). No item
labels, node statistics or cue statistics were looked at in choosing it.

## Gate status
Under the literal PREREG.md rule B3 fails the parser gate ("not run: parser failure"). The run instruction was to
score only benchmarks whose data gates pass "as specified", so **B3 items are built under this deviation, but B3 is
NOT scored by this executor**. Scoring B3 under DEVIATION_1 needs Ford's (and, if he wants it, Abe's/Kevin's) decision.
