Portability-boundary test — data-driven URL refactor Predicted 20–30 min. Landed in 21m 23s. Pattern portable across DATA-DRIVEN refactors. Cost-flattening holds, but the floor is higher than for fixed-enum. DIMENSION PR #42 (FIRST) PR #53 (FIXED-ENUM) PR #55 (DATA-DRIVEN) wall-clock an evening 8m 8s 21m 23s helper imports data none (fixed regex) none (fixed regex) ALL_POSTS helper LOC 13 13 24 (lookup + slice) sibling-test cases 9 12 7 migration mechanism sed (one-liner) sed (one-liner) Bun script (~50 LOC) references rewritten 49 ~22 173 files touched (migration) 19 17 46 handler complication drop owner from sig rename route segment yyyymm spoof-guard over-rewrite incidents 0 1 (caught + reverted) 1 wider (5+ files) test count delta +9 (379 → 388) +12 (407 → 419) +7 (419 → 426) verifier verdict 7/7 ✓ 7/7 ✓ 7/7 ✓ Boundary empirically located between PR #53 and PR #55. FIXED-ENUM refactors land in ~8 min (template copy + slug rename + paste). DATA-DRIVEN refactors land in ~21 min (template copy + add ALL_POSTS lookup + spoof guard + migration script + over-rewrite recovery). Both within predicted bands. Both confirm cost-flattening holds across pattern variants. The added 13 minutes is not the helper (still mechanical) — it's the migration tooling growing to handle 173 references instead of ~22, and one wider sed-collision. https://tdd.md