ISO 24495 Text Audit
GaZmagik/iso-24495
Audits a Markdown or text file or folder you choose for plain-language problems such as legalese, wordy phrases and long sentences, reporting each finding with file and line.
Write or audit an insight-kind error page for the Next.js dev overlay.
$ npx skills add vercel/next.js --skill insight-error-page -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install vercel/next.js insight-error-page --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/vercel/next.js.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/insight-error-page .claude/skills/insight-error-page && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "insight-error-page" agent skill from https://github.com/vercel/next.js/tree/canary/.agents/skills/insight-error-page into .claude/skills/insight-error-page/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "insight-error-page", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/vercel/next.js/tree/canary/.agents/skills/insight-error-pageType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add vercel/next.js --skill insight-error-page -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install vercel/next.js insight-error-page --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/vercel/next.js.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/insight-error-page .agents/skills/insight-error-page && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "insight-error-page" agent skill from https://github.com/vercel/next.js/tree/canary/.agents/skills/insight-error-page into .agents/skills/insight-error-page/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "insight-error-page", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add vercel/next.js --skill insight-error-page -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install vercel/next.js insight-error-page --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/vercel/next.js.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/insight-error-page .cursor/skills/insight-error-page && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "insight-error-page" agent skill from https://github.com/vercel/next.js/tree/canary/.agents/skills/insight-error-page into .cursor/skills/insight-error-page/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "insight-error-page", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/vercel/next.js.git --path .agents/skills/insight-error-page--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add vercel/next.js --skill insight-error-page -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install vercel/next.js insight-error-page --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/vercel/next.js.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/insight-error-page .gemini/skills/insight-error-page && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "insight-error-page" agent skill from https://github.com/vercel/next.js/tree/canary/.agents/skills/insight-error-page into .gemini/skills/insight-error-page/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "insight-error-page", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install vercel/next.js insight-error-pageInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add vercel/next.js --skill insight-error-page -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/vercel/next.js.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/insight-error-page .github/skills/insight-error-page && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "insight-error-page" agent skill from https://github.com/vercel/next.js/tree/canary/.agents/skills/insight-error-page into .github/skills/insight-error-page/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "insight-error-page", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add vercel/next.js --skill insight-error-page -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install vercel/next.js insight-error-page --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/vercel/next.js.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/insight-error-page .opencode/skills/insight-error-page && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "insight-error-page" agent skill from https://github.com/vercel/next.js/tree/canary/.agents/skills/insight-error-page into .opencode/skills/insight-error-page/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "insight-error-page", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
insight-error-pageWrite or audit an insight-kind error page for the Next.js dev overlay.
Insight Error Page is an agent skill from vercel/next.js, published by the product's own GitHub organization. Write or audit an insight-kind error page for the Next.js dev overlay. Use when creating a new errors/<slug.mdx page, auditing an existing one, or checking that a page matches the framework fix cards. Covers page structure, title alignment, FixCard cards with Copy prompt button, code snippets, terminology verification against canonical docs, and Vercel technical writing style.
Its SKILL.md is about 5.5k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Writing & Content, covering Markdown and Technical writing. It works with Next.js and Vercel. The licence is MIT.
5 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit a32ddfd. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are mdx).
From the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
nextjs.orgFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Insight Error Page loads about 5.5k tokens when it runs. Until then it costs about 100 tokens; SKILL.md has 2,419 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from vercel/next.js at commit a32ddfd, republished under its MIT licence (© vercel). 2,419 words, ~5,513 tokens.
.claude/skills/insight-error-page/SKILL.md (or your agent's skills folder).Write or audit an errors/<slug>.mdx insight-kind page that ships from this repo to nextjs.org and mirrors the fix-card set in the Next.js dev overlay.
Terminology: the frontmatter uses
kind: insightbut the body text calls these "errors" — never "insights". Write "this error", "error pages", "dismiss the error".
next-prerender-random", "write the sync IO docs"errors/*.mdx insight pages (frontmatter has kind: insight)Every decision traces back to one of these. When in doubt, read the source — don't guess.
| What | Source file | How to read it |
|---|---|---|
| Card titles, IDs, groups, snippets, link URLs | packages/next/src/next-devtools/dev-overlay/components/instant/instant-guidance-data.ts | Each FixCard[] array is one error family |
| Error headline (literal text user sees) | packages/next/src/server/app-render/sync-io-messages.ts, blocking-route-messages.ts, etc. | createSyncIOError, createDynamicBodyError, etc. — the template string is the headline |
| Existing page (content to preserve) | errors/<slug>.mdx in this repo | Read the full file; relocate useful content that doesn't fit fix cards into Gotchas or Other options |
| Canonical API docs (terminology) | docs/01-app/ in this repo | Cross-check every API name, directive name, and concept against the published docs |
| Template structure | This skill file (below) | The canonical shape of the page |
| Vercel writing style | The vercel-technical-writing skill in vercel/front (not present here) | Apply end-to-end; see "Voice and style" below for the rules condensed |
FixCard[] in instant-guidance-data.ts. Note every card's id, title, group, link, and snippets.createSyncIOError, createSyncIOClientError, createDynamicBodyError, etc. The headline template (minus the Route "..." prefix) becomes the page title.errors/<slug>.mdx if it exists. Note every pattern, code example, and caveat. You must preserve all useful content — relocate it if the new structure doesn't have a 1:1 slot for it.use cache, cacheLife, cacheTag, connection, Suspense, useEffect, use client, generateStaticParams, etc. Use the exact terminology from the published docs.vercel-technical-writing skill lives in vercel/front; the condensed rules below are the minimum bar.Every page follows this exact shape. Do not add, remove, or reorder sections.
---
title: <literal dev-overlay headline, no period, strip Route "..." prefix>
kind: insight
---
<the Instant Navigations callout div — the styled box linking the blog post and the Ensuring instant navigations guide; copy it from any existing insight page>
<Framing, 2-3 paragraphs. Paragraph 1 opens "During <phase>, <event>" in past tense (e.g. "During prerendering, a Server Component called ..."), names the APIs, and states the mechanism or consequence. Never open a paragraph with inline code — lead with a word ("The `params` prop ..."). Later paragraphs carry the teaching and cross-link sibling pages (parallel API families + client/server counterpart) using the "For X, see Y" formula.>
## Ways to fix this
<FixCardGrid> wrapping one <FixCard /> per framework card, in framework order
## <Card 1 title>
Choose this fix when ...
### Patterns
### Trade-off
### Gotchas
(optional: ### Short-lived caches — only for cache fixes)
## <Card 2 title>
...
## <Card N title>
...
(optional: ## Other options — for useful patterns that don't map to a framework fix card but are still relevant. Examples: bridging to a different error page's fix ("Cache the value in a Server Component" on a client page, linking to the server page), upstream content from `errors/<slug>.mdx` that doesn't fit the card structure, alternative APIs that sidestep the problem entirely. Each option gets its own `###` heading with framing prose, a code snippet, and a "Learn more" link to the page that covers it in full.)
## Verifying the fix
(canonical two paragraphs — see "Verifying the fix" rule below)
## Don't want this validation?
(canonical opt-out block — see "Don't want this validation?" rule below.
Exception: sync-IO pages replace this with "## Why `instant = false` doesn't clear this error",
because the opt-out cannot suppress sync-IO aborts.)
## Related Insights
(full list of every other insight-kind error page, current page omitted)title = the dev-overlay display headline, no period. That is the string the overlay shows (see the headline strings in errors.tsx / the factory in e.g. sync-io-messages.ts), with the Route "..." prefix stripped and any inline expression genericized (the client-hook overlay shows `useSearchParams()` inline; its docs title says "in a Client Component" instead).kind: insight — always present.Every page has a ## Verifying the fix section before the opt-out block. No page has a top-level Good to know; page-specific tips go in Gotchas under the relevant fix section. Two canonical paragraphs:
<Suspense> fallbacks covering only the regions that stream in." (navigation insights say "navigate to the route and confirm the insight no longer appears in the dev overlay and ..." instead of "reload the route"). Followed by the empty-shell caveat sentence: a boundary around the whole page body can pass validation with an empty shell.next build --debug-prerender for full user-frame stack traces and next build --debug-build-paths /dashboard /settings to iterate on specific routes. Copy the exact wording from an existing page.State the check as what the reader sees in the browser, not as framework artifacts ("the static shell renders real content" was retired for this reason — a fallback is expected after a correct fix; the check is that it covers only the streamed region).
<FixCard> cards<FixCardGrid> (the same component used in docs/01-app/02-guides/instant-navigation.mdx).<FixCard /> per framework card, in the same order as the framework FixCard[] array.title = card title from framework, verbatim. If it reads awkward as a heading, change the framework first — never the docs.href = # + the auto-slug of the title (e.g. "Generate on every request" → #generate-on-every-request). This must match what the heading auto-generates.group = card group from framework (dynamic, cache, client, stream, defer, measure, block, render, ignore, upgrade, disable, static).snippets = the same snippets array as the matching framework FixCard in instant-guidance-data.ts. Copy it verbatim. No description prose lives on the card — the snippets carry the visual.<FixCard ... />). The card has no children.prompt prop. The "Copy prompt" button builds the prompt dynamically at click time from the page URL and the card's title + href. The agent receives a prompt that points at the rule docs and names the fix — it then reads the docs page (the same one the user is on) for every constraint and code shape. That is why this skill exists: the docs page itself is the prompt's source of truth.## <Fix> sectionshref above.<condition>."### Patterns — one #### per meaningfully different shape of the fix. Each has:jsx filename="app/..." snippet (complete, copy-paste-ready, no ...existing code...)Learn more: link below the snippet### Trade-off — 1 paragraph. Mandatory. Describe the trade-off in the context of this error, not the generic API trade-off. If the only honest trade-off is the canonical API behavior (e.g. "GSP requires a rebuild when the list changes"), keep it to one sentence and link out to the API reference. Don't repeat what the API reference page already covers.### Gotchas — bulleted list. Mandatory (at least 1 bullet).### Short-lived caches subsection for cache fixes (document the 5-minute threshold).useEffect + useState or an event handler.useState initializers (e.g. useState(() => someUnstableCall())) run during SSR — warn against this in Gotchas.useRef lazy-init pattern is valid for stable IDs (initialize in a getter function, not inline). Only applicable when the value should be computed once and frozen — not when it should reflect the current moment.filename="app/..." on code blocks.useEffect), the Trade-off must link to Preventing flash before hydration.-client page when warning about inline render in Client Components.-client page; a client page's "Other options" section bridges to the server page's cache fix. Don't duplicate entire sections across sibling pages — keep each page lean and let the sibling be the canonical reference.nextjs.org/docs/*, react.dev/*, developer.mozilla.org/*, and other canonical first-party references. Never link to personal blogs, community write-ups, conference talks, X/Bluesky posts, GitHub gists, or any third-party source — including the page author's own blog. If a third-party post inspired a pattern, internalize the idea and write it in our own voice without citation. Sibling error pages, our own docs, and primary API specs are the only acceptable destinations.use cache directive (not "use cache" in prose)/docs/app/glossary#static-shell)instant (not instant)cacheLife / cacheTag / revalidateTag / updateTag — use published names exactlyconnection() from next/serverWhen the framework card set includes instant = false (group block), use the canonical ## Allow blocking route section shape. All pages with this fix must match. Cross-page consistency matters — diverging from this shape produces a page that reads like an outlier.
Intro: One paragraph explaining what setting instant to false does and what the trade-off is. Optional second paragraph noting when this is rarely the right answer (for example, on client-hook or cache fixes where a Suspense boundary is almost always feasible). Phrase the rarity directly.
Patterns: For page-body errors (runtime data, uncached data, client hooks), use both #### Opt the page out and #### Opt the layout out. For viewport errors, use only #### Opt the layout out (viewport always lives on a layout). Each pattern has:
jsx filename="app/..." snippet showing the exportLearn more: linkAfter the pattern snippets, include a "Use either pattern when:" bulleted list (2 bullets: layout-shell-not-meaningful + incremental migration; phrase singular for viewport pages with one pattern) and a single-sentence "Don't use this to dismiss the error. Choose Sibling fix A or Sibling fix B when either is feasible." closer.
Trade-off: One paragraph. "Navigations to this route are not instant. The user waits for the full server render before any HTML arrives. Use this only when that latency is the deliberate cost of the route's purpose."
Gotchas (mandatory bullets, in this order):
instant to false opts out only the segment that exports it. Descendant segments remain validated by their own config or the global default.Never add a gotcha that says Confirm with the user that ... in user-facing body prose. The page is what the user reads — write for them, not for the agent. Guardrails the agent should apply belong in the actual code-shape guidance under the ### Patterns heading (which the agent reads via the docs link in the copied prompt).
Every insight page ends (just before ## Related Insights) with the canonical opt-out block — except the six sync-IO pages (random/current-time/crypto and their -client variants), which replace it with ## Why \instant = false` doesn't clear this error`, because the sync-IO abort happens in the prerender path and the opt-out cannot suppress it. It teaches the reader how to opt out of validation per-segment, subtree-wide, and app-wide, since instant-navigation validation runs by default in Cache Components apps. Copy verbatim:
## Don't want this validation?
Instant-navigation validation runs by default in [Cache Components](/docs/app/api-reference/config/next-config-js/cacheComponents) apps and is what surfaces this error.
- **One segment**: add [`export const instant = false`](/docs/app/api-reference/file-conventions/route-segment-config/instant) to the page or layout file. This opts out the segment itself. Child segments are still validated during client navigations.
- **Entire app**: set [`experimental.instantInsights.validationLevel`](/docs/app/api-reference/file-conventions/route-segment-config/instant#configuring-validation-defaults) to `'manual-warning'` in `next.config`. This limits validation to segments that explicitly export `instant`.
See [Ensuring instant navigations](/docs/app/guides/instant-navigation) for the full model.easy, quick, simple, just, very, basically, obviously, utilize, facilitate, leverage, robust, seamless, cutting-edge, innovativeIn this guide ..., As mentioned above ..., Let's take a look at ..., It's worth noting ...params prop ...")await connection(), cacheLife); concepts stay prose ("Opt the page out")Learn more: link text = the target page's exact title for guides ("Streaming", "Ensuring instant navigations"), the bare code name matching the doc title for API references ([connection], [io], [searchParams] — no parens); third-party APIs keep their canonical spelling ([performance.now()])When auditing an existing page, check every item:
title = overlay display headline, no period, inline expressions genericizedkind: insight in frontmatter## Verifying the fix present with the two canonical paragraphs (observable check + --debug-prerender tooling)<FixCardGrid><FixCard /> per framework card, in framework order<FixCard /> title = card title verbatim<FixCard /> href = # + auto-slug of the heading<FixCard /> group matches framework card group<FixCard /> snippets = the framework card's snippets array, verbatimprompt prop on any <FixCard /> — the copy button generates the prompt from title + href + the page URL<FixCard /> is self-closing (no children, no description prose)## <Fix> heading = card title verbatim### Patterns, ### Trade-off, ### GotchasConfirm with the user ... phrasing anywhere in the page. The page is for the user; the agent reads the same page via the docs link in the copied prompt.## Allow blocking route, it matches the canonical shape: patterns (page-body errors use both Opt the page out + Opt the layout out; viewport errors use Opt the layout out only), "Use either pattern when" list, "Don't use this to dismiss the error" closer, canonical 2-bullet GotchasMath.random() during render in Client Components)useState(() => Math.random()) warned against in Gotchas## Don't want this validation? present, verbatim per the canonical block (sync-IO pages instead have ## Why \instant = false` doesn't clear this error`)## Related Insights section present, listing every other insight-kind error page (current page omitted)errors/<slug>.mdx content preserved (relocated to Gotchas or Other options if needed)link URLs point to the correct heading auto-slugs (if not, flag as a framework follow-up)Learn more: texts follow the title/bare-API convention and every target is the best page for the patternerrors/<slug>.mdx (this repo)https://nextjs.org/docs/messages/<slug>nextjs.org clones errors/ from canary on every deploy (sync pipeline lives in vercel/front)packages/next/src/next-devtools/dev-overlay/components/instant/instant-guidance-data.tspackages/next/src/server/app-render/sync-io-messages.ts, blocking-route-messages.ts, use-cache-messages.tsThe canonical reference page is errors/blocking-prerender-random.mdx. When writing a new page, read it first to match the exact structure, tone, and level of detail.
© vercel, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .agents/skills/insight-error-page of vercel/next.js.
Open the folder on GitHubat commit a32ddfd
Insight Error Page next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Insight Error Page this skillvercel/next.js | 143k | — | ~5.5k | Automated safety check: Pass | MIT | |
| ISO 24495 Text AuditGaZmagik/iso-24495 | 189 | 1 repos | ~817 | Automated safety check: Pass | MIT | |
| Developer Docs Technical Writervercel-labs/github-tools | 131 | — | ~3.9k | Automated safety check: Pass | MIT | |
| Redlamp Manualpdcgomes/redlamp | 192 | — | ~2.8k | Automated safety check: Pass | MPL-2.0 | |
| Mintlify Claude Docslilinji/ai-infra-odyssey | 129 | — | ~8.2k | Automated safety check: Pass | None | |
| Browse Xpc-style/x-md | 159 | — | ~733 | Automated safety check: Pass | MIT |
GaZmagik/iso-24495
Audits a Markdown or text file or folder you choose for plain-language problems such as legalese, wordy phrases and long sentences, reporting each finding with file and line.
vercel-labs/github-tools
Writes, reviews and edits developer documentation for SDKs, libraries and frameworks, from getting-started guides and API references to migration guides.
pdcgomes/redlamp
The Redlamp User Manual (docs/manual), a dense, book-style PDF for photographers, typeset from Markdown and a print style sheet by Chrome, with its ranges, defaults and shortcuts generated from the…
lilinji/ai-infra-odyssey
Build, write, review, migrate, and maintain Mintlify documentation in a restrained Claude Docs-inspired style.
pc-style/x-md
Reads public X (formerly Twitter) posts, threads, X Articles, profiles, followers, following, and search results as Markdown or JSON, with no X account and no API key.
wasp-lang/wasp
Transfer a blog post from Notion to the Wasp blog. An agent skill from wasp-lang/wasp.
vercel/next.js
Manages stacked PRs and splits multi-part work into reviewable branches with gh-stack.
vercel/next.js
Benchmark React or Next.js changes on Vercel Sandbox VMs with paired A/B statistics: react PR/commit vs base, or Next.js PR/commit vs base, measured end-to-end through the bench/render-pipeline app…
vercel/next.js
Verify Next.js runtime behavior after editing app code. An agent skill from vercel/next.js.
vercel/next.js
Draw diagrams for the Next.js docs in the style of the ones already published there: the light/dark PNGs an mdx references with <Image srcLight="/docs/light/<name.png" srcDark="/docs/dark/<name.png".
vercel/next.js
Turn on Cache Components in a Next.js app and resolve the blocking routes it surfaces.
vercel/next.js
Build local React changes in the bundle variants consumed by Next.js, sync them into a local Next.js checkout, and test the resulting integration.
Categories
Write or audit an insight-kind error page for the Next.js dev overlay. js, published by the product's own GitHub organization.js dev overlay.
Insight Error Page fits situations like: creating a new errors/<slug.mdx page; auditing an existing one; checking that a page matches the framework fix cards.
Run `npx skills add vercel/next.js --skill insight-error-page -a claude-code`. Or copy the skill folder (.agents/skills/insight-error-page in vercel/next.js) into .claude/skills/insight-error-page in your project. Claude Code loads it when a task matches its description.
Run `npx skills add vercel/next.js --skill insight-error-page -a codex`. Or copy the skill folder (.agents/skills/insight-error-page in vercel/next.js) into .agents/skills/insight-error-page in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add vercel/next.js --skill insight-error-page -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/insight-error-page, .gemini/skills/insight-error-page, .github/skills/insight-error-page and .opencode/skills/insight-error-page in your project.
SKILL.md names no scripts, command-line tools or credentials: Insight Error Page is instructions for the agent only.
SKILL.md names 1 domain. In commands or code: nextjs.org; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Insight Error Page is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 5.5k tokens (SKILL.md is roughly 22k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Insight Error Page: ISO 24495 Text Audit (GaZmagik/iso-24495, 189 stars), Developer Docs Technical Writer (vercel-labs/github-tools, 131 stars), Redlamp Manual (pdcgomes/redlamp, 192 stars) and Mintlify Claude Docs (lilinji/ai-infra-odyssey, 129 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
vercel (a GitHub organization, an official publisher) maintains it in vercel/next.js, which has 143,241 GitHub stars. The repository holds 27 skills in this directory. The repository was last updated on October 8, 2026.
Source: vercel/next.js on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.