Skip to content

Nested bracket groups, description bullet lists and or-joined choice rows - #155

Merged
sadigaxund merged 3 commits into
mainfrom
r11/value-specs
Sep 13, 2026
Merged

sadigaxund merged 3 commits into
mainfrom
r11/value-specs

Conversation

@sadigaxund

Copy link
Copy Markdown
Collaborator

Three value-spec and description defects one reader apart: a nested bracket pair keeps its whole outer group even when more of that group follows the inner pair's close, a description's own * NAME - VALUE bullet list stops splitting at its inline dash, and icupkg's -tl or --type l rows fold into one flag whose choices each keep their own description.

Fleet sweep against the 0b30c15 baseline, 2269 tools matched, 0 appeared, 0 disappeared, 0 subcommand losses or gains. The nested-bracket fix moves seven tools and clears the five-tool bar: cpio -I/-O, fzf --listen, journalctl -n/--lines, lsusb -s, node and nodejs --inspect/--inspect-brk/--inspect-wait, rustc -l, each read against that tool's own text. Four come out complete and three recover the outer group only, with FILE-NAME, [devnum] and <NAME>[:<RENAME>] still unrendered after it; that trailing part is a separate rule, and the atlas says so per tool.

The one flag-count line, icupkg: 19 to 17, is three rows becoming one, not two flags vanishing: each row's own l, b and e value and its own description survive as that flag's choices, and the trailing sentence rides along. pod2man is byte-identical before and after, so the alias fold this keys on the literal or token does not repeat round 10's refused relaxation; icupkg's fixture stays xfail for its separate -c/--copyright defect and #142 stays open.

The bullet-list fix is in mandible-tui's renderer rather than the parser, so a sweep is structurally blind to it and the controls are its fence: eight of the nine named controls are byte-identical on the first capture, docker differs on its own screen by 4 lines with half of them the lazy-extraction placeholder, and the #fp2 tree fingerprint is identical between baseline and branch for all nine.

sadigaxund and others added 3 commits September 13, 2026 13:06
… fixes

S-173: a description's own `* NAME - VALUE` bullet no longer splits at its
inline dash (rustc --emit). S-174 generalizes S-119's nested-bracket-value
matcher by depth so trailing text before the outer close survives (fzf
--listen, rustc -l). S-133: icupkg's -tl/-tb/-te rows fold into one
-t/--type flag with choices, gated on the raw "or"-joined literal so
pod2man's --lquote/--rquote (issue #142's own trap) stay untouched and
separate; #142 stays open for the still-broken -c/--copyright row.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
S-174 clears the five-tool bar on the full-PATH sweep (cpio, fzf,
journalctl, lsusb, node, nodejs, rustc), so it is not a gated exception.
Also records S-133's three-rows-become-one count and its xfail fencing
gap, and that S-173 lives in mandible-tui so the controls are its fence.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Keep-both in CHANGELOG, docs/shapes.md (S-173 and S-174 after S-172), grammar.rs
(three new value-spec readers side by side), the fzf contract (both tables, the
union of the flag lists) and parse_body's flag transforms, with S-163's collision
resolver still last. rustc's `-l` reblessed: `<KIND>[:<MODIFIERS>` becomes the
whole `[<KIND>[:<MODIFIERS>]=]` group its own row writes.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@sadigaxund
sadigaxund merged commit 0047400 into main Sep 13, 2026
17 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant