nuxt/nuxt

14 rules learned from 998 merged PRs: the files and habits in nuxt/nuxt that kept needing a fix after merge.

Merged PRs read
998
Needed a fix
110 (11.2%)
Reverted
0
Merged between
2026-06-03 and 2026-11-11

Tested on PRs the rules had never seen

33 of the 125 code PRs that breached a rule needed a fix (26%), against 9 of the 91 that breached none (10%).

Rules were learned from older PRs, then tested on later PRs they hadn't seen. How we tested

PRTitle and the rule it breachedWhat happened
fix(nuxt): reject case-dependent route rules with insensitive routingFragile area: packages/vite-server/ (5 of 10 earlier PRs needed a fix) fixed in #36865, 10 days later
fix(nitro): don't share prerender hints with self-fetched requestsFragile area: packages/nitro-server/ (19 of 121 earlier PRs needed a fix) fixed in #36817, 7 days later
perf(nitro): register server auto-imports plugin onceFragile area: packages/nitro-server/ (19 of 121 earlier PRs needed a fix) fixed in #36812, 10 days later

Fix-prone files and folders

PRs that touched these paths needed a follow-up fix more often than the 13% repo average. Counts are PRs that touched the path.

  1. Hotspot: packages/kit/src/build.ts

    7 of 12 earlier PRs that changed this needed a fix.

    5 clean, 7 fixed (58%)
  2. Hotspot: packages/nitro-server/src/compat.ts

    8 of 16 earlier PRs that changed this needed a fix.

    8 clean, 8 fixed (50%)
  3. Hotspot: packages/vite/src/vite.ts

    10 of 22 earlier PRs that changed this needed a fix.

    12 clean, 10 fixed (45%)
  4. Hotspot: packages/nuxt/src/app/plugins/payload.client.ts

    5 of 11 earlier PRs that changed this needed a fix.

    6 clean, 5 fixed (45%)
  5. Hotspot: packages/kit/src/nitro.ts

    5 of 11 earlier PRs that changed this needed a fix.

    6 clean, 5 fixed (45%)
  6. Hotspot: packages/nuxt/src/core/utils/route-rules.ts

    5 of 11 earlier PRs that changed this needed a fix.

    6 clean, 5 fixed (45%)
  7. Hotspot: packages/nitro-server/src/vite.ts

    9 of 20 earlier PRs that changed this needed a fix.

    11 clean, 9 fixed (45%)
  8. Fragile area: packages/vite-server/

    18 of 42 earlier PRs that changed this needed a fix.

    24 clean, 18 fixed (43%)
  9. Hotspot: packages/nuxt/src/app/index.ts

    5 of 13 earlier PRs that changed this needed a fix.

    8 clean, 5 fixed (38%)
  10. Hotspot: packages/vite/src/plugins/vite-node.ts

    6 of 16 earlier PRs that changed this needed a fix.

    10 clean, 6 fixed (38%)
  11. Hotspot: packages/kit/src/loader/config.ts

    6 of 16 earlier PRs that changed this needed a fix.

    10 clean, 6 fixed (38%)
  12. Hotspot: packages/nuxt/src/core/templates.ts

    14 of 38 earlier PRs that changed this needed a fix.

    24 clean, 14 fixed (37%)
  13. Hotspot: packages/nuxt/src/core/nuxt.ts

    20 of 60 earlier PRs that changed this needed a fix.

    40 clean, 20 fixed (33%)
  14. Hotspot: packages/kit/src/template.ts

    7 of 24 earlier PRs that changed this needed a fix.

    17 clean, 7 fixed (29%)

Conventions

Habits most PRs here follow, where PRs that broke them needed a fix more often. Counts on each bar are the PRs that broke it.

No habit here made the list.

Recent PRs that needed a fix

Rules flagged 142 recent PRs, and 47 of those needed a fix (33%), against 16% of all recent PRs. These are the 15 with the strongest rule that needed a fix, with the PR that fixed each.

PRTitleSizeRule it breachedWhat happened
feat(kit,nitro,nuxt,rspack,schema,webpack): add rsbuild builder +2,411 -426 touches packages/kit/src/build.ts5 clean, 7 fixed fixed in #36951, 6 days later
fix(nitro): don't scan app-only module code for nitro v2 compat +175 -29 touches packages/kit/src/build.ts5 clean, 7 fixed fixed in #36687, 6 days later
feat(nitro): nitro v2 compatibility layer + `nitroLegacy` +5,651 -181 touches packages/nitro-server/src/compat.ts8 clean, 8 fixed fixed in #36357, 7 days later
fix(nitro): report deep nitro v2 imports with a dedicated diagnostic +518 -58 touches packages/nitro-server/src/compat.ts8 clean, 8 fixed fixed in #36872, same day
feat(nitro): improve scanning + reporting for nitro v2-style code +209 -61 touches packages/nitro-server/src/compat.ts8 clean, 8 fixed fixed in #36490, 6 days later
fix(nitro): resolve symlinked compat scope paths +173 -25 touches packages/nitro-server/src/compat.ts8 clean, 8 fixed fixed in #36638, 13 days later
fix(nitro): resolve bare `nitro` specifiers for virtual importers +15 -1 touches packages/nitro-server/src/compat.ts8 clean, 8 fixed fixed in #36366, 2 days later
feat(nuxt): unified client prefetch scheduler +1,243 -156 touches packages/nuxt/src/app/plugins/payload.client.ts6 clean, 5 fixed fixed in #36454, 12 days later
feat(kit,nitro,schema): register server handlers and plugins per server API +536 -644 touches packages/kit/src/nitro.ts6 clean, 5 fixed fixed in #36325, same day
feat(nitro)!: migrate to nitro 3 rc +551 -395 touches packages/nuxt/src/core/utils/route-rules.ts6 clean, 5 fixed fixed in #36825, 6 days later
fix(vite): pre-bundle deps of layers installed in `node_modules` +340 -43 touches packages/vite/src/vite.ts12 clean, 10 fixed fixed in #36477, 12 days later
fix(nuxt): respect image prefetching as preload to respect Accept hea… +210 -25 touches packages/nuxt/src/app/plugins/payload.client.ts6 clean, 5 fixed fixed in #36324, 3 days later
fix(nuxt): support apps in `<iframe srcdoc>` documents +149 -13 touches packages/nuxt/src/app/plugins/payload.client.ts6 clean, 5 fixed fixed in #36906, 4 days later
fix(nuxt): don't case-fold regex constraints in route rule keys +150 -7 touches packages/nuxt/src/core/utils/route-rules.ts6 clean, 5 fixed fixed in #36708, 1 day later
fix(kit): register the base path of a wildcard route on nitro v2 +90 -10 touches packages/kit/src/nitro.ts6 clean, 5 fixed fixed in #36329, same day

Get this for your own repo

Precall reads your repo's history the same way and comments on new PRs that touch the spots that kept breaking.