Skip to content

v0.19.1 — the class the umbrella had been catching for us, twice - #20

Merged
sshlg merged 1 commit into
mainfrom
fix/board-table-guard
Aug 31, 2026
Merged

v0.19.1 — the class the umbrella had been catching for us, twice#20
sshlg merged 1 commit into
mainfrom
fix/board-table-guard

Conversation

@sshlg

@sshlg sshlg commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

B-126's board row shipped in v0.19.0 with nine cells against the eight its header declares, and the umbrella's validator refused the re-pin.

That is the second time in three releases. B-124 did the same in v0.18.0 — also caught by sshlg-skills rather than here.

A class seen twice becomes a script

check_ledger_tables_keep_their_shape() counts the cells of every row in docs/evidence/*.md against the header its table declares, splitting on an unescaped | exactly as a reader does. The member now refuses what a sibling had been catching on its behalf.

It found a pre-existing defect on its first run

Older than either of mine: verification.md rows 015 and 016 each quote a shell pipeline inside backticks — … \| grep -c '^def check_' — and that bare pipe had been splitting both rows into five cells since they were written. Nobody had seen them because nothing counted.

The real cause was not markdown

Worth recording, because the two breakages look like the same careless paste and are not:

  • v0.18.0 — a grep pattern pasted into a cell, pipes and all.
  • v0.19.0 — a Python edit where adjacent string literals were written across lines without parentheses, so only the first fragment bound to the variable. The replacement matched that fragment alone and left an orphaned tail behind, which happened to carry a bare |. The row was malformed because the edit that wrote it was silently partial — the pipe was a symptom.

Evidence

Check Result
npm test rc=014 checks = 10 named + 4 per-skill
Plant (one bare pipe into B-126) refused — row has 9 cells against the 8
Pre-existing rows 015, 016 escaped; both now 4 cells

Ledger TG-1 … TG-3.

🤖 Generated with Claude Code

B-126's board row shipped in v0.19.0 with nine cells against the eight its header
declares, and the umbrella's validator refused the re-pin. Second time in three
releases: B-124 did the same in v0.18.0, also caught there rather than here.

A class seen twice becomes a script. check_ledger_tables_keep_their_shape()
counts every row in docs/evidence/*.md against its header, splitting on an
unescaped pipe exactly as a reader does.

It found a pre-existing defect on its first run, older than either of mine: rows
015 and 016 of verification.md quote shell pipelines inside backticks and had
been splitting into five cells since they were written.

Both of my own breakages were the same underlying mistake and it was not
markdown: v0.18.0's from a grep pattern pasted into a cell, v0.19.0's from a
Python edit where adjacent string literals were written across lines without
parentheses, so only the first fragment bound and the replacement left an
orphaned tail carrying a bare pipe.

TG-1..3. Gate: npm test rc=0.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@sshlg
sshlg merged commit 77ece79 into main Aug 31, 2026
2 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