library_revise_docx takes an address in arm B

↗ view on GitHub · Eli Ziff · 2026-07-31 · b53c1353

The edit tool required context_before and context_after -- ~40 characters
either side of the target, retyped by the model from memory of text it read
earlier. Every misquote in the edit benchmark was one of those strings: the
model joined two lines with a space where the document has a newline, or
invented a blank line where extraction has one.

With `at`, the model sends only the provision and what to change. The server
locates `find` inside that provision's span and reads the surrounding
characters off the document, so the bytes come from the document instead of
from the model's reconstruction of it.

Legacy keeps the old required shape. Arm B drops the context pair from
`required` and adds `at`.

Also hoisted NAV_TOOL_SHAPE above its first use -- the tool factory runs at
module init and read it from the temporal dead zone, which broke 13 tests.

1,195 tests pass.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01H9ToHYJVDxfeJcJwdzrP2H
Repository eliziff/Beaver
Author Eli Ziff <eliasziff@gmail.com>
Authored
Parents 595e2333
Stats 1 file changed , +92 , -18
Part of SourceDoc / DOCX engine: redlines, tracked changes, editing benchmark

Capture this commit into my fork

Download a Markdown prompt that tells Claude how to port this exact commit into your working tree. Run it via claude -p < capture-commit-b53c1353.md from inside the repo you want the change in.

⬇ Download capture-commit-b53c1353.md