Skip to content

Commit a6e4305

Browse files
committed
Merge branch '3.6.x'
2 parents 06144ef + 43cbd56 commit a6e4305

26 files changed

Lines changed: 405 additions & 319 deletions

.ai-agents/codex/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -169,8 +169,8 @@ Codex 和 GeminiCli 可以互为替代或协作:
169169

170170
### 提交规范
171171

172-
- 提交信息:`[模块] 简述`
173-
- 例如:`[fit] 修复某问题`
172+
- 提交信息遵循 Conventional Commits:`<type>(<scope>): <subject>`
173+
- subject 使用中文且约 20 字以内,scope 为模块名(可省略)
174174
- 不要自动提交,等待人工确认
175175

176176
## Codex vs GeminiCli 选择建议

.ai-agents/gemini/README.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,6 @@ Gemini 应该:
9090

9191
### 提交规范
9292

93-
- 提交信息:`[模块] 简述`
94-
- 例如:`[fit] 修复某问题`
93+
- 提交信息遵循 Conventional Commits:`<type>(<scope>): <subject>`
94+
- subject 使用中文且约 20 字以内,scope 为模块名(可省略)
9595
- 不要自动提交,等待人工确认
96-

.claude/commands/analyze-security.md

Lines changed: 42 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
name: "analyze-security"
3-
description: "分析 Dependabot 安全告警并创建修复任务"
3+
description: "分析 Dependabot 安全告警并创建安全分析文档"
44
usage: "/analyze-security <alert-number>"
55
---
66

@@ -59,27 +59,18 @@ ghsa_id: <GHSA-ID>
5959
- [ ] 搜索项目中使用该依赖的所有位置(使用 Grep 工具)
6060
- [ ] 检查依赖文件(pom.xml, requirements.txt, package.json 等)
6161
- [ ] 分析是否直接使用了漏洞代码路径
62-
- [ ] 评估漏洞的实际影响(是否可被利用)
6362
- [ ] 识别依赖关系(直接依赖 vs 传递依赖)
63+
- [ ] 定位受影响的代码模块和文件
6464
65-
### 4. 制定修复方案
66-
67-
根据漏洞严重程度和修复难度制定方案:
68-
69-
**优先方案**:
70-
1. **升级到安全版本**
71-
- 检查是否有修复版本
72-
- 评估升级的兼容性风险
73-
- 检查是否有破坏性变更
74-
75-
2. **替换依赖**(如果无法升级)
76-
- 寻找替代库
77-
- 评估迁移成本
65+
### 4. 评估安全风险
7866
79-
3. **缓解措施**(临时方案)
80-
- 配置调整
81-
- 代码层面的防护
82-
- 网络隔离等
67+
**必须完成的风险评估**:
68+
- [ ] 评估漏洞的实际影响(是否可被利用)
69+
- [ ] 分析漏洞触发条件和场景
70+
- [ ] 评估对系统安全性的影响程度
71+
- [ ] 识别潜在的安全威胁
72+
- [ ] 确定修复的紧急程度
73+
- [ ] 查找是否有已知的攻击案例
8374
8475
### 5. 输出分析文档
8576
@@ -95,64 +86,53 @@ ghsa_id: <GHSA-ID>
9586
- **GHSA ID**: {ghsa-id}
9687
- **CVE ID**: {cve-id}
9788
- **告警状态**: {open/dismissed/fixed}
89+
- **漏洞描述**: {描述}
9890
9991
## 漏洞详情
10092
101-
### 漏洞描述
102-
{详细描述漏洞的性质和攻击方式}
103-
10493
### 受影响的依赖
10594
- **包名**: {package-name}
10695
- **生态系统**: {maven/pip/npm/...}
10796
- **当前版本**: {current-version}
10897
- **受影响版本范围**: {vulnerable-range}
10998
- **首个修复版本**: {patched-version}
11099
111-
### 依赖文件位置
112-
- `{manifest-path}` - {说明}
100+
### 依赖使用情况
101+
- **依赖文件位置**: `{manifest-path}` - {说明}
102+
- **依赖类型**: {直接依赖/传递依赖}
103+
- **使用模块列表**:
104+
- `{module-1}` - {说明}
105+
- `{module-2}` - {说明}
113106

114107
## 影响范围评估
115108

116-
### 直接影响
117-
- {项目中使用该依赖的模块和文件}
109+
### 直接影响的代码
110+
- `{file-path}:{line-number}` - {说明}
111+
112+
### 间接影响的功能
113+
- {受影响的功能模块}
114+
115+
## 安全风险评估
118116

119-
### 漏洞可利用性分析
117+
### 漏洞可利用性
120118
- [ ] 是否直接使用了漏洞代码路径?
121119
- [ ] 是否有外部输入触发漏洞?
122120
- [ ] 当前配置是否暴露了漏洞?
123121

124122
**结论**: {高/中/低风险 - 说明理由}
125123

126-
## 修复方案
124+
### 触发条件
125+
{详细说明漏洞触发的条件和场景}
127126

128-
### 推荐方案: {方案名称}
127+
### 影响程度
128+
{评估对系统安全性、数据完整性、可用性的影响}
129129

130-
**具体步骤**:
131-
1. {步骤1}
132-
2. {步骤2}
133-
...
130+
### 紧急程度
131+
{根据严重程度和可利用性确定修复的紧急程度}
134132

135-
**兼容性评估**:
136-
- {是否有破坏性变更}
137-
- {需要的代码调整}
133+
## 技术依赖和约束
138134

139-
**工作量预估**:
140-
- 复杂度: {高/中/低}
141-
- 预估时间: {时间}
142-
- 风险等级: {高/中/低}
143-
144-
### 备选方案(如果有)
145-
{其他可能的修复方案}
146-
147-
### 临时缓解措施(如果无法立即修复)
148-
{临时性的防护措施}
149-
150-
## 测试策略
151-
152-
- [ ] {测试项1}
153-
- [ ] {测试项2}
154-
- [ ] 验证漏洞已修复
155-
- [ ] 回归测试
135+
{列出修复时需要考虑的技术依赖和约束条件}
156136

157137
## 参考链接
158138

@@ -189,8 +169,6 @@ ghsa_id: <GHSA-ID>
189169
- 任务文件: .ai-workspace/active/{task-id}/task.md
190170
- 分析文档: {task_dir}/analysis.md
191171

192-
**修复建议**: {简短的修复建议摘要}
193-
194172
**下一步**:
195173
审查安全分析后,使用以下命令设计修复方案:
196174
/plan-task {task-id}
@@ -221,19 +199,22 @@ ghsa_id: <GHSA-ID>
221199
- Medium: 计划处理
222200
- Low: 可延后处理
223201

224-
3. **依赖类型区分**
202+
3. **职责范围**
203+
- 专注于信息收集和风险评估
204+
- 不制定具体修复方案(修复方案在 `/plan-task` 阶段设计)
205+
- 分析完成后建议人工审查
206+
207+
4. **依赖类型区分**
225208
- **直接依赖**: 在依赖文件中明确声明
226209
- **传递依赖**: 由其他依赖引入,修复可能需要升级父依赖
227210

228-
4. **误报识别**
211+
5. **误报识别**
229212
- 检查漏洞代码路径是否被使用
230213
- 评估实际可利用性
231214
- 如确认是误报,建议使用 `/close-security` 关闭
232215

233-
5. **兼容性风险**
234-
- 特别注意跨大版本升级
235-
- 查看 CHANGELOG 和 Migration Guide
236-
- 评估对现有代码的影响
216+
6. **紧急程度标注**
217+
- Critical/High 级别的漏洞需要明确标注紧急程度
237218

238219
## 相关命令
239220

.claude/commands/plan-task.md

Lines changed: 60 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -32,19 +32,26 @@ usage: "/plan-task <task-id>"
3232
- 如果不存在,提示用户需要先执行需求分析
3333
- 如果存在,读取并理解需求
3434

35-
### 3. 设计技术方案
35+
### 3. 理解问题本质和约束条件
3636

37-
按照 `.ai-agents/workflows/feature-development.yaml` 中的 `technical-design` 步骤:
37+
- [ ] 阅读 analysis.md,理解问题的根本原因和影响范围
38+
- [ ] 识别技术约束(从 analysis.md 的"技术依赖和约束"章节获取)
39+
- [ ] 识别特殊要求(例如:安全修复需要考虑漏洞修复版本、Bug修复需要防止回归、功能开发需要考虑扩展性)
3840

39-
**必须完成的任务**
40-
- [ ] 设计技术实现方案
41-
- [ ] 选择合适的技术栈和设计模式
41+
### 4. 设计解决方案
42+
43+
按照对应的工作流(如 `.ai-agents/workflows/feature-development.yaml`)中的 `technical-design` 步骤:
44+
45+
- [ ] 基于 analysis.md 中的信息,提出多个可行方案
46+
- [ ] 对比各方案的优劣(效果、成本、风险、可维护性)
47+
- [ ] 选择最合适的方案并说明理由
4248
- [ ] 制定详细的实施步骤
4349
- [ ] 列出需要创建/修改的文件清单
44-
- [ ] 设计测试策略
45-
- [ ] 评估性能和安全影响
50+
- [ ] 设计验证策略(测试、验证、回归检查)
51+
- [ ] 评估影响(性能、安全、兼容性)
52+
- [ ] 制定风险控制和回滚方案
4653

47-
### 4. 输出方案文档
54+
### 5. 输出方案文档
4855

4956
创建 `{task_dir}/plan.md`,必须包含以下章节:
5057

@@ -53,22 +60,33 @@ usage: "/plan-task <task-id>"
5360

5461
## 方案决策
5562

56-
### 方案对比分析
57-
{如果有多个方案,对比分析各方案的优劣}
63+
### 问题理解
64+
{基于 analysis.md 的问题理解和根本原因}
65+
66+
### 约束条件
67+
- 技术约束: {技术依赖和限制}
68+
- 业务约束: {业务要求和限制}
69+
- 时间约束: {交付时间要求}
70+
71+
### 备选方案对比分析
72+
{如果有多个方案,详细对比分析各方案的优劣}
5873

5974
### 最终选择
6075
- **方案**:{选择的方案}
6176
- **理由**:{选择理由}
6277

6378
## 技术方案
6479

65-
### 核心实现策略
66-
{详细的实现策略}
80+
### 核心解决策略
81+
{详细的解决策略}
6782

6883
### 关键技术点
6984
- {技术点1}
7085
- {技术点2}
7186

87+
### 具体实现细节
88+
{根据问题类型的具体实现,例如:代码实现、依赖升级、配置调整等}
89+
7290
## 实施步骤
7391

7492
### 步骤 1: {步骤名称}
@@ -88,34 +106,45 @@ usage: "/plan-task <task-id>"
88106
|------|----------|----------|----------|
89107
| 1 | {path} | {内容} | {行数} |
90108

91-
## 测试策略
109+
## 验证策略
110+
111+
### 功能验证
112+
- 单元测试: {测试范围和验收标准}
113+
- 集成测试: {测试范围和验收标准}
92114

93-
### 单元测试
94-
- {测试范围和验收标准}
115+
### 问题验证
116+
{确认问题已解决,如:功能正常、Bug不再复现、漏洞已修复}
95117

96-
### 集成测试
97-
- {测试范围和验收标准}
118+
### 回归验证
119+
{确保没有引入新问题}
98120

99-
## 性能考虑
121+
## 影响评估
122+
123+
### 性能影响
100124
{性能影响分析和优化建议}
101125

102-
## 安全考虑
126+
### 安全影响
103127
{安全风险评估和防护措施}
104128

105-
## 回滚方案
106-
{如果实施失败,如何回滚}
129+
### 兼容性影响
130+
{兼容性分析和注意事项}
107131

108132
## 风险控制
133+
134+
### 潜在风险
109135
| 风险 | 等级 | 应对措施 |
110136
|------|------|----------|
111137
| {风险} | {等级} | {措施} |
112138

139+
### 回滚方案
140+
{如果实施失败,如何回滚}
141+
113142
## 预期产出
114143
- {产出1}
115144
- {产出2}
116145
```
117146

118-
### 5. 更新任务状态
147+
### 6. 更新任务状态
119148

120149
更新 `.ai-workspace/active/{task-id}/task.md`
121150
- `current_step`: technical-design
@@ -124,7 +153,7 @@ usage: "/plan-task <task-id>"
124153
- 标记 plan.md 为已完成
125154
- 在工作流进度中标记技术方案设计为完成
126155

127-
### 6. 告知用户
156+
### 7. 告知用户
128157

129158
输出格式:
130159
```
@@ -173,7 +202,7 @@ usage: "/plan-task <task-id>"
173202

174203
1. **前置条件**
175204
- 必须先完成需求分析(analysis.md 存在)
176-
- 如果没有,提示用户先执行 `/analyze-issue`
205+
- 如果没有,提示用户先执行 `/analyze-issue``/analyze-security`
177206

178207
2. **人工检查点**
179208
- 这是一个**必须**的人工检查点
@@ -192,12 +221,16 @@ usage: "/plan-task <task-id>"
192221

193222
## 相关命令
194223

195-
- `/analyze-issue <number>` - 分析 Issue(前置步骤)
196-
- `/implement-task <task-id>` - 实施任务(后续步骤)
224+
**前置步骤**
225+
- `/analyze-issue <number>` - 分析 GitHub Issue
226+
- `/analyze-security <alert-number>` - 分析 Dependabot 安全告警
227+
228+
**后续步骤**
229+
- `/implement-task <task-id>` - 实施任务
197230
- `/task-status <task-id>` - 查看任务状态
198231

199232
## 错误处理
200233

201234
- 任务不存在:提示 "任务 {task-id} 不存在,请检查任务ID"
202-
- 缺少需求分析:提示 "需求分析文档不存在,请先执行 /analyze-issue"
235+
- 缺少需求分析:提示 "需求分析文档不存在,请先执行 /analyze-issue 或 /analyze-security"
203236
- plan.md 已存在:询问是否覆盖或创建新版本

.claude/commands/review-task.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -259,6 +259,7 @@ usage: "/review-task <task-id> [--pr-number]"
259259

260260
### 示例3:完整工作流
261261

262+
**功能开发流程**
262263
```bash
263264
# 1. 分析 Issue
264265
/analyze-issue 207
@@ -279,6 +280,27 @@ usage: "/review-task <task-id> [--pr-number]"
279280
/create-pr
280281
```
281282

283+
**安全修复流程**
284+
```bash
285+
# 1. 分析安全告警
286+
/analyze-security 23
287+
288+
# 2. 设计修复方案
289+
/plan-task TASK-20251227-110000
290+
291+
# 3. 实施修复
292+
/implement-task TASK-20251227-110000
293+
294+
# 4. 代码审查 ← 当前步骤
295+
/review-task TASK-20251227-110000
296+
297+
# 5. 如果审查通过,提交代码
298+
/commit
299+
300+
# 6. 创建 Pull Request
301+
/create-pr
302+
```
303+
282304
## 注意事项
283305

284306
1. **前置条件**

0 commit comments

Comments
 (0)