Skip to content

Latest commit

 

History

History
148 lines (99 loc) · 3.26 KB

File metadata and controls

148 lines (99 loc) · 3.26 KB

40 AI Collaboration

1. 适用对象

本文件专门约束以下协作主体:

  • AI 编码助手
  • 代码代理
  • 自动化修复脚本
  • 半自动生成代码流程

目标是让 AI 在 vibecoding 场景下保持高效率,同时不破坏架构和可维护性。

2. AI 必须先做什么

在开始改动前,AI 必须先完成以下判断:

  1. 这次需求属于哪个边界上下文。
  2. 这次改动应该落在哪一层。
  3. 现有目录中是否已有可复用模型、端口、适配器或组件。
  4. 这次改动的最小闭环是什么。

如果以上四项不能回答清楚,禁止直接大面积生成代码。

3. AI 允许做什么

  • 允许先搭骨架再补细节
  • 允许使用 stub 打通链路
  • 允许小步重构
  • 允许先实现最小可运行版本

但前提是:

  • stub 放在正确层
  • 命名清晰
  • 替换点明确
  • 不制造新的硬耦合

4. AI 禁止做什么

  • 不先读现有代码就大面积改目录
  • 不把业务逻辑塞进表现层组件
  • 不在 domain 中写 Node / Shell / 网络细节
  • 不复制现有代码后仅改变量名
  • 不生成大批未使用类型、接口、帮助函数
  • 不为了“以后可能会用”预埋大量空抽象
  • 不在一个任务里同时引入无关重构

5. AI 编码粒度

AI 的默认改动粒度应满足:

  • 单次优先解决一个主题
  • 先修结构,再补功能
  • 先保证可运行,再补增强
  • 能复用时不新建同义文件

如果任务很大,优先分成:

  1. 文档与规划
  2. 骨架与接口
  3. 最小实现
  4. 验证与收尾

6. AI 对目录的约束

AI 新建目录前必须确认:

  • 当前目录不能承载该职责
  • 新目录是长期概念,不是一次性临时分组
  • 新目录名符合领域语言

以下目录名默认禁止使用:

  • misc
  • common
  • temp
  • all
  • shared2
  • new
  • helpers

除非能清楚证明该目录边界是稳定且合理的。

7. AI 对抽象的约束

AI 只有在以下条件满足时才允许新增抽象层:

  1. 已出现第二个真实使用点。
  2. 抽象后比原来更清晰。
  3. 抽象没有增加跨层理解成本。

如果只是单点调用,优先保持直接实现。

8. AI 对注释的约束

AI 写中文注释时必须:

  • 解释职责
  • 解释设计意图
  • 解释未来替换点

AI 不应写:

  • 表面翻译式注释
  • 无意义步骤注释
  • 与代码矛盾的陈旧注释

9. AI 对验证的约束

只要改了代码,AI 至少执行以下一项:

  • bunx tsc --noEmit
  • bun test
  • bun run build

如果修改涉及架构、入口、依赖或构建链,优先执行两项及以上。

AI 不得在未验证的情况下直接宣称“完成”。

10. AI 输出要求

AI 完成任务时必须明确说明:

  • 改了什么
  • 为什么这样分层
  • 做了什么验证
  • 还有哪些后续建议

如果有未完成项,必须明确说清楚,不得模糊带过。

11. AI 冲突处理

当用户要求与现有规则冲突时:

  • 优先满足用户目标
  • 但要尽量保持架构边界
  • 如果冲突会造成长期负债,应先提示风险,再选择最小破坏方案

12. AI 完成定义

AI 只有在满足以下条件时才算完成:

  1. 代码已落地
  2. 结构未越层
  3. 没有明显重复
  4. 已做基础验证
  5. 必要文档已更新