审查周期Skill review-cycle

审查周期是一个统一的、多维度的代码审查工具,支持会话和模块两种审查模式,通过7维度并行分析、迭代深度分析,提供自动化修复管道。它用于自动化代码质量评估、缺陷识别和修复,提高开发效率和质量。关键词:代码审查、自动化修复、多维分析、DevOps、CI/CD、软件测试、代码质量。

DevOps 0 次安装 2 次浏览 更新于 3/16/2026

name: review-cycle description: 统一的多维度代码审查,带有自动化修复编排。支持基于会话(git更改)和基于模块(路径模式)的审查模式,具有7维度并行分析、迭代深度分析和自动化修复管道。触发方式:“workflow:review-cycle”、“workflow:review-session-cycle”、“workflow:review-module-cycle”、“workflow:review-cycle-fix”。 allowed-tools: spawn_agent, wait, send_input, close_agent, AskUserQuestion, Read, Write, Edit, Bash, Glob, Grep

审查周期

统一的多维度代码审查编排器,具有双模式(会话/模块)文件发现、7维度并行分析、关键发现的迭代深度分析,以及可选的自动化修复管道,具有智能批处理和并行规划。

架构概述

┌──────────────────────────────────────────────────────────────────────┐
│  审查周期编排器(SKILL.md)                                          │
│  → 纯协调器:模式检测、阶段调度、状态跟踪                              │
└───────────────────────────────┬──────────────────────────────────────┘
                                │
  ┌─────────────────────────────┼─────────────────────────────────┐
  │           审查管道(阶段1-5)                                  │
  │                                                                │
  │  ┌─────────┐  ┌─────────┐  ┌─────────┐  ┌─────────┐  ┌─────────┐
  │  │ 阶段1   │→ │ 阶段2   │→ │ 阶段3   │→ │ 阶段4   │→ │ 阶段5   │
  │  │发现与初始化│ │并行审查 │ │聚合分析 │ │深度分析 │ │完成审查 │
  │  │          │  │          │ │         │ │(条件) │ │         │
  │  └─────────┘  └─────────┘  └─────────┘  └─────────┘  └─────────┘
  │   会话|模块   7个代理     严重性计算    N个代理     最终化
  │                            ↕ 循环
  └────────────────────────────────────────────────────────────────┘
                                │
                          (可选的--fix)
                                │
  ┌─────────────────────────────┼─────────────────────────────────┐
  │           修复管道(阶段6-9)                                  │
  │                                                                │
  │  ┌─────────┐  ┌─────────┐  ┌──────────┐  ┌─────────┐  ┌─────────┐
  │  │ 阶段6   │→ │ 阶段7   │→ │ 阶段7.5  │→ │ 阶段8   │→ │ 阶段9   │
  │  │发现与批处理│ │并行规划 │ │导出到任务JSON│ │执行编排│ │完成修复 │
  │  │          │  │          │ │           │ │        │ │         │
  │  └─────────┘  └─────────┘  └──────────┘  └─────────┘  └─────────┘
  │   分组+批处理   N个代理     修复计划→      M个代理     聚合+总结
  └────────────────────────────────────────────────────────────────────┘

关键设计原则

  1. 双模式审查:基于会话(git更改)和基于模块(路径模式)共享相同的审查管道(阶段2-5),仅在文件发现(阶段1)上不同。
  2. 纯编排器:按顺序执行阶段,解析输出,在阶段间传递上下文。
  3. 渐进式阶段加载:阶段文档在执行时按需读取,而不是一次性全部读取。
  4. 自动继续:所有阶段在阶段间无需用户干预自动运行。
  5. 子代理生命周期管理:通过spawn_agent → wait → close_agent进行明确的生命周期管理。
  6. 角色路径加载:子代理角色通过MANDATORY FIRST STEPS中的路径引用加载。
  7. 可选的修复管道:阶段6-9仅由明确的--fix标志或在阶段5后用户确认触发。
  8. 内容保留:所有代理提示、代码、模式从源命令中逐字保留。

使用方法

# 审查管道(阶段1-5)
review-cycle <路径模式>                                    # 模块模式
review-cycle [会话ID]                                      # 会话模式
review-cycle [会话ID|路径模式] [标志]                       # 带标志

# 修复管道(阶段6-9)
review-cycle --fix <审查目录|导出文件>                    # 修复模式
review-cycle --fix <审查目录> [标志]                        # 修复带标志

# 标志
--dimensions=维度1,维度2,...   自定义维度(默认:所有7个)
--max-iterations=N           最大深度分析迭代次数(默认:3)
--fix                        在审查后或独立进入修复管道
--resume                     恢复中断的修复会话
--batch-size=N               每批规划发现数(默认:5,仅修复模式)
--export-tasks               导出修复计划发现到.task/FIX-*.json(自动启用--fix)

# 示例
review-cycle src/auth/**                                       # 模块:审查auth
review-cycle src/auth/**,src/payment/**                        # 模块:多个路径
review-cycle src/auth/** --dimensions=security,architecture    # 模块:自定义维度
review-cycle WFS-payment-integration                           # 会话:特定
review-cycle                                                   # 会话:自动检测
review-cycle --fix ${projectRoot}/.workflow/active/WFS-123/.review/           # 修复:从审查目录
review-cycle --fix --resume                                    # 修复:恢复会话

模式检测

// 输入解析逻辑(编排器责任)
function detectMode(args) {
  if (args.includes('--fix')) return 'fix';
  if (args.match(/\*|\.ts|\.js|\.py|src\/|lib\//)) return 'module';  // 通配符/路径模式
  if (args.match(/^WFS-/) || args.trim() === '') return 'session';   // 会话ID或空
  return 'session';  // 默认
}
输入模式 检测模式 阶段入口
src/auth/** module 阶段1(模块分支)
WFS-payment-integration session 阶段1(会话分支)
(空) session 阶段1(会话分支,自动检测)
--fix .review/ fix 阶段6
--fix --resume fix 阶段6(恢复)

执行流程

输入解析:
   └─ 检测模式(会话|模块|修复) → 路由到相应阶段入口

审查管道(会话或模块模式):

阶段1:发现与初始化
   └─ 参考:phases/01-discovery-initialization.md
      ├─ 会话模式:会话发现 → git更改文件 → 解析
      ├─ 模块模式:路径模式 → 通配符扩展 → 解析
      └─ 通用:创建会话、输出目录、review-state.json、review-progress.json

阶段2:并行审查协调
   └─ 参考:phases/02-parallel-review.md
      ├─ 启动7个cli-explore-agent实例(深度扫描模式)
      ├─ 每个产生dimensions/{维度}.json + reports/{维度}-analysis.md
      ├─ 生命周期:spawn_agent → 批量等待 → close_agent
      └─ CLI回退链:Gemini → Qwen → Codex

阶段3:聚合分析
   └─ 参考:phases/03-aggregation.md
      ├─ 加载维度JSON,计算严重性分布
      ├─ 识别交叉关注点(在3+个维度中的文件)
      └─ 决策:关键 > 0 OR 高 > 5 OR 关键文件 → 阶段4
                   否则 → 阶段5

阶段4:迭代深度分析(条件性)
   └─ 参考:phases/04-iterative-deep-dive.md
      ├─ 选择关键发现(每次迭代最多5个)
      ├─ 启动深度分析代理进行根本原因分析
      ├─ 重新评估严重性 → 循环回阶段3聚合
      └─ 退出条件:无关键发现 OR 达到最大迭代次数

阶段5:审查完成
   └─ 参考:phases/05-review-completion.md
      ├─ 最终化review-state.json + review-progress.json
      ├─ 提示用户:"运行自动化修复?[Y/n]"
      └─ 如果是 → 继续到阶段6

修复管道(--fix模式或在阶段5后):

阶段6:修复发现与批处理
   └─ 参考:phases/06-fix-discovery-batching.md
      ├─ 验证导出文件,创建修复会话
      └─ 智能按文件+维度相似性分组 → 批次

阶段7:修复并行规划
   └─ 参考:phases/07-fix-parallel-planning.md
      ├─ 启动N个cli-planning-agent实例(≤10并行)
      ├─ 每个输出partial-plan-{批次ID}.json
      ├─ 生命周期:spawn_agent → 批量等待 → close_agent
      └─ 编排器聚合 → fix-plan.json

阶段7.5:导出到任务JSON(自动--fix,或显式--export-tasks)
   └─ 转换fix-plan.json发现 → .task/FIX-{序列}.json
      ├─ 对于每个发现:
      │   ├─ 发现.file → files[].path(动作:"modify")
      │   ├─ 发现.severity → 优先级(critical|high|medium|low)
      │   ├─ 发现.fix_description → 描述
      │   ├─ 发现.dimension → 范围
      │   ├─ 发现.verification → convergence.verification
      │   ├─ 发现.changes[] → convergence.criteria[]
      │   └─ 发现.fix_steps[] → implementation[]
      ├─ 输出路径:{projectRoot}/.workflow/active/WFS-{id}/.review/.task/FIX-{seq}.json
      ├─ 每个文件遵循task-schema.json(IDENTITY + CONVERGENCE + FILES必需)
      └─ source.tool = "review-cycle", source.session_id = WFS-{id}
      │
      ├─ 生成plan.json(plan-overview-fix-schema)在FIX任务导出后:
      │   ```javascript
      │   const fixTaskFiles = Glob(`${reviewDir}/.task/FIX-*.json`)
      │   const taskIds = fixTaskFiles.map(f => JSON.parse(Read(f)).id).sort()
      │
      │   // 守卫:如果没有生成修复任务,跳过plan.json
      │   if (taskIds.length === 0) {
      │     console.warn('未生成修复任务;跳过plan.json')
      │   } else {
      │
      │   const planOverview = {
      │     summary: `修复计划来自审查周期:${reviewSummary}`,
      │     approach: "审查驱动的修复管道",
      │     task_ids: taskIds,
      │     task_count: taskIds.length,
      │     complexity: taskIds.length > 5 ? "高" : taskIds.length > 2 ? "中" : "低",
      │     fix_context: {
      │       root_cause: "多个审查发现",
      │       strategy: "全面修复",
      │       severity: aggregatedFindings.maxSeverity || "中",  // 来自最大发现严重性
      │       risk_level: aggregatedFindings.overallRisk || "中" // 来自组合风险评估
      │     },
      │     test_strategy: {
      │       scope: "单元",
      │       specific_tests: [],
      │       manual_verification: ["验证所有审查发现已处理"]
      │     },
      │     _metadata: {
      │       timestamp: getUtc8ISOString(),
      │       source: "review-cycle-agent",
      │       planning_mode: "基于代理",
      │       plan_type: "修复",
      │       schema_version: "2.0"
      │     }
      │   }
      │   Write(`${reviewDir}/plan.json`, JSON.stringify(planOverview, null, 2))
      │
      │   } // 结束守卫
      │   ```
      └─ 输出路径:{reviewDir}/plan.json

阶段8:修复执行
   └─ 参考:phases/08-fix-execution.md
      ├─ 基于阶段的执行按聚合时间线
      ├─ 每组:分析 → 修复 → 测试 → 提交/回滚
      ├─ 生命周期:spawn_agent → wait → close_agent每组
      └─ 需要100%测试通过率

阶段9:修复完成
   └─ 参考:phases/09-fix-completion.md
      ├─ 聚合结果 → fix-summary.md
      └─ 可选:如果所有修复成功,完成工作流会话

完成:审查报告 + 可选的修复结果

阶段参考文档(在执行时按需读取):

阶段 文档 加载时机
1 phases/01-discovery-initialization.md 审查/修复开始 review-session-cycle + review-module-cycle 阶段1(融合)
2 phases/02-parallel-review.md 阶段1完成 共享自两个审查命令阶段2
3 phases/03-aggregation.md 阶段2完成 共享自两个审查命令阶段3
4 phases/04-iterative-deep-dive.md 聚合触发迭代 共享自两个审查命令阶段4
5 phases/05-review-completion.md 无需更多迭代 共享自两个审查命令阶段5
6 phases/06-fix-discovery-batching.md 修复模式入口 review-cycle-fix 阶段1 + 1.5
7 phases/07-fix-parallel-planning.md 阶段6完成 review-cycle-fix 阶段2
7.5 (SKILL.md内联) 阶段7完成 导出修复计划发现到.task/FIX-*.json
8 phases/08-fix-execution.md 阶段7.5完成 review-cycle-fix 阶段3
9 phases/09-fix-completion.md 阶段8完成 review-cycle-fix 阶段4 + 5

核心规则

  1. 立即开始:第一个动作是进度跟踪初始化,第二个动作是阶段1执行。
  2. 模式检测优先:在阶段1前解析输入以确定会话/模块/修复模式。
  3. 解析每个输出:从每个阶段提取所需数据用于下一个阶段。
  4. 自动继续:检查进度状态以自动执行下一个待处理阶段。
  5. 渐进式阶段加载:仅当阶段即将执行时读取阶段文档。
  6. 不要停止:连续多阶段工作流,直到所有适用阶段完成。
  7. 条件性阶段4:仅当聚合触发迭代时执行(关键 > 0 OR 高 > 5 OR 关键文件)。
  8. 修复管道可选:阶段6-9仅由显式–fix标志或用户确认执行。
  9. 明确生命周期:在wait完成后始终close_agent以释放资源。

数据流

用户输入(路径模式 | 会话ID | --fix 导出文件)
    ↓
[模式检测:会话 | 模块 | 修复]
    ↓
阶段1:发现与初始化
    ↓ 输出:sessionId, reviewId, resolvedFiles, reviewMode, outputDir
    ↓         review-state.json, review-progress.json
阶段2:并行审查协调
    ↓ 输出:dimensions/*.json, reports/*-analysis.md
阶段3:聚合分析
    ↓ 输出:severityDistribution, criticalFiles, deepDiveFindings
    ↓ 决策:迭代? → 阶段4 : 阶段5
阶段4:迭代深度分析(条件性,与阶段3循环)
    ↓ 输出:iterations/*.json, reports/deep-dive-*.md
    ↓ 循环:重新聚合 → 检查标准 → 迭代或退出
阶段5:审查完成
    ↓ 输出:最终 review-state.json, review-progress.json
    ↓ 决策:修复? → 阶段6 : 结束
阶段6:修复发现与批处理
    ↓ 输出:发现批次(内存中)
阶段7:修复并行规划
    ↓ 输出:partial-plan-*.json → fix-plan.json(聚合)
阶段7.5:导出到任务JSON
    ↓ 输出:.task/FIX-{序列}.json(每个发现,遵循task-schema.json)
阶段8:修复执行
    ↓ 输出:fix-progress-*.json, git提交
阶段9:修复完成
    ↓ 输出:fix-summary.md, fix-history.json

子代理API参考

spawn_agent

创建新子代理并分配任务。

const agentId = spawn_agent({
  message: `
## 任务分配

### 强制第一步(代理执行)
1. **读取角色定义**:~/.codex/agents/{代理类型}.md(必须先读)
2. 读取:${projectRoot}/.workflow/project-tech.json
3. 读取:${projectRoot}/.workflow/project-guidelines.json

---

## 任务上下文
${taskContext}

## 交付物
${deliverables}
`
})

wait

从子代理获取结果(唯一检索结果的方式)。

const result = wait({
  ids: [agentId],
  timeout_ms: 600000  // 10分钟
})

if (result.timed_out) {
  // 处理超时 - 可以继续等待或send_input以提示完成
}

// 检查完成状态
if (result.status[agentId].completed) {
  const output = result.status[agentId].completed;
}

send_input

与活动子代理继续交互(用于澄清或后续)。

send_input({
  id: agentId,
  message: `
## 澄清答案
${answers}

## 下一步
继续分析生成。
`
})

close_agent

清理子代理资源(不可逆)。

close_agent({ id: agentId })

进度跟踪模式

审查管道初始化

阶段1:发现与初始化     → 待处理
阶段2:并行审查(7维度) → 待处理
阶段3:聚合分析         → 待处理
阶段4:深度分析(条件性) → 待处理
阶段5:审查完成         → 待处理

在阶段2期间(每个维度的子任务)

  → 安全审查       → 进行中 / 完成
  → 架构审查       → 进行中 / 完成
  → 质量审查       → 进行中 / 完成
  ... 其他维度

修复管道(如果在阶段5后触发)

阶段6:修复发现与批处理   → 待处理
阶段7:并行规划          → 待处理
阶段7.5:导出到任务JSON  → 待处理
阶段8:执行              → 待处理
阶段9:修复完成          → 待处理

错误处理

审查管道错误

阶段 错误 阻塞? 行动
阶段1 未找到会话(会话模式) 错误并退出
阶段1 无更改文件(会话模式) 错误并退出
阶段1 无效路径模式(模块模式) 错误并退出
阶段1 无匹配文件(模块模式) 错误并退出
阶段2 单维度失败 记录警告,继续其他维度
阶段2 所有维度失败 错误并退出
阶段3 缺少维度JSON 在聚合中跳过,记录警告
阶段4 深度分析代理失败 跳过发现,继续其他
阶段4 达到最大迭代次数 生成部分报告

修复管道错误

阶段 错误 阻塞? 行动
阶段6 无效导出文件 中止并错误
阶段6 空批次 警告并跳过空
阶段7 规划代理超时 标记批次失败,继续其他
阶段7 所有代理失败 中止修复会话
阶段8 修复后测试失败 回滚,重试至最大迭代
阶段8 Git操作失败 中止,保留状态
阶段9 聚合错误 生成部分总结

CLI回退链

Gemini → Qwen → Codex → 降级模式

回退触发条件:HTTP 429/5xx、连接超时、无效JSON输出、低置信度 < 0.4、分析太简短(< 100字)

输出文件结构

{projectRoot}/.workflow/active/WFS-{会话-id}/.review/
├── review-state.json                    # 编排器状态机
├── review-progress.json                 # 实时进度
├── dimensions/                          # 每维度结果(阶段2)
│   ├── security.json
│   ├── architecture.json
│   ├── quality.json
│   ├── action-items.json
│   ├── performance.json
│   ├── maintainability.json
│   └── best-practices.json
├── iterations/                          # 深度分析结果(阶段4)
│   ├── iteration-1-finding-{uuid}.json
│   └── iteration-2-finding-{uuid}.json
├── reports/                             # 可读报告
│   ├── security-analysis.md
│   ├── security-cli-output.txt
│   ├── deep-dive-1-{uuid}.md
│   └── ...
├── .task/                              # 任务JSON导出(阶段7.5)
│   ├── FIX-001.json                    # 每发现任务(task-schema.json)
│   ├── FIX-002.json
│   └── ...
├── plan.json                           # 计划概览(plan-overview-fix-schema,阶段7.5)
└── fixes/{修复会话-id}/             # 修复结果(阶段6-9)
    ├── partial-plan-*.json
    ├── fix-plan.json
    ├── fix-progress-*.json
    ├── fix-summary.md
    ├── active-fix-session.json
    └── fix-history.json

相关命令

查看进度

ccw view

工作流管道

# 步骤1:审查(此技能)
review-cycle src/auth/**

# 步骤2:修复(继续或独立)
review-cycle --fix ${projectRoot}/.workflow/active/WFS-{会话-id}/.review/