spa/.claude/commands/start-task.md

6.2 KiB
Raw Permalink Blame History

name description model color
start-task 为任何角色创建独立线程并开始工作 inherit green

统一任务启动命令

此命令为任何 AI Agent 角色创建独立的工作线程。

使用方法

/start-task <角色> "任务标题" [--desc "描述"]

支持的角色

角色代码 角色名称 标签
pm 产品经理 product, pm
fe 前端开发 frontend, fe
be 后端开发 backend, be
qa 测试工程师 qa, testing
ops DevOps工程师 devops, ops
tl 技术负责人 tech-lead, tl

执行流程

第1步解析参数并创建线程

  • <角色>: 从支持列表中识别角色
  • "任务标题": 提取任务标题作为线程标题
  • --desc: 可选的详细描述

调用 mcp__thread-manager__create_thread

{
  title: "[角色名称] - [任务标题]",
  description: 描述如果提供,
  tags: 角色对应的标签,
  switchTo: true
}

第2步简洁通知

只输出一行

✨ 已创建[角色]线程:"[标题]" (ID: [前8位])

第3步立即开始工作 最重要

不要停止!立即切换到对应角色并开始工作

  1. 根据角色读取对应的 agent prompt

    • pm.claude/agents/product_manager.md
    • be.claude/agents/backend_dev.md
    • fe.claude/agents/frontend_dev.md
    • qa.claude/agents/qa_engineer.md
    • ops.claude/agents/devops_engineer.md
    • tl.claude/agents/tech_leader.md
  2. 以该角色的身份和能力工作

  3. 输出完整的工作成果(需求文档/代码/测试等)

  4. 就像用户直接调用了 /[角色] [任务] 一样

使用示例

产品经理任务

用户: /start-task pm "设计用户认证系统"

Claude:
✨ 已创建产品线程:"产品经理 - 设计用户认证系统" (ID: abc12345)

---

## 产品需求分析 - 用户认证系统

### 执行摘要
...

[立即开始完整的产品分析工作]

后端开发任务

用户: /start-task be "实现JWT认证API" --desc "支持access token和refresh token"

Claude:
✨ 已创建后端线程:"后端开发 - 实现JWT认证API" (ID: def67890)

---

## 后端技术方案 - JWT认证API

### 技术选型
...

[立即开始完整的后端开发工作]

前端开发任务

用户: /start-task fe "开发登录表单组件"

Claude:
✨ 已创建前端线程:"前端开发 - 开发登录表单组件" (ID: ghi24680)

---

## 前端组件设计 - 登录表单

### 组件结构
...

[立即开始完整的前端开发工作]

工作流示例

完整产品开发流程

# 第1步产品经理创建需求线程
用户: /start-task pm "用户认证系统需求分析"
Claude: [创建线程并返回启动命令]
用户: exit
$ clt abc123
用户在新会话: /pm "开始进行用户认证系统的需求分析"
产品经理: [在独立线程中进行需求分析...]

# 第2步后端开发创建实现线程
用户: exit  # 退出产品经理线程
$ claude  # 回到主会话
用户: /start-task be "实现JWT认证API"
Claude: [创建新线程]
用户: exit
$ clt def456
用户在新会话: /be "根据产品需求实现JWT认证API"
后端开发: [在独立线程中开发...]

# 第3步前端开发创建UI线程
用户: /start-task fe "开发登录UI组件"
Claude: [创建新线程]
用户: exit
$ clt ghi789
用户在新会话: /fe "开发与后端API对接的登录表单"
前端开发: [在独立线程中开发...]

# 第4步QA测试
用户: /start-task qa "测试用户认证功能"
Claude: [创建新线程]
用户: exit
$ clt jkl012
用户在新会话: /qa "执行用户认证的完整测试"
QA工程师: [在独立线程中测试...]

实现细节

// 伪代码示例
function handleStartTask(role, title, description) {
  // 1. 角色映射
  const roleMapping = {
    'pm': { name: '产品经理', tags: ['product', 'pm'] },
    'fe': { name: '前端开发', tags: ['frontend', 'fe'] },
    'be': { name: '后端开发', tags: ['backend', 'be'] },
    'qa': { name: 'QA工程师', tags: ['qa', 'testing'] },
    'ops': { name: 'DevOps工程师', tags: ['devops', 'ops'] },
    'tl': { name: '技术负责人', tags: ['tech-lead', 'tl'] }
  };

  const roleInfo = roleMapping[role];
  if (!roleInfo) {
    return "❌ 不支持的角色。支持的角色: pm, fe, be, qa, ops, tl";
  }

  // 2. 创建线程
  const result = mcp__thread-manager__create_thread({
    title: `${roleInfo.name} - ${title}`,
    description: description || `${roleInfo.name}任务 - ${title}`,
    tags: roleInfo.tags
  });

  // 3. 返回结果
  return result.message;  // 直接返回 thread-manager 的格式化消息
}

与角色快捷命令的对比

命令方式 线程隔离 Git分支 适用场景
/pm "任务" 当前会话 当前分支 快速咨询、小任务
/pm-start "任务" 独立线程 独立分支 产品经理专用,完整任务
/start-task pm "任务" 独立线程 独立分支 通用方式,所有角色

最佳实践

1. 任务命名规范

# 好的命名
/start-task pm "设计用户认证系统"
/start-task be "实现JWT token刷新机制"
/start-task fe "开发响应式导航栏组件"

# 避免的命名
/start-task pm "做点事"  # 太模糊
/start-task be "fix"      # 不够描述性

2. 使用标签组织

# 通过标签过滤线程
/threads --tags backend
/threads --tags product,high-priority

3. 清晰的描述

/start-task be "实现支付API" --desc "集成支付宝和微信支付,支持订单创建、查询、退款"

4. 并行工作

# 终端1: 后端开发
$ clt abc123
/be "开发API..."

# 终端2: 前端开发
$ clt def456
/fe "开发UI..."

# 终端3: 测试
$ clt ghi789
/qa "执行测试..."

注意事项

  • 此命令只创建线程,不执行实际工作
  • 需要在新会话中调用对应的角色命令(如 /pm, /be
  • 每个线程有独立的对话历史和 Git 分支
  • 可以同时在多个终端中并行工作
  • ⚠️ 创建线程后需要执行 exit + claude --session-id xxx 完全隔离上下文