nextjs-server-navigation

A proof of concept set of Claude Skills designed to improve the pass rates against the Next.js evals on https://nextjs.org/evals

Installation
CLI
npx skills add https://github.com/wsimmonds/claude-nextjs-skills --skill nextjs-server-navigation

Install this skill with the CLI and start using the SKILL.md workflow in your workspace.

Last updated 4/28/2026

Claude Next.js Skills

Claude Next.js Skills is a POC bundle of automations aimed at seeing if creating skills quickly could improve the Next.js eval scores published by Vercel at https://nextjs.org/evals.

Baseline (before skills)

Model Success Rate
Claude Haiku 4.5 32%
Claude Sonnet 4.5 32%

Skilled Runs (after skills)

Model Success Rate Expected Leaderboard Slot
Claude Haiku 4.5 "Skilled" 78% (39/50) 1
Claude Sonnet 4.5 "Skilled" 76% (38/50) 2

Result Snapshot

Claude Haiku 4.5:

šŸ“Š Results:
════════════════════════════════════════════════════════════════════════════════

Eval Claude Code
000-app-router-migration-simple āœ…āœ…āœ… (204.8s)
001-server-component āœ…āœ…āœ… (94.4s)
002-client-component āœ…āœ…āœ… (94.7s)
003-cookies āœ…āœ…āœ… (136.7s)
004-search-params āœ…āœ…āœ… (219.1s)
005-react-use-api āœ…āœ…āœ… (138.0s)
006-server-metadata āœ…āœ…āœ… (91.4s)
007-client-metadata āœ…āœ…āŒ (86.0s)
008-generate-static-params āŒāœ…āŒ (83.0s)
009-og-images āœ…āœ…āœ… (108.0s)
010-route-handlers āœ…āœ…āœ… (69.1s)
011-client-server-form āœ…āœ…āœ… (167.9s)
012-parallel-routes āœ…āœ…āœ… (157.7s)
013-pathname-server āŒāŒāŒ (70.8s)
014-server-routing āœ…āœ…āŒ (94.0s)
015-server-actions-exports āœ…āœ…āŒ (69.6s)
016-client-cookies āŒāœ…āŒ (65.9s)
017-use-search-params āœ…āœ…āŒ (59.7s)
018-use-router āœ…āœ…āœ… (72.6s)
019-use-action-state āœ…āœ…āœ… (120.3s)
020-no-use-effect āœ…āœ…āŒ (92.0s)
021-avoid-fetch-in-effect āœ…āœ…āœ… (238.6s)
022-prefer-server-actions āœ…āœ…āœ… (312.2s)
023-avoid-getserversideprops āœ…āœ…āœ… (166.2s)
024-avoid-redundant-usestate āœ…āœ…āœ… (111.5s)
025-prefer-next-link āœ…āœ…āœ… (120.9s)
026-no-serial-await āŒāœ…āœ… (153.3s)
027-prefer-next-image āœ…āœ…āœ… (98.7s)
028-prefer-next-font āœ…āœ…āœ… (90.5s)
029-use-cache-directive āœ…āœ…āœ… (212.0s)
030-app-router-migration-hard āœ…āœ…āœ… (453.7s)
031-ai-sdk-migration-simple āœ…āœ…āœ… (178.7s)
032-ai-sdk-model-specification-string āœ…āœ…āœ… (194.9s)
033-ai-sdk-v4-model-specification-function āœ…āœ…āœ… (166.7s)
034-ai-sdk-render-visual-info āŒāŒāŒ (659.4s)
035-ai-sdk-call-tools āœ…āœ…āœ… (338.5s)
036-ai-sdk-call-tools-multiple-steps āœ…āœ…āœ… (307.9s)
037-ai-sdk-embed-text āœ…āœ…āœ… (155.0s)
038-ai-sdk-mcp āœ…āœ…āœ… (260.5s)
039-parallel-routes āœ…āœ…āœ… (217.6s)
040-intercepting-routes āœ…āœ…āœ… (208.4s)
041-route-groups āœ…āœ…āœ… (139.1s)
042-loading-ui āœ…āœ…āœ… (123.9s)
043-error-boundaries āœ…āœ…āœ… (138.4s)
044-metadata-api āœ…āœ…āœ… (115.6s)
045-server-actions-form āœ…āœ…āŒ (88.8s)
046-streaming āœ…āœ…āœ… (129.9s)
047-middleware āœ…āœ…āœ… (78.2s)
048-draft-mode āœ…āœ…āœ… (207.6s)
049-revalidation āœ…āœ…āœ… (124.2s)
-------------------------------------------- --------------------------
Overall (B/L/T) 45/48/40 (90%, 96%, 80%)

Claude Sonnet 4.5:

šŸ“Š Results:
════════════════════════════════════════════════════════════════════════════════

Eval Claude Code
000-app-router-migration-simple āœ…āœ…āœ… (164.1s)
001-server-component āœ…āœ…āœ… (88.8s)
002-client-component āœ…āœ…āœ… (109.4s)
003-cookies āœ…āœ…āœ… (138.6s)
004-search-params āœ…āœ…āœ… (223.4s)
005-react-use-api āœ…āœ…āœ… (132.7s)
006-server-metadata āœ…āœ…āœ… (90.8s)
007-client-metadata āœ…āœ…āŒ (81.1s)
008-generate-static-params āŒāœ…āŒ (78.0s)
009-og-images āœ…āœ…āœ… (105.3s)
010-route-handlers āœ…āœ…āœ… (75.1s)
011-client-server-form āœ…āœ…āœ… (179.3s)
012-parallel-routes āœ…āœ…āœ… (153.3s)
013-pathname-server āŒāŒāŒ (78.2s)
014-server-routing āŒāœ…āŒ (103.1s)
015-server-actions-exports āœ…āœ…āŒ (76.0s)
016-client-cookies āŒāœ…āŒ (71.5s)
017-use-search-params āœ…āœ…āŒ (64.1s)
018-use-router āœ…āœ…āœ… (77.2s)
019-use-action-state āœ…āœ…āœ… (123.8s)
020-no-use-effect āœ…āœ…āŒ (94.5s)
021-avoid-fetch-in-effect āœ…āœ…āœ… (269.8s)
022-prefer-server-actions āœ…āœ…āœ… (242.4s)
023-avoid-getserversideprops āœ…āœ…āœ… (207.7s)
024-avoid-redundant-usestate āœ…āœ…āœ… (126.4s)
025-prefer-next-link āœ…āœ…āœ… (96.4s)
026-no-serial-await āœ…āœ…āœ… (220.4s)
027-prefer-next-image āœ…āœ…āœ… (103.4s)
028-prefer-next-font āœ…āœ…āœ… (81.4s)
029-use-cache-directive āœ…āœ…āœ… (208.8s)
030-app-router-migration-hard āœ…āœ…āœ… (397.9s)
031-ai-sdk-migration-simple āœ…āœ…āœ… (233.2s)
032-ai-sdk-model-specification-string āœ…āœ…āœ… (150.4s)
033-ai-sdk-v4-model-specification-function āœ…āœ…āœ… (118.6s)
034-ai-sdk-render-visual-info āœ…āœ…āŒ (567.8s)
035-ai-sdk-call-tools āœ…āœ…āœ… (209.6s)
036-ai-sdk-call-tools-multiple-steps āœ…āœ…āœ… (247.7s)
037-ai-sdk-embed-text āœ…āœ…āœ… (181.0s)
038-ai-sdk-mcp āŒāŒāŒ
039-parallel-routes āœ…āœ…āœ… (162.7s)
040-intercepting-routes āœ…āœ…āœ… (201.2s)
041-route-groups āœ…āœ…āœ… (147.7s)
042-loading-ui āœ…āœ…āœ… (141.3s)
043-error-boundaries āœ…āœ…āœ… (228.7s)
044-metadata-api āœ…āœ…āœ… (110.0s)
045-server-actions-form āœ…āœ…āŒ (101.0s)
046-streaming āœ…āœ…āœ… (126.4s)
047-middleware āœ…āœ…āœ… (91.2s)
048-draft-mode āœ…āœ…āœ… (210.0s)
049-revalidation āŒāœ…āœ… (195.9s)
-------------------------------------------- --------------------------
Overall (B/L/T) 44/48/39 (88%, 96%, 78%)

Outcomes

Does this translate into improved real world code or is Claude now just optimised to better pass evals? This would be a great area to explore.

Please try and let me know.