?ref, verb! and schemed tokens mis-peelshared/spell.js (mergeUri/compose/buildSpell) owns the typed-spell context edit; four defects break the "navigate like a directory tree" feel. All runtime-VERIFIED in the 2026-07-07 pager nav audit. Method Issues.
joinPath treats the context path as a directory, but a cat view's context IS a file. VERIFIED: ctx //WT/dir/file.c?br + ./sib.c → //WT/dir/file.c/sib.c ("no hunks"); ../x → //WT/dir/x (shell intuition: . = the containing dir, so ./sib.c should be dir/sib.c, .. should be the PARENT of dir). Needs a file-vs-dir oracle (stat, or a view-kind flag) — the legacy follow resolver got this right (pager.js:318 takes dirOf(base) first).?ref: mergeUri resets wholesale when the token has a scheme OR authority+path (spell.js:51-52). VERIFIED: ctx //WT/d?feat + //OTHER/x → //OTHER/x (ref gone) while //OTHER alone keeps ?feat. Nav.mkd:25: a spell SETS the slots it names and INHERITS the unnamed. (Cross-repo refs are meaningless — but then dropping must be uniform, not dependent on whether a path tagged along.)verb! unusable typed: the compose verb-peel regex (spell.js:93) lacks !?, so :get! x swallows get! as a wt-relative PATH → cat("//WT/get!?feat","x") (VERIFIED). The CLI (loop.js:277-281) and BOTH pager banner parsers (pager.js:282, :658) accept verb!.:cat:foo.c typed in a log view → verb stays log, spell log cat:foo.c (VERIFIED) — mergeUri RESETs to the token but compose never re-derives the verb; per Nav views-are-verbs a projector scheme should become the verb (the follow path's _splitSpell bridge already does this).("//WT/dir","msg") — unparseable by argline (VERIFIED); a composed-by-us spell must always drive or error loudly../x/../. behave like a shell against a FILE context (. = containing dir); dir contexts unchanged.verb! peels with force; a projector-schemed token re-verbs the call; buildSpell output always drivable.shared/spell.js (+ the small compose call sites); the composer is SHARED with the CLI docs-wise — keep composeArgv semantics intact (CLI barewords stay REST, URI-011 audit: injecting pager classification into the CLI was tried 3× and REVERTED — do not retry)._ctxFrom stats and takes the file's dir), so the compose base needs no oracle on the nav path../x/.. — superseded by BRO-024 5ebf0c8d: the context is dir-only, ./sib.c → dir/sib.c (residual: an un-nav'd initial view whose launch context is a FILE — runtime-check before closing)?ref — symptom superseded: the context carries no query since BRO-024 (RESET code itself unchanged, spell.js:51-52)get! x verb-peel — fixed en route in BRO-024 iter 1 (compose peel regex includes !?, spell.js:99)cat:foo.c in a log view keeps verb log (compose never re-verbs a projector scheme); empty-verb buildSpell emits unparseable ("//WT/dir","msg").