Performance smoke
Generated migration without indexes
A new foreign key or filter column ships without an index, and queries slow down as the table grows.
Termscritical flow (a path a user takes that costs money or trust if it breaks: sign-up, checkout, invite, export) · staging environment (a copy of production, without customer data, where release candidates are tested) · migration (a scripted change to the database schema that ships with a release and should be reversible)
mediumseverity if found in a releasesources verified 2026-09-21
Why AI-assisted code produces it
Migrations are generated from the model definition; indexes come from knowing the queries, which the prompt does not carry.
AI-co-authored pull requests carried 10.83 issues each against 6.45 for human-only pull requests, about 1.7 times more, in a sample of 470 open-source GitHub pull requests (320 AI-co-authored, 150 human-only).
Source: CodeRabbit, 2025-12-17 · verified 2026-09-21
How we detect it
Review each new foreign key and filtered column in the release's migrations.
Most associated with
Tools: Cursor, GitHub Copilot, Claude Code, Windsurf, Lovable, Bolt
Checklist items that catch it
Generated migrations include indexes for new lookups
manual For each new foreign key or filtered column in the release's migrations, check for an index.
Every new foreign key and every column used in a WHERE clause of a critical query has an index or a written reason not to.
Dots: Starter, Growth, Scale. The item runs on every release for the plans marked.
More in performance smoke
- medium
- medium
Check your codebase for this pattern
The coverage audit lists which catalogue patterns apply to your critical flows. 5 business days, $1,200, credited to a first month.