Commit 430a278
The matched block renders in two spellings, because lint.yml invokes many
gates directly rather than through a `pnpm check:*` alias. That idiom is
deliberate and correct, and discovery is not lossy across it: measured at
57827b6, all 39 direct-form gate scripts in lint.yml are discovered. The
loss is one step downstream, in what the consumer does with the printed
block -- a harvest that greps one spelling takes 8 of 12 and says nothing,
and every command in the short list passes.
- `--commands` / `--json`: stdout carries runnable commands and nothing
else, so there is no prose to pattern-match and no spelling to prefer.
Matched families union the convention-triggered ones, deduped and sorted.
- The human footer prints the spelling split (`12 families - 8 pnpm, 4
direct node`), which is the control while consumers migrate. The split,
not the count: a whole-output grep returns a plausible 12 that is the
wrong 12, and only the distribution discriminates.
- The correct harvest -- until now one agent's private discipline, written
down nowhere -- is published in the tool's own output. A blank line above
the footer keeps it working; the self-test drives the real awk and sed
over a real rendering and pins that.
Claude-Session: https://claude.ai/code/session_01Pk26oZ12t5N1hwGW1m1MgC
Co-authored-by: Claude <noreply@anthropic.com>
1 parent b2dea86 commit 430a278
1 file changed
Lines changed: 511 additions & 25 deletions
0 commit comments