DOG-039: LINK seg bans "-", kebab-case paths never fuse

Now
OPEN
Sev
MED
Ask
gritzko
Rep
///quickjab
On1
DOG-036

dog/tok/LINK.rl has seg = [A-Za-z_] [A-Za-z0-9_]* — underscores fuse, dashes never do: feed-icon.png, claude-code/main.js:20, any kebab-case name stays prose even with a known extension or an anchor past a slash. Under DOG-036's evidence rule the ban buys nothing: a dashed name still needs ext/anchor evidence to fuse, so it is hardly mistakable for hyphenated prose.

Input

Context

gritzko's ruling 2026-08-15: tickets are in fact PATHS — ABC-123 is ABC-123.mkd with the ext dropped — so a code being a valid seg is the natural order, not a conflict; the tie is a non-issue. keyvoid keeps voiding GPL-2.0/ISO-8859-1 shaped tails; the ticket rule listed first keeps winning its tie by scanner order.

Goals

Kebab-case names carrying DOG-036 evidence fuse exactly like underscore names do; everything without evidence stays prose, and ticket codes keep winning their tie.

Constraints

WIP

Design decisions

One character added to one define — seg = [A-Za-z_] [A-Za-z0-9_\-]* — and nothing else in the grammar moves. seg feeds dirs, relknown, relanch, rooted, extany and keyvoid, so the dash reaches dir segs and basenames together, in all five machines that include LINK.rl.

TODOs

Blockers and bummers

Outcome

Done in the MAIN TREE quickjab/dog (edited, nothing staged, no VC op run). Kebab-case names now fuse on DOG-036 evidence just as underscore ones do.

Suggested commit: DOG-039: LINK seg takes a dash, kebab paths fuse