第三章. ViBe KanBan 任务管理进阶

第三章. ViBe KanBan 任务管理进阶

本章将深入讲解 Vibe Kanban 的任务管理体系,包括任务创建的三种方式、Task Tags 的使用、任务尝试(Task Attempts)机制、子任务(Subtasks)的应用场景,以及任务状态的自动化流转

我们将分四个阶段掌握任务管理:

阶段一:任务创建的三种方式(10 分钟)

  • 手动创建任务
  • 使用 Task Tags 插入模板
  • 通过 MCP 批量创建任务

阶段二:任务尝试(Task Attempts)机制(8 分钟)

  • 理解 Task Attempts 的设计理念
  • 何时需要创建新的 Attempt
  • 切换 Agent 与 Base Branch

阶段三:子任务(Subtasks)的应用(10 分钟)

  • 将复杂任务拆解为子任务
  • 子任务的分支继承与合并策略
  • 父任务与子任务的依赖关系

阶段四:任务状态流转与自动化(7 分钟)

  • 理解任务生命周期
  • 配置 GitHub Integration 自动同步 PR
  • 任务完成后的通知机制

3.1. 任务创建的三种方式

Vibe Kanban 提供了三种任务创建方式,分别适用于不同的开发场景。

3.1.1. 手动创建:使用任务表单

这是最直接的任务创建方式,适合单个任务的快速创建。

步骤 1:打开任务创建对话框

在项目看板页面,点击右上角的 “+” 按钮(或使用快捷键 C)。

image-20260120095353215

步骤 2:填写任务基本信息

任务创建对话框包含以下字段:

字段说明是否必填示例
Title任务标题✅ 必填“实现用户登录页面”
Description任务描述(支持 Markdown)✅ 必填详细的需求说明
Base Branch任务分支的起点✅ 必填main
Agent执行任务的 AI Agent✅ 必填GEMINI_FLASH

步骤 3:编写任务描述

任务描述是 Agent 理解需求的唯一依据,必须清晰、具体、可执行。

❌ 错误示例(过于模糊)

1
实现登录功能

这个描述缺少关键信息:

  • 登录方式是什么?(邮箱、手机号、第三方登录?)
  • 需要实现哪些功能?(记住密码、忘记密码?)
  • UI 设计是什么样的?

✅ 正确示例(清晰具体)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
## 任务目标
实现用户登录页面,支持邮箱 + 密码登录。

## 功能需求
1. 登录表单包含以下字段:
- 邮箱输入框(必填,需验证邮箱格式)
- 密码输入框(必填,最少 8 位)
- "记住我" 复选框
- "忘记密码" 链接

2. 表单验证规则:
- 邮箱格式:使用正则表达式验证
- 密码强度:至少包含一个大写字母、一个小写字母、一个数字

3. 登录成功后:
- 将 JWT Token 存储到 localStorage
- 跳转到 `/dashboard` 页面

4. 登录失败时:
- 显示错误提示("邮箱或密码错误")
- 输入框标红

## 技术要求
- 使用 React Hook Form 管理表单状态
- 使用 Zod 进行表单验证
- 使用 Axios 调用后端 API:`POST /api/auth/login`
- 使用 TailwindCSS 实现 UI

## 验收标准
- [ ] 表单验证正常工作
- [ ] 登录成功后正确跳转
- [ ] 登录失败时显示错误提示
- [ ] 代码通过 ESLint 检查

任务描述的最佳实践

原则说明示例
SMART 原则Specific(具体)、Measurable(可衡量)、Achievable(可实现)、Relevant(相关)、Time-bound(有时限)“在 2 小时内完成登录页面的 UI 实现”
包含验收标准明确定义 “完成” 的标准“代码覆盖率 > 80%”
提供上下文引用相关文档或设计稿“参考 Figma 设计稿:[链接]”
指定技术栈明确使用的库和工具“使用 React Hook Form + Zod”

步骤 4:选择执行 Agent

在 “Agent” 下拉菜单中,选择适合当前任务的 Agent。

Agent适用场景推荐任务类型
GEMINI_FLASH前端开发、文档生成UI 实现、需求分析
CLAUDE_CODE后端开发、复杂逻辑API 实现、架构设计
CODEX测试生成、Bug 修复单元测试、代码重构

步骤 5:创建并启动任务

填写完成后,你有两个选择:

按钮行为适用场景
Create创建任务但不启动需要稍后手动启动
Create & Start创建任务并立即启动 Agent立即开始执行

点击 “Create & Start” 后,Vibe Kanban 会:

  1. 创建任务分支(如 feature/user-login
  2. 创建 Worktree
  3. 执行 Setup Scripts
  4. 启动 Agent

3.1.2. 使用 Task Tags 插入可复用模板

在实际开发中,我们经常会遇到相似的任务(如 “修复 Bug”、“实现 CRUD 接口”)。为了避免重复编写任务描述,Vibe Kanban 提供了 Task Tags 功能。

什么是 Task Tags?

Task Tags 是预定义的文本片段,可以在任务描述中通过 @tag_name 语法快速插入。

步骤 1:创建 Task Tag

打开 Vibe Kanban 设置页面,点击左侧菜单的 “Task Tags”

image-20260120095837395

点击 “Add Tag” 按钮,创建一个新的 Tag。

示例 1:Bug 修复模板

字段内容
Tag Namebug_report
Content见下方
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
## Bug 描述
[简要描述 Bug 现象]

## 复现步骤
1. 打开页面 [URL]
2. 点击 [按钮]
3. 观察到 [错误现象]

## 预期行为
[描述正确的行为]

## 实际行为
[描述当前的错误行为]

## 环境信息
- 浏览器:Chrome 120
- 操作系统:Windows 11
- 项目版本:v1.2.3

## 错误日志
[粘贴控制台错误信息]

## 修复建议
[可选:提供修复思路]

示例 2:CRUD 接口模板

字段内容
Tag Namecrud_api
Content见下方
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
## 接口需求
实现 [资源名称] 的 CRUD 接口。

## 接口列表
1. **创建资源**
- 路径:`POST /api/[resource]`
- 请求体:`{ name: string, description: string }`
- 响应:`{ id: number, name: string, description: string, createdAt: string }`

2. **查询资源列表**
- 路径:`GET /api/[resource]`
- 查询参数:`page`, `pageSize`, `keyword`
- 响应:`{ data: [], total: number }`

3. **查询单个资源**
- 路径:`GET /api/[resource]/:id`
- 响应:`{ id: number, name: string, description: string }`

4. **更新资源**
- 路径:`PUT /api/[resource]/:id`
- 请求体:`{ name: string, description: string }`
- 响应:`{ id: number, name: string, description: string, updatedAt: string }`

5. **删除资源**
- 路径:`DELETE /api/[resource]/:id`
- 响应:`{ success: true }`

## 技术要求
- 使用 Express Router
- 使用 Prisma ORM 操作数据库
- 添加参数验证(使用 Zod)
- 添加错误处理中间件

## 验收标准
- [ ] 所有接口通过 Postman 测试
- [ ] 单元测试覆盖率 > 80%
- [ ] API 文档已更新

步骤 2:在任务描述中使用 Task Tag

创建任务时,在描述框中输入 @,Vibe Kanban 会自动弹出 Tag 列表。

选择 @bug_report 后,模板内容会自动插入到描述框中。你只需要填写具体的 Bug 信息即可。

Task Tags 的高级用法

技巧 1:嵌套 Task Tags

你可以在一个 Task Tag 中引用另一个 Task Tag。

1
2
3
4
5
## 任务描述
@bug_report

## 修复方案
@code_review_checklist

技巧 2:使用变量占位符

在 Task Tag 中使用 [变量名] 作为占位符,提醒自己填写具体内容。

1
2
3
4
5
6
7
8
## 接口路径
POST /api/[资源名称]

## 请求体
{
"[字段1]": "string",
"[字段2]": "number"
}

3.1.3. 通过 MCP 批量创建任务

当你需要创建大量相似的任务时(如将一个 Epic 拆解为 10 个 Story),手动创建会非常低效。Vibe Kanban 提供了 MCP(Model Context Protocol)集成,允许 AI Agent 自动创建任务。

什么是 MCP?

MCP 是一个标准化的协议,允许 AI Agent 调用外部工具。Vibe Kanban 既是 MCP Client(可以调用其他 MCP Server),也是 MCP Server(可以被其他 AI 工具调用)。

使用场景

场景说明
从 PRD 生成任务让 Claude Desktop 读取 PRD 文档,自动拆解为多个任务
从 Epic 生成 Story让 Agent 将一个大任务拆解为多个小任务
批量创建测试任务为每个功能模块自动创建对应的测试任务

步骤 1:配置 Vibe Kanban 作为 MCP Server

以 Claude Code 的配置文件(~/Library/Application Support/Claude/claude_desktop_config.json),添加以下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
{
"mcpServers": {
"vibe_kanban": {
"args": [
"/c",
"npx",
"-y",
"vibe-kanban@latest",
"--mcp"
],
"command": "cmd"
},
}
}

重启 Claude Code 后,你会在工具列表中看到 Vibe Kanban 的 MCP 工具。

image-20260120124458177

步骤 2:使用 Claude Code 批量创建任务

在 Claude Code 中,输入以下提示词:

1
2
3
4
5
6
7
8
我有一个 PRD 文档(见附件),请帮我将其拆解为多个可执行的任务,并使用 Vibe Kanban MCP 工具创建这些任务。

要求:
1. 每个任务的标题格式为 "Story X: [功能名称]"
2. 任务描述包含:功能需求、技术要求、验收标准
3. 所有任务的 Base Branch 为 `main`
4. 前端任务使用 GEMINI_FLASH Agent
5. 后端任务使用 CLAUDE_CODE Agent

Claude 会分析 PRD 文档,然后调用 Vibe Kanban 的 create_task MCP 工具批量创建任务。

步骤 3:验证任务创建结果

回到 Vibe Kanban 看板,你会看到 Claude 自动创建的所有任务。

image-20260120124856379

MCP 批量创建的优势

优势说明
节省时间10 个任务只需 1 分钟创建
保持一致性所有任务的描述格式统一
自动分配 Agent根据任务类型自动选择合适的 Agent

3.2. 任务尝试(Task Attempts)机制

在实际开发中,一个任务可能需要多次尝试才能完成。例如:

  • 第一次尝试使用 Gemini,但生成的代码质量不佳
  • 第二次尝试切换到 Claude Code,重新实现

Vibe Kanban 的 Task Attempts 机制允许你在不创建新任务的情况下,重新执行同一个任务。

3.2.1. 理解 Task Attempts 的设计理念

核心概念

  • 一个 Task 可以有多个 Attempts(尝试)
  • 每个 Attempt 对应一个独立的 Worktree 和 Git 分支
  • 只有最新的 Attempt 会被合并到主分支

关系图

mermaid-diagram-2026-01-20-125039

为什么需要 Attempts?

场景传统方式使用 Attempts
Agent 生成的代码不满意创建新任务 “修复登录页面”创建新的 Attempt,重新生成
切换技术方案手动删除代码,重新开始创建新的 Attempt,切换 Base Branch
对比不同 Agent 的效果创建多个任务在同一个任务中创建多个 Attempts

3.2.2. 何时需要创建新的 Attempt

场景 1:Agent 生成的代码质量不佳

假设你创建了一个任务 “实现商品列表页”,使用 Gemini 执行。但 Agent 生成的代码存在以下问题:

  • UI 布局不符合设计稿
  • 缺少错误处理
  • 代码风格不统一

此时,你可以创建一个新的 Attempt,重新执行任务。

步骤 1:打开任务详情

点击任务卡片,进入任务详情页面。

步骤 2:点击 “New Attempt”

在任务详情页面右上角,点击 “New Attempt” 按钮。

image-20260120133426856

步骤 3:配置新的 Attempt

在弹出的对话框中,你可以修改以下配置:

配置项说明示例
Agent切换到其他 AgentGEMINI_FLASH 切换到 CLAUDE_CODE
Base Branch修改任务分支的起点main 切换到 develop
Description修改任务描述(可选)添加更详细的需求说明

步骤 4:启动新的 Attempt

点击 “Create & Start” 后,Vibe Kanban 会:

  1. 创建新的任务分支(如 feature/product-list-attempt-2
  2. 创建新的 Worktree
  3. 执行 Setup Scripts
  4. 启动新的 Agent

关键点

  • 旧的 Attempt 不会被删除,你可以随时查看其代码
  • 新的 Attempt 会从 Base Branch 重新开始,不会继承旧 Attempt 的代码

场景 2:切换技术方案

假设你最初计划使用 REST API 实现后端接口,但在开发过程中决定改用 GraphQL。此时,你可以创建一个新的 Attempt,切换 Base Branch 到包含 GraphQL 配置的分支。

步骤 1:准备新的 Base Branch

1
2
3
4
5
6
7
8
# 在主项目中创建 GraphQL 配置分支
git checkout -b feature/graphql-setup
# 安装 GraphQL 依赖
pnpm add apollo-server graphql
# 提交配置
git add .
git commit -m "feat: add GraphQL setup"
git push origin feature/graphql-setup

步骤 2:创建新的 Attempt

在任务详情页面,点击 “New Attempt”,将 Base Branch 修改为 feature/graphql-setup

步骤 3:更新任务描述

在任务描述中,明确说明使用 GraphQL 实现:

1
2
3
4
## 技术要求
- 使用 Apollo Server 实现 GraphQL API
- 定义 User 类型和 Query
- 实现 `users``user(id: ID!)` 查询

场景 3:对比不同 Agent 的效果

如果你想对比 Gemini 和 Claude Code 在同一个任务上的表现,可以创建两个 Attempts。

步骤 1:创建 Attempt 1(Gemini)

  • Agent: GEMINI_FLASH
  • 任务描述:保持不变

步骤 2:创建 Attempt 2(Claude Code)

  • Agent: CLAUDE_CODE
  • 任务描述:保持不变

步骤 3:对比代码质量

在任务详情页面,你可以切换不同的 Attempts,查看它们生成的代码。

image-20260120134128810

对比维度

image-comparison-1768887857061

维度GeminiClaude Code
代码行数150 行,样式优雅简洁180 行样式花里胡哨但功能完善
注释质量简单注释详细注释 + JSDoc
错误处理基本的 try-catch完善的错误处理 + 日志
测试覆盖率60%85%

3.2.3. Attempts 的分支管理策略

每个 Attempt 对应一个独立的 Git 分支,分支命名规则如下:

1
feature/[task-name]-attempt-[number]

示例

Attempt分支名称
Attempt 1feature/user-login-attempt-1
Attempt 2feature/user-login-attempt-2
Attempt 3feature/user-login-attempt-3

合并策略

只有最新的 Attempt 会被合并到主分支。旧的 Attempts 会被保留在 Git 历史中,但不会影响主分支。

清理旧的 Attempts

如果你确定不再需要旧的 Attempts,可以手动删除它们的分支:

1
2
3
4
5
# 删除本地分支
git branch -D feature/user-login-attempt-1

# 删除远程分支
git push origin --delete feature/user-login-attempt-1

3.3. Story 驱动的子任务拆解模式

在 Vibe Kanban 中,最优雅的协作方式不是让 AI 去操作看板,而是让 AI 在代码仓库中写规划文档,Vibe KanBan支持创建子代理

那么我们的思路就是,让主代理负责将需求PRD文档拆分为Epic(大型任务清单),再将大型任务清单整理为依赖关系清晰的Story故事集合

我们利用 Git Worktree 的特性,让主任务(Epic)的 Agent 直接在项目中创建一个 stories/ 目录,并将复杂的 Epic 拆解为多个按顺序编号的 Story 文件(如 1-1-setup.md, 1-2-nav.md)。用户只需要看着这些文件,手动分发任务即可。


3.3.1. 核心流程:Epic -> Stories -> Tasks

这种模式的核心在于:用文件来管理任务依赖

  1. Epic (规划者):拥有完整的 Git Worktree,它不写代码,只负责规划,在 stories/ 目录下生成 Markdown 文件。
  2. Stories (文件):以 阶段-序号-名称 命名(如 1-1, 2-1),天然决定了执行顺序。
  3. Task (执行者):用户根据 Story 文件手动创建任务,AI 执行时直接读取对应的 Story 文件作为需求。

3.3.2. 实战:拆解 Todo 模块

假设我们有一个空的 React 项目,现在要实现 Todo 模块。

步骤 1:启动规划任务

创建一个名为 [Epic] Todo 模块规划 的任务并启动。在 Chat 中输入以下指令(这是你的核心 Prompt):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# Role
你是一个 Tech Lead。

# Goal
请将当前项目的 Todo 模块需求拆解为具体的 User Stories。

# Action
请在项目根目录下创建 `stories/todo/` 文件夹。
然后在此文件夹下生成一系列 Markdown 文件,文件名必须严格遵循 `阶段-序号-功能.md` 的格式(例如 `1-1-types.md`)。

# Rules
1. **阶段划分**
- 1-x:基础建设(无依赖,可并行)
- 2-x:核心功能(依赖 1-x)
- 3-x:集成与页面(依赖 2-x)

2. **内容要求**
- 每个文件必须包含:目标、依赖的文件、允许修改的文件范围。
- 并在文件中明确写出:"前置依赖:Story 1-1" 这样的字样。

请直接生成文件,不要写任何代码实现。

步骤 2:AI 生成 Story 文件

AI 会在你的项目中生成如下文件结构。因为都在同一个 Git Worktree 中,你可以直接在左侧文件树看到它们:

1
2
3
4
5
6
7
stories/todo/
├── 1-1-types.md (定义 Todo 接口)
├── 1-2-utils.md (创建 ID 生成器工具)
├── 2-1-input.md (开发输入组件,依赖 1-1)
├── 2-2-list.md (开发列表组件,依赖 1-1)
└── 3-1-integration.md (在 App.tsx 集成,依赖 2-1, 2-2)

步骤 3:用户手动分发 (The Human Loop)

这一步由你控制节奏,既灵活又安全:

  1. 并行阶段 1:你看到 1-1 是第一阶段,直接创建两个 Vibe Kanban 任务,把这两个文件的内容分别贴进去(或者告诉 AI 读取这个文件)。
  2. 并行阶段 2:等阶段 1 完成后,你基于1-1创建 2-12-2 任务。由于都在一个仓库里,执行阶段 2 的 Agent 能直接读取到阶段 1 提交的代码。
  3. 收尾阶段 3:最后创建 3-1 任务进行集成。

3.3.3. 这种模式的巨大优势

优势说明
零冲突风险Story 1 和 Story 2 是完全隔离的文件,规划阶段绝不会冲突。
持久化你的项目规划直接保存在 Git 里(stories/ 目录),任何人接手都能看懂开发路径。
上下文共享因为 Epic Agent 就在 Git Worktree 里,它生成的 Story 是完全基于当前项目真实目录结构的,不会瞎编文件名。
灵活调度用户看着文件名就能秒懂哪些可以并行(同为 1-x 开头),哪些需要等待(2-x 开头)。