Two navigation arms, one visible at a time

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

MIKE_NAV_SHAPE selects the surface the model sees. "legacy" is what shipped
before today -- read by section or offset, unscoped find, no page addressing,
no graph. "address" is one grammar: `at` everywhere, head/tail, both page
schemes, library_links, and edit scopes that name a provision.

No shims in either direction. The address arm drops `section`/`page`/`pages`/
`offset` outright rather than accepting them as deprecated aliases: an arm
that still answers to the other arm's vocabulary is not a separate condition,
and a model that finds `section=` quietly working has not been asked the
question.

  arm A  read(document_id, mode, section, offset, max_chars)
         find(query, regex, case_insensitive, max_results, context_chars)
         2,809 chars over 3 tools

  arm B  read(document_id, mode, at, from, max_chars)
         find(query, regex, case_insensitive, at, follow, depth, ...)
         links(document_id, at, max_results)
         5,006 chars over 4 tools

Arm B is larger, and that is the honest starting position rather than a
problem to hide: it carries a tool arm A does not have and two scope
dimensions arm A cannot express. Whether that buys anything is the question,
and Eli has already said an obvious regression disqualifies it.

Default stays legacy, so nothing about the shipped product changes until a
measurement says it should.

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 397b84f0
Stats 1 file changed , +60 , -3
Part of Evaluation harness: Beaver-CAN and LegalBench-RAG adapters

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-e339f0c6.md from inside the repo you want the change in.

⬇ Download capture-commit-e339f0c6.md