8cc6fa2354
Phase 2 头脑风暴: - prompts/brainstorming.md - 问答策略和需求收集模板 Phase 3 方案设计: - prompts/solution-design.md - 3个子代理启动配置 Phase 4 方案审核: - prompts/solution-review.md - 交叉审核和综合方案生成 Phase 5 方案汇报: - prompts/solution-report.md - 用户决策处理 Phase 6 Spec编排: - prompts/spec-planning.md - 依赖分析和分波计划 Phase 7 并行开发: - prompts/parallel-development.md - 波次执行逻辑 Phase 8 测试: - prompts/testing.md - 测试框架检测和重试逻辑 Phase 9 代码审查: - prompts/code-review.md - 3个子代理独立审查 Phase 10 修复验证: - prompts/fix-verification.md - 修复循环和最终汇报 主编排器: - orchestrator.py - 9阶段协调逻辑 - 状态管理和恢复机制
4.9 KiB
4.9 KiB
代码审查阶段 Prompt 模板
目标
启动3个子代理独立完整审查代码,发现问题并提出改进建议。
审查子代理 Prompt
你是一个资深代码审查专家。请对以下代码变更进行完整审查。
## 项目信息
- 项目名称: {project_name}
- 审查范围: 本次开发的所有变更
## 变更文件列表
{changed_files_list}
## 变更详情
{changes_diff}
## 审查要求
请进行**完整、独立**的代码审查,覆盖以下所有维度:
### 1. 代码质量
- 命名是否清晰、一致
- 代码结构是否合理
- 是否有重复代码
- 是否有过度复杂的设计
### 2. 功能正确性
- 代码是否实现了预期功能
- 边界条件是否处理
- 错误处理是否完善
### 3. 性能
- 是否有性能问题
- 是否有不必要的计算
- 是否有内存泄漏风险
### 4. 安全性
- 是否有安全漏洞
- 敏感数据处理是否安全
- 输入验证是否完善
### 5. 可维护性
- 代码是否易于理解
- 是否有足够的注释
- 是否符合项目规范
### 6. 测试覆盖
- 测试是否充分
- 是否有遗漏的测试场景
## 输出格式
```markdown
# 代码审查报告
## 审查信息
- 审查者: Agent {A/B/C}
- 审查时间: {timestamp}
- 审查文件数: {file_count}
## 发现的问题
### 严重问题 (必须修复)
#### ISSUE-001: {issue_title}
- **文件**: {file_path}
- **行号**: {line_number}
- **问题**: {description}
- **影响**: {impact}
- **建议修复**: {suggestion}
#### ISSUE-002: ...
---
### 一般问题 (建议修复)
#### ISSUE-003: {issue_title}
- **文件**: {file_path}
- **问题描述**: {description}
- **建议**: {suggestion}
---
### 改进建议 (可选)
#### SUGGEST-001: {suggestion_title}
- **当前实现**: {current}
- **建议改进**: {improvement}
- **收益**: {benefit}
---
## 代码亮点
1. {highlight_1}
2. {highlight_2}
## 总结
- 严重问题: {critical_count}
- 一般问题: {major_count}
- 改进建议: {suggestion_count}
**整体评价**: 优秀/良好/需改进/不合格
## 审查结论
- [ ] 可以合并
- [ ] 需要修复后合并
- [ ] 需要重大修改
请仔细审查每一行代码,不要遗漏任何潜在问题。
## 三个审查子代理
```python
def spawn_review_agents(changes: dict) -> list:
"""启动3个代码审查子代理"""
agents = [
{"id": "X", "focus": "全面审查"},
{"id": "Y", "focus": "全面审查"},
{"id": "Z", "focus": "全面审查"}
]
results = []
for agent in agents:
prompt = build_review_prompt(changes, agent)
result = spawn_subagent(
task=f"代码审查 - Agent {agent['id']}",
prompt=prompt,
output_file=f".planning/dev-workflow/code-review/review-{agent['id']}.md"
)
results.append(result)
return results
问题汇总
主代理收集三个审查结果后,汇总问题:
def consolidate_issues(reviews: list) -> dict:
"""汇总三个审查的问题"""
all_issues = {
"critical": [],
"major": [],
"suggestion": []
}
for review in reviews:
for issue in review.get("issues", []):
# 检查是否已存在相同问题
existing = find_similar_issue(issue, all_issues[issue["severity"]])
if existing:
# 多个审查者发现同一问题,增加权重
existing["found_by"].append(review["agent_id"])
existing["confidence"] += 1
else:
issue["found_by"] = [review["agent_id"]]
issue["confidence"] = 1
all_issues[issue["severity"]].append(issue)
# 按置信度排序
for severity in all_issues:
all_issues[severity].sort(key=lambda x: x["confidence"], reverse=True)
return all_issues
问题汇总报告
# 代码审查汇总
## 统计
| 审查者 | 严重 | 一般 | 建议 |
|--------|------|------|------|
| Agent X | 2 | 3 | 5 |
| Agent Y | 1 | 4 | 3 |
| Agent Z | 2 | 2 | 6 |
## 严重问题 (3个,多人确认)
### ISSUE-CRIT-001: SQL注入风险 (X, Y, Z 都发现)
- **文件**: src/db/queries.py:45
- **问题**: 用户输入未转义直接拼接到SQL
- **建议**: 使用参数化查询
### ISSUE-CRIT-002: 空指针异常 (X, Z 发现)
- **文件**: src/services/user.py:120
- **问题**: 未检查返回值是否为None
- **建议**: 添加空值检查
---
## 一般问题 (5个)
### ISSUE-MAJ-001: 命名不规范 (Y 发现)
...
---
## 改进建议 (8个)
### SUGGEST-001: 可以提取公共函数 (X, Z 发现)
...
---
## 下一步
需要修复 **3个严重问题** 和 **5个一般问题**
状态更新
{
"phases": {
"8": {
"status": "completed",
"issues": {
"critical": 3,
"major": 5,
"suggestion": 8
},
"reviews": ["review-X.md", "review-Y.md", "review-Z.md"]
}
}
}