8.4 KiB
8.4 KiB
修复验证阶段 Prompt 模板
目标
汇总审查问题,安排修复,验证完成,最终汇报。
流程
┌─────────────────────────────────────────────────────────────┐
│ 修复验证流程 │
├─────────────────────────────────────────────────────────────┤
│ │
│ 1. 汇总问题 │
│ └→ 按优先级排序 │
│ ↓ │
│ 2. 分配修复任务 │
│ └→ 启动修复子代理 │
│ ↓ │
│ 3. 修复执行 │
│ └→ 子代理修复问题 │
│ ↓ │
│ 4. 验证修复 │
│ └→ 启动验证子代理 │
│ ↓ │
│ ┌───────────────────────────────────────┐ │
│ │ 验证结果 │ │
│ ├───────────────────────────────────────┤ │
│ │ 通过 → 生成最终报告 │ │
│ │ 失败 → 重试修复(最多3次) │ │
│ └───────────────────────────────────────┘ │
│ ↓ │
│ 5. 最终汇报 │
│ └→ 向用户展示完整结果 │
│ │
└─────────────────────────────────────────────────────────────┘
修复子代理 Prompt
你是一个代码修复专家。请修复以下问题。
## 问题列表
### 必须修复 (严重问题)
{critical_issues}
### 建议修复 (一般问题)
{major_issues}
## 项目上下文
{project_context}
## 修复要求
1. **保持代码风格一致**
2. **不引入新问题**
3. **添加必要的测试**
4. **更新相关文档**
## 输出格式
```markdown
# 修复报告
## 修复的问题
### ISSUE-CRIT-001: {issue_title}
- **修复方式**: {fix_description}
- **修改文件**: {files_changed}
- **新增测试**: {new_tests}
### ISSUE-CRIT-002: ...
## 修改的文件
- {file_1}: [修改说明]
- {file_2}: [修改说明]
## 验证
- 运行测试: {test_result}
- 手动验证: {manual_verification}
## 遗留问题
- [如有未能修复的问题]
请修复所有严重问题,尽量修复一般问题。
## 验证子代理 Prompt
你是一个质量保证专家。请验证以下问题是否已正确修复。
原始问题
{original_issues}
修复内容
{fix_reports}
验证任务
- 检查代码 - 确认修复代码存在且正确
- 运行测试 - 确认测试通过
- 验证功能 - 确认问题不再出现
- 检查副作用 - 确认没有引入新问题
输出格式
# 验证报告
## 验证结果
| 问题ID | 原问题 | 验证结果 | 说明 |
|--------|--------|----------|------|
| ISSUE-CRIT-001 | SQL注入 | ✅ 已修复 | 使用参数化查询 |
| ISSUE-CRIT-002 | 空指针 | ✅ 已修复 | 添加空值检查 |
| ISSUE-MAJ-001 | 命名 | ✅ 已修复 | 重命名变量 |
## 测试结果
- 运行测试: {total} 个
- 通过: {passed} 个
- 失败: {failed} 个
## 回归检查
- [ ] 原有功能正常
- [ ] 新功能正常
- [ ] 无新引入问题
## 结论
- [ ] 所有严重问题已修复
- [ ] 测试全部通过
- [ ] 代码质量达标
**验证结果**: 通过 / 不通过
## 遗留问题
- [如有未通过的问题]
请严格验证每个修复。
## 修复循环逻辑
```python
def fix_and_verify(issues: dict, max_retries: int = 3) -> dict:
"""修复并验证问题"""
for attempt in range(1, max_retries + 1):
print(f"\n修复尝试 {attempt}/{max_retries}")
# 1. 启动修复子代理
fix_result = spawn_fix_agent(issues)
if fix_result["status"] != "success":
print("修复子代理执行失败")
continue
# 2. 启动验证子代理
verify_result = spawn_verify_agent(issues, fix_result)
if verify_result["passed"]:
print("✅ 验证通过")
return {
"status": "success",
"fixes": fix_result,
"verification": verify_result
}
print(f"⚠️ 验证失败: {verify_result['remaining_issues']}")
# 更新剩余问题
issues = verify_result["remaining_issues"]
print(f"❌ 已达到最大重试次数 ({max_retries})")
return {
"status": "failed",
"remaining_issues": issues
}
最终汇报模板
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
DEV-WORKFLOW ► 开发完成
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
## 项目: {project_name}
### 完成摘要
| 阶段 | 状态 | 耗时 |
|------|------|------|
| 1. 头脑风暴 | ✓ 完成 | 5min |
| 2. 方案设计 | ✓ 完成 | 10min |
| 3. 方案审核 | ✓ 完成 | 8min |
| 4. 方案汇报 | ✓ 完成 | 2min |
| 5. Spec编排 | ✓ 完成 | 5min |
| 6. 并行开发 | ✓ 完成 | 30min |
| 7. 测试 | ✓ 完成 | 5min |
| 8. 代码审查 | ✓ 完成 | 10min |
| 9. 修复验证 | ✓ 完成 | 8min |
**总耗时**: {total_time}
### 交付物
**文件变更**:
- 新建: {new_files_count} 个文件
- 修改: {modified_files_count} 个文件
- 删除: {deleted_files_count} 个文件
**测试覆盖**:
- 单元测试: {unit_tests} 个
- 集成测试: {integration_tests} 个
- 覆盖率: {coverage}%
**代码质量**:
- 严重问题: 0 (已全部修复)
- 一般问题: 0 (已全部修复)
- 代码审查: 通过
### 遗留事项
{remaining_items}
### 后续建议
{recommendations}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🎉 开发任务已完成!
详细文档: `.planning/dev-workflow/`
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
状态更新
{
"current_phase": 9,
"current_stage": "completed",
"phases": {
"9": {
"status": "completed",
"fixes": {
"critical_fixed": 3,
"major_fixed": 5,
"retry_count": 1
},
"verification": {
"passed": true,
"timestamp": "2026-03-09T20:00:00+08:00"
}
}
},
"completed_at": "2026-03-09T20:00:00+08:00"
}
文档归档
完成后,将所有文档归档:
.planning/dev-workflow/
├── state.json # 最终状态
├── requirements.json # 需求文档
├── final-solution.md # 最终方案
├── spec.md # 开发规格
├── execution-plan.json # 执行计划
├── test-results.json # 测试结果
├── code-review/ # 代码审查
│ ├── review-X.md
│ ├── review-Y.md
│ └── review-Z.md
└── final-report.md # 最终报告