This skill should be used when the user asks to "create a Next.js route", "add a page", "set up layouts", "implement loading states", "add error boundaries", "organize routes", "create dynamic routes", or needs guidance on Next.js App Router file conventions and routing patterns.
80
71%
Does it follow best practices?
Impact
96%
1.39xAverage score across 3 eval scenarios
Passed
No known issues
Optimize this skill with Tessl
npx tessl skill review --optimize ./.trae/skills/app-router/SKILL.mdDynamic route segments and async params
Dynamic folder naming
100%
100%
Params awaited
0%
100%
Params typed as Promise
0%
100%
searchParams awaited
0%
100%
searchParams typed as Promise
0%
100%
Catch-all or optional catch-all
100%
100%
generateStaticParams used
100%
100%
generateMetadata function
50%
100%
Metadata type imported
100%
100%
page.tsx exports default
100%
100%
Async page component
100%
100%
Loading/error states and route organization
loading.tsx present
100%
100%
error.tsx client directive
100%
100%
error.tsx receives error prop
100%
100%
error.tsx receives reset prop
100%
100%
not-found.tsx present
100%
100%
notFound() from next/navigation
100%
100%
Route group folder naming
0%
100%
Private folder naming
100%
100%
Route group layout
0%
100%
error.tsx does not catch layout errors note
0%
0%
Correct directory depth
100%
100%
Root layout, parallel routes, and templates
Root layout has html tag
100%
100%
Root layout has body tag
100%
100%
Root layout no use client
100%
100%
Parallel slot folders
100%
100%
Layout accepts slot props
100%
100%
default.tsx in each slot
100%
100%
template.tsx used
0%
100%
No layout-to-page prop passing
100%
100%
Shared data pattern
100%
100%
Nested layout
100%
100%
Slot loading states
0%
100%
3069d33
Table of Contents
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.