Agent Skillsai-shifu/ai-shifu › app-error-boundary-display

app-error-boundary-display

GitHub

规范 Next.js App Router 全局及路由级错误兜底页实现,统一错误信息展示、复制及样式,确保兼容 SSR 与客户端环境。

src/cook-web/skills/app-error-boundary-display/SKILL.md ai-shifu/ai-shifu

Trigger Scenarios

需要配置或修改 Next.js error.tsx 和 global-error.tsx 调整前端应用的全局错误处理逻辑

Install

npx skills add ai-shifu/ai-shifu --skill app-error-boundary-display -g -y
More Options

Non-standard path

npx skills add https://github.com/ai-shifu/ai-shifu/tree/main/src/cook-web/skills/app-error-boundary-display -g -y

Use without installing

npx skills use ai-shifu/ai-shifu@app-error-boundary-display

指定 Agent (Claude Code)

npx skills add ai-shifu/ai-shifu --skill app-error-boundary-display -a claude-code -g -y

安装 repo 全部 skill

npx skills add ai-shifu/ai-shifu --all -g -y

预览 repo 内 skill

npx skills add ai-shifu/ai-shifu --list

SKILL.md

Frontmatter
{
    "name": "app-error-boundary-display",
    "description": "当 cook-web 需要调整 Next.js App Router 全局或路由级错误兜底页时使用本技能。错误页应直接展示错误名称、message、digest、cause、URL 和可用 stack,避免只提示用户查看控制台。"
}

应用错误兜底展示

核心规则

  • App Router 的兜底错误页需要同时覆盖 src/app/error.tsxsrc/app/global-error.tsx;前者处理路由段错误,后者处理根布局或更外层错误。
  • 错误展示 UI 优先收敛到共享组件,避免全局错误页和路由错误页各自维护不同字段和样式。
  • 错误信息至少展示 namemessagedigestcause、当前 URL;有 stack 时可截断后直接展示,便于截图定位。
  • 复制错误信息时需要额外带上当前链接、来源链接和简要浏览器环境;浏览器环境只保留浏览器名称与操作系统,不要复制用户信息、token 或密码等敏感凭证。
  • global-error.tsx 需要自己返回 <html><body>,不要依赖根布局里的 Provider、i18n 或运行时配置已经初始化。
  • 错误兜底组件不要静态 import @/store barrel,避免错误页加载时触发 unrelated store 的模块副作用。
  • 兜底页样式优先使用 Tailwind class 和现有主题变量,不要引入硬编码色值;高度使用 dvh,不要使用 vhenv(safe-area-inset-bottom)
  • 这类兜底页允许提供最小静态文案,因为它可能在 i18n 初始化失败前渲染;不要把排障关键信息藏到只在控制台可见。

工作流

  1. 先确认问题是 App Router 默认错误页,而不是业务组件内部已有错误态。
  2. 新增或修改共享错误兜底组件,统一格式化错误字段、浏览器字段和复制文本。
  3. 同步接入 src/app/error.tsxsrc/app/global-error.tsx
  4. 若错误页需要访问浏览器对象,必须放在 client component 中,并用事件或 effect 读取,避免服务端渲染阶段访问 windowdocument 或触发 store 初始化副作用。
  5. 修改后至少运行 npm run type-check,确认 App Router 特殊文件签名和 client component 类型通过。

Version History

  • e65aa77 Current 2026-08-20 15:13

Same Skill Collection

src/api/skills/shifu-authoring-flow/SKILL.md
src/api/skills/user-auth-flows/SKILL.md
src/cook-web/skills/async-confirm-dialog-loading/SKILL.md
src/cook-web/skills/chat-actionbar-ask-placement/SKILL.md
src/cook-web/skills/chat-element-streaming/SKILL.md
src/cook-web/skills/chat-layout-width-detection/SKILL.md
src/cook-web/skills/deep-link-lessonid-routing/SKILL.md
src/cook-web/skills/fullscreen-dialog-portal/SKILL.md
src/cook-web/skills/interaction-user-input-defaults/SKILL.md
src/cook-web/skills/listen-mode-audio-streaming/SKILL.md
src/cook-web/skills/listen-mode-slide-mobile-integration/SKILL.md
src/cook-web/skills/markdownflow-controlled-sync/SKILL.md
src/cook-web/skills/module-augmentation-guardrails/SKILL.md
src/cook-web/skills/next-build-node-runtime/SKILL.md
src/cook-web/skills/shared-loading-dots/SKILL.md
src/cook-web/skills/hook-contract-refactor-safety/SKILL.md

Metadata

Files
0
Version
e65aa77
Hash
68cf8892
Indexed
2026-08-20 15:13

- 위키
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-08-25 11:42
浙ICP备14020137号-1 $방문자$