Content
56%Weight 40%Scale 1-5Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
The body is rich in accurate, concrete App Router guidance with a well-sequenced migration workflow and validation checklist, but it pays for that with substantial redundancy and an off-topic TypeScript section. Much of the generateStaticParams and advanced-routing material belongs in separate reference files, and the repeated examples inflate token cost without adding capability.
Suggestions
Consolidate the generateStaticParams section: keep one canonical example (e.g., the fetch-from-API version with dynamicParams) and cut the 'Common Patterns' trio and the separate 'Migration from Pages Router' restatement, which repeat the same pattern.
Move advanced, low-frequency content (generateStaticParams deep dive, data-fetching patterns, server vs client components) into reference files under references/ and link to them from a short SKILL.md overview, enabling progressive disclosure.
Remove or relocate the 'TypeScript: NEVER Use any Type' section — it is codebase lint policy unrelated to App Router fundamentals — and drop the Overview paragraph that restates the frontmatter description.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The body is noticeably verbose with several padded sections: the Overview duplicates the description; the "TypeScript: NEVER Use any" section is codebase lint guidance unrelated to App Router; the generateStaticParams section repeats the same pattern roughly five times (Basic Usage, Fetching Data, Multiple Dynamic Segments, Common Patterns 1–3, Migration from Pages Router); and the root layout and Link examples each appear two to three times. This matches anchor 2 ("several unnecessary explanations or padded sections") rather than anchor 3 ("some unnecessary explanation"). | 2 / 5 |
Actionability | Mostly executable guidance: concrete before/after migration code pairs, a Pages-to-App file-mapping table, and runnable commands. Minor gaps keep it from a 5: ellipsis placeholders ("function handleSubmit(e: any) { ... }", "return (/* render */)") and undefined helpers such as getPost, getCategories, and db.post.findMany that are not copy-paste ready. | 4 / 5 |
Workflow Clarity | The migration workflow is clearly sequenced (Steps 1–5: understand structure, create root layout, migrate pages, update navigation, clean up) and a "Testing and Validation" section provides a four-part checklist (structure, metadata, navigation, cleanup). Not a 5 because there is no explicit feedback loop for error recovery — the checklist says what to verify but not what to do when a check fails, and the destructive pages/ cleanup step has no re-verify instruction. | 4 / 5 |
Progressive Disclosure | Section structure is clear with a quick-reference table and a clearly signaled "Additional Resources" section pointing to sibling skills, but there is no bundle: ~780 lines where clearly separable advanced content (the generateStaticParams deep dive, data-fetching patterns, server/client components) is inlined in the monolithic SKILL.md rather than split into reference files. This matches anchor 3 ("content that should be separate is inline") better than anchor 2, since references that do exist are clearly signaled and navigation is possible. | 3 / 5 |
Total | 13 / 20 Passed |