Two navigation arms, one visible at a time
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.