mcpField
L
ln-520-test-planner

ln-520-test-planner

github.com/levnikolaevich测试与质量584360 次安装2 天前更新
代码仓库

关于 ln-520-test-planner

ln-520-test-planner 为已完成实现和回归工作的 Story 协调研究、手动测试与自动化测试规划。它将各阶段委派给专用 Worker,并通过运行时产物跟踪结果。

主要功能

  1. 01协调研究、手动测试和自动化测试规划
  2. 02将各阶段委派给专用 Worker
  3. 03复用已有研究和测试结果
  4. 04手动测试失败时停止流程
  5. 05创建或更新测试任务

适用场景

  1. 01为准备审核的 Story 规划测试
  2. 02运行简化的自动化测试规划流程
  3. 03根据已记录的 Worker 产物恢复规划

安装

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

$npx skills add https://github.com/levnikolaevich/claude-code-skills --skill ln-520-test-planner

安装后在 Claude Code 中输入/ln-520-test-planner确认已加载。

包含的文件

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

references/
coordinator_runtime_contract.md
coordinator_summary_contract.md
input_resolution_pattern.md
meta_analysis_protocol.md
risk_based_testing_guide.md
task_plan_worker_runtime_contract.md
test_planning_runtime_contract.md
test_planning_summary_contract.md
test_planning_worker_runtime_contract.md
references/scripts/coordinator-runtime/lib/
artifacts.mjs
cli-helpers.mjs
core.mjs
loop-health.mjs
runtime-constants.mjs
schemas.mjs
validate.mjs
worker-guards.mjs
worker-runtime.mjs
references/scripts/task-plan-worker-runtime/
cli.mjs
references/scripts/task-plan-worker-runtime/lib/
guards.mjs
phases.mjs
store.mjs
references/scripts/test-planning-runtime/
cli.mjs
references/scripts/test-planning-runtime/lib/
guards.mjs
phases.mjs
store.mjs
references/scripts/test-planning-worker-runtime/
cli.mjs
references/scripts/test-planning-worker-runtime/lib/
guards.mjs
phases.mjs
store.mjs

详细介绍

路径: 文件路径(references/、../ln-*)相对于此技能目录。

测试规划协调器

类型: L2 协调器 类别: 5XX 质量

由运行时支持的测试规划协调器。运行时负责跳过/复用门控、工作器摘要跟踪以及确定性恢复。

输入

输入必填来源描述
storyId是args、git 分支、kanban、用户要处理的 Story
--simplified否args跳过研究(ln-521)和手动测试(ln-522)。仅运行自动测试规划(ln-523)。用于快速通道模式。

解析方式: Story 解析链。 状态筛选: To Review

目的与范围

  • 协调测试规划:研究 → 手动测试 → 自动化测试规划
  • 委派给工作器:ln-521-test-researcher、ln-522-manual-tester、ln-523-auto-test-planner
  • 不直接执行工作——仅通过 Skill 工具进行协调和委派

运行时契约

必须阅读: 加载 references/coordinator_runtime_contract.md、references/test_planning_runtime_contract.md、references/test_planning_summary_contract.md、references/test_planning_worker_runtime_contract.md、references/task_plan_worker_runtime_contract.md

运行时系列:test-planning-runtime

标识符:

  • Story ID

阶段:

  1. PHASE_0_CONFIG
  2. PHASE_1_DISCOVERY
  3. PHASE_2_RESEARCH
  4. PHASE_3_MANUAL_TESTING
  5. PHASE_4_AUTO_TEST_PLANNING
  6. PHASE_5_FINALIZE
  7. PHASE_6_SELF_CHECK

工作器摘要契约:

  • ln-521、ln-522、ln-523 接收确定性的子 runId 和精确的 summaryArtifactPath
  • 等待产物前,先检查点记录子运行时元数据
  • 每个工作器都会在最终结果前写入一个 test-planning-worker 摘要信封
  • ln-520 消费工作器摘要,而非工作器的自由文本说明

使用时机

在以下情况下应使用此技能:

  • Story 已通过实现和回归工作,需要完整的测试规划
  • Story 中的所有实现任务均已完成
  • 需要完整的测试规划(研究 + 手动测试 + 自动化测试)

前置条件:

  • Story 中所有实现任务的状态 = Done
  • 回归测试已通过(ln-513)
  • 代码质量已检查(ln-511)

流程概览

ln-520-test-planner (Orchestrator)
    │
    ├─→ ln-521-test-researcher
    │     └─→ Posts "## Test Research: {Feature}" comment
    │
    ├─→ ln-522-manual-tester
    │     └─→ Creates tests/manual/ scripts + "## Manual Testing Results" comment
    │
    └─→ ln-523-auto-test-planner
          └─→ Creates test task via the configured tracker provider via ln-301/ln-302

工作流

阶段 0:解析输入

必须阅读: 加载 references/input_resolution_pattern.md

  1. 解析 storyId: 按照指南执行 Story 解析链(状态筛选:[To Review])。
阶段 1:发现
  1. 从 docs/tasks/kanban_board.md 自动发现 Team ID
  2. 验证 Story ID
阶段 2:委派研究

简化模式门控:

  • 如果存在 --simplified 标记且 Story 上已有研究评论:跳过阶段 2(研究)。继续阶段 4。
  • 如果存在 --simplified 标记且没有研究评论:跳过阶段 2。继续阶段 4(ln-523 将生成最简内联研究)。
  1. 检查是否已有研究:

    • 在跟踪器评论中搜索“## Test Research:”标题(listComments)
    • 如果找到 → 跳至阶段 3
  2. 如果没有研究:

    • 为 ln-521 计算确定性的子运行输入
    • 启动 test-planning-worker-runtime,并在委派前对 child_run 执行检查点记录
    • 通过受管理的工作器运行调用 ln-521-test-researcher
    • 传入:Story ID
    • 等待完成
    • 仅读取生成的 test-planning-worker 产物
    • 验证研究评论已创建
阶段 3:委派人工测试

简化模式门控:

  • 如果使用 --simplified 标志:跳过阶段 3(人工测试)。继续进入阶段 4。
  1. 检查是否已完成人工测试:

    • 搜索跟踪器评论中的 "## Manual Testing Results" 标题(listComments)
    • 如果找到且所有 AC 均已通过 → 跳到阶段 4
  2. 如果需要进行人工测试:

    • 为 ln-522 计算确定性的子运行输入
    • 启动 test-planning-worker-runtime,并在委派前记录 child_run 检查点
    • 通过托管工作器运行调用 ln-522-manual-tester
    • 传入:故事 ID
    • 等待完成
    • 仅读取生成的 test-planning-worker 产物
    • 验证结果评论已创建
  3. 如果任何 AC 未通过:

    • 停止流水线
    • 向 ln-500 报告:"人工测试失败,故事需要修复"
阶段 4:自动测试规划委派
  1. 调用自动测试规划器:

    • 为 ln-523 计算确定性的子运行输入
    • 启动 test-planning-worker-runtime,并在委派前记录 child_run 检查点
    • 通过托管工作器运行调用 ln-523-auto-test-planner
    • 传入:故事 ID
    • 等待完成
    • 仅读取生成的 test-planning-worker 产物
  2. 验证结果:

    • 已通过配置的跟踪器提供方创建测试任务(如果任务已存在,则已更新)
    • 将任务 URL 返回给 ln-500
阶段 5:向调用方报告
  1. 向 ln-500 返回摘要:
    • 研究:已完成 / 已跳过(已存在)
    • 人工测试:通过 / 失败
    • 测试任务:已创建 / 已更新 + URL
运行时摘要产物

必须读取: 加载 references/coordinator_summary_contract.md

完成前写入 .hex-skills/runtime-artifacts/runs/{run_id}/story-tests/{story_id}.json。

工作器调用(必须)

宿主技能调用: Skill(skill: "...", args: "...") 是必需的委派方式。

  • Claude:严格按所示调用 Skill 工具。
  • Codex:如果没有 Skill 工具,则在可用技能中找到指定技能,读取其 SKILL.md,将 args 视为 $ARGUMENTS,执行该技能工作流,然后携带结果 / 产物返回此处。
  • 不要内联工作器逻辑,也不要在未执行目标技能的情况下将工作器标记为已完成。

重要: 所有委派都使用 subagent_type: "general-purpose" 的 Agent 工具来隔离上下文,但每次托管工作器运行都必须先通过 test-planning-worker-runtime 准备。

阶段工作器用途
2ln-521-test-researcher由运行时托管的 Agent 调用;产物是唯一的完成信号
3ln-522-manual-tester由运行时托管的 Agent 调用;产物是唯一的完成信号
4ln-523-auto-test-planner由运行时托管的 Agent 调用;产物是唯一的完成信号

提示词模板:

Agent(description: "[Phase N] test planning via ln-52X",
     prompt: "Execute test planning worker.

Step 1: Start worker runtime:
  node references/scripts/test-planning-worker-runtime/cli.mjs start --skill {worker} --story {storyId} --manifest-file .hex-skills/test-planning/{worker}--{storyId}_manifest.json --run-id {childRunId} --summary-artifact-path .hex-skills/runtime-artifacts/runs/{parent_run_id}/test-planning-worker/{worker}--{storyId}.json

Step 2: Checkpoint child metadata:
  node references/scripts/test-planning-runtime/cli.mjs checkpoint --story {storyId} --phase PHASE_N --payload '{\"child_run\":{\"worker\":\"{worker}\",\"run_id\":\"{childRunId}\",\"summary_artifact_path\":\".hex-skills/runtime-artifacts/runs/{parent_run_id}/test-planning-worker/{worker}--{storyId}.json\"}}'

Step 3: Invoke worker:
  Skill(skill: \"ln-52X-{worker}\", args: \"{storyId} --run-id {childRunId} --summary-artifact-path .hex-skills/runtime-artifacts/runs/{parent_run_id}/test-planning-worker/{worker}--{storyId}.json\")

CONTEXT:
Story: {storyId}",
     subagent_type: "general-purpose")

反模式:

  • ❌ 未启动子运行时并记录 child_run 检查点就直接调用 Agent
  • ❌ 直接执行 Web 搜索(委派给 ln-521)
  • ❌ 直接创建 bash 测试脚本(委派给 ln-522)
  • ❌ 直接创建测试任务(委派给 ln-523)
  • ❌ 无正当理由跳过任何阶段

TodoWrite 格式(必须)

- Resolve Story and prerequisites (pending)
- Check or reuse research state (pending)
- Start ln-521 child runtime, checkpoint metadata, or skip deterministically (pending)
- Check or reuse manual testing state (pending)
- Start ln-522 child runtime, checkpoint metadata, or skip deterministically (pending)
- Start ln-523 child runtime, checkpoint metadata, and verify test-task result (pending)
- Write story-tests summary artifact (pending)
- Report final planning outcome (pending)

关键规则

  • 不直接执行工作: 协调器只负责委派,绝不自行执行任务
  • 按顺序执行: 521 → 522 → 523(每一步都依赖前一步)
  • 快速失败: 如果人工测试失败,停止流水线并报告
  • 跳过检测: 调用工作器前检查是否已有评论
  • 单一职责: 每个工作器只做好一件事
  • 每次托管工作器运行都必须先通过 test-planning-worker-runtime 启动,然后 Agent 封装器才能调用工作器。

完成定义

  • 已验证故事 ID
  • 研究阶段:已调用 ln-521,或已找到现有评论
  • 手动测试阶段:已调用 ln-522,或已找到现有结果
  • 自动化测试规划阶段:已调用 ln-523
  • 在每次调用受管理的工作进程之前,均已启动并检查点记录子测试规划运行时
  • 已通过配置的跟踪器提供方创建/更新测试任务
  • 已准备好包含各阶段结果和测试任务 URL 的摘要
  • 已将故事测试摘要产物写入共享位置

**输出:**包含各阶段结果和测试任务 URL 的摘要

阶段 6:元分析

可选参考:仅当用户要求进行运行后的元分析或按协议格式撰写运行反思时,才加载 references/meta_analysis_protocol.md。

技能类型:planning-coordinator。如有请求,请在所有阶段完成后运行。使用 planning-coordinator 格式在聊天中输出。

参考文件

  • 工作进程:../ln-521-test-researcher/SKILL.md、../ln-522-manual-tester/SKILL.md、../ln-523-auto-test-planner/SKILL.md
  • 基于风险的测试:references/risk_based_testing_guide.md

**版本:**4.0.0 **最后更新:**2026-01-15

评论

支持 Markdown