The quote comes first - #748
Merged
Merged
Conversation
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com>
WaylandYang
force-pushed
the
feat/the-quote-comes-first
branch
from
September 17, 2026 17:00
a67fde1 to
f36dc19
Compare
This was referenced Sep 17, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Pitfall 9 of
docs/design/prior-work.md: the contract's shape has a cost, and quoting before stating improves grounding (Huang et al. 2024). Also closes out pitfalls 3 and 5 by measurement.What lands
The quote comes first. A statement in
sis now[quote, subject, phrase, object, value, qualifiers, when, ended]: the model copies the sentence of the passage before it writes the statement from it. The parser reads the new order; nothing downstream changes, because the server addresses the fields by name. Thenentries keep their quote last. The prompt is 160 characters longer; the cost per call is unchanged.Figures are counted before a second pass is built.
scripts/bench/figures.mjs --kb <id>is a structural count: every money, percentage, unit-bearing or comma-grouped figure a chunk states, checked against the object, value, qualifiers and time words of every statement of that chunk; table rows and prose are counted apart, years are not figures. On the runs in the e2e base, with reasoning on at the endpoint:The prose misses are one sentence comparing twice ("up 18% from the previous quarter and up 117% from a year ago"; "reduced ... by 27% ..., compared to a 10%"). A second-look pass over dropped figures (pitfall 5) is not worth a call per chunk at this rate; the page records the count and the script, and the pass waits for a corpus that loses more. Pitfall 3 (one statement is one complete proposition) has been the contract since #743 and is marked so.
Measured
Same four NVDA documents, reasoning on at the endpoint, the same fast judge (thinking off), against the #745 run:
The table-row difference is two chunks, and neither is the order's doing. Fifteen of the nineteen faulted rows are one footnote table whose caption is a sentence ("(A) Acquisition-related and other costs are comprised of ..."); this run wrote its rows about the caption's thing with the row label as phrase, the #745 run wrote them about the company with the caption's thing as phrase and lost the row label. Asked directly about that chunk, twice under each order with the same opening and known list, the model wrote the same rows all four times, with their periods. The other twenty are cash-flow rows that both runs wrote identically ("provided by operating activities › Stock-based compensation expense") and the judge marked reads-alone false only this time. A new signal,
object_undeclared×16, is the proxy-vote table of one 8-K whose counts the model put in the object slot; the server keeps them as values.Not in this change
Clause-level quotes measured against minimal ones (the rest of pitfall 9); the judge's misworded split into extrapolated and contradicted (pitfall 8); a run-to-run stability number, which the footnote table above asks for.
🤖 Generated with Claude Code