Skip to content

团队 AI 编程公约

✅ 必做

  • 每个项目根目录有 CLAUDE.md(架构 / 风格 / 红线)
  • PR 描述里说明 AI 介入程度
  • 关键改动有自动化测试覆盖
  • 使用规范的 commit message(不写"更新代码"等泛化)

⚠️ 建议

  • 大改动前先写 spec,再让 AI 实现
  • 多轮对话太长时主动开新会话 + 同步上下文
  • 同一类需求维护团队 prompt 模板
  • 定期复盘 AI 误用案例,沉淀到知识库

❌ 禁止

  • 把生产数据 / 密钥 / 客户信息粘进 prompt
  • AI 写完未读直接 commit / merge
  • Code Review 完全外包给 AI(必须有人类终审)
  • 用 AI 绕过权限 / 安全检查(如 --no-verify)

AI 辅助编程工具正在深刻改变软件团队的工作方式。然而,工具的引入如果缺乏规范,往往会带来混乱:代码质量参差不齐、安全风险暗藏其中、责任归属模糊不清。本公约旨在为团队建立一套清晰、可落地的 AI 编程使用框架,让每位成员都能高效、安全、负责任地使用 AI 工具。


一、公约的核心原则

AI 是助手,不是决策者。 所有由 AI 生成的代码,在合并到主干之前,必须经过有资质的工程师审查并承担责任。AI 可以提高生产力,但不能替代工程判断力。

透明优于隐晦。 团队成员应主动说明哪些部分借助了 AI 生成,包括在 PR 描述中注明、在代码注释中标记关键 AI 生成段落。这不是羞耻,而是专业素养的体现。

安全红线不可逾越。 无论 AI 给出何种建议,涉及安全、隐私、合规的决策必须经过人工审核,不得直接采纳 AI 输出。


二、使用边界定义

允许使用的场景

场景说明
样板代码生成CRUD、DTO、接口骨架等重复性代码
单元测试编写基于已有逻辑生成测试用例
文档与注释函数说明、API 文档草稿
代码重构辅助在人工主导下完成模式识别与替换
调试思路提示分析错误堆栈、提供排查方向
技术方案调研汇总技术背景,辅助技术选型讨论

需要谨慎使用的场景

  • 核心业务逻辑:AI 生成的业务规则必须逐行核对,确认与产品需求一致。
  • 数据库迁移脚本:AI 生成后需经 DBA 或资深工程师二次确认,在测试环境验证后方可执行。
  • 第三方 API 集成:AI 可能使用已废弃的 SDK 版本或错误的认证方式,必须对照官方文档核实。

禁止使用的场景

  • 将包含真实用户数据、内部密钥、客户信息的代码片段粘贴至公共 AI 服务(如 ChatGPT 网页版)。
  • 使用 AI 直接生成用于生产环境的加密、认证或权限控制代码,不经人工审核直接部署。
  • 以 AI 生成的合规性声明代替法律或安全团队的正式审查。

三、责任分配框架

AI 生成代码引入了一个关键问题:谁来负责?本团队采用如下原则:

提交者负责制。 将 AI 生成代码提交到代码库的工程师,对该代码承担与手写代码相同的责任。"这是 AI 写的"不构成免责理由。

审查者连带责任。 审查者批准了包含 AI 生成代码的 PR,即意味着认可该代码满足质量标准。审查者不得以"AI 生成"为由降低审查标准。

Tech Lead 兜底职责。 Tech Lead 负责确认团队遵循本公约,并在发现系统性问题时推动公约修订。每季度至少复盘一次 AI 工具使用情况。

以下是可直接复用的 PR 描述模板,所有含 AI 辅助代码的 PR 必须包含此部分:

markdown
## AI 辅助说明

- **使用工具**:GitHub Copilot / Claude / Cursor 等
- **AI 生成比例**:约 xx%
- **AI 参与的模块**:[列出文件或功能]
- **人工校验情况**:[描述校验方式,如单元测试、手动测试]
- **已知风险点**:[若有,列出需要重点关注的地方]

四、强制审查规则

以下情形下,AI 生成的代码必须经过至少一名有经验工程师的审查,不得自我批准(Self-approve):

  1. 涉及用户认证、权限校验、Session 管理的代码
  2. 涉及支付、订单、财务数据的处理逻辑
  3. 数据库 Schema 变更及迁移脚本
  4. 对外暴露的 API 接口定义
  5. 配置文件与环境变量处理逻辑
  6. 任何涉及文件系统写操作或系统命令执行的代码

对于上述场景,PR 标题须包含 [AI-ASSISTED] 标签,以便 Reviewer 重点关注。

提交者自检清单

在提交包含 AI 辅助代码的 PR 之前,请逐项确认:

✓ 理解代码的每一行逻辑,能向他人解释
✓ 验证关键路径的行为(手动测试或自动化测试)
✓ 确认无硬编码密钥、真实凭证、个人数据
✓ 确认符合团队编码规范(命名、注释、错误处理)
✓ 已在 PR 描述中标注 AI 辅助说明
✓ 所有 AI 调用的外部 API 已通过官方文档核实存在

五、工具标准化

推荐工具栈

为减少工具碎片化,团队统一使用以下工具集:

类型推荐工具备注
IDE 内联补全GitHub Copilot(企业版)团队统一订阅,便于安全管理
对话式编程Claude Teams / ChatGPT Enterprise数据不用于模型训练
CLI AgentClaude Code复杂多文件重构场景
代码审查辅助CodeRabbit / PR-Agent集成至 CI,结论仅供参考
离线/敏感项目Ollama + 本地模型代码不离开本地网络

工具使用登记制度

团队成员引入新的 AI 工具前,须在团队工具登记表中申请,说明:

  • 使用场景
  • 数据流向(代码是否上传至第三方服务器)
  • 数据留存政策与隐私条款链接

未登记工具不得用于处理内部代码库。个人免费账号的使用需特别谨慎,因其数据政策通常允许将内容用于模型训练。


六、数据隐私指南

分级处理原则

数据类型可用于公共 AI 服务可用于私有部署 AI禁止 AI 处理
开源或示例代码
内部业务逻辑代码是(需审批)
含用户 PII 的数据或代码生产数据
API 密钥、密码、证书所有环境
未公开的产品规划否(视情况)

操作规范

在向 AI 工具提问前,检查代码片段中是否包含硬编码的密钥或真实数据,如有则先替换为占位符再提问。可在项目根目录配置 AI 工具的忽略文件(如 .cursorignore),排除 .env、证书文件、数据 dump 等敏感路径,避免这些文件被意外纳入 AI 上下文。

如发现 AI 工具的提示词或代码片段被意外上传至第三方,立即联系安全团队,并记录事件经过与时间线。


七、公约模板

以下是可直接复制到项目中使用的公约模板:

markdown
# [项目名称] AI 编程使用公约 v1.0

生效日期:YYYY-MM-DD
技术负责人:[姓名]

## 使用原则
1. AI 是辅助工具,开发者对所有提交代码负完全责任
2. 所有 AI 辅助代码必须在 PR 中注明
3. 安全敏感模块(鉴权、支付)禁止直接使用 AI 生成代码

## 允许工具
- IDE 补全:GitHub Copilot(企业版)
- 对话:Claude Teams 版

## 禁止行为
- 将生产数据输入任何 AI 工具
- 跳过 Review 直接合并 AI 生成代码

## 违规处理
- 首次:技术负责人谈话 + 记录
- 再次:上报工程经理

## 修订记录
| 版本 | 日期 | 变更说明 |
|------|------|----------|
| 1.0  | YYYY-MM-DD | 初版发布 |

八、公约的更新与执行

本公约不是一成不变的。随着 AI 工具的快速演进,规范也需要持续迭代:

  • 修订周期:每季度由 Tech Lead 组织一次公约回顾,收集团队反馈,评估是否需要更新。
  • 例外申请:如有合理理由需要偏离本公约,须提前向 Tech Lead 提出申请并记录在案,不得事后补报。
  • 违规处理:初次违规以反馈和教育为主;情节严重或重复违规(尤其是数据安全相关)须上报工程经理。
  • 写入 Onboarding:本公约应作为新人入职材料的必读内容,由导师在第一周内完成讲解。

本公约的目标不是限制 AI 工具的使用,而是确保团队在使用 AI 的过程中保持工程严谨性与专业责任感。好的工具需要好的使用规范,才能真正发挥价值。