← VercelCONTENT HISTORY

Update to Vercel

Snapshot Sep 30, 2026 · 23:18 UTC · version 0.21.4

Collection source: not recorded for this historical snapshot. These snapshots do not have a confirmed matching collection source. Differences in file lists alone do not establish changes to the package.

WHAT CHANGED · RULE-BASED ANALYSIS

Supporting file metadata differs

Newly listed paths: agents/openai.yaml. This compares saved file lists, not package contents; a different collection source can change the list.

Observed in package metadata. These changes alone do not establish a new customer-facing feature.

Supporting files

Before

[{"relative_path":"references/app-router-files.md","size_in_bytes":2610},{"relative_path":"references/async-patterns.md","size_in_bytes":1664},{"relative_path":"references/bundling.md","size_in_bytes":4456},{"relative_path":"references/d...

After

[{"relative_path":"agents/openai.yaml","size_in_bytes":95},{"relative_path":"references/app-router-files.md","size_in_bytes":2610},{"relative_path":"references/async-patterns.md","size_in_bytes":1664},{"relative_path":"references/bundlin...

Compare saved observations

Download comparison JSON
Full technical diff · 1 changed fields

changed /included_files

BEFORE
[
  {
    "relative_path": "references/app-router-files.md",
    "size_in_bytes": 2610
  },
  {
    "relative_path": "references/async-patterns.md",
    "size_in_bytes": 1664
  },
  {
    "relative_path": "references/bundling.md",
    "size_in_bytes": 4456
  },
  {
    "relative_path": "references/data-patterns.md",
    "size_in_bytes": 6687
  },
  {
    "relative_path": "references/debug-tricks.md",
    "size_in_bytes": 2953
  },
  {
    "relative_path": "references/directives.md",
    "size_in_bytes": 1476
  },
  {
    "relative_path": "references/error-handling.md",
    "size_in_bytes": 4736
  },
  {
    "relative_path": "references/file-conventions.md",
    "size_in_bytes": 3464
  },
  {
    "relative_path": "references/font.md",
    "size_in_bytes": 5196
  },
  {
    "relative_path": "references/functions.md",
    "size_in_bytes": 4388
  },
  {
    "relative_path": "references/hydration-error.md",
    "size_in_bytes": 1801
  },
  {
    "relative_path": "references/image.md",
    "size_in_bytes": 3882
  },
  {
    "relative_path": "references/metadata.md",
    "size_in_bytes": 7140
  },
  {
    "relative_path": "references/parallel-routes.md",
    "size_in_bytes": 7171
  },
  {
    "relative_path": "references/route-handlers.md",
    "size_in_bytes": 3244
  },
  {
    "relative_path": "references/rsc-boundaries.md",
    "size_in_bytes": 4309
  },
  {
    "relative_path": "references/runtime-selection.md",
    "size_in_bytes": 985
  },
  {
    "relative_path": "references/scripts.md",
    "size_in_bytes": 3326
  },
  {
    "relative_path": "references/self-hosting.md",
    "size_in_bytes": 8334
  },
  {
    "relative_path": "references/suspense-boundaries.md",
    "size_in_bytes": 1366
  }
]
AFTER
[
  {
    "relative_path": "agents/openai.yaml",
    "size_in_bytes": 95
  },
  {
    "relative_path": "references/app-router-files.md",
    "size_in_bytes": 2610
  },
  {
    "relative_path": "references/async-patterns.md",
    "size_in_bytes": 1664
  },
  {
    "relative_path": "references/bundling.md",
    "size_in_bytes": 4456
  },
  {
    "relative_path": "references/data-patterns.md",
    "size_in_bytes": 6687
  },
  {
    "relative_path": "references/debug-tricks.md",
    "size_in_bytes": 2953
  },
  {
    "relative_path": "references/directives.md",
    "size_in_bytes": 1476
  },
  {
    "relative_path": "references/error-handling.md",
    "size_in_bytes": 4736
  },
  {
    "relative_path": "references/file-conventions.md",
    "size_in_bytes": 3464
  },
  {
    "relative_path": "references/font.md",
    "size_in_bytes": 5196
  },
  {
    "relative_path": "references/functions.md",
    "size_in_bytes": 4388
  },
  {
    "relative_path": "references/hydration-error.md",
    "size_in_bytes": 1801
  },
  {
    "relative_path": "references/image.md",
    "size_in_bytes": 3882
  },
  {
    "relative_path": "references/metadata.md",
    "size_in_bytes": 7140
  },
  {
    "relative_path": "references/parallel-routes.md",
    "size_in_bytes": 7171
  },
  {
    "relative_path": "references/route-handlers.md",
    "size_in_bytes": 3244
  },
  {
    "relative_path": "references/rsc-boundaries.md",
    "size_in_bytes": 4309
  },
  {
    "relative_path": "references/runtime-selection.md",
    "size_in_bytes": 985
  },
  {
    "relative_path": "references/scripts.md",
    "size_in_bytes": 3326
  },
  {
    "relative_path": "references/self-hosting.md",
    "size_in_bytes": 8334
  },
  {
    "relative_path": "references/suspense-boundaries.md",
    "size_in_bytes": 1366
  }
]
Full snapshot data
{
  "description": "Next.js App Router expert guidance. Use when building, debugging, or architecting Next.js applications — routing, Server Components, Server Actions, Cache Components, layouts, middleware/proxy, data fetching, rendering strategies, and deployment on Vercel.",
  "included_files": [
    {
      "relative_path": "agents/openai.yaml",
      "size_in_bytes": 95
    },
    {
      "relative_path": "references/app-router-files.md",
      "size_in_bytes": 2610
    },
    {
      "relative_path": "references/async-patterns.md",
      "size_in_bytes": 1664
    },
    {
      "relative_path": "references/bundling.md",
      "size_in_bytes": 4456
    },
    {
      "relative_path": "references/data-patterns.md",
      "size_in_bytes": 6687
    },
    {
      "relative_path": "references/debug-tricks.md",
      "size_in_bytes": 2953
    },
    {
      "relative_path": "references/directives.md",
      "size_in_bytes": 1476
    },
    {
      "relative_path": "references/error-handling.md",
      "size_in_bytes": 4736
    },
    {
      "relative_path": "references/file-conventions.md",
      "size_in_bytes": 3464
    },
    {
      "relative_path": "references/font.md",
      "size_in_bytes": 5196
    },
    {
      "relative_path": "references/functions.md",
      "size_in_bytes": 4388
    },
    {
      "relative_path": "references/hydration-error.md",
      "size_in_bytes": 1801
    },
    {
      "relative_path": "references/image.md",
      "size_in_bytes": 3882
    },
    {
      "relative_path": "references/metadata.md",
      "size_in_bytes": 7140
    },
    {
      "relative_path": "references/parallel-routes.md",
      "size_in_bytes": 7171
    },
    {
      "relative_path": "references/route-handlers.md",
      "size_in_bytes": 3244
    },
    {
      "relative_path": "references/rsc-boundaries.md",
      "size_in_bytes": 4309
    },
    {
      "relative_path": "references/runtime-selection.md",
      "size_in_bytes": 985
    },
    {
      "relative_path": "references/scripts.md",
      "size_in_bytes": 3326
    },
    {
      "relative_path": "references/self-hosting.md",
      "size_in_bytes": 8334
    },
    {
      "relative_path": "references/suspense-boundaries.md",
      "size_in_bytes": 1366
    }
  ],
  "name": "nextjs",
  "skill_md_contents": "---\nname: nextjs\ndescription: Next.js App Router expert guidance. Use when building, debugging, or architecting Next.js applications — routing, Server Components, Server Actions, Cache Components, layouts, middleware/proxy, data fetching, rendering strategies, and deployment on Vercel.\nmetadata:\n  priority: 5\n  docs:\n    - \"https://nextjs.org/docs\"\n    - \"https://nextjs.org/docs/app\"\n  sitemap: \"https://nextjs.org/sitemap.xml\"\n  pathPatterns:\n    - 'next.config.*'\n    - 'next-env.d.ts'\n    - 'app/**'\n    - 'pages/**'\n    - 'src/app/**'\n    - 'src/pages/**'\n    - 'tailwind.config.*'\n    - 'postcss.config.*'\n    - 'tsconfig.json'\n    - 'tsconfig.*.json'\n    - 'apps/*/app/**'\n    - 'apps/*/pages/**'\n    - 'apps/*/src/app/**'\n    - 'apps/*/src/pages/**'\n    - 'apps/*/next.config.*'\n  bashPatterns:\n    - '\\bnext\\s+(dev|build|start|lint)\\b'\n    - '\\bnext\\s+experimental-analyze\\b'\n    - '\\bnpx\\s+create-next-app\\b'\n    - '\\bbunx\\s+create-next-app\\b'\n    - '\\bnpm\\s+run\\s+(dev|build|start)\\b'\n    - '\\bpnpm\\s+(dev|build)\\b'\n    - '\\bbun\\s+run\\s+(dev|build)\\b'\n  promptSignals:\n    phrases:\n      - \"next.js\"\n      - \"nextjs\"\n      - \"app router\"\n      - \"server component\"\n      - \"server action\"\n    allOf:\n      - [middleware, next]\n      - [layout, route]\n    anyOf:\n      - \"pages router\"\n      - \"getserversideprops\"\n      - \"use server\"\n    noneOf: []\n    minScore: 6\n---\n\n# Next.js Best Practices\n\nApply these rules when writing or reviewing Next.js code.\n\n## File Conventions\n\nSee [file-conventions.md](references/file-conventions.md) for:\n- Project structure and special files\n- Route segments (dynamic, catch-all, groups)\n- Parallel and intercepting routes\n- Middleware rename in v16 (middleware → proxy)\n\n## RSC Boundaries\n\nDetect invalid React Server Component patterns.\n\nSee [rsc-boundaries.md](references/rsc-boundaries.md) for:\n- Async client component detection (invalid)\n- Non-serializable props detection\n- Server Action exceptions\n\n## Async Patterns\n\nNext.js 15+ async API changes.\n\nSee [async-patterns.md](references/async-patterns.md) for:\n- Async `params` and `searchParams`\n- Async `cookies()` and `headers()`\n- Migration codemod\n\n## Runtime Selection\n\nSee [runtime-selection.md](references/runtime-selection.md) for:\n- Default to Node.js runtime\n- When Edge runtime is appropriate\n\n## Directives\n\nSee [directives.md](references/directives.md) for:\n- `'use client'`, `'use server'` (React)\n- `'use cache'` (Next.js)\n\n## Functions\n\nSee [functions.md](references/functions.md) for:\n- Navigation hooks: `useRouter`, `usePathname`, `useSearchParams`, `useParams`\n- Server functions: `cookies`, `headers`, `draftMode`, `after`\n- Generate functions: `generateStaticParams`, `generateMetadata`\n\n## Error Handling\n\nSee [error-handling.md](references/error-handling.md) for:\n- `error.tsx`, `global-error.tsx`, `not-found.tsx`\n- `redirect`, `permanentRedirect`, `notFound`\n- `forbidden`, `unauthorized` (auth errors)\n- `unstable_rethrow` for catch blocks\n\n## Data Patterns\n\nSee [data-patterns.md](references/data-patterns.md) for:\n- Server Components vs Server Actions vs Route Handlers\n- Avoiding data waterfalls (`Promise.all`, Suspense, preload)\n- Client component data fetching\n\n## Route Handlers\n\nSee [route-handlers.md](references/route-handlers.md) for:\n- `route.ts` basics\n- GET handler conflicts with `page.tsx`\n- Environment behavior (no React DOM)\n- When to use vs Server Actions\n\n## Metadata & OG Images\n\nSee [metadata.md](references/metadata.md) for:\n- Static and dynamic metadata\n- `generateMetadata` function\n- OG image generation with `next/og`\n- File-based metadata conventions\n\n## Image Optimization\n\nSee [image.md](references/image.md) for:\n- Always use `next/image` over `<img>`\n- Remote images configuration\n- Responsive `sizes` attribute\n- Blur placeholders\n- Priority loading for LCP\n\n## Font Optimization\n\nSee [font.md](references/font.md) for:\n- `next/font` setup\n- Google Fonts, local fonts\n- Tailwind CSS integration\n- Preloading subsets\n\n## Bundling\n\nSee [bundling.md](references/bundling.md) for:\n- Server-incompatible packages\n- CSS imports (not link tags)\n- Polyfills (already included)\n- ESM/CommonJS issues\n- Bundle analysis\n\n## Scripts\n\nSee [scripts.md](references/scripts.md) for:\n- `next/script` vs native script tags\n- Inline scripts need `id`\n- Loading strategies\n- Google Analytics with `@next/third-parties`\n\n## Hydration Errors\n\nSee [hydration-error.md](references/hydration-error.md) for:\n- Common causes (browser APIs, dates, invalid HTML)\n- Debugging with error overlay\n- Fixes for each cause\n\n## Suspense Boundaries\n\nSee [suspense-boundaries.md](references/suspense-boundaries.md) for:\n- CSR bailout with `useSearchParams` and `usePathname`\n- Which hooks require Suspense boundaries\n\n## Parallel & Intercepting Routes\n\nSee [parallel-routes.md](references/parallel-routes.md) for:\n- Modal patterns with `@slot` and `(.)` interceptors\n- `default.tsx` for fallbacks\n- Closing modals correctly with `router.back()`\n\n## Self-Hosting\n\nSee [self-hosting.md](references/self-hosting.md) for:\n- `output: 'standalone'` for Docker\n- Cache handlers for multi-instance ISR\n- What works vs needs extra setup\n\n## Debug Tricks\n\nSee [debug-tricks.md](references/debug-tricks.md) for:\n- MCP endpoint for AI-assisted debugging\n- Rebuild specific routes with `--debug-build-paths`\n"
}

SHA-256 of public snapshot: d78833d26b029a6de83eb4b1b58fb221f9e5011f35fd79a61d13a6c2ffb18e41