O click-spells encode only verb args; the context is inherited from
wherever the pager happens to sit, so a board row cannot say "run this
verb OVER THERE". Live incident 2026-07-14: the :work board's update
minted get ///be for every row — authorityRepo hoisted ///be as the
run scope and refreshed the LANDED journal/be mount; the row's worktree
was never addressed, and the status shown after was the pager CONTEXT
tree (//BRO-024), read by the user as the update result. Ruling: an O
spell carries all three parts; the BRO-024 invite //WT/dir/: verb
args IS the wire form; an absent context part means "here" (pager cwd).
get ///be (views/work/work.js, uncommitted in work/BE-043); see BE-043.26714CGTBr get ?#33295788 to journal/be/.be (a no-op refresh of the landed mount); work/BE-043 and work/BRO-024 untouched.//-carrying arg0 of a MUTATION verb into the run scope — one arg0 cannot be both the scope and an operand; get.js:284-291 defers the explicit-//X-source vs injected-context split as a named follow-up.//WT/dir/: verb args, and replay already chdir's into the RECORDED view.call.context — the third part exists on the replay path.//WT/dir/: verb args; a context-less O token keeps meaning "here".(context, RAW args); an explicit //X arg is a plain operand for the verb, not a rescope.//KEY/: get ///be — update = FF the KEY tree to the landed mount's commit, local changes preserved (weave only where dirty).resolve(context, base, rel) at verb entry; the cd is the backstop (BRO-024).jab <verb> //X … keeps the BE-032 arg0-scope convention until ruled otherwise; the change here covers SPELL-driven runs.get ///be = FF to that tree's commit) is GET-side; split into its own GET ticket if it grows past the seed.SPELL.parseOspell/mintOspell (shared/spell.js): a leading // ARMS the split at the FIRST : , so a : inside a quoted arg (post 'a: b') is safe; a context-less token (verb args) parses to context "" = "here" (the pager context)._actSpell(spell, ctxOverride) / _runSpell(spell, ctxOverride) — the CONTEXT comes from the parsed O token, threaded to driveSpell (opts2.context), NEVER pre-merged into an arg; _actSpell then _refreshes the pager's CURRENT view IN PLACE, so the pager's own context is left UNMOVED (the "restore"); a throwing drive is caught, context still stands. There is no literal io.chdir on the reentry path — the context scopes the run via loop.contextRepo (be.repo/ctxDir), the mechanism replay already uses.jab <verb> //X … (no threaded context). uri011 legs stay green (CLI convention intact).//KEY/: rm . per gritzko's spec — the context //KEY fully targets the row, . is the whole-worktree operand (rm verb not landed in this tree; token-text only asserted).//X////path operand routes through the GET-038 local-source machinery (parseRemote("file:"+wtdir) → resolveLocalSource → seedLocal → fanoutWholeTree) — a clean FF fast-path, a dirty baselined file weave-merges (the same leaf). This reaches get ONLY on the spell-driven RAW-arg path; a CLI jab get //X still hoists arg0 to the run SCOPE (whole-tree FF), unchanged.//WT/dir/: verb args O token form (shared/spell.js parseOspell/mintOspell); absent context = "" ("here"); round-trip + quoted-: safety proven (test/bro/ospell, work/view)_actSpell/_runSpell ctxOverride → driveSpell context), pager context UNMOVED on success / mutation / throw (test/bro/ospell)//KEY/: get ///<mount>, //KEY/: post '<title>', //KEY/: rm . via SPELL.mintOspell (test/work/view updated + green)(context, RAW args) — contextRepo wins first, no arg0 authority hoist on that path (core/loop.js _cli; uri011 + status/put/post/delete/patch all green)//X////path operand = SOURCE worktree (get.js isSourceWorktree/sourceGet, GET-038 resolveLocalSource), dest = the run context; FF fast path, weave-leaf when dirtyk materialises directly, dest .be tip appended). Filed nowhere yet — raise a GET ticket if a cross-store update is ever wanted.#-framing pair), sub/wtsrc (the runtime .be/?/ query-slash strip, BRO-024 _restoreQuerySlash shim), bro/color + bro/view (stale goldens), bro/vim (fails even with the BRO-025 pager edits reverted).for run in test/*/*/run.sh; do timeout 90 sh "$run"; done with JABC=