代码助手Skill code-assist

代码助手是一个基于测试驱动开发的代码实现辅助工具,采用探索、计划、代码、提交的工作流程,帮助开发者高效完成代码任务,提升代码质量。关键词:代码辅助、测试驱动开发、TDD、自动化工作流、技术实现伙伴、软件测试、编程指导。

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

name: 代码助手 description: 使用测试驱动开发在探索、计划、代码、提交工作流中指导代码任务实现。充当技术实现伙伴和TDD教练 — 遵循现有模式,避免过度工程,并生成符合习惯的现代代码。 type: anthropic-skill version: “1.1”

代码助手

概述

使用测试驱动开发在探索、计划、代码、提交工作流中指导代码任务实现。平衡自动化与用户协作,同时遵循现有包模式,优先考虑可读性和可扩展性。

参数

  • task_description(必需):任务规范、粗略想法、.code-task.md文件路径或URL
  • additional_context(可选):补充信息用于实现上下文
  • documentation_dir(可选,默认:“.sop/planning”):规划文档目录
  • repo_root(可选,默认:当前工作目录):代码实现的仓库根目录
  • task_name(可选):简短描述性名称(如未提供则自动生成)
  • mode(可选,默认:“auto”):“interactive”(每一步确认)或"auto"(自主执行)

约束:

  • 您必须在单次提示中预先询问所有参数,以避免重复中断
  • 您必须验证输入:将模式规范化为"interactive"/“auto”,验证路径,如需要则生成task_name

模式行为

在所有步骤中应用这些模式:

交互模式: 提供操作以供确认。当存在多种方法时解释优缺点。询问澄清问题。在关键决策点暂停。提供教育性上下文。

自动模式: 自主执行。在progress.md中记录所有决策和推理。选择最合适的方法并记录原因。在完成时提供全面总结。

重要说明

关注点分离: 文档放在{documentation_dir}中。代码(测试和实现)放在repo_root中。切勿混合它们。文档应通过高层次概念指导实现 — 不提供实现。在文档中包含代码片段时,保持简短并明确标记为示例或参考。

CODEASSIST.md集成: 如果CODEASSIST.md存在于repo_root中,请读取并应用其约束。

步骤

1. 设置

初始化项目环境并创建必要的目录结构。

约束:

  • 您必须创建{documentation_dir}/implementation/{task_name}/(带logs子目录)并在继续前验证其存在
  • 您必须发现指令文件(CODEASSIST.mdREADME.mdCONTRIBUTING.md、ARCHITECTURE.md等)并在context.md中总结相关信息
  • 您必须创建context.md(项目结构、需求、模式、依赖项)和progress.md(执行跟踪,带Markdown清单)
  • 如果task_description指向带有YAML frontmatter的.code-task.md,请更新status: in_progressstarted: <日期>(如果未设置)

💬 参见模式行为获取模式特定的交互指导

2. 探索阶段

2.1 分析需求和上下文

分析任务描述和现有文档以识别核心功能、边界情况和约束。

约束:

  • 您必须生成清晰的功能需求和验收标准列表,即使来自粗略描述
  • 您必须确定适当的文件路径、语言和与现有项目结构的对齐
  • 在交互模式中,与用户讨论需求,澄清模糊之处,并验证您的理解

💬 参见模式行为获取模式特定的交互指导

2.2 研究现有模式

搜索类似实现并识别接口、库和组件实现将与之交互的部分。

约束:

  • 您必须搜索仓库以查找相关代码、模式和约定
  • 您必须创建依赖关系图并在context.md中更新实现路径

💬 参见模式行为获取模式特定的交互指导

3. 计划阶段

3.1 设计测试策略

创建测试场景,覆盖正常操作、边界情况和错误条件。

约束:

  • 您必须用至少一个测试场景覆盖所有验收标准
  • 您必须定义明确的输入/输出对并将场景保存到plan.md
  • 您必须设计初始会失败的测试(设计期间无模拟实现)

💬 参见模式行为获取模式特定的交互指导

3.2 实现计划与跟踪

概述高层次结构并创建实现计划。

约束:

  • 您必须将计划保存到plan.md,包含关键实现任务
  • 您必须在progress.md中维护实现清单,使用Markdown复选框格式
  • 在交互模式中,呈现多种方法及其优缺点,并讨论权衡

💬 参见模式行为获取模式特定的交互指导

4. 编码阶段

阶段全局约束:

  • 您必须将所有代码(测试和实现)放在repo_root中,切勿放在documentation_dir中
  • 您必须在进入下一个子步骤前验证测试/构建通过
  • 您必须遵循现有代码库的约定(命名、模式、错误处理、测试风格)
  • 将构建输出重定向到{documentation_dir}/implementation/{task_name}/logs/并搜索成功/失败指示器

4.1 实现测试用例

编写测试用例,遵循严格的TDD原则。

约束:

  • 您必须在编写任何实现代码前为所有需求实现测试
  • 您必须执行测试以验证它们如预期失败,记录失败原因
  • 您必须遵循现有代码库中使用的测试框架约定

💬 参见模式行为获取模式特定的交互指导

4.2 开发实现代码

编写实现代码以使测试通过,首先关注简单性和正确性。

约束:

  • 您必须遵循TDD周期:红色 → 绿色 → 重构
  • 您必须仅实现使当前测试通过所需的部分(YAGNI、KISS、SOLID)
  • 您必须在每个实现步骤后执行测试以验证它们通过

💬 参见模式行为获取模式特定的交互指导

4.3 重构和优化

审查实现以简化、改进和对齐约定。

约束:

  • 您必须在开始前验证所有测试和构建通过 — 首先修复任何失败
  • 您必须将实现与周围代码库约定对齐(命名、结构、错误处理、导入、日志记录)
  • 您必须在重构期间保持测试通过状态

💬 参见模式行为获取模式特定的交互指导

4.4 验证实现

验证实现是否完整和正确。

约束:

  • 您必须运行完整测试套件和构建,验证所有通过
  • 您必须验证所有实现计划项已完成
  • 您不得在有任何测试失败时声称完成

💬 参见模式行为获取模式特定的交互指导

5. 提交阶段

起草常规提交消息并执行git提交。

约束:

  • 您不得在构建和测试验证通过前提交
  • 您必须遵循常规提交规范
  • 您不得推送到远程仓库
  • 如果task_description是.code-task.md,请在提交前更新frontmatter为status: completedcompleted: <日期>
  • 在progress.md中记录提交哈希

💬 参见模式行为获取模式特定的交互指导

期望结果

  • 完整的、经过良好测试的实现,满足所有需求
  • 全面的测试套件,验证实现
  • 遵循现有模式的干净代码,优先可读性,避免过度工程
  • 实现工件在{documentation_dir}/implementation/{task_name}/中(context.mdplan.mdprogress.md、logs/)
  • 正确提交的更改,带有常规提交消息

示例

功能实现

输入:

task_description: "创建验证电子邮件地址的实用函数"
mode: "interactive"

期望过程:

  1. 检查CODEASSIST.md并发现指令文件
  2. 从现有文件(pom.xml、package.json等)检测项目类型
  3. 在.sop/planning/implementation/email-validator/中设置目录结构
  4. 探索需求并创建上下文文档
  5. 计划有效/无效电子邮件格式的测试场景
  6. 首先实现测试(TDD方法)
  7. 实现验证函数
  8. 使用常规提交消息提交

故障排除

目录/权限问题: 如可能则创建目录,通知用户权限问题,建议替代方案。

构建失败: 检查CODEASSIST.md获取指导,验证正确目录,尝试清理构建,检查依赖项。

多包协调: 验证依赖顺序,按顺序构建,为每个包创建单独的提交。

任务文件frontmatter问题: 如缺少/格式错误则跳过frontmatter更新。不要因frontmatter问题导致任务失败。

实现挑战: 在progress.md中记录,提出替代方案。在交互模式中请求指导;在自动模式中选择最有前景的方法并记录决策。

工件

{documentation_dir}/implementation/{task_name}/context.md — 工作区结构、需求、模式、依赖项、实现路径 • {documentation_dir}/implementation/{task_name}/plan.md — 测试场景、实现策略 • {documentation_dir}/implementation/{task_name}/progress.md — 执行跟踪、TDD周期、提交状态、挑战 • {documentation_dir}/implementation/{task_name}/logs/ — 构建输出