mcpField
S
sdd:add-task

sdd:add-task

github.com/neolabhq开发1.8k503 次安装9 周前更新
代码仓库

关于 sdd:add-task

sdd:add-task 根据用户请求创建任务草稿文件,负责分类任务、拟定行动导向的标题和文件名,并保留原始请求供后续阶段使用。

主要功能

  1. 01判断任务类型
  2. 02生成行动导向标题
  3. 03按约定生成文件名
  4. 04处理任务依赖
  5. 05记录原始请求

适用场景

  1. 01将功能请求登记为任务
  2. 02拟定缺陷修复任务
  3. 03准备文档或测试任务

安装

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

$npx skills add https://github.com/neolabhq/context-engineering-kit --skill sdd:add-task

安装后在 Claude Code 中输入/sdd:add-task确认已加载。

详细介绍

创建草稿任务文件

角色

你的角色是创建一个与用户请求完全一致的草稿任务文件。

目标

在 .specs/tasks/draft/ 中创建一个任务文件,其中包含:

  • 清晰、以行动为导向的标题(动词 + 具体描述)
  • 恰当的类型分类(feature/bug/refactor/test/docs/chore/ci)
  • 正确的依赖项(如有)
  • 保留用户意图的实用描述
  • 正确的文件名

输入

  • 用户输入:用户提供的任务描述/标题(作为参数传入)
  • 目标目录:默认为 .specs/tasks/draft/

说明

1. 确保目录结构

运行文件夹创建脚本,以创建任务目录并配置 gitignore:

bash ${CLAUDE_PLUGIN_ROOT}/scripts/create-folders.sh

这将创建:

  • .specs/tasks/draft/ - 等待分析的新任务
  • .specs/tasks/todo/ - 准备实施的任务
  • .specs/tasks/in-progress/ - 正在处理的任务
  • .specs/tasks/done/ - 已完成的任务
  • .specs/scratchpad/ - 临时工作文件(已加入 gitignore)
2. 分析输入
  1. 解析用户请求:

    • 提取核心任务目标
    • 识别隐含类型(bug、feature、task)
    • 列出此任务所依赖的任务文件
  2. 存在歧义时进行澄清(仅在确实不清楚时):

    • 这是修复 bug 还是新增功能?
    • 是否有相关任务或依赖项?(如果未提供,则假定没有)
3. 组织任务结构
  1. 创建以行动为导向的标题:

    • 以动词开头:Add、Fix、Update、Implement、Remove、Refactor
    • 具体但简洁
    • 示例:
      • “为登录表单添加验证”
      • “修复用户服务中的空指针问题”
      • “为 API 响应实现缓存”
  2. 确定类型:

    类型使用场景
    feature新功能或新能力
    bug某项功能出故障或运行不正常
    refactor重构代码,但不改变行为
    test添加或更新测试
    docs仅修改文档
    chore维护任务、依赖项更新
    ciCI/CD 配置变更
4. 生成文件名
  1. 根据任务标题创建简短名称:

    • 将标题转换为小写
    • 用连字符替换空格
    • 删除特殊字符
    • 保持简洁(最多 3-5 个词)
    • 示例:“Add validation to login form” -> add-validation-login-form
  2. 构成文件名:<short-name>.<issue-type>.md

    • 示例:
      • add-validation-login-form.feature.md
      • fix-null-pointer-user-service.bug.md
      • restructure-auth-module.refactor.md
      • add-unit-tests-api.test.md
      • update-readme.docs.md
      • upgrade-dependencies.chore.md
      • add-github-actions.ci.md
  3. 验证唯一性:检查 .specs/tasks/draft/、.specs/tasks/todo/、.specs/tasks/in-progress/ 和 .specs/tasks/done/ 中是否存在同名文件

5. 创建任务文件

使用 Write 工具创建 .specs/tasks/todo/<short-name>.<issue-type>.md:

---
title: <ACTION-ORIENTED TITLE>
depends_on: <list of task files that this task depends on>
---

## Initial User Prompt

{EXACT user input as provided}

## Description

// Will be filled in future stages by business analyst

限制

  • 不得调用 plan 技能 - 后续阶段由工作流处理
  • 不得在 .specs/tasks/draft/ 之外创建文件
  • 不得修改现有任务文件
  • 不得编写描述,只能按任务文件中的要求填写 // ... 占位符。
  • 如果未提供依赖项,不得编写 depends_on 部分。

预期输出

向编排器返回:

  1. 任务文件路径:创建文件的完整路径(例如 .specs/tasks/todo/add-validation-login-form.feature.md)
  2. 生成的标题:创建的、以行动为导向的标题
  3. 问题类型:task、bug 或 feature

格式:

Created task file: .specs/tasks/draft/<name>.<type>.md
Title: <action-oriented title>
Type: <task|bug|feature>
Depends on: <list of task files that this task depends on>

成功标准

  • 目录 .specs/tasks/draft/、.specs/tasks/todo/、.specs/tasks/in-progress/、.specs/tasks/done/ 均存在
  • 在 .specs/tasks/draft/ 中创建任务文件,并遵循正确的命名约定(<name>.<type>.md)
  • 文件名在所有状态文件夹中唯一(不会覆盖现有文件)
  • 如果提供了依赖项,Depends 部分应正确
  • 标题以动作动词开头(Add、Fix、Implement、Update、Remove、Refactor)
  • 类型分类正确,并体现在文件扩展名中(.feature.md、.bug.md、.refactor.md、.test.md、.docs.md、.chore.md、.ci.md)
  • 在“Initial User Prompt”部分保留用户的原始输入
  • Description 是空占位符 // Will be filled in future stages by business analyst

示例

测试任务(.specs/tasks/draft/add-unit-tests-auth.test.md):

---
title: Add unit tests for auth module
---

## Initial User Prompt

add tests for auth

## Description

// Will be filled in future stages by business analyst

带上下文的 Bug(.specs/tasks/draft/fix-login-timeout.bug.md):

---
title: Fix login timeout on slow connections
---

## Initial User Prompt

users getting 504 errors on slow wifi

## Description

// Will be filled in future stages by business analyst

功能请求(.specs/tasks/draft/implement-dark-mode.feature.md):

---
title: Implement dark mode toggle
---

## Initial User Prompt

add dark mode to settings page

## Description

// Will be filled in future stages by business analyst

评论

支持 Markdown