关于 ln-520-test-planner
ln-520-test-planner 为已完成实现和回归工作的 Story 协调研究、手动测试与自动化测试规划。它将各阶段委派给专用 Worker,并通过运行时产物跟踪结果。
主要功能
- 01协调研究、手动测试和自动化测试规划
- 02将各阶段委派给专用 Worker
- 03复用已有研究和测试结果
- 04手动测试失败时停止流程
- 05创建或更新测试任务
适用场景
- 01为准备审核的 Story 规划测试
- 02运行简化的自动化测试规划流程
- 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.mdcoordinator_summary_contract.mdinput_resolution_pattern.mdmeta_analysis_protocol.mdrisk_based_testing_guide.mdtask_plan_worker_runtime_contract.mdtest_planning_runtime_contract.mdtest_planning_summary_contract.mdtest_planning_worker_runtime_contract.mdreferences/scripts/coordinator-runtime/lib/artifacts.mjscli-helpers.mjscore.mjsloop-health.mjsruntime-constants.mjsschemas.mjsvalidate.mjsworker-guards.mjsworker-runtime.mjsreferences/scripts/task-plan-worker-runtime/cli.mjsreferences/scripts/task-plan-worker-runtime/lib/guards.mjsphases.mjsstore.mjsreferences/scripts/test-planning-runtime/cli.mjsreferences/scripts/test-planning-runtime/lib/guards.mjsphases.mjsstore.mjsreferences/scripts/test-planning-worker-runtime/cli.mjsreferences/scripts/test-planning-worker-runtime/lib/guards.mjsphases.mjsstore.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
阶段:
PHASE_0_CONFIGPHASE_1_DISCOVERYPHASE_2_RESEARCHPHASE_3_MANUAL_TESTINGPHASE_4_AUTO_TEST_PLANNINGPHASE_5_FINALIZEPHASE_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
- 解析 storyId: 按照指南执行 Story 解析链(状态筛选:[To Review])。
阶段 1:发现
- 从
docs/tasks/kanban_board.md自动发现 Team ID - 验证 Story ID
阶段 2:委派研究
简化模式门控:
- 如果存在
--simplified标记且 Story 上已有研究评论:跳过阶段 2(研究)。继续阶段 4。- 如果存在
--simplified标记且没有研究评论:跳过阶段 2。继续阶段 4(ln-523 将生成最简内联研究)。
-
检查是否已有研究:
- 在跟踪器评论中搜索“## Test Research:”标题(
listComments) - 如果找到 → 跳至阶段 3
- 在跟踪器评论中搜索“## Test Research:”标题(
-
如果没有研究:
- 为
ln-521计算确定性的子运行输入 - 启动
test-planning-worker-runtime,并在委派前对child_run执行检查点记录 - 通过受管理的工作器运行调用
ln-521-test-researcher - 传入:Story ID
- 等待完成
- 仅读取生成的
test-planning-worker产物 - 验证研究评论已创建
- 为
阶段 3:委派人工测试
简化模式门控:
- 如果使用
--simplified标志:跳过阶段 3(人工测试)。继续进入阶段 4。
-
检查是否已完成人工测试:
- 搜索跟踪器评论中的 "## Manual Testing Results" 标题(
listComments) - 如果找到且所有 AC 均已通过 → 跳到阶段 4
- 搜索跟踪器评论中的 "## Manual Testing Results" 标题(
-
如果需要进行人工测试:
- 为
ln-522计算确定性的子运行输入 - 启动
test-planning-worker-runtime,并在委派前记录child_run检查点 - 通过托管工作器运行调用
ln-522-manual-tester - 传入:故事 ID
- 等待完成
- 仅读取生成的
test-planning-worker产物 - 验证结果评论已创建
- 为
-
如果任何 AC 未通过:
- 停止流水线
- 向 ln-500 报告:"人工测试失败,故事需要修复"
阶段 4:自动测试规划委派
-
调用自动测试规划器:
- 为
ln-523计算确定性的子运行输入 - 启动
test-planning-worker-runtime,并在委派前记录child_run检查点 - 通过托管工作器运行调用
ln-523-auto-test-planner - 传入:故事 ID
- 等待完成
- 仅读取生成的
test-planning-worker产物
- 为
-
验证结果:
- 已通过配置的跟踪器提供方创建测试任务(如果任务已存在,则已更新)
- 将任务 URL 返回给 ln-500
阶段 5:向调用方报告
- 向 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准备。
| 阶段 | 工作器 | 用途 |
|---|---|---|
| 2 | ln-521-test-researcher | 由运行时托管的 Agent 调用;产物是唯一的完成信号 |
| 3 | ln-522-manual-tester | 由运行时托管的 Agent 调用;产物是唯一的完成信号 |
| 4 | ln-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