技术计划实施技能Skill implement_plan

这个技能用于自动化或辅助实施技术计划,提供直接实施和代理编排两种执行模式,适用于软件开发中的计划执行和验证。它包括深度风险预检查、自动化验证、手动测试暂停,并支持大型项目通过代理编排避免上下文压缩问题,确保计划顺利实施。关键词:技术计划实施、软件开发流程、代理编排、风险管理、代码验证、项目执行、DevOps、自动化部署。

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

name: implement_plan description: 从thoughts/shared/plans中实施技术计划并进行验证 user-invocable: false

实施计划

您的任务是实施来自thoughts/shared/plans/的已批准技术计划。这些计划包含具有特定更改和成功标准的阶段。

执行模式

您有两种执行模式:

模式1:直接实施(默认)

适用于小型计划(3个或更少任务)或用户请求直接实施时。

  • 您自己实施每个阶段
  • 上下文在主对话中累积
  • 用于快速、聚焦的实施

模式2:代理编排(推荐用于大型计划)

适用于具有4个或更多任务或需要保持上下文关键性的计划。

  • 您作为精简编排器
  • 代理执行每个任务并创建交接
  • 抗压缩性:即使上下文压缩,交接仍持久
  • 用于多阶段实施

要使用代理编排模式,请说:“我将为此计划使用代理编排”并按照下面的代理编排部分操作。


入门指南

当给定计划路径时:

  • 完整阅读计划并检查任何现有勾选标记(- [x])
  • 阅读原始工单和计划中提到的所有文件
  • 完整阅读文件 - 从不使用limit/offset参数,您需要完整上下文
  • 深入思考各部分如何组合
  • 创建待办列表以跟踪进度

实施前风险检查

在开始实施之前,运行深度事前分析:

/premortem deep <plan-path>

这根据综合检查表分析计划:

  • 技术风险(可扩展性、依赖、数据、安全)
  • 集成风险(破坏性更改、迁移、回滚)
  • 过程风险(需求不清晰、利益相关者输入)
  • 测试风险(覆盖缺口、负载测试需求)

如果识别出高严重性风险:

  • 事前分析将通过AskUserQuestion阻止
  • 用户必须:明确接受风险、添加缓解措施或研究解决方案
  • 如果添加了缓解措施,在继续之前更新计划

跳过事前分析如果:

  • 计划已有“## 风险(事前分析)”部分并包含缓解措施
  • 用户明确请求跳过(--skip-premortem

当事前分析通过后,如果您理解需要做什么,开始实施。

如果未提供计划路径,请请求一个。

实施理念

计划经过精心设计,但现实可能混乱。您的职责是:

  • 遵循计划的意图,同时适应实际情况
  • 完全实施每个阶段后再移至下一个
  • 验证您的工作在更广泛的代码库上下文中有意义
  • 在计划中更新复选框以标记完成部分

当事情与计划不完全匹配时,思考原因并清晰沟通。计划是您的指南,但您的判断也很重要。

如果您遇到不匹配:

  • 停止并深入思考为何计划无法遵循
  • 清晰呈现问题:
    阶段[N]中的问题:
    预期:[计划所述]
    发现:[实际情况]
    为何重要:[解释]
    
    我应该如何继续?
    

验证方法

实施一个阶段后:

  • 运行成功标准检查(通常make check test覆盖所有)
  • 在继续之前修复任何问题
  • 在计划和待办列表中更新进度
  • 使用Edit在计划文件本身中勾选已完成项
  • 暂停进行人工验证:完成一个阶段的所有自动化验证后,暂停并告知人类该阶段已准备好进行手动测试。使用此格式:
    阶段[N]完成 - 准备手动验证
    
    自动化验证通过:
    - [列出通过的自动化检查]
    
    请执行计划中列出的手动验证步骤:
    - [从计划中列出手动验证项]
    
    告诉我手动测试何时完成,以便我继续到阶段[N+1]。
    

如果指示连续执行多个阶段,跳过暂停直到最后一个阶段。否则,假设您只做一个阶段。

在用户确认之前,不要勾选手动测试步骤中的项。

如果您卡住

当某些事情不如预期工作时:

  • 首先,确保您已阅读并理解所有相关代码
  • 考虑代码库自计划编写以来是否已演变
  • 清晰呈现不匹配并请求指导

谨慎使用子任务 - 主要用于针对性调试或探索不熟悉领域。

可恢复代理

如果计划由plan-agent创建,您可能能够恢复它以澄清:

  1. 检查.claude/cache/agents/agent-log.jsonl以获取plan-agent条目
  2. 查找agentId字段
  3. 要澄清或更新计划:
    Task(
      resume="<agentId>",
      prompt="Phase 2 isn't matching the codebase. Can you clarify..."
    )
    

恢复的代理保留其完整的先前上下文(研究、代码库分析)。

可恢复的代理:

  • plan-agent - 创建了实施计划
  • oracle - 研究了最佳实践
  • debug-agent - 调查了问题

恢复工作

如果计划有现有勾选标记:

  • 信任已完成的工作已完成
  • 从第一个未勾选项开始
  • 仅当某些事情似乎不对时才验证先前工作

记住:您是在实施解决方案,而不仅仅是勾选框。保持最终目标并维持前进动力。


代理编排模式

当实施大型计划(4个或更多任务)时,使用代理编排以保持抗压缩性。

为何使用代理编排?

问题:在长时间实施期间,上下文累积。如果自动压缩在任务中途触发,您失去实施上下文。在80%上下文创建的交接变得过时。

解决方案:将实施委托给代理。每个代理:

  • 以新鲜上下文开始
  • 实施一个任务
  • 完成后创建交接
  • 返回到编排器

交接持久存储在磁盘上。如果压缩发生,您重新读取交接并继续。

设置

  1. 创建交接目录:

    mkdir -p thoughts/handoffs/<session-name>
    

    使用您的连续性分类账中的会话名称。

  2. 阅读实施代理技能:

    cat .claude/skills/implement_task/SKILL.md
    

    这定义了代理应如何行为。

前提条件:计划验证

在实施之前,确保计划已使用validate-agent验证。验证步骤是分开的,并应已创建一个状态为VALIDATED的交接。

检查验证交接:

ls thoughts/handoffs/<session>/validation-*.md

如果无验证存在,建议先运行验证:

"此计划尚未验证。您希望我先启动validate-agent吗?"

如果验证存在但状态为NEEDS REVIEW,在继续之前呈现问题。

编排循环

对于计划中的每个任务:

  1. 准备代理上下文:

    • 阅读连续性分类账(当前状态)
    • 阅读计划(整体上下文)
    • 阅读先前交接如果存在(来自thoughts/handoffs/<session>/)
    • 识别特定任务
  2. 启动实施代理:

    Task(
      subagent_type="general-purpose",
      model="claude-opus-4-5-20251101",
      prompt="""
      [在此粘贴.claude/skills/implement_task/SKILL.md的内容]
    
      ---
    
      ## 您的上下文
    
      ### 连续性分类账:
      [粘贴分类账内容]
    
      ### 计划:
      [粘贴相关计划部分或完整计划]
    
      ### 您的任务:
      任务[N] of [Total]:[计划中的任务描述]
    
      ### 先前交接:
      [粘贴先前任务的交接内容,或“这是第一个任务 - 无先前交接”]
    
      ### 交接目录:
      thoughts/handoffs/<session-name>/
    
      ### 交接文件名:
      task-[NN]-[short-description].md
    
      ---
    
      实施您的任务并创建您的交接。
      """
    )
    
  3. 处理代理结果:

    • 阅读代理的交接文件
    • 更新分类账复选框:[x] Task N
    • 更新计划复选框如果适用
    • 继续到下一个任务
  4. 在代理失败/阻塞时:

    • 阅读交接(状态将为“blocked”)
    • 向用户呈现阻塞
    • 决定:重试、跳过或询问用户

压缩后恢复

如果自动压缩在编排中途发生:

  1. 阅读连续性分类账(由SessionStart钩子加载)
  2. 列出交接目录:
    ls -la thoughts/handoffs/<session-name>/
    
  3. 阅读最后一个交接以理解您所在位置
  4. 从下一个未完成任务继续启动代理

示例编排会话

用户:/implement_plan thoughts/shared/plans/PLAN-add-auth.md

Claude: 我将为此计划使用代理编排(6个任务)。

设置交接目录...
[创建thoughts/handoffs/add-auth/]

任务1 of 6:创建用户模型
[以完整上下文启动代理]
[代理完成,创建task-01-user-model.md]

✅ 任务1完成。交接:thoughts/handoffs/add-auth/task-01-user-model.md

任务2 of 6:添加身份验证中间件
[以先前交接启动代理]
[代理完成,创建task-02-auth-middleware.md]

✅ 任务2完成。交接:thoughts/handoffs/add-auth/task-02-auth-middleware.md

--- 自动压缩发生 ---
[上下文压缩,但交接持久]

Claude: [阅读分类账,看到任务1-2完成]
[阅读最后一个交接task-02-auth-middleware.md]

从任务3 of 6恢复:创建登录端点
[启动代理]
...

交接链

每个代理读取先前交接 → 做工作 → 创建下一个交接:

task-01-user-model.md
    ↓(由代理2读取)
task-02-auth-middleware.md
    ↓(由代理3读取)
task-03-login-endpoint.md
    ↓(由代理4读取)
...

该链即使跨压缩也保留上下文。

何时使用代理编排

场景 模式
1-3个简单任务 直接实施
4个或更多任务 代理编排
需要保持关键上下文 代理编排
快速错误修复 直接实施
主要功能实施 代理编排
用户明确请求 尊重用户偏好

提示

  • 保持编排器精简:不要自己做实施工作。只管理代理。
  • 信任交接:代理创建详细交接。用于上下文。
  • 每个代理一个任务:不要将多个任务批处理到一个代理中。
  • 顺序执行:从顺序开始。并行增加复杂性。
  • 更新分类账:每个任务后,更新连续性分类账复选框。