| @@ -0,0 +1,146 @@ | |||
| 1 | +# AI 声明合规检查指南 | ||
| 2 | + | ||
| 3 | +## 概述 | ||
| 4 | + | ||
| 5 | +### 触发流程 | ||
| 6 | + | ||
| 7 | +1. 创建 PR 时,PR 模板中会包含 **"AI 参与"** 勾选项,格式类似: | ||
| 8 | + | ||
| 9 | + ``` | ||
| 10 | + 当前PR是否有AI参与: | ||
| 11 | + [x] 否 | ||
| 12 | + | ||
| 13 | + [ ] 是 | ||
| 14 | + __1. AI Agent 平台: | ||
| 15 | + __2. AI 模型: | ||
| 16 | + __3. Prompt上下文 : | ||
| 17 | + ``` | ||
| 18 | + | ||
| 19 | +2. 当你勾选 **「是」** 并填写 AI Agent 平台和 AI 模型后提交 PR,机器人会自动为 PR 添加 `ai-co-authored` 标签。 | ||
| 20 | +3. 当 PR 带有 `ai-co-authored` 标签时,机器人会自动触发 **AI 声明合规性检查**,检查模板中填写的 AI 工具/模型以及所有 commit message 中的 AI 声明是否合规。 | ||
| 21 | +4. 当你后续将勾选改为 **「否」** 时,机器人会自动移除 `ai-co-authored` 标签,不再进行 AI 声明检查。 | ||
| 22 | + | ||
| 23 | +检查通过后,PR 会被打上 `ai-compliance-successful` 标签;检查不通过则打上 `ai-compliance-failed` 标签,同时机器人会评论反馈。 | ||
| 24 | + | ||
| 25 | +--- | ||
| 26 | + | ||
| 27 | +## 如何正确声明 AI 使用 | ||
| 28 | + | ||
| 29 | +### 第一步:在 PR 模板中勾选「是」并填写 AI 信息 | ||
| 30 | + | ||
| 31 | +创建 PR 时,PR 模板中的 **"AI 参与"** 选项必须勾选 **「是」**,并且在下方三个字段中填写具体信息: | ||
| 32 | + | ||
| 33 | +``` | ||
| 34 | +当前PR是否有AI参与: | ||
| 35 | +[ ] 否 | ||
| 36 | +[x] 是 | ||
| 37 | +__1. AI Agent 平台: Claude Code | ||
| 38 | +__2. AI 模型: DeepSeek-V3 | ||
| 39 | +__3. Prompt上下文: 重构 user 模块,补充单元测试 | ||
| 40 | +``` | ||
| 41 | + | ||
| 42 | +| 字段 | 说明 | 示例 | | ||
| 43 | +|------|------|------| | ||
| 44 | +| **AI Agent 平台** | 使用的 AI 工具名称 | `Claude Code`、`Copilot`、`Cursor` | | ||
| 45 | +| **AI 模型** | 使用的模型名称 | `DeepSeek-V3`、`GPT-4`、`Claude Opus 4` | | ||
| 46 | +| **Prompt上下文** | 简要描述 AI 协助完成的任务 | `重构 user 模块,补充单元测试` | | ||
| 47 | + | ||
| 48 | +> ℹ️ **非强校验**:此处不校验大小写和书写格式,请尽量保证拼写正确即可。 | ||
| 49 | + | ||
| 50 | +> ⚠️ **必须填写。** 如果 AI Agent 平台或 AI 模型为空,检查将不通过。 | ||
| 51 | + | ||
| 52 | +### 第二步:在 commit message 中同步声明 | ||
| 53 | + | ||
| 54 | +当你在 PR 模板中勾选了「是」,机器人会检查 commit message 中是否包含 AI 声明。**AI 参与的 commit 都需要带上声明**,纯手工的 commit 不需要。 | ||
| 55 | + | ||
| 56 | +> 💡 **小技巧**:可在 AI 工具的提示词 / 系统指令中配置,让 AI 提交代码时自动在 commit message 中携带模型信息,避免遗漏。 | ||
| 57 | + | ||
| 58 | +核心要求:**commit message 中必须体现使用的 AI 模型信息**,格式不做强制限制,例如: | ||
| 59 | + | ||
| 60 | + ``` | ||
| 61 | + fix: resolve performance issue | ||
| 62 | + Co-authored-by: DeepSeek-V3 | ||
| 63 | + ``` | ||
| 64 | + | ||
| 65 | +> ℹ️ **格式灵活**:`Co-authored-by`、`Generated-By`、`Assisted-By` 等 trailer 均可,关键是要写明使用的 AI 模型(如 `DeepSeek-V3`、`GPT-4` 等)。 | ||
| 66 | + | ||
| 67 | +> **注意**:如果 PR 模板勾选「否」,则不会检查 commit message,不影响合规判定。 | ||
| 68 | + | ||
| 69 | +### 完整示例 | ||
| 70 | + | ||
| 71 | +**PR 模板填写**: | ||
| 72 | +``` | ||
| 73 | +当前PR是否有AI参与: | ||
| 74 | +[ ] 否 | ||
| 75 | +[x] 是 | ||
| 76 | +__1. AI Agent 平台: Claude Code | ||
| 77 | +__2. AI 模型: DeepSeek-V3 | ||
| 78 | +__3. Prompt上下文: 重构 user 模块接口,补充单元测试 | ||
| 79 | +``` | ||
| 80 | + | ||
| 81 | +**Commit message**: | ||
| 82 | +``` | ||
| 83 | +refactor: extract user service interface | ||
| 84 | +Co-authored-by: DeepSeek-V3 | ||
| 85 | +``` | ||
🟠 High Priority 问题链:
建议:在 commit message 示例中补充模型名称,使示例与机器人检查规则一致。可考虑两种方案:(1) 在 commit body 中增加模型说明,如 ![]() ![]() | |||
| 86 | + | ||
| 87 | +--- | ||
| 88 | + | ||
| 89 | +## 检查不通过的常见原因及修复方法 | ||
| 90 | + | ||
| 91 | +检查不通过时,机器人会评论反馈并打上 `ai-compliance-failed` 标签。常见失败原因及修复方法如下: | ||
| 92 | + | ||
| 93 | +### 1. 字段未填写 | ||
| 94 | + | ||
| 95 | +「AI Agent 平台」或「AI 模型」字段为空。机器人提示 `no AI tool usage declaration detected`。 | ||
| 96 | + | ||
| 97 | +**修复**:填写真实的工具和模型名称。 | ||
| 98 | + | ||
| 99 | +### 2. 工具或模型名称不真实 | ||
| 100 | + | ||
| 101 | +- 工具名拼写错误、虚构或不明确 | ||
| 102 | +- 模型名称无法识别(大多数热门平台和模型均已收录) | ||
| 103 | + | ||
| 104 | +**修复**:使用准确的标准名称。若确认工具/模型真实存在但检查仍未通过(如新工具或偏冷门的工具),请联系基础设施负责人添加名单。 | ||
| 105 | + | ||
| 106 | +### 3. Commit message 未声明 | ||
| 107 | + | ||
| 108 | +模板勾选了「是」,但所有 commit message 中均未出现 AI 声明。 | ||
| 109 | + | ||
| 110 | +**修复**:AI 参与的 commit 需要带上 AI 声明。可通过 `git commit --amend` 在对应 commit 中补充 `Co-authored-by`。 | ||
| 111 | + | ||
| 112 | +### 4. 模板与 commit 声明不一致 | ||
| 113 | + | ||
| 114 | +模板中填写的工具/模型与 commit message 中声明的不一致。 | ||
| 115 | + | ||
| 116 | +**修复**:确保模板和 commit message 中的工具/模型名称保持一致。 | ||
| 117 | + | ||
| 118 | +### 5. 检查服务异常 | ||
| 119 | + | ||
| 120 | +机器人提示 `check failed, please try again later`,非你的声明问题。 | ||
| 121 | + | ||
| 122 | +**修复**:等待几分钟后重新 push 触发重检,重试失败请联系管理员修复。 | ||
| 123 | + | ||
| 124 | +--- | ||
| 125 | + | ||
| 126 | +## 常见问题 | ||
| 127 | + | ||
| 128 | +**Q:我的 AI 工具/模型是真实存在的,但检查失败了怎么办?** | ||
| 129 | + | ||
| 130 | +A:大多数热门平台和模型均已收录,若遇到新产物或偏冷门工具未被识别,请联系基础设施负责人添加名单。 | ||
| 131 | + | ||
| 132 | +**Q:同一个 PR 中使用了多个 AI 工具,怎么声明?** | ||
| 133 | + | ||
| 134 | +A:在 PR 描述中将所有使用的工具都列出来,commit message 中对应标注每个 commit 使用的工具。 | ||
| 135 | + | ||
| 136 | +**Q:commit message 需要每个 commit 都声明吗?** | ||
| 137 | + | ||
| 138 | +A:AI 参与的 commit 需要声明,纯手工的 commit 不需要。 | ||
| 139 | + | ||
| 140 | +**Q:声明格式有严格要求吗?** | ||
| 141 | + | ||
| 142 | +A:没有严格要求。同时支持其他常见的声明方式,例如 `Generated-By: xxx`、`Assisted-By: xxx` 等,机器人会智能识别,不做强制格式校验。 | ||
| 143 | + | ||
| 144 | +--- | ||
| 145 | + | ||
| 146 | +*文档更新日期:2026-08-03* | ||
已开启
add ai declaration check guide #112
Guangyue-Xu创建于 8月3日
add ai declaration check guide #112
已开启
共 1 个文件变更+146-0


这里的信息是如何校验准确性的,如果是强校验,建议先作为参考信息;
加入我直接用的是网页版的DS去生成一些资料文档,那上面的AI Agent平台应该怎么填?