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
| PR | Title and the rule it breached | What 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.
- Hotspot: packages/kit/src/build.ts
7 of 12 earlier PRs that changed this needed a fix.
5 clean, 7 fixed (58%) - Hotspot: packages/nitro-server/src/compat.ts
8 of 16 earlier PRs that changed this needed a fix.
8 clean, 8 fixed (50%) - Hotspot: packages/vite/src/vite.ts
10 of 22 earlier PRs that changed this needed a fix.
12 clean, 10 fixed (45%) - 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%) - Hotspot: packages/kit/src/nitro.ts
5 of 11 earlier PRs that changed this needed a fix.
6 clean, 5 fixed (45%) - 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%) - Hotspot: packages/nitro-server/src/vite.ts
9 of 20 earlier PRs that changed this needed a fix.
11 clean, 9 fixed (45%) - Fragile area: packages/vite-server/
18 of 42 earlier PRs that changed this needed a fix.
24 clean, 18 fixed (43%) - Hotspot: packages/nuxt/src/app/index.ts
5 of 13 earlier PRs that changed this needed a fix.
8 clean, 5 fixed (38%) - Hotspot: packages/vite/src/plugins/vite-node.ts
6 of 16 earlier PRs that changed this needed a fix.
10 clean, 6 fixed (38%) - Hotspot: packages/kit/src/loader/config.ts
6 of 16 earlier PRs that changed this needed a fix.
10 clean, 6 fixed (38%) - Hotspot: packages/nuxt/src/core/templates.ts
14 of 38 earlier PRs that changed this needed a fix.
24 clean, 14 fixed (37%) - Hotspot: packages/nuxt/src/core/nuxt.ts
20 of 60 earlier PRs that changed this needed a fix.
40 clean, 20 fixed (33%) - 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.
| PR | Title | Size | Rule it breached | What 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.