ci-cd

  1. The package a grep could not judge

    A devcontainer bloat audit removes an unused compiler toolchain, keeps two expensive dependencies, and gives maintenance scripts a CI gate.

  2. A directory is not a file type

    Narrowing CI's blog-only skip to blog/** looked complete. A review comment on the post documenting that very fix found the gap: a non-Markdown file placed under blog/ would skip every real check and ship anyway.

  3. A 404 is not an answer

    Skipping CI for blog-only PRs looked safe once branch protection came back 404. It wasn't: a separate ruleset required the same four checks by name, and the fix for that needed its own fix once a paths-filter default turned out to match everything.

  4. Fast, but not zero

    Speeding up the e2e suite by cranking animation speed risked breaking the one test that watches an animation happen. Reduced motion turned out to be the wrong kind of fast.

  5. The apple that shouldn't have been there

    A test asserting that hearts are growth-neutral failed on CI, intermittently, on a PR that never touched the file it failed in.

  6. The first pull requests

    Two days of committing straight to main end in one day: a CI workflow, a licensing swap, a WCAG audit, and the design question the game keeps coming back to.