83 行
2.8 KiB
Markdown
83 行
2.8 KiB
Markdown
# 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 约束
|
||
- 何时失效:例外只对当前项目或当前子系统生效,不自动扩散为默认规则
|