Skip to content
Back to skills

Tapd Story Breakdown

ASecurity

TAPD 需求拆分子技能。对大需求进行拆分,输出各子需求的规范需求文档,严格控制 子需求的内容规模,保障研发交付内容可控、易于测试验证。本技能作为 tapd-story-evaluation 的子技能被调用,不独立触发。

  • 840 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 4, 2026
devopsshell

Works with

  • mcp

Security analysis

A100/100

Scanned September 4, 2026

npx -y skills add TencentBlueKing/bk-bcs --skill tapd-story-breakdown --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Tapd Story Breakdown?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Tapd Story Breakdown
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/tencentblueking-tapd-story-breakdown/badge)](https://www.skillsdirectory.com/skills/tencentblueking-tapd-story-breakdown)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

SKILL.md
---
name: tapd-story-breakdown
slug: tapd-story-breakdown
version: 1.0.0
description: |
  TAPD 需求拆分子技能。对大需求进行拆分,输出各子需求的规范需求文档,严格控制
  子需求的内容规模,保障研发交付内容可控、易于测试验证。本技能作为
  tapd-story-evaluation 的子技能被调用,不独立触发。
metadata:
  requires:
    mcps: ["tapd"]
---

# TAPD 需求拆分

## 概述

对大需求进行拆分,输出各子需求的规范需求文档。拆分的核心目标是严格控制子需求的
内容规模,保障研发交付内容可控,保障研发交付内容易于测试、验证。

> 本 skill 可被主 skill `tapd-story-evaluation` **反复调用**:当某子需求评分后工时
> 超过 24 人时上限时,主 skill 会将该子需求作为新的输入再次调用本 skill 做二次/N 次
> 拆分(见 `../SKILL.md` §2.5)。本 skill 自身不感知"首次/二次",对任意输入需求执行
> 相同拆分逻辑。

## 输入

| 参数 | 来源 | 说明 |
|------|------|------|
| 需求详情 | 主 skill 传入 | 包含需求 ID、名称、描述(规范需求文档)、优先级等 |
| workspace_id | 主 skill 传入 | TAPD 工作空间 ID |
| 背景知识 | 主 skill 传入 | 架构文档、模块文档、安全规范等 |

## 执行流程

### 1. 评估是否需要拆分(综合判定)

拆分判据须综合"用户故事数"与"规模档位"两个维度,
参照 `../references/requirement-splitting-guide.md` §5、§6 执行:

#### 1.1 统计用户故事数

通读需求描述,统计用户故事数量。判断依据:每个独立的"作为[角色],我想要[功能],
以便于[价值]"对应一个用户故事;无明确用户故事格式时,按独立核心功能模块数量统计。

#### 1.2 规模定性快判

按 `../references/requirement-splitting-guide.md` §5 的五维表(实现范围 / 技术复杂度 /
依赖 / 风险 / 验证成本)对需求做**定性快判**(高/中/低),得出综合规模档位。
维度名称与 `size-difficulty-standard.md` 完全一致,仅粒度不同(定性 vs 定量)。

#### 1.3 综合判定动作

按 `../references/requirement-splitting-guide.md` §6 综合判定矩阵决策:

| 用户故事数 | 综合规模 | 动作 |
|-----------|-----------|------|
| ≤2 | 低 / 中 | 不拆 → 输出无需拆分结果,流程结束 |
| ≤2 | 高(预判 >24 人时) | 拆(按功能点 / 技术层次细拆)→ 进入步骤 2 |
| >2 | 低(合计 <8 人时碎故事)| 合并为 1–2 个子需求 → 进入步骤 2 |
| >2 | 中 / 高 | 拆(常规逻辑)→ 进入步骤 2 |

**合并场景说明**:当判定为"合并"时,步骤 3 不再细分,而是将碎故事整合为 1–2 个
内聚的子需求文档;仍须通过步骤 4 的追溯矩阵与一致性检查。

### 2. 获取需求长 ID

使用 TAPD MCP `tapd_id_get` 获取需求的 19 位长 ID(如果输入的是短 ID):

```
调用参数:
  workspace_id: <workspace_id>
  id: <需求短ID>
  type: "story"
```

记录长 ID,后续子需求文档中需引用。

### 3. 执行需求拆分

参照 `../references/requirement-splitting-guide.md` 中的原则与方法进行拆分。

#### 3.1 分析拆分维度

结合背景知识,从以下维度分析需求的拆分方式:

- **按功能模块拆分**:基于接口定义、公共功能库、前端模块、后端模块逻辑划分
- **按业务流程拆分**:按用户操作流程分段,识别关键节点和决策点
- **按技术层次拆分**:前端交互层、业务逻辑层、数据访问层、外部集成层

选择最合适的拆分维度(或组合使用),确保拆分结果符合 MECE 原则。

> **接口契约先行触发判断**:完成维度拆分后,结合 §3.2 依赖分析结果判断——
> 若子需求之间形成跨子需求强依赖链,则按
> `../references/requirement-splitting-guide.md` §5 启用"接口契约先行",
> 抽取单个"接口契约构建"子需求作为前置依赖基线;若子需求本就相互独立/仅弱依赖,
> 则不启用,直接标注可并行。契约先行是解依赖手段,按需触发,避免过度设计。

#### 3.2 分析子需求依赖关系

明确各子需求之间的依赖关系:
- **强依赖**:必须按顺序实现(如 B 依赖 A 的接口)
- **弱依赖**:可并行开发(如共用同一数据库表但功能独立)
- **可选依赖**:根据配置决定是否实现

**契约先行下的依赖降级与分波**(当 §3.1 判定启用契约先行时):

- **依赖降级**:把其余子需求原本"依赖某子需求实现"的强依赖,改写为"依赖接口契约构建子需求"的弱依赖,使其可照契约并行开发。
- **并发波次**:接口契约构建子需求为 **Wave 1**(串行前置);其余子需求编入 **Wave 2 及以后**,同波次内可并行。仅当某子需求还依赖另一子需求的运行时产物(而非契约)时才顺延波次。
- 详见 `../references/requirement-splitting-guide.md` §5。

#### 3.3 生成子需求文档

参照 `../references/requirement-doc-template.md` 为每个子需求输出规范需求文档,
每个子需求文档必须包含:

- **基本信息**:子需求名称、父需求短 ID 及 19 位长 ID、优先级
- **依赖信息**:依赖的其他子需求 ID 和名称
- **用户故事**:不超过 2 个
- **核心功能点**:清晰定义输入/输出/处理逻辑
- **验收标准**:使用 Given-When-Then 格式
- **边界范围**:本子需求包含和不包含的内容

#### 3.4 保存子需求文档(父需求名子目录隔离)

子需求文档统一保存到**以父需求名命名的子目录**下,使父子关系在文件树中可见:

**保存路径**:`docs/reqs/<父需求目录名>/<子需求文件名>.md`

1. **计算父需求目录名**(对父需求 `name` 字段做文件系统安全清洗,跨平台统一规则):
   - a. 取父需求 `name` 字段原文
   - b. 将以下非法字符替换为 `_`:`/`、`\`、`:`、`*`、`?`、`"`、`<`、`>`、`|`、换行符
   - c. trim 首尾空格
   - d. 若长度超过 **50 字符**则截断为前 50 字符
2. 确保 `docs/reqs/<父需求目录名>/` 目录存在,不存在则创建(目录已存在不报错,同一
   父需求的多个子需求写入同一目录)
3. 从子需求名称提炼文件名:**最少 8 个字,最多 20 个字**,扩展名统一 `.md`
4. 如果同目录下文件名已存在,追加需求短 ID 后缀以区分
5. **父需求自身文档**:若 `docs/reqs/<父需求目录名>.md`(与子目录同名的平铺文件)已存在,
   **保持原路径不动**,仅子需求进子目录,避免破坏既有引用

**命名示例**(父需求名为 `用户权限管理系统`):

| 子需求名称 | 保存路径 |
|-----------|---------|
| 用户权限管理模块开发 | `docs/reqs/用户权限管理系统/用户权限管理模块开发.md` |
| 支付接口对接与状态跟踪 | `docs/reqs/用户权限管理系统/支付接口对接与状态跟踪.md` |

**父需求名清洗示例**:

| 父需求原名 | 清洗后目录名 |
|-----------|------------|
| `订单/支付:系统?` | `订单_支付_系统_` |
| `  报表中心  ` | `报表中心` |

> **跨平台提示**:创建目录和写入文件时,使用 Agent 内置的文件操作工具(如
> `write_to_file`),避免依赖特定操作系统的 Shell 命令。路径分隔符统一使用 `/`,
> Agent 工具会自动适配操作系统。

### 4. 拆分后完整性与一致性校验

拆分产出子需求文档后**强制执行**本步,作为拆分完成的准出门禁。方法论详见
`../references/requirement-splitting-guide.md` §七。

#### 4.1 追溯矩阵生成

按 `../references/requirement-splitting-guide.md` §7.1 从父需求文档抽取 8 类信息元素(功能点 / 业务规则 / NFR / 数据实体 / AC / 术语 / 异常流 / 共享约束),按 §7.2 构建 Element-centric 追溯矩阵,计算覆盖率。

**通过条件**:覆盖率 ≥ 95% **且** 无 ❌ 元素。异常边界(父需求元素数 = 0)按 §7.1 处理,视为通过。

#### 4.2 一致性检查

按 §7.3 逐项判定 6 项二值检查:契约自洽 / 依赖无环 / 共享约束归属 / AC 承接 / 术语一致 / Wave 编排。任一项不通过须输出定位信息(如成环路径、断链的 AC 编号)。

**通过条件**:6 项全部通过。

#### 4.3 校验不通过时的处理

按 §7.4 走"先补丁后重拆"策略,回拨预算总计 2 次(补丁 1 + 整体重拆 1):

- 第 1 次不通过 → 按 §7.4.1 分类判定表决定「补丁」或「直接整体重拆」,按 §7.4.2 执行动作后重跑 §4.1 + §4.2
- 第 2 次仍不通过 → 整体重拆(丢弃当前拆分产物,重新执行本 SKILL §3),完成后重跑校验
- 第 3 次仍不通过 → 保留当前产物,输出未通过项摘要(含追溯矩阵 Gap 元素、一致性检查失败项及定位信息),交主 SKILL 在汇总输出中标注"待用户手动处理",不阻塞后续流程

**产出**:追溯矩阵表格 + 覆盖率数值 + 一致性检查结果(含定位信息),由步骤 5 汇总输出到拆分结果摘要。

### 5. 输出拆分结果

输出结构化的拆分结果,供主 skill 继续处理:

```markdown
## 拆分结果摘要

**父需求**:[父需求名称](ID: [短ID] / [19位长ID])
**子需求数量**:N

| 序号 | 子需求名称 | 用户故事数 | 依赖关系 | 波次 | 本地文件 |
|------|-----------|-----------|---------|------|---------|
| 1 | 接口契约构建 | 1 | 无 | Wave 1 | docs/reqs/<父需求目录名>/接口契约构建.md |
| 2 | xxx | 2 | 弱依赖 #1(契约)| Wave 2(可并行)| docs/reqs/<父需求目录名>/xxx.md |
| 3 | yyy | 1 | 弱依赖 #1(契约)| Wave 2(可并行)| docs/reqs/<父需求目录名>/yyy.md |

> "波次"列表达开发编排顺序:Wave 1 为契约前置,同波次子需求可并行。
> 未启用契约先行时,无契约子需求,各独立子需求同列 Wave 1(可并行)。

**追溯覆盖率**:18/18(100%)
**一致性检查**:6/6 通过
```

## 错误处理

| 错误场景 | 处理方式 |
|---------|---------|
| TAPD MCP `tapd_id_get` 调用失败 | 使用已有的短 ID 继续,在文档中标注"长 ID 待补充" |
| 追溯矩阵或一致性检查不通过 | 按 §4.3 走"补丁 → 整体重拆 → 交用户"三步(回拨预算 2 次),仍不通过则标注问题并输出,不阻塞后续流程 |
| 文件保存失败 | 将文档内容输出到控制台,提示用户手动保存 |

## 参考文件

| 文件 | 用途 | 何时读取 |
|------|------|---------|
| `../references/requirement-splitting-guide.md` | 拆分原则与方法 | 执行拆分前 |
| `../references/requirement-doc-template.md` | 子需求文档模板 | 生成子需求文档时 |

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…