用途:在真实 Supastarter monorepo 中做改动时,按仓库特定模式(而非通用 Next.js 或 SaaS 模板)给出实现,适用于添加/移动营销页与 SaaS 页、路由与重定向、oRPC 过程与路由器、登录注册引导邀请会话组织流程、数据模型与查询、计费结账门户 webhook、上传与存储,以及文件在 monorepo 中的正确归属。不适用于无 Supastarter 特定模式的通用 TypeScript 工作、PR 评审,或忽略本仓库路由与包边界的框架无关建议。
核心规则:先分类请求,再定位归属面,读取最小匹配参考集,复用现有模式。仓库适配预检需确认四个目录存在:apps/web/app、apps/web/modules、packages/api/modules、packages/database;不满足则停止。
边界:路由在 apps/web/app,功能 UI 多在 apps/web/modules,API 过程在 packages/api/modules,认证配置在 packages/auth,schema 与共享查询在 packages/database,计费在 packages/payments,存储在 packages/storage。过程层级只有 publicProcedure、protectedProcedure、adminProcedure 三种,无 organizationProcedure;组织范围数据用 protectedProcedure 并在处理函数内做成员校验。
数据改动顺序:改 schema.prisma 后运行 pnpm generate && pnpm db:push,再加查询助手与 API。校验要点:新页面注意 i18n、鉴权守卫与 AppWrapper.tsx 导航;组织范围页面须位于 (organizations) 路由组,否则静默不渲染。使用 @repo/api、@repo/database、@repo/ui 等别名,默认服务端组件,必要时加 "use client"。计费须经 packages/payments 抽象,存储用签名 URL 且桶默认私有。