The up/down migration tests stepped a hard-coded number of Steps(-N)/Steps(+N) down from HEAD and back. The counts assumed a specific latest migration, so adding one shifted every count by one and unrelated tests (010/011/014) went red with confusing off-by-one symptoms — a papercut on every new migration. Drive the schema to an exact version with m.Migrate(version) via two helpers (headVersion, migrateTo). Each test now steps to just below its target by version, asserts the down effect, steps up to the target, asserts the up effect, then restores to the captured HEAD. A migration added on top changes HEAD but shifts no count, so no test needs editing. Verified by adding a throwaway migration 017 on top: all four tests stayed green with zero edits. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015QbdxXWxLefS5AwLN5eyze