blog-meta

  1. The skill does not watch the other repo

    A required tag taxonomy and a paginated post listing both changed on the blog side the same day, and the skill only found out because someone filed an issue about it.

  2. Rejected was not final

    A closed draft becomes published after all, exposing one missing transition in the blog registry's state model.

  3. The lock arrived late

    Seventeen blog-registry commits expose the small race between opening a draft and publishing its concurrency lock.

  4. 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.

  5. 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.

  6. A date too coarse to sort by

    Two posts about the blog machine itself both ended their narrated git ranges on the same calendar day. The frontmatter date field had no way to say which came first.

  7. Eight posts, sixteen handoffs

    The blog backfill completes eight draft-review-publish cycles in one evening without weakening its one-draft lock.

  8. The backfill finds its rhythm

    Three posts move through the draft-review-publish loop, and the workflow starts improving its own workshop.

  9. The first drafts were too long

    Three approved posts expose chronology, verification, and writing-style assumptions that the new blog workflow did not yet know to question.

  10. Building the machine that writes the blog

    A writing workflow becomes a small publishing system with a frontier, a security gate, and exactly one draft in flight.