F — [Page] and [/pocket/Page] click nowheredog/tok/LINK.rl knows two evidence sources — a KNOWN extension (relknown) and an anchor past a slash (relanch/rooted) — and a wiki shortcut link carries NEITHER by design: wiki rules that a page is linked "with a bare [Page] or [/pocket/Page]", ext-less and anchor-less. So the one link form the wiki spec mandates is the one form the grammar cannot see, and every [/wiki/Bro], [Plan], [README], [/meta/todo] in the tree paints as loose prose crumbs between two 'G' brackets. The BRACKETS are the evidence here, exactly as an ext or an anchor is elsewhere — a source the DOG-036 spec table simply lacks, so admitting them loosens nothing: a bare /wiki/Bro outside brackets must stay prose, and does.
Found 2026-08-16 on http://localhost:8034/bee/pager.js, line 1: // pager.js — bee's raw-mode TUI pager ([/wiki/Bro]): a scrollable viewport — pager.js fuses, the wiki link beside it does not.
tok.parse(" ... ([/wiki/Bro]) ... ", "js") over that line yields G "[", D "/", D "wiki", D "/", D "Bro", G "]": six tokens, no F, the path split into crumbs at every slash.[Plan], [README], [/wiki/Bro], [/meta/todo] through mkd/md/c-comment: not one 'F'; [/todo/GET/GET-041] yields F "GET-041" alone, the /todo/GET/ around it crumbs.ticket matches the CODE inside the brackets independently of them, so a bracketed link works only when it happens to name a ticket.[claude-code/main.js] (known ext) and [/wiki/Bro:12:Yl] (anchor) already fuse whole, so the brackets were never the obstacle; the missing rule is the one that lets the brackets BE the evidence.rooted = ("/" | "./") relanch is what refuses /wiki/Bro: DOG-036 makes the anchor mandatory after a / head precisely so a URL path (https://foo.io/bar.c) stays prose, and a bracketed page name is collateral.bee's index/hook.js fTokens is THE recognizer), so a page named only by a wiki link gets no bee lindex LINK row either — the same blast radius DOG-040 documents for code spans and meta values.A bracketed shortcut link fuses ONE F over its inner path, in every machine that includes LINK.rl; the brackets stay 'G' and nothing outside brackets moves.
[Plan], [README], [/wiki/Bro], [/meta/todo], [/todo/GET/GET-041] (the PATH fusing, not just the code), [claude-code/main.js], [/wiki/Bro:12:Yl]./wiki/Bro and [https://foo.io/bar.c] stay prose, [] and [ ] fuse nothing, and every DOG-036 non-ref stays dark inside brackets too ([GPL-2.0], [ISO-8859-1], [..], [--flag]).[text](url) inline form get a Design-decisions ruling and a fixture either way.quickjab/dog — needs explicit permission, this ticket only; dog/tok + fixtures (dog/test/TOK01.c) only; NO VC ops of any kind.ragel -C <X>.c.rl -o <X>.rl.c -L; ctest green; the DOG-036/037/039 case lists identical to baseline.LINK.rl — FREE, MKDT, MDT, RSTT, TXTT, TOKL — and each that binds the new component does so in its own rule list; which of them should is a Design decision, not a given.The brackets are a THIRD evidence source beside the known ext and the anchor, and wikied spans them, so it outranks every inner rule by length and needs no tie guard. Where the brackets end is the MACHINE's to say: wikied references three marks an includer defines (wiki_open wiki_close wiki_end), so the emitter paints boundaries the grammar set and no C counts a bracket byte (gritzko's ruling 2026-08-16, StrictMark and Markdown alike).
tok[0]+1 / tok[1]-1 in TOK.c; that is the manual parsing the house rules forbid, and it also hard-codes a one-byte delimiter. wikibody = (wikipath - (code keyvoid)) >wiki_open %wiki_close and wikied = "[" wikibody "]" %wiki_end stash p at each boundary instead, and TOKLinkBracket takes the three finished slices. Ragel resolves action names AT INCLUDE TIME, so the three action blocks stand ABOVE include LINK "LINK.rl"; in every includer.[text](url), [x][1] and [OPEN]: are the same bracket shape, so wikied ("(" | "[" | ":") matches one byte longer, wins, fholds the follower back and emits the span exactly as before. The : arm earns its place twice: it keeps a ticket header's [OPEN]: status marker dark AND a StrictMark reference DEFINITION's key dark, while the definition's target past the : fuses on its own evidence — which is the reading both want.- (code keyvoid) is the ONLY guard inside the brackets. seg admits digits and dashes (DOG-039), so [ISO-8859-1] would otherwise fuse; the difference voids exactly the shapes DOG-036 already voids bare, and [GPL-2.0] never matched wikipath at all (.0 is no extany — a seg cannot start with a digit).RSTT is left alone because reST spells its citation [x]_ and a bare [x] is literal text, so a StrictMark reading would be wrong there; TXTT has no markup tag to give the brackets; TOKL is DOG-040's verbatim re-grainer, whose contract is that NO inline layer opens in a code span. FREE, MKDT and MDT are exactly the machines that read StrictMark.[Page] in FREEInlineMarkupTest was pinned GDG by DOG-006 and is now GFG — amended on gritzko's say-so 2026-08-16. The same suite already pinned [ABC-123] -> GFG, so bracketed nav targets fusing was established; [Page] was the outlier, and DOG-006's own claim (delimiters stay 'G') is untouched.LINK.rl, brackets as evidence, F over the inner path onlyTOK.c counts nothingctest green///bee and is done as BEE-013: with the F fused, door.js still had to resolve it — a /pocket/Page target wants the TICKET_SPELLINGS ladder applied to a path rather than to a ticket code alone, looked up by SEGMENTS and not at a root.Done in the MAIN TREE quickjab/dog/tok on gritzko's explicit say-so (edited, nothing staged, no VC op run). A bracketed page name now fuses one 'F' in a comment, a .mkd page and a .md page alike.
dog/tok/LINK.rl: wikipath, wikibody, wikied — three defines — plus the spec-table line and a header ruling naming the three marks an includer must define. No existing define moved.dog/tok/TOK.c / TOK.h: TOKLinkBracket and TOKLinkLabel, each taking the three finished slices and emitting three tokens. Neither counts a byte.FREE.c.rl, MKDT.c.rl, MDT.c.rl: the three marks above the include, on_wiki + on_wikilabel, three u8c* locals, and the two rules. MKDT's pair stands before its generic […] shortcut rule (its inline block precedes its nav block); FREE's and MDT's sit in the nav block, which already precedes theirs. Twins regenerated with ragel -C <X>.c.rl -o <X>.rl.c -L.DOG042_CASES (11 shared, the positives) plus DOG042_SPAN_CASES (7, 'G' delimiters, FREE+MKDT) and DOG042_FLAT_CASES (7, MDT's own), run by FREEWikiTest / MKDTWikiTest / MDTWikiTest — 54 assertions, all RED before the grammar change.ninja && ninja -j20 test in quickjab/build: 146/146, twice. ONE pre-existing fixture moved, with permission: [Page] GDG -> GFG. Not one other case in TOK01.c had to move — every DOG-036/037/039/040 pin held, [ABC-123] and [t][1] included.bee http /bee/pager.js line 1: ([/wiki/Bro]) now paints G:[ F:/wiki/Bro G:] where it painted five crumbs./bee/cat/pager.js line 1 now LINKS /wiki/Bro to /bee-journal/wiki/Bro.mkd, and [/meta/wiki] on this very page to /bee-journal/meta/wiki.mkd.Suggested commit: DOG-042: the brackets vouch, a wiki link fuses