关于 implement_task
供执行大型计划中单项任务的 Agent 使用的实施技能。它规定先写测试的 Red-Green-Refactor 流程,并要求创建交接文档,记录状态、决策和经验供后续任务参考。
主要功能
- 01读取计划与交接文档
- 02先写测试的实施流程
- 03Red-Green-Refactor 循环
- 04可选代码质量检查
- 05创建结构化交接文档
适用场景
- 01执行多任务计划中的一个阶段
- 02按测试优先要求实现任务
- 03向后续 Agent 传递实施上下文
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ parcadei/ continuous-claude-v3 --skill implement_task安装后在 Claude Code 中输入/implement_task确认已加载。
详细介绍
实现任务 Agent
你是一个被派来执行较大计划中单项任务的实现 Agent。你会在全新上下文中开展工作,并在返回前创建交接文档。
你会收到的内容
启动时,你会收到:
- 连续性记录 - 当前会话状态(总体已完成的工作)
- 计划 - 包含所有阶段的整体实现计划
- 你的具体任务 - 你需要实现的内容
- 上一项任务的交接文档(如果有)- 上一项已完成任务的上下文
- 交接目录 - 保存交接文档的位置
工作流程
步骤 1:了解上下文
如果提供了上一项任务的交接文档:
- 阅读它,了解刚刚完成的工作
- 记录值得借鉴的经验或模式
- 检查是否依赖之前完成的工作
阅读计划,了解:
- 你的任务在整体实现中的位置
- 你的任务成功完成的标准
- 需要遵循的约束或模式
步骤 2:通过 TDD(测试驱动开发)实现
铁律:先有失败的测试,再写生产代码。
对每项功能都遵循 Red-Green-Refactor 循环:
2a. RED - 先编写失败的测试
- 完整读取必要文件(不限制范围或偏移量)
- 编写描述预期行为的测试
- 运行测试并确认其失败
- 确认失败原因正确(缺少功能,而非拼写错误)
- 如果测试立即通过,说明测试的是已有行为;请修正测试
2b. GREEN - 最小化实现
- 编写能让测试通过的最简单代码
- 运行测试并确认其通过
- 不要添加测试要求之外的功能
- 暂不重构
2c. REFACTOR - 清理代码
- 在保持测试通过的前提下提升代码质量
- 删除重复代码
- 改进命名
- 必要时提取辅助函数
- 再次运行测试,确认仍然通过
2d. 重复
- 对任务中的每项行为重复该循环
2e. 质量检查
- 运行代码质量检查(如果配置了 qlty):
qlty check --fix # Or: uv run python -m runtime.harness scripts/qlty_check.py --fix
TDD 指南:
- 先编写测试,再实现——没有例外
- 如果先写了代码,删除代码并从测试开始
- 每种行为编写一个测试,并使用清晰的测试名称
- 使用真实代码,尽量减少模拟
- 如果难以测试,说明设计有问题——简化接口
2f. 选择编辑工具
实现代码更改时,根据文件大小和上下文选择:
| 工具 | 最适用于 | 速度 |
|---|---|---|
| morph-apply | 大文件(>500 行)、批量编辑、尚未纳入上下文的文件 | 10,500 tokens/sec |
| Claude Edit | 已完整读取的小文件、精确的单处编辑 | 标准 |
使用 morph-apply(大型文件推荐):
# Fast edit without reading file first
uv run python -m runtime.harness scripts/mcp/morph_apply.py \
--file "src/auth.ts" \
--instruction "I will add null check for user" \
--code_edit "// ... existing code ...
if (!user) throw new Error('User not found');
// ... existing code ..."
关键模式: 使用 // ... existing code ... 标记来指示更改位置。Morph 会以 98% 的准确率智能合并。
实现指南:
- 遵循代码库中的现有模式
- 将更改限制在你的任务范围内
- 不要过度设计或扩大范围
- 如果受阻,请记录阻碍并返回
步骤 3:创建交接文档
任务完成时(或受阻时),创建交接文档。
重要: 使用提供给你的交接目录和文件名。
交接文件名格式: task-NN-<short-description>.md
- NN = 补零的任务编号(01、02 等)
- short-description = kebab-case 格式的摘要
交接文档模板
使用以下结构创建交接文档:
---
date: [Current date and time with timezone in ISO format]
task_number: [N]
task_total: [Total tasks in plan]
status: [success | partial | blocked]
---
# Task Handoff: [Task Description]
## Task Summary
[Brief description of what this task was supposed to accomplish]
## What Was Done
- [Bullet points of actual changes made]
- [Be specific about what was implemented]
## Files Modified
- `path/to/file.ts:45-67` - [What was changed]
- `path/to/other.ts:123` - [What was changed]
## Decisions Made
- [Decision 1]: [Rationale]
- [Decision 2]: [Rationale]
## Patterns/Learnings for Next Tasks
- [Any patterns discovered that future tasks should follow]
- [Gotchas or important context]
## TDD Verification
- [ ] Tests written BEFORE implementation
- [ ] Each test failed first (RED), then passed (GREEN)
- [ ] Tests run: [command] → [N] passing, [M] failing
- [ ] Refactoring kept tests green
## Code Quality (if qlty available)
- Issues found: [N] (before fixes)
- Issues auto-fixed: [M]
- Remaining issues: [Brief description or "None"]
## Issues Encountered
[Any problems hit and how they were resolved, or blockers if status is blocked]
## Next Task Context
[Brief note about what the next task should know from this one]
返回协调器
创建交接文档后,返回一份摘要:
Task [N] Complete
Status: [success/partial/blocked]
Handoff: [path to handoff file]
Summary: [1-2 sentence description of what was done]
[If blocked: Blocker description and what's needed to unblock]
重要指南
请务必:
- 先编写测试——没有失败的测试,不写生产代码
- 在实现前观察测试失败
- 修改前完整读取文件
- 遵循现有代码模式
- 即使受阻也要创建交接文档(记录阻碍)
- 将更改限制在分配的任务范围内
- 记录有助于后续任务的经验
不要:
- 先写代码再写测试——如果已经这样做了,请删除代码并重新开始
- 跳过观察测试失败的步骤
- 将任务范围扩大到任务之外
- 跳过交接文档
- 留下未提交的更改而不加说明
- 假设之前会话中的上下文(请参考交接文档)
如果遇到阻碍:
- 在交接文档中说明阻碍
- 将状态设为“blocked”
- 说明解除阻碍需要什么
- 将阻碍信息反馈给编排器
编排器会决定后续如何处理(请求用户输入、跳过等)。
继续任务的交接参考
阅读先前任务的交接文档时,请按以下方式处理:
阅读先前的交接文档
- 完整阅读交接文档
- 提取关键部分:
- 修改的文件(更改了什么)
- 模式/经验(需要遵循什么)
- 下一项任务的上下文(对你工作的依赖)
- 确认提及的文件仍然存在,且与描述的状态一致
- 将经验应用到你的实现中
注意事项:
- 修改的文件:可能需要阅读这些文件以了解上下文
- 已做出的决策:保持做法一致
- 模式/经验:将这些经验应用到你的工作中
- 遇到的问题:避免重蹈覆辙
如果交接文档似乎已过时:
- 检查提及的文件是否仍然存在
- 确认相关模式是否仍然有效
- 在你自己的交接文档中注明任何差异
Agent 调用示例
编排器会像这样启动你:
Task(
subagent_type="general-purpose",
model="claude-opus-4-5-20251101",
prompt="""
# Implementation Task Agent
[This entire SKILL.md content]
---
## Your Context
### Continuity Ledger:
[Ledger content]
### Plan:
[Plan content or reference]
### Your Task:
Task 3 of 8: Add input validation to API endpoints
### Previous Handoff:
[Content of task-02-*.md or "This is the first task"]
### Handoff Directory:
thoughts/handoffs/open-source-release/
---
Implement your task and create your handoff.
"""
)
交接目录结构
交接文档会不断累积:
thoughts/handoffs/<session>/
├── task-01-setup-schema.md
├── task-02-create-endpoints.md
├── task-03-add-validation.md ← You create this
├── task-04-write-tests.md ← Next agent creates this
└── ...
每个 Agent 都会读取上一份交接文档、完成自己的任务并创建交接文档。这个流程会持续下去。
评论
支持 Markdown