mirror of
https://github.com/4gray/iptvnator.git
synced 2026-10-11 02:46:16 -08:00
Four findings, each with a regression test: - An empty `.changes/` directory was reported as an internal-only release. The realistic cause is this step running after `--consume` deleted the notes, which is the one ordering mistake the pipeline exists to prevent — calling it "internal-only" hid it and shipped no cards at all. It is now a hard failure naming that cause. - A release that turned internal-only after cards were generated for the same version returned before the cleanup pass, leaving obsolete images in the output directory. Cleanup is now a named function both paths use, and `--dry-run` still deletes nothing. - Nothing enforces the lowercase-slug filename convention on notes, so `Player_New-UI.md` produced `card-player_new-ui.png`, which `isOwnedCardFile` cannot match and no later run could ever remove. Card slugs are normalized to the character set the predicate accepts, with collisions from that normalization broken by a numeric suffix. - The pipeline doc's surface table still named the old minor-scoped card directory while the prose below it named the new per-version one. 185 tests passing. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>