mcpField
W
workflow-test-fix

workflow-test-fix

github.com/catlog22测试与质量2.1k68 次安装19 周前更新
代码仓库

关于 workflow-test-fix

workflow-test-fix 是将测试规划生成与迭代修复执行整合起来的 Agent 技能,适用于自动化测试准备和修复流程。它按 L0–L3 分层生成任务,并根据测试结果调整修复策略,直到达到质量门槛或迭代上限。

主要功能

  1. 01整合测试生成与执行流程
  2. 02按 L0–L3 分层规划测试
  3. 03生成测试任务和 IMPL_PLAN.md
  4. 04按迭代情境调整修复策略
  5. 05依据通过率或迭代上限结束

适用场景

  1. 01从任务描述创建测试会话并执行
  2. 02基于已有会话运行测试修复
  3. 03按静态、单元、集成和端到端层级验证
  4. 04在回归或相似失败时调整修复方式

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/catlog22/claude-code-workflow --skill workflow-test-fix

安装后在 Claude Code 中输入/workflow-test-fix确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

phases/
01-session-start.md
02-test-context-gather.md
03-test-concept-enhanced.md
04-test-task-generate.md
05-test-cycle-execute.md

详细介绍

统一的测试修复编排器,将**测试规划生成**(Phase 1-4)与**迭代测试周期执行**(Phase 5)整合为一个端到端流水线。创建包含渐进式 L0-L3 测试层的测试会话,生成测试任务,然后执行这些任务并进行自适应修复循环,直到通过率达到 95% 或达到最大迭代次数。通过技能名称路由触发完整流水线或仅执行模式。

1. 架构概览

┌───────────────────────────────────────────────────────────────────────────┐
│  Workflow Test Fix Orchestrator (SKILL.md)                                │
│  → Pure coordinator: Route entry point, track progress, pass context      │
│  → Five phases: Session → Context → Analysis → TaskGen → Execution       │
└──────────────────────────────────┬────────────────────────────────────────┘
                                   │
  ┌────────────┬────────────┬──────┴──────┬────────────┬────────────┐
  ↓            ↓            ↓             ↓            ↓
┌──────────┐┌──────────┐┌──────────┐┌──────────┐    ┌──────────────┐
│ Phase 1  ││ Phase 2  ││ Phase 3  ││ Phase 4  │    │  Phase 5     │
│ Session  ││ Context  ││ Analysis ││ Task Gen │    │  Test Cycle  │
│ Start    ││ Gather   ││ Enhanced ││ Generate │    │  Execute     │
│          ││          ││          ││          │    │              │
│ Input    ││ Coverage ││ Gemini   ││ IMPL_PLAN│    │  1. Discovery│
│ Detect + ││ or Code  ││ L0-L3   ││ IMPL-*   │    │  2. Execute  │
│ Session  ││ Scan     ││ AI Issue ││ TODO_LIST│    │  3. Fix Loop │
│ Create   ││          ││          ││          │    │  4. Complete │
└────┬─────┘└────┬─────┘└────┬─────┘└────┬─────┘    └──────────────┘
     │           │           │           │                  ↑
     │testSessionId          │           │                  │
     └──→────────┘contextPath│           │                  │
                  └──→───────┘AnalysisRes│                  │
                               └──→──────┘ testSessionId    │
                                          └──→──(Summary)──→┘

Task Pipeline (generated in Phase 4, executed in Phase 5):
┌──────────────┐   ┌─────────────────┐   ┌─────────────────┐   ┌──────────────┐
│  IMPL-001    │──→│  IMPL-001.3     │──→│  IMPL-001.5     │──→│  IMPL-002    │
│  Test Gen    │   │  Code Validate  │   │  Quality Gate   │   │  Test & Fix  │
│  L1-L3       │   │  L0 + AI Issues │   │  Coverage 80%+  │   │  Max N iter  │
│@code-developer│  │ @test-fix-agent │   │ @test-fix-agent │   │@test-fix-agent│
└──────────────┘   └─────────────────┘   └─────────────────┘   └──────────────┘

2. 关键设计原则

  1. 统一流水线:生成与执行构成一个连续工作流,无需手动交接
  2. 纯编排器:SKILL.md 仅负责协调,将所有执行细节委托给各阶段文件
  3. 自动继续:Phase 1→2→3→4→(Summary)→5 自动执行
  4. 任务附加/折叠:在阶段执行期间附加子任务,完成后折叠
  5. 渐进式阶段加载:仅在某阶段执行时读取其文档,不预先读取
  6. 自适应策略:修复循环根据迭代上下文自动选择策略(保守/激进/精准)
  7. 质量门槛:达到通过率 >= 95%(考虑关键程度)时终止修复循环
  8. 阶段文件规范:阶段文件通过 workflowPreferences.* 引用偏好设置,不解析 CLI 标志

3. 用法

完整流水线和仅执行模式通过技能名称路由触发(参见 Mode Detection)。在分派到各阶段之前,通过 AskUserQuestion 以交互方式收集工作流偏好设置(自动模式)。

完整流水线(workflow-test-fix):将任务描述或会话 ID 作为参数 → 交互式收集偏好设置 → 生成并执行流水线 仅执行(workflow-test-fix):自动发现活动会话 → 交互式收集偏好设置 → 执行循环

4. 交互式偏好设置收集

在分派到阶段执行之前,通过 AskUserQuestion 收集工作流偏好设置:

// ★ 统一 auto mode 检测:-y/--yes 从 $ARGUMENTS 或 ccw 传播
const autoYes = /\b(-y|--yes)\b/.test($ARGUMENTS)

if (autoYes) {
  // 自动模式:跳过所有询问,使用默认值
  workflowPreferences = { autoYes: true }
} else {
  const prefResponse = AskUserQuestion({
    questions: [
      {
        question: "是否跳过所有确认步骤(自动模式)?",
        header: "Auto Mode",
        multiSelect: false,
        options: [
          { label: "Interactive (Recommended)", description: "交互模式,包含确认步骤" },
          { label: "Auto", description: "跳过所有确认,自动执行" }
        ]
      }
    ]
  })

  workflowPreferences = {
    autoYes: prefResponse.autoMode === 'Auto'
  }
}

workflowPreferences 作为上下文变量传递给阶段执行,并在各阶段中以 workflowPreferences.autoYes 引用。

5. 压缩恢复(阶段持久化)

多阶段测试修复流水线(Phase 1-5)会持续较长时间,尤其是 Phase 5 的修复循环。采用双重保险:通过 TodoWrite 跟踪活动阶段,保护其不被压缩;sentinel 则作为兜底。

⚠️ COMPACT DIRECTIVE:上下文压缩时必须检查 TodoWrite 阶段状态。 当前标记为 in_progress 的阶段是活动执行阶段——必须保留其完整内容。 仅压缩标记为 completed 或 pending 的阶段。

6. 执行流程

Entry Point Detection:
   ├─ /workflow-test-fix → Full Pipeline (Phase 1→2→3→4→Summary→5)
   └─ /workflow-test-fix → Execution Only (Phase 5)

Phase 1: Session Start (session-start)
   └─ Read("phases/01-session-start.md")
      ├─ Step 1.0: Detect input mode (session | prompt)
      ├─ Step 1.1: Create test session → testSessionId
      └─ Output: testSessionId, MODE

Phase 2: Test Context Gather (test-context-gather)
   └─ Read("phases/02-test-context-gather.md")
      ├─ Step 1.2: Gather test context → contextPath
      └─ Output: contextPath

Phase 3: Test Concept Enhanced (test-concept-enhanced)
   └─ Read("phases/03-test-concept-enhanced.md")
      ├─ Step 1.3: Test analysis (Gemini) → TEST_ANALYSIS_RESULTS.md
      └─ Output: TEST_ANALYSIS_RESULTS.md

Phase 4: Test Task Generate (test-task-generate)
   └─ Read("phases/04-test-task-generate.md")
      ├─ Step 1.4: Generate test tasks → IMPL_PLAN.md, IMPL-*.json, TODO_LIST.md
      └─ Output: testSessionId, 4+ task JSONs

Summary Output (inline after Phase 4):
   └─ Display summary, auto-continue to Phase 5

Phase 5: Test Cycle Execution (test-cycle-execute)
   └─ Read("phases/05-test-cycle-execute.md")
      ├─ Step 2.1: Discovery (load session, tasks, iteration state)
      ├─ Step 2.2: Execute initial tasks (IMPL-001 → 001.3 → 001.5 → 002)
      ├─ Step 2.3: Fix loop (if pass_rate < 95%)
      │   ├─ Select strategy: conservative/aggressive/surgical
      │   ├─ Generate fix task via @cli-planning-agent
      │   ├─ Execute fix via @test-fix-agent
      │   └─ Re-test → loop or exit
      └─ Step 2.4: Completion (summary, session archive)
         └─ Output: final pass_rate, summary

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

PhaseDocumentPurposeCompact
1phases/01-session-start.md检测输入模式,创建测试会话TodoWrite 驱动
2phases/02-test-context-gather.md收集测试上下文(覆盖率/代码库)TodoWrite 驱动
3phases/03-test-concept-enhanced.mdGemini 分析,L0-L3 测试要求TodoWrite 驱动
4phases/04-test-task-generate.md生成任务 JSON 和 IMPL_PLAN.mdTodoWrite 驱动
5phases/05-test-cycle-execute.md执行任务、迭代修复循环、完成TodoWrite 驱动 + 🔄 sentinel

压缩规则:

  1. TodoWrite in_progress → 保留完整内容,禁止压缩
  2. TodoWrite completed → 可压缩为摘要
  3. 🔄 sentinel 兜底 → Phase 5 包含压缩 sentinel;若压缩后仅剩 sentinel 而无完整 Step 协议,必须立即 Read("phases/05-test-cycle-execute.md") 恢复

7. 核心规则

  1. 立即开始:第一个操作是初始化 TaskCreate,第二个操作是执行阶段 1(仅执行入口则执行阶段 5)
  2. 不做前期分析:开始阶段前,不要读取文件或收集上下文
  3. 解析每项输出:从每个步骤的输出中提取下一步骤所需的数据
  4. 自动继续:阶段 1→2→3→4→(摘要)→5 自动执行(适用于完整流程入口)
  5. 跟踪进度:根据任务附加/折叠模式动态更新 TaskCreate/TaskUpdate
  6. 任务附加模型:子任务在阶段执行期间附加,完成后折叠
  7. 不要停止:持续执行工作流,直到通过质量门槛或达到最大迭代次数
  8. 渐进式加载:仅在某阶段即将执行时读取该阶段的文档
  9. 入口路由:workflow-test-fix 技能 → 阶段 1-5;workflow-test-fix 技能 → 仅阶段 5

8. 输入处理

test-fix-gen 入口(完整流程)
User input → Detect type:
  ├─ Starts with "WFS-" → MODE=session, sourceSessionId=input
  ├─ Ends with ".md"    → MODE=prompt, description=Read(input)
  └─ Otherwise          → MODE=prompt, description=input
test-cycle-execute 入口(仅阶段 5)
Arguments → Parse flags:
  ├─ --resume-session="WFS-xxx" → sessionId=WFS-xxx
  ├─ --max-iterations=N         → maxIterations=N (default: 10)
  └─ (no args)                  → auto-discover active test session

9. 数据流

User Input (session ID | description | file path)
    ↓
[Detect Mode: session | prompt]
    ↓
Phase 1: Session Start ─────────────────────────────────────────
    ↓ 1.0+1.1: session:start → testSessionId, MODE
    ↓
Phase 2: Test Context Gather ────────────────────────────────────
    ↓ 1.2: test-context-gather/context-gather → contextPath
    ↓
Phase 3: Test Concept Enhanced ──────────────────────────────────
    ↓ 1.3: test-concept-enhanced → TEST_ANALYSIS_RESULTS.md
    ↓
Phase 4: Test Task Generate ─────────────────────────────────────
    ↓ 1.4: test-task-generate → IMPL_PLAN.md, IMPL-*.json, TODO_LIST.md
    ↓
Summary Output (inline) ─────────────────────────────────────────
    ↓ Display summary with next step
    ↓
Phase 5: Test Cycle Execution ───────────────────────────────────
    ↓ 2.1: Load session + tasks + iteration state
    ↓ 2.2: Execute IMPL-001 → 001.3 → 001.5 → 002
    ↓ 2.3: Fix loop (analyze → fix → retest) until pass_rate >= 95%
    ↓ 2.4: Completion → summary → session archive

10. 摘要输出(阶段 4 之后)

阶段 4 完成后,在自动继续到阶段 5 之前,显示以下摘要:

Test-fix workflow created successfully!

Input: [original input]
Mode: [Session|Prompt]
Test Session: [testSessionId]

Tasks Created:
- IMPL-001: Test Understanding & Generation (@code-developer)
- IMPL-001.3: Code Validation Gate - AI Error Detection (@test-fix-agent)
- IMPL-001.5: Test Quality Gate - Static Analysis & Coverage (@test-fix-agent)
- IMPL-002: Test Execution & Fix Cycle (@test-fix-agent)

Quality Thresholds:
- Code Validation: Zero CRITICAL issues, zero compilation errors
- Minimum Coverage: 80% line, 70% branch
- Static Analysis: Zero critical anti-patterns
- Max Fix Iterations: 5

Review artifacts:
- Test plan: .workflow/[testSessionId]/IMPL_PLAN.md
- Task list: .workflow/[testSessionId]/TODO_LIST.md
- Analysis: .workflow/[testSessionId]/.process/TEST_ANALYSIS_RESULTS.md

关键事项 — 下一步:自动继续到阶段 5:测试周期执行。 将 testSessionId 传递给阶段 5,以执行测试流程。不要等待用户确认——统一流程会自动继续。

11. 测试策略概述

渐进式测试层级(L0-L3):

层级名称重点
L0静态分析编译、导入、类型、AI 代码问题
L1单元测试函数/类行为(正常、负面和边界情况)
L2集成测试组件交互、API 契约、故障模式
L3E2E 测试用户旅程、关键路径(可选)

质量阈值:

  • 代码验证(IMPL-001.3):无 CRITICAL 问题,无编译错误
  • 最低覆盖率:行覆盖率 80%,分支覆盖率 70%
  • 静态分析(IMPL-001.5):无严重反模式
  • 通过率门槛:>= 95%(考虑严重程度)或 100%
  • 最大修复迭代次数:10(默认值,可调整)

12. 策略引擎(阶段 5)

策略触发条件行为
保守第 1-2 次迭代(默认)单项定向修复,完整验证
激进通过率 >80% 且存在类似故障批量修复相关问题
精准检测到回归(通过率下降 >10%)最小化更改,重点回滚

策略选择逻辑和 CLI 回退链(Gemini → Qwen → Codex)详见阶段 5。

13. Agent 角色

Agent使用阶段职责
Orchestrator所有阶段路由入口、跟踪进度、传递上下文
@code-developer阶段 5(IMPL-001)生成测试(L1-L3)
@test-fix-agent阶段 5执行测试、修复代码、分配严重程度
@cli-planning-agent阶段 5(修复循环)CLI 分析、提取根本原因、生成修复任务

14. TodoWrite 模式

核心概念:通过附加/折叠动态跟踪任务,实时显示进度。

实现说明:阶段文件使用 TodoWrite 语法描述概念性跟踪模式。运行时,这些操作通过允许的工具列表中的 TaskCreate/TaskUpdate/TaskList 工具实现。映射 TodoWrite 示例的方法如下:

  • 创建初始列表 → 为每个项目调用 TaskCreate
  • 更改状态 → TaskUpdate({ taskId, status })
  • 附加子任务 → TaskCreate + TaskUpdate({ addBlockedBy })
  • 折叠子任务 → 对折叠的子项目调用 TaskUpdate({ status: "completed" }) + TaskUpdate({ status: "deleted" })
完整流程(阶段 1-5)
[
  {"content": "Phase 1: Session Start", "status": "in_progress"},
  {"content": "Phase 2: Test Context Gather", "status": "pending"},
  {"content": "Phase 3: Test Analysis (Gemini)", "status": "pending"},
  {"content": "Phase 4: Test Task Generate", "status": "pending"},
  {"content": "Phase 5: Test Cycle Execution", "status": "pending"}
]
阶段 1-4 已折叠 → 阶段 5 活跃
[
  {"content": "Phase 1: Session Start", "status": "completed"},
  {"content": "Phase 2: Test Context Gather", "status": "completed"},
  {"content": "Phase 3: Test Analysis (Gemini)", "status": "completed"},
  {"content": "Phase 4: Test Task Generate", "status": "completed"},
  {"content": "Phase 5: Test Cycle Execution", "status": "in_progress"},
  {"content": "  → Execute IMPL-001 [code-developer]", "status": "in_progress"},
  {"content": "  → Execute IMPL-001.3 [test-fix-agent]", "status": "pending"},
  {"content": "  → Execute IMPL-001.5 [test-fix-agent]", "status": "pending"},
  {"content": "  → Execute IMPL-002 [test-fix-agent]", "status": "pending"},
  {"content": "  → Fix Loop", "status": "pending"}
]
修复循环迭代
[
  {"content": "Phase 1-4: Test Generation", "status": "completed"},
  {"content": "Phase 5: Test Cycle Execution", "status": "in_progress"},
  {"content": "  → Initial tasks", "status": "completed"},
  {"content": "  → Iteration 1: Initial test (pass: 70%, conservative)", "status": "completed"},
  {"content": "  → Iteration 2: Fix validation (pass: 82%, conservative)", "status": "completed"},
  {"content": "  → Iteration 3: Batch fix (pass: 89%, aggressive)", "status": "in_progress"}
]

15. 会话文件结构

.workflow/active/WFS-test-{session}/
├── workflow-session.json              # Session metadata
├── IMPL_PLAN.md                       # Test generation and execution strategy
├── TODO_LIST.md                       # Task checklist
├── .task/
│   ├── IMPL-001.json                  # Test understanding & generation
│   ├── IMPL-001.3-validation.json     # Code validation gate
│   ├── IMPL-001.5-review.json         # Test quality gate
│   ├── IMPL-002.json                  # Test execution & fix cycle
│   └── IMPL-fix-{N}.json             # Generated fix tasks (Phase 5 fix loop)
├── .process/
│   ├── [test-]context-package.json    # Context and coverage analysis
│   ├── TEST_ANALYSIS_RESULTS.md       # Test requirements (L0-L3)
│   ├── iteration-state.json           # Current iteration + strategy + stuck tests
│   ├── test-results.json              # Latest results (pass_rate, criticality)
│   ├── test-output.log                # Full test output
│   ├── fix-history.json               # All fix attempts
│   ├── iteration-{N}-analysis.md      # CLI analysis report
│   └── iteration-{N}-cli-output.txt
└── .summaries/
    └── iteration-summaries/

16. 错误处理

阶段 1-4(生成)
阶段错误条件操作
1:会话启动未找到源会话(会话模式)返回包含会话 ID 的错误
1:会话启动没有已完成的 IMPL 任务(会话模式)返回错误,源会话未完成
2:收集上下文收集上下文失败返回错误,检查源工件
3:分析Gemini 分析失败返回错误,检查上下文包
4:生成任务任务生成失败重试一次,然后返回错误
阶段 5(执行)
场景操作
测试执行错误记录日志,结合错误上下文重试
CLI 分析失败回退方案:Gemini → Qwen → Codex → 手动处理
Agent 执行错误保存状态,使用简化后的上下文重试
达到最大迭代次数生成失败报告,标记为受阻
检测到回归回滚上次修复,改用精细修复策略
检测到测试卡住使用替代策略继续,并记录说明

17. 提交策略(阶段 5)

在关键检查点自动提交:

  1. 成功完成迭代后(通过率提高):test-cycle: iteration N - strategy (pass: old% → new%)
  2. 回滚前(检测到回归):test-cycle: rollback iteration N - regression detected

18. 完成条件

条件通过率操作
完全成功100%自动完成会话
部分成功>= 95%,且所有失败项的严重性较低自动批准并附上审查备注
失败达到最大迭代次数后仍 < 95%生成失败报告,标记为受阻

19. 完成后的扩展

自动同步:执行 /workflow:session:sync -y "{summary}",更新 specs/*.md + project-tech。

完成后,询问用户是否要将内容扩展为问题项(测试/增强/重构/文档)。所选项目调用 /issue:new "{summary} - {dimension}"。

20. 协调器检查清单

阶段 1(session-start)
  • 检测输入类型(会话 ID / 描述 / 文件路径)
  • 在执行任何操作前初始化 TaskCreate
  • 读取("phases/01-session-start.md"),执行步骤 1.0 + 1.1
  • 从步骤输出中解析 testSessionId,并存储在内存中
阶段 2(test-context-gather)
  • 读取("phases/02-test-context-gather.md"),执行步骤 1.2
  • 从步骤输出中解析 contextPath,并存储在内存中
阶段 3(test-concept-enhanced)
  • 读取("phases/03-test-concept-enhanced.md"),执行步骤 1.3
  • 确认已创建 TEST_ANALYSIS_RESULTS.md
阶段 4(test-task-generate)
  • 读取("phases/04-test-task-generate.md"),执行步骤 1.4
  • 确认阶段 1-4 的所有输出(4 个任务 JSON、IMPL_PLAN.md、TODO_LIST.md)
  • 显示 Summary 输出(行内)
  • 收起阶段 1-4 的任务,自动继续进入阶段 5
阶段 5(test-cycle-execute)
  • 读取("phases/05-test-cycle-execute.md")
  • 加载会话、任务和迭代状态
  • 按顺序执行初始任务
  • 根据 test-results.json 计算通过率
  • 如果 pass_rate < 95%:进入修复循环
  • 跟踪迭代次数、卡住的测试和回归情况
  • 如果 pass_rate >= 95% 或达到最大迭代次数:完成
  • 生成完成摘要
  • 提供完成后的扩展选项

21. 相关技能

前置技能:

  • workflow-plan 技能或 workflow-execute 技能 - 完成实现(Session Mode 源)
  • Prompt Mode 无需前置技能

后续技能:

  • 内联显示会话状态 - 查看工作流状态
  • review-cycle 技能 - 实现后的审查
  • /issue:new - 创建后续问题

<auto_mode> 当在 $ARGUMENTS 中检测到 -y 或 --yes,或通过 ccw 传递这些参数时:

  • 跳过所有 AskUserQuestion 确认
  • 所有工作流首选项均使用默认值(workflowPreferences = { autoYes: true })
  • 自动继续所有阶段,无需用户交互
  • 阶段 1→2→3→4→Summary→5 作为全自动流水线执行 </auto_mode>

<success_criteria>

  • 正确检测输入类型(会话 ID / 描述 / 文件路径)
  • 按顺序执行全部 5 个阶段(完整流水线)或仅执行阶段 5(仅执行模式)
  • 仅在阶段执行时,通过 Read() 渐进式加载阶段文档
  • 全程通过附件/折叠模式维护 TaskCreate/TaskUpdate 跟踪
  • 解析所有阶段输出,并传递给后续阶段(testSessionId、contextPath 等)
  • 阶段 4 后显示摘要,包含所有任务和阈值详情
  • 阶段 5 的修复循环采用自适应策略迭代,直至通过率达到或超过 95%,或达到最大迭代次数
  • 生成完成摘要,包含最终通过率,并归档会话
  • 向用户提供完成后的扩展选项 </success_criteria>

评论

支持 Markdown