Nav: editing one slot of a (verb · URI) address

Navigation moves around Beagle's resources by editing ONE axis of the current address while the other axes carry over. Every invocation — a CLI argv, a Bro pager :-spell, or a click on a hunk — is module(args): the head word names a JS module (a Verbs verb or a Projector view), the tail is its args, i.e. a URI. A pager view carries a live (verb · scheme · authority · path · ref · frag) state; a spell mutates one slot and inherits the rest. One tokenizer and one "does the name resolve" test serve both the CLI entry and the pager; an address resolves once, at entry, never re-derived downstream.

Invocation is module(args)

The head token resolves to a module and the tail becomes its args; there is no verb-vs-scheme classifier, only "does the name name a module."

Views are verbs, not schemes

A projector is an operation, not a transport, so it lives in the head (verb) slot; the scheme slot narrows to addressing alone.

Navigation edits one slot

A spell SETS the slots it names and INHERITS the unnamed from the current view; typed input is PARSED by the URI lexer (never re-classified by hand) and each present component overrides its slot.

Worktrees and remotes are authorities

The authority slot names WHICH working copy or remote; a bare // reads locally, a scheme opts into the wire.

Click-targets are spells

A hunk's U-tag carries a verb args spell, store-prefixed, so click-through re-dispatches in the store the hunk came from.