AI 护栏
AI 编码工具写代码很快,但它也会越过模块边界、跳过权限校验、漏掉测试,因为没人告诉它别这么做。StackRivet 的答案不是一个聊天机器人,而是仓库里一套机器可读的规则,让 AI 工具待在资深工程师会强制执行的同一套架构内。
公开仓库内置一套 AI 可读规则系统,告诉编码工具如何安全地修改 StackRivet:
| 层级 | 用途 |
|---|---|
| 仓库指南 | 修改流程、归属边界和验证门禁。 |
| 机器可读地图 | 产品文档、代码区域和硬规则的紧凑索引。 |
| 工程标准 | 每个仓库的分层、风格、安全和测试要求。 |
| 模块 manifest | 模块本地菜单、权限、迁移与 AI 提示。 |
核心原则:AI 产出必须满足和人写代码同一套工程规则。 如果它越过模块边界、跳过权限校验或遗漏验证,就还没有完成。
规则强制什么
Section titled “规则强制什么”护栏以 AI 必须遵守的形式,编码了架构和安全页所描述的同一套边界:
- 模块边界与单向分层(Controller → Service → Domain → Mapper)。
- 权限——每个受保护端点都声明权限;新权限先在模块 manifest 中声明,再给控制器使用。
- 迁移——所有结构变更走 Flyway;不手改生产库。
- 测试——生成的和手写的代码都带测试。
- 不泄露存储 key,不绕过 Service / 权限 / 审计层,且 Asset Service 是唯一的文件系统(存
asset_id,绝不存 URL)。
硬规则覆盖 AI 工具最容易引入的问题:受保护 API 默认拒绝、不存明文密码、日志不含密钥、所有列表 API 分页(最大 pageSize 200)、重任务作为异步任务运行并带 idempotencyKey、前端必须用 StackRivet 设计系统而非默认 Element Plus 观感。
新东西放哪里
Section titled “新东西放哪里”规则也告诉 AI 把东西放在哪,免得它自由发挥:
| 要新增…… | 做法 |
|---|---|
| 一个业务模块 | 用产品内置代码生成器 /api/v1/generator——不要手搓 |
| 一个权限 | 在模块 manifest 中声明,再给 controller 加注解 |
| 一张表 | 在所属模块中增加 Flyway 迁移 |
| 一个设计 token | 扩展设计 token 层,不要内联样式 |
模块 manifest 把这一切串起来:每个模块在同一处声明自己的名称、版本、菜单、权限、字典、迁移和 AI 规则——这也是模块可评审、可升级的依据。
核心 AI 护栏、模块 manifest 和工程标准都在 Community 内。更高阶的 AI 能力——数据库设计助手、需求转模块向导、AI 代码审查 Agent、私有模型网关、项目 RAG 知识库、MCP 服务——属于 Pro / Enterprise;见价格页。
要在你的编辑器里用上这些护栏,见 AI 编码工作流指南。