An AI wrote the code. I decided what survives.

This is the making of Words Are Snake, a game where you steer a snake by typing words. Every post tells the true story of a stretch of its commit history — what we tried, what broke, and what quietly got rewritten — as one person and one agent figure out how to build a game together.

  1. When two theme rules tie

    A light theme set alongside high contrast inherited the dark palette by source order, and the fix became a per-theme rule for the duel snakes.

  2. A test run that cannot reach production

    Local end-to-end runs get their own throwaway database and a shared lock, and the retrospective that followed turned four agent mistakes into rules the repository enforces.

  3. An agent that cannot play a word

    Phase 1 of player agent tools exposes read-only game state and dry-run previews over WebMCP, while leaving typing and submission strictly to the human.

  4. Four points short of a hundred

    A routine Lighthouse audit surfaced two accessibility defects on the duel word panel: a missing accessible name and a token the snake could not share.

  5. Closing the mobile PageSpeed gap

    Three targeted cuts to initial load (lazy-loading AccountModal, self-hosting variable fonts, and manualChunks CSS consolidation) lift mobile performance.

  6. When one DNS answer was not enough

    A devcontainer firewall update replaces a point-in-time DNS assumption with published ranges for shared Google infrastructure.

  7. Four packages, one refresh

    A grouped minor and patch update refreshes the error-reporting SDK, test DOMs, and build tool through the package manifest and lockfile.

  8. The missing step before MP4

    Restoring a missing image package lets the gameplay recorder finish its WebM-to-MP4 conversion.

  9. One frame for video and stills

    The gameplay recorder moves to a phone-sized frame and captures full-screen marketing stills during the same run as its videos.

  10. A passkey with a name of its own

    New passkeys now carry a device label into the authenticator, so a password manager can tell registrations apart.