# Platform Policy: Stack Whitelist ## Purpose 定义 v1 默认技术栈白名单、禁用项和例外审批接口,避免让 agent 在项目主链路上随机选型。 ## When to Use - 新项目立项时 - 老项目需要补一套统一技术栈约束时 - agent 要新增框架、语言或关键基础设施时 ## Inputs - 项目类型 - 产品形态 - 现有遗留约束 - 性能与交付要求 ## Outputs - 允许的主链路技术栈 - 禁用项 - 例外审批流程 ## Primary Agent/Model `GPT-5.4 Pro xhigh` ## Secondary Agent/Model `Claude Opus 4.6` ## Required Skills - `ralphy-initializing` - `spec-reviewing` ## Steps 1. 先判断项目是 `Next.js 全栈` 还是 `Hono + React SSR/TanStack`。 2. 在允许的轨道内固定 UI、数据层、鉴权、样式和 ORM 方案。 3. 把选型写进 `CLAUDE.md`、Spec 和脚手架说明。 4. 如需偏离白名单,先走 ADR 和审批,再更新模板与执行说明。 ## Exit Criteria - 项目主链路的语言、框架、数据访问、鉴权和样式方案均已固定 - 例外项已被 ADR 化,并同步到模板和执行说明 ## Failure Recovery - 如果 agent 引入未批准语言或框架,停止实现并回退到白名单决策 - 如果项目同时混用多套主路由/状态/ORM 方案,立即收敛为单一路线 ## Related Templates - [`../templates/claude-md-template.md`](../templates/claude-md-template.md) - [`../templates/spec-template.md`](../templates/spec-template.md) ## Default Whitelist - 语言:`TypeScript` - UI:`React` - 样式:`Tailwind CSS` - 组件:`shadcn/ui` - 鉴权:`Better Auth` - 数据获取:`TanStack Query` - 路由:`TanStack Router` 或 `Next.js App Router`,按轨道二选一 - 服务层:`Hono` 或 `Next.js route handlers / server actions`,按轨道二选一 - ORM:`Drizzle` - 数据库:`PostgreSQL` ## Default Track Preference - 默认优先:`Hono + React SSR/TanStack` - 条件允许时可选:`Next.js 全栈` ## Hard Bans On The Application Main Path - 禁止 `Python` 作为产品应用主链路语言 - 禁止 `PHP` 作为产品应用主链路语言 - 禁止无类型的 `JavaScript-only` 作为默认实现路线 - 禁止未经 ADR 批准的第二套路由、鉴权、ORM 或样式体系并存 ## Allowed Exceptions - 既有遗留系统必须兼容,且短期无法迁移 - 明确的第三方平台限制只支持某一特定方案 - 已被性能分析证明主链路栈无法满足约束 - 一次性离线工具、迁移脚本或数据清洗脚本 ## Exception Interface - 谁批准:项目 owner + 技术负责人 - 需要补什么:ADR、`CLAUDE.md` 更新、相关 Spec 更新 - 要同步哪里:playbook 说明、模板默认值、handoff 约束 - 何时失效:例外只对当前项目或当前子系统生效,不自动扩散为默认规则