A three-person GitLab team used AI agents (GitLab Duo Agent Platform, Claude) to migrate 121 rate-limiting keys from a legacy ApplicationRateLimiter to a unified labkit-ruby implementation. The team ran a strict spec-review-implement-verify loop across six cohorts, shipping 30+ merge requests. Key lessons: agents excel at mechanical fan-out across codebases but miss inventory tracking and nuanced observability signals; a shadow-mode bug slipped through because the label set couldn't distinguish structural collisions from normal disagreements; Redis connection limits became an unexpected infrastructure bottleneck; and human judgment on rollout decisions, scope, and architecture remained irreplaceable. The migration completed with all 121 keys running through the new framework, with RackAttack (~4B requests/day) as the next target.
Table of contents
The setupWhat workedWhere the loop missedWhat the agents actually changedWhere we are now2.7K Impressions1 Comment