mcpField
O
opinionated-nextjs-patterns

opinionated-nextjs-patterns

github.com/pproenca开发218128 次安装11 周前更新
代码仓库

关于 opinionated-nextjs-patterns

这项参考技能面向构建或审查 Next.js 16 App Router 项目的团队,按执行生命周期组织 50 条架构与实现规则,以 Supabase 为示例并说明可迁移的模式。

主要功能

  1. 01八类共 50 条规则
  2. 02授权与数据层访问模式
  3. 03服务端数据加载与变更
  4. 04客户端与服务端边界指导
  5. 05Turbo monorepo 架构
  6. 06表单与 UI 约定

适用场景

  1. 01实现新的 Next.js 功能
  2. 02审查授权与请求流程
  3. 03重构数据访问和包边界
  4. 04帮助开发者熟悉代码库

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/pproenca/dot-skills --skill opinionated-nextjs-patterns

安装后在 Claude Code 中输入/opinionated-nextjs-patterns确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

AGENTS.md
metadata.json
assets/templates/
_template.md
references/
_sections.md
arch-app-vs-packages-boundary.md
arch-config-driven-navigation.md
arch-data-access-adapter.md
arch-feature-package-layout.md
arch-import-via-package-exports.md
arch-policy-engine-for-business-rules.md
arch-provider-gateway-pattern.md
auth-gate-admin-client.md
auth-mfa-in-middleware.md
auth-server-only-imports.md
auth-trust-rls-no-duplicate-checks.md
auth-use-require-user.md
auth-use-sql-policy-helpers.md
auth-use-standard-server-client.md
client-pass-server-data-as-props.md
client-realtime-cleanup-subscription.md
client-stable-query-keys.md
client-use-action-hook.md
client-use-client-at-leaves.md
client-use-supabase-with-react-query.md
mutate-enhance-route-handler.md
mutate-revalidate-path-after-write.md
mutate-thin-action-service-holds-logic.md
mutate-use-getlogger-not-console.md
mutate-use-safe-action-clients.md
mutate-webhook-verify-signature.md

详细介绍

Opinionated Next.js 16 模式

为采用统一且有明确主张的架构的 Next.js 16(App Router) 代码库提供实现模式参考。包含 8 个类别中的 50 条规则,按执行生命周期中的级联影响排序:先处理授权和(可选的)租户建模,再处理请求边界、服务端数据获取、变更、客户端边界、架构和 UI 约定。

这些规则原则上与后端无关,但使用 Supabase 作为具体示例。每条规则都会讲解可迁移的理念(例如“在数据层进行授权”“通过类型化仓库读取”);如果模式确实与后端有关,则会通过 *Transferable:* 说明如何用于其他存储方案(Drizzle、Prisma)。该结构采用 Turbo monorepo,包含由你维护的 @app/* 包,基于规范的库构建(next-safe-action、@supabase/ssr、@tanstack/react-query、react-hook-form + zod、shadcn/ui、next-intl、pino),而非引入一个供应商提供的入门套件。

适用场景

遇到以下情况时,请参考这些规则:

  • 编写新代码——页面、布局、服务端操作、路由处理器、proxy.ts、功能包、客户端组件、Hooks、数据访问包、SQL/迁移文件、表单。
  • 审查 PR——授权疏漏(使用特权客户端却没有防护、缺少 'server-only')、请求瀑布(顺序执行 await、客户端获取服务端数据)、偏离规范(手动编辑生成的类型、深层包导入、硬编码的 i18n 字符串)。
  • 重构——在 apps/web 和 packages/* 之间移动代码、拆分操作与服务、提升 'use client' 边界、将原始查询替换为类型化的数据访问工厂、通过数据访问包替换后端。
  • 设计功能——选择合适的客户端(请求范围内、特权或浏览器端)、决定使用操作还是路由处理器、规划表单与服务端操作之间的契约、确定租户范围(如果是多租户)。
  • 入职——通过具体且可迁移的示例,了解代码库为何采用当前的结构。

按优先级划分的规则类别

优先级类别影响前缀
1授权与数据层访问CRITICALauth-
2多租户 (可选,仅限 SaaS)CRITICALtenant-
3请求边界(代理)HIGHproxy-
4服务端数据加载HIGHserver-
5变更:操作与路由处理器HIGHmutate-
6客户端/服务端边界MEDIUM-HIGHclient-
7架构与服务MEDIUMarch-
8表单与 UI 约定MEDIUMui-

快速参考

1. 授权与数据层访问(CRITICAL)
2. 多租户(关键——可选,仅适用于 SaaS)
3. 请求边界:代理(高优先级)
4. 服务端数据加载(高优先级)
5. 数据变更:操作与路由处理程序(高优先级)
6. 客户端/服务端边界(中高)
7. 架构与服务(中)
8. 表单与 UI 规范(中)

使用方法

阅读各个参考文件,了解详细说明和代码示例:

  • 章节定义 — 类别结构、影响级别和生命周期原理。
  • 规则模板 — 添加新规则的模板。
  • AGENTS.md — 自动生成的目录,便于快速导航。

参考文件

文件描述
references/_sections.md类别定义及按生命周期影响排序
assets/templates/_template.md添加新规则的模板
metadata.json版本、组织、参考资料

相关技能

  • base-ui-migrator — 批量将 Radix asChild 模式迁移为 Base UI render 属性。
  • tailwind-refactor — 将硬编码颜色重构为语义化令牌。
  • react-optimise — 优化 React 组件的性能。
  • nextjs-bundle-optimizer — 分析并缩减 Next.js 应用的包体积。

评论

支持 Markdown