work view — the ticket-worktree board under work/The project root's work/ dir holds one worktree per ticket (Project item 5); no view lists them today, so tending the fleet means raw ls work/ plus hand-typed spells.
.be FIRST line: <stamp> get <uri>, e.g. work/BE-041/.be → file:/home/gritzko/.be/?/beagle-ext, work/JS-115/.be → file:/home/gritzko/src/jab.be/.be/?/repo.//TIKT-123 is the worktree authority in context URIs (Project §Addressing).todo board (shape-routed rows, hidden U spells), BE-040 r3 / BE-041 button pairs (visible Y label + hidden O click spell), views/status/status.js sinkOut.work lists all ticket worktrees under work/, one row each:
TIKT-123 navigates — hidden U spell status //TIKT-123;[update] button — get-update from the orig tree (O spell; origin = .be line 1);[merge] button — merge into the orig tree as mounted under the current project (origin detected from the worktree's .be line 1);[diff] link — the worktree diff (diff //TIKT-123);[rm -rf] — discard the worktree; needs a worktree-only remove verb, see BE-044.work/; NOTHING hardcoded..be line 1 parses via uri._parse, never regex/string surgery (work §NOT TO DO).[update] O spell = get ///<orig-path> — the origin tree's mount path under the project root (//), detected from .be line 1.[merge] O spell = post '<ticket title>' — the ticket page's own title as the one-line message (title via the shared ticket/todo page lookup).work becomes the worktree FOREST view — spun off as WORK-001; the flat board's chrome is absorbed there.U nav + Y/O buttons + safety gap; rows = work/ subdirs owning a .be (the BE-044 gate), name-sorted; plain mode = bare keys, chrome pager-only.be first-line origin parse — reused wtlog.open({bePath}).anchor(), no new helper; project → mount path via a depth-first gitmodules.paths() walk (nested mounts join, e.g. be/test)[update] spell get ///<mount>; omitted when the origin mount doesn't resolve[merge] spell post '<title>' (title via todo.js pageFile/pageTitle, now exported); omitted when the ticket page doesn't resolve[diff] spell (F+U nav link)[rm -rf] button emits rm //KEY alreadypost '<title>' carries NO authority — it posts wherever the pager context sits at click time, not the row's worktree; needs a ruling.get ///<path>'s // used to name the LAUNCH tree (a cell) — fixed in the main tree by BE-045 (// = the project/meta root everywhere).err: no such path be in source was the pre-BE-045 binding — verified working on current main, view spell unchanged; diff missing new files is a diff-verb gap (diff.js:279 skips no-base-side paths), NOT the view.//-authority arg that anchors no worktree falls into get's D4 path-restore slot → misleading no such path X in source; must refuse loudly) and DIFF-xxx (render wholly-new files as base-vs-empty additions so diff shows them).