跳转到内容

AI 护栏

AI 编码工具写代码很快,但它也会越过模块边界、跳过权限校验、漏掉测试,因为没人告诉它别这么做。StackRivet 的答案不是一个聊天机器人,而是仓库里一套机器可读的规则,让 AI 工具待在资深工程师会强制执行的同一套架构内。

公开仓库内置一套 AI 可读规则系统,告诉编码工具如何安全地修改 StackRivet:

层级用途
仓库指南修改流程、归属边界和验证门禁。
机器可读地图产品文档、代码区域和硬规则的紧凑索引。
工程标准每个仓库的分层、风格、安全和测试要求。
模块 manifest模块本地菜单、权限、迁移与 AI 提示。

核心原则:AI 产出必须满足和人写代码同一套工程规则。 如果它越过模块边界、跳过权限校验或遗漏验证,就还没有完成。

护栏以 AI 必须遵守的形式,编码了架构安全页所描述的同一套边界:

  • 模块边界与单向分层(Controller → Service → Domain → Mapper)。
  • 权限——每个受保护端点都声明权限;新权限先在模块 manifest 中声明,再给控制器使用。
  • 迁移——所有结构变更走 Flyway;不手改生产库。
  • 测试——生成的和手写的代码都带测试。
  • 不泄露存储 key,不绕过 Service / 权限 / 审计层,且 Asset Service 是唯一的文件系统(存 asset_id,绝不存 URL)。

硬规则覆盖 AI 工具最容易引入的问题:受保护 API 默认拒绝、不存明文密码、日志不含密钥、所有列表 API 分页(最大 pageSize 200)、重任务作为异步任务运行并带 idempotencyKey、前端必须用 StackRivet 设计系统而非默认 Element Plus 观感。

规则也告诉 AI 把东西放在哪,免得它自由发挥:

要新增……做法
一个业务模块用产品内置代码生成器 /api/v1/generator——不要手搓
一个权限在模块 manifest 中声明,再给 controller 加注解
一张表在所属模块中增加 Flyway 迁移
一个设计 token扩展设计 token 层,不要内联样式

模块 manifest 把这一切串起来:每个模块在同一处声明自己的名称、版本、菜单、权限、字典、迁移和 AI 规则——这也是模块可评审、可升级的依据。

核心 AI 护栏、模块 manifest 和工程标准都在 Community 内。更高阶的 AI 能力——数据库设计助手、需求转模块向导、AI 代码审查 Agent、私有模型网关、项目 RAG 知识库、MCP 服务——属于 Pro / Enterprise;见价格页

要在你的编辑器里用上这些护栏,见 AI 编码工作流指南。