BEE-075: snippet variables wear a $ — $1 one token, $a zero or more, $A one or more

Now
OPEN
Sev
MED
Ask
gritzko
Rep
///bee
Sub
BEE-073
On1
BEE-074
See
DOG-050

Ruled 2026-09-18 (gritzko): a spot snippet's variables are $-prefixed and a bare letter is always a literal. BEE-074 ported be's matcher with bare-letter variables, where a one-letter name (i, union U) could never be matched as itself and a block could not be empty, so every callable needed two def rules. Patch bee's matcher and def table; libdog changes only where needed. Main-tree work permitted, no commits.

Input

Context

Goals

Constraints

WIP

Design decisions

TODOs

Blockers and bummers

Outcome

Working tree only, nothing committed. index/match.js swaps every $x for an opaque identifier before lexing, tells variables apart by sentinel after it, and binds a block by enumerating its extents shortest-first — empty first for $a, maximal for a block no literal follows; a needle with adjacent blocks or a block beside a gap is refused in words at make. index/defs.js carries the templates in the new notation, $0 swapped by hand for the symbol. test/anchor is 14 shell + 50 JS checks (21 of them new), test/scope 7 + 14; all 79 suites green.