---
name: "ads-tasks"
description: "基于统一系统设计文档（_system-design.md），为项目功能生成 TDD 就绪的、按依赖排序的 tasks.md 文件"
agent_created: true
argument-hint: "指定系统设计文档路径，如 docs/30-system-design/crm/M06-01-销售预测_system-design.md"
compatibility: "需要 adspecs 项目结构，含 adspecs/ 目录 + CLAUDE.md + docs/30-system-design + .adspecs/templates + docs/40-project_conventions/end-integration/index.md"
metadata:
  author: "qingwen"
  source: "基于 ads-tasks 通用模板 + 项目后端编码规范 + TDD 流程改造"
user-invocable: true
disable-model-invocation: false
---

## 用户输入

```text
$ARGUMENTS
```

在处理之前**必须**考虑用户输入（若不为空）。用户输入应为**统一系统设计文档的路径**（如 `docs/30-system-design/crm/M06-01-销售预测_system-design.md`），若为空则尝试从上下文推导。

## 路径配置加载

在开始执行之前，先确定输入/输出目录：

1. 检查项目根目录是否存在 `.adspecs/paths.json`
2. 如果存在，读取其中的 `paths` 对象，提取本技能需要的配置键
3. 如果不存在或配置键缺失，使用下方表格中的默认值

| 配置键       | 默认值                  | 用途                                       |
| ------------ | ----------------------- | ------------------------------------------ |
| `design_dir` | `docs/30-system-design` | 系统设计文档目录（输入）和任务清单输出目录 |

将解析后的路径记为 `DESIGN_DIR`，后续步骤中引用此变量而非硬编码路径。

## 执行前检查

**检查扩展钩子（任务生成前）**：

- 检查项目根目录下是否存在 `.adspecs/extensions.yml` 文件。
- 如果存在，读取该文件并查找 `hooks.before_tasks` 键下的条目。
- 如果 YAML 无法解析或无效，则静默跳过钩子检查并继续正常流程。
- 过滤掉 `enabled` 显式为 `false` 的钩子。将没有 `enabled` 字段的钩子默认为启用状态。
- 对于每个剩余的钩子，**不要**尝试解释或评估钩子的 `condition` 表达式：
  - 如果钩子没有 `condition` 字段，或该字段为 null/空，则视为可执行钩子。
  - 如果钩子定义了非空的 `condition`，则跳过该钩子，将条件评估交由 HookExecutor 实现处理。
- 从钩子命令名称构建斜杠命令时，将点号（`.`）替换为连字符（`-`）。例如，`adspecs.git.commit` → `/ads-git-commit`。
- 对于每个可执行钩子，根据其 `optional` 标志输出以下内容：
  - **可选钩子**（`optional: true`）：

    ```
    ## 扩展钩子

    **可选前置钩子**：{extension}
    命令：`/{command}`
    描述：{description}

    提示：{prompt}
    执行方式：`/{command}`
    ```

  - **强制钩子**（`optional: false`）：

    ```
    ## 扩展钩子

    **自动前置钩子**：{extension}
    正在执行：`/{command}`
    EXECUTE_COMMAND: {command}

    等待钩子命令执行结果后再继续进入大纲阶段。
    ```

- 如果没有注册任何钩子，或 `.adspecs/extensions.yml` 不存在，则静默跳过。

---

## 后端编码规范（任务生成强制校验清单）

> **来源**：`docs/40-project_conventions/end-integration/index.md` 及其引用的全部规范文件。
> **所有规则在生成每个任务时必须满足，违反任何一条即为不合格任务。**
> **具体规则内容以运行时加载的规范为准，本节不再硬编码特定平台的类名/注解/字段名。**

### 规范加载

在执行大纲 §1"定位统一系统设计文档"时，必须同时加载后端编码规范：

1. 读取 `docs/40-project_conventions/end-integration/index.md`
2. 按 `index.md` 中"推荐读取顺序"依次加载所有关联规范文件
3. 后续所有任务描述中的基类、注解、命名、响应包装、异常处理、DB 迁移格式等，均以该规范为准
4. 如该目录不存在或 `index.md` 缺失，中止执行并提示先运行 `/project-init` 选择技术栈

### 通用校验维度（所有后端规范均须覆盖）

| #  | 校验维度       | 说明                                                                                   |
| -- | -------------- | -------------------------------------------------------------------------------------- |
| 1  | Entity 规范    | 基类继承、表名注解、主键策略、审计字段继承（按后端规范）                               |
| 2  | DTO 规范       | 基类继承、校验分组、日期格式注解、消息码格式（按后端规范）                             |
| 3  | DAO 规范       | 基类继承、ORM 映射文件、软删除过滤（按后端规范）                                       |
| 4  | 数据访问约束   | 禁止使用规范外的数据访问方式（按后端规范）                                             |
| 5  | Service 规范   | 接口/实现命名、对象转换策略、软删除、分页排序（按后端规范）                            |
| 6  | Controller 规范 | 基类继承、认证注解、标准端点路径、请求/响应包装（按后端规范）                          |
| 7  | Ro（只读视图） | 序列化接口、字段手动声明、日期注解（按后端规范）                                       |
| 8  | 异常处理       | 异常在 Service 层抛出、消息码枚举、禁止硬编码字符串（按后端规范）                      |
| 9  | i18n 规范      | 语言文件数量、命名、内容要求（按后端规范）                                             |
| 10 | 注入与工具     | DI 方式、序列化工具、工具类选型、日志框架（按后端规范）                                |

### 工程结构速查

> 具体工程结构以 `end-integration/index.md` 中描述为准。以下为通用分层参考。

```
{模块}-api/              # 契约层：远程接口 + DTO（按后端规范）
{模块}-model/            # 数据层：Entity + DAO + ORM 映射 + Ro（按后端规范）
{模块}-application/      # 实现层：Service + Controller + Config + Consumer + Enum + i18n（按后端规范）
```

### 平台基础设施速查

> 具体组件名称和使用方式以 `end-integration/index.md` 中描述为准。以下为通用能力参考。

| 能力     | 用途                       |
| -------- | -------------------------- |
| 缓存     | 配置缓存、详情缓存         |
| 全文检索 | 列表搜索（按需）           |
| 分布式锁 | 并发控制                   |
| 文件中心 | 附件上传（按需）           |
| 审批流   | 业务流程审批（按需）       |
| ID 翻译  | 名称回填（按需）           |
| 自动编码 | 业务单号生成（按需）       |
| 加密     | 敏感字段（按需）           |
| 配置中心 | 业务参数配置（按需）       |

---

## 大纲

### 1. 定位统一系统设计文档

1. **确定设计文档路径**：
   - 从 `$ARGUMENTS` 获取设计文档路径（如 `{DESIGN_DIR}/crm/M06-01-销售预测_system-design.md`）
   - 若 `$ARGUMENTS` 为空，搜索 `{DESIGN_DIR}/crm/` 或 `{DESIGN_DIR}/mom/` 下最新修改的 `*_system-design.md` 文件
   - 若仍找不到，搜索当前打开文件或上下文中引用的设计文档
   - 确认文件存在且可读取

2. **加载 CLAUDE.md**：读取项目根目录下的 `CLAUDE.md`，获取项目背景和模块结构

3. **定位模板文件**（如果存在）：
   - 检查 `.adspecs/templates/05-后端任务清单模板.md` 下的相关模板

4. **加载后端编码规范**（必选）：
   - 读取 `docs/40-project_conventions/end-integration/index.md`
   - 按 `index.md` 中"推荐读取顺序"依次加载所有关联规范文件
   - 后续所有任务描述中的基类、注解、命名、响应包装、异常处理、DB 迁移格式等，均以该规范为准
   - 如该目录不存在或 `index.md` 缺失，中止执行并提示先运行 `/project-init` 选择技术栈

### 2. 提取设计文档信息

> 统一设计文档（由 `ads-plan` 产出）包含 13 个章节，一次性覆盖 OOA+OOD。按以下顺序提取所有任务生成所需信息。

#### 2.1 从 §1 提取：需求映射与模块上下文

| 提取项        | 来源                  | 用途                         |
| ------------- | --------------------- | ---------------------------- |
| 用户故事映射  | §1.1.1 用户故事映射表 | 生成用户故事阶段（Phase 3+） |
| 业务规则映射  | §1.1.2 业务规则映射表 | 生成 Service 校验逻辑任务    |
| 功能条目映射  | §1.1.3 功能条目映射表 | 生成 Controller 端点任务     |
| 权限映射      | §1.1.4 权限映射表     | 生成权限配置任务             |
| 模块名称/端口 | §1.2 模块定位         | 生成三模块路径 + 消息码前缀  |
| 上下游依赖    | §1.3 上下文边界       | 生成远程调用客户端任务       |
| 核心职责      | §1.4 核心职责         | 验证任务覆盖完整性           |

#### 2.2 从 §2 提取：实体与领域对象

| 提取项      | 来源                                   | 用途                                 |
| ----------- | -------------------------------------- | ------------------------------------ |
| Entity 清单 | §2.2 实体清单 → 每个实体的完整字段表   | 生成 Entity 类任务（字段+注解+索引） |
| DTO 清单    | §2.3 DTO 清单 → 字段+校验规则+验证分组 | 生成 DTO 类任务                      |
| Ro 清单     | §2.4 Ro 清单 → 字段+注解               | 生成 Ro 类任务                       |

#### 2.3 从 §3 提取：数据模型

| 提取项       | 来源                                  | 用途                    |
| ------------ | ------------------------------------- | ----------------------- |
| 数据库表结构 | §3.2 数据库表设计 → 表名+字段+索引    | 生成 DB 迁移 DDL 任务  |
| ORM 映射     | §3.3 ORM 映射 → DAO 接口+映射文件结构 | 生成 DAO + 映射文件任务 |

#### 2.4 从 §4 提取：业务行为与 Service

| 提取项       | 来源                                  | 用途                           |
| ------------ | ------------------------------------- | ------------------------------ |
| 业务行为清单 | §4.1 业务行为清单                     | 生成 Service 方法任务          |
| 状态机       | §4.3 状态机图 → 状态+转换条件         | 确保状态流转任务覆盖           |
| Service 接口 | §4.4 Service 接口设计 → 方法签名+事务 | 生成 Service 接口+实现任务     |
| 关键方法逻辑 | §4.5 Service 实现逻辑 → 伪代码        | 确保实现任务描述精确           |
| 事务边界     | §4.6 事务边界汇总                     | 确保事务注解标记准确             |

#### 2.5 从 §5 提取：接口与 Controller

| 提取项          | 来源                                    | 用途                     |
| --------------- | --------------------------------------- | ------------------------ |
| 端点清单        | §5.1 端点清单 → HTTP+路径+请求/响应包装 | 生成 Controller 方法任务 |
| Controller 骨架 | §5.2 Controller 代码骨架 → 方法路由表   | 确保路由映射准确         |
| 权限矩阵        | §5.4 权限矩阵                           | 生成权限控制任务         |

#### 2.6 从 §6 提取：枚举与数据字典

| 提取项   | 来源                                      | 用途                       |
| -------- | ----------------------------------------- | -------------------------- |
| 枚举定义 | §6.1 枚举值定义 → 每个枚举的编码+显示名称 | **每个枚举独立成一个任务** |
| 校验规则 | §6.2 数据校验规则 → 字段+注解+消息码      | 生成 DTO 校验注解任务      |

#### 2.7 从 §7 提取：异常处理

| 提取项       | 来源                                         | 用途                        |
| ------------ | -------------------------------------------- | --------------------------- |
| 业务异常清单 | §7.1 业务异常清单 → 消息码+触发条件+抛出位置 | 生成异常处理+消息码常量任务 |
| 消息码汇总   | §7.3 消息码汇总 → properties 内容            | 生成 i18n 文件任务          |

#### 2.8 从 §8-§12 提取：横切关注点

| 提取项       | 来源                                | 用途                        |
| ------------ | ----------------------------------- | --------------------------- |
| 缓存策略     | §8.1 缓存策略 → 键格式+过期时间       | 生成缓存配置任务             |
| 并发控制     | §8.3 并发控制 → 乐观锁/分布式锁       | 生成并发控制任务             |
| 领域事件     | §9 领域事件 → 发布/消费事件           | 生成消息消费者任务           |
| 跨模块依赖   | §10 跨模块依赖 → 远程调用客户端 + SDK | 生成远程调用客户端任务       |
| 非功能性需求 | §11 非功能性需求                      | 生成收尾阶段的性能/安全任务  |

#### 2.9 从 §13 提取：代码结构

| 提取项     | 来源                            | 用途                               |
| ---------- | ------------------------------- | ---------------------------------- |
| 完整目录树 | §13 附录 → 3模块 ~45 个文件路径 | **作为所有任务文件路径的权威来源** |
| 目录统计   | §13 目录树统计                  | 验证任务总数覆盖                   |

### 3. 执行任务生成工作流

按以下顺序生成任务：

1. **从 §13 提取工程目录结构**：
   - 确定模块标识、服务名、包根路径（按后端规范）
   - 列出所有目标文件路径

2. **从 §1.1.1 提取用户故事并按优先级分组**：
   - 按 PRD 中定义的优先级分组（P1 → P2）
   - 确认故事间依赖关系

3. **按后端规范工程结构 + TDD 顺序组织任务**（详见 §任务生成规则）

4. **生成依赖关系图**

5. **创建并行执行示例**

6. **验证任务完整性**：
   - 所有实体/DTO/Ro/DAO/Service/Controller 都有对应任务
   - 所有枚举都有独立任务
   - 所有消息码都有 i18n 任务
   - 所有远程调用客户端依赖都有任务
   - 所有消费者/定时任务都有任务

### 4. 生成 tasks.md

使用 `.adspecs/templates/05-后端任务清单模板.md` 下的任务模板作为结构参考（若不存在则按本节结构生成）。必须包含以下全部章节：

1. **功能名称 + 元数据**（来源设计文档 §1.2）
2. **文件路径速查表**（所有目标文件的绝对路径清单，按工程结构组织）
3. **后端规范合规检查清单**（10 个维度，标记每条是否满足）
4. **Phase 1**：项目初始化（工程配置、启动类、基础配置、工程目录）
5. **Phase 2**：基础设施（枚举类 ×N、消息码常量、DB 迁移 DDL、ORM 配置）
6. **Phase 3+**：每个用户故事一个阶段（P1→P2 顺序），阶段内按 TDD 顺序排列
7. **Final Phase**：集成与收尾（集成测试、代码评审、API 文档、安全清单、性能验证）
8. **依赖关系图**（故事完成顺序 + 并行机会）
9. **并行执行示例**（每个故事的并行执行策略）
10. **实现策略**（MVP 范围 = P1 故事，增量交付路径）
11. **TDD 执行指南**（每个故事阶段内测试→实现→验证的严格顺序）

---

## 强制性执行后钩子

**在向用户报告完成之前，必须完成此部分。**

检查项目根目录下是否存在 `.adspecs/extensions.yml` 文件。

- 如果不存在，或 `hooks.after_tasks` 下没有注册任何钩子，则跳到《完成报告》。
- 如果存在，读取该文件并查找 `hooks.after_tasks` 键下的条目。
- 如果 YAML 无法解析或无效，则静默跳过钩子检查并继续到《完成报告》。
- 过滤掉 `enabled` 显式为 `false` 的钩子。将没有 `enabled` 字段的钩子默认为启用状态。
- 对于每个剩余的钩子，**不要**尝试解释或评估钩子的 `condition` 表达式：
  - 如果钩子没有 `condition` 字段，或该字段为 null/空，则视为可执行钩子。
  - 如果钩子定义了非空的 `condition`，则跳过该钩子，将条件评估交由 HookExecutor 实现处理。
- 从钩子命令名称构建斜杠命令时，将点号（`.`）替换为连字符（`-`）。例如，`adspecs.git.commit` → `/ads-git-commit`。
- 对于每个可执行钩子，根据其 `optional` 标志输出以下内容：
  - **强制钩子**（`optional: false`）——**对于每个强制钩子，必须输出 `EXECUTE_COMMAND:`**：

    ```
    ## 扩展钩子

    **自动钩子**：{extension}
    正在执行：`/{command}`
    EXECUTE_COMMAND: {command}
    ```

  - **可选钩子**（`optional: true`）：

    ```
    ## 扩展钩子

    **可选钩子**：{extension}
    命令：`/{command}`
    描述：{description}

    提示：{prompt}
    执行方式：`/{command}`
    ```

## 完成报告

输出生成的 tasks.md 路径及摘要：

- **设计文档来源**：使用的 `_system-design.md` 路径
- **任务总数**：含各阶段分布
- **每个用户故事的任务数量**：含 TDD 测试任务/实现任务分别计数
- **文件覆盖**：Entity ×N, DTO ×N, Ro ×N, DAO ×N, Service ×N, Controller ×N, 远程客户端 ×N, Enum ×N, i18n ×N, Consumer ×N, Config ×N
- **后端规范合规检查结果**：10 个维度逐条确认通过
- **TDD 就绪确认**：是否每个故事阶段内测试任务均在实现任务之前
- **识别到的并行执行机会**：标注可并行的任务数
- **每个故事的独立测试标准**：从设计文档 §12 提取
- **建议的 MVP 范围**：P1 用户故事（US-01~US-05 + US-09）
- **格式验证**：确认所有任务遵循 `[TaskID] [P?] [TDD?] [Story?] 描述 + 文件路径` 格式

---

## 任务生成规则

### 关键约束

1. **任务必须按用户故事组织**：每个故事独立可测试，支持独立实现
2. **TDD 严格排序**：每个故事阶段内，测试任务必须在实现任务之前
3. **后端编码规范强制遵守**：每个任务描述必须包含正确的基类/注解/命名（按 `end-integration/index.md` 规范）
4. **文件路径精确**：每个任务必须包含从工程模块根目录开始的完整文件路径
5. **设计文档全量覆盖**：§1~§13 的所有设计元素都必须映射到对应任务

### 检查清单格式（必需）

每个任务必须严格遵循以下格式：

```text
- [ ] [TaskID] [P?] [TDD?] [Story?] 包含精确文件路径的描述
```

**格式组成**：

1. **复选框**：始终以 `- [ ]`（markdown 复选框）开头
2. **任务 ID**：全局递增的顺序编号（T001, T002, T003...）
3. **[P] 标记**：仅当任务可并行执行时添加（操作不同文件、不依赖未完成的任务）
4. **[TDD] 标记**：仅当任务是测试任务时添加（单元测试/集成测试），**必须在同故事的实现任务之前**
5. **[Story] 标签**：
   - 格式：[US1], [US2], [US3]...（对应设计文档 §1.1.1 中的用户故事编号）
   - Phase 1（项目初始化）：无故事标签
   - Phase 2（基础设施）：无故事标签
   - Phase 3+（用户故事）：**必须**有故事标签
   - Final Phase（集成收尾）：无故事标签
6. **描述**：明确操作 + 精确的文件路径（从工程模块根目录开始）+ 按后端规范标注基类/注解/命名

**正确示例**（以通用 Java/Spring 风格示意，实际以 `end-integration/index.md` 规范为准）：

```text
- [ ] T012 [TDD] [US1] 编写 {Entity}Service 提交{业务对象}测试
      文件: {模块}-application/src/test/java/{包路径}/service/impl/{Entity}ServiceTest.java
- [ ] T013 [US1] 创建 {Entity}Entity（按后端规范标注基类、表名注解、主键策略）
      文件: {模块}-model/src/main/java/{包路径}/entity/{Entity}Entity.java
- [ ] T014 [P] [US1] 创建 {Entity}Dto（按后端规范标注 DTO 基类、校验分组）
      文件: {模块}-api/src/main/java/{包路径}/dto/{Entity}Dto.java
- [ ] T015 [P] [US1] 创建 {Entity}DAO 接口 + ORM 映射文件（按后端规范标注基类、软删除过滤）
      文件: {模块}-model/src/main/java/{包路径}/dao/{Entity}DAO.java
      文件: {模块}-model/src/main/resources/{包路径}/dao/{Entity}DAO.xml
```

**错误示例**：

```text
- ❌ 错误：`- [ ] 创建 ForecastOrder 实体`（缺少 TaskID + 文件路径 + Story标签）
- ❌ 错误：`T001 [US1] 创建 Entity`（缺少复选框 + 精确文件路径）
- ❌ 错误：`- [ ] T001 [US1] 创建 Entity`（缺少文件路径）
- ❌ 错误：`- [ ] T010 [US1] 实现提交预测单 Service 方法`（缺少文件路径，且故事阶段内未先写测试）
- ❌ 错误：`- [ ] T020 [TDD] [US1] 测试提交`（文件路径缺失，描述模糊）
```

### TDD 任务排序规则（每个用户故事阶段内）

> **关键原则**：`test-driven-development` skill 要求 "NO PRODUCTION CODE WITHOUT A FAILING TEST FIRST"。tasks.md 的任务顺序必须体现此规则。

每个用户故事阶段内的任务遵循严格排序：

```
[TDD] 测试任务（先写，先失败）
  ↓
枚举类（若该故事引入新枚举值且 Phase 2 未创建）
  ↓
Entity + DTO + Ro 类
  ↓
DAO 接口 + ORM 映射文件
  ↓
Service 接口
  ↓
Service 实现（最小代码使测试通过）
  ↓
Controller 端点
  ↓
远程调用客户端（若涉及外部调用）
  ↓
i18n 配置
```

**测试任务粒度**：

- 每个 Service 方法至少对应 1 个测试任务（正常场景 + 异常场景 + 边界场景）
- 每个 Controller 端点至少对应 1 个集成测试任务
- 测试任务标记 `[TDD]`，与 `[P]` 可共存（如：不同 Service 方法的测试可并行编写）

**测试任务设计**：从设计文档 §12（测试场景）提取测试数据：

- §12.1 正常场景 → 每个场景对应 1 个 `[TDD]` 任务
- §12.2 异常场景 → 每个场景对应 1 个 `[TDD]` 任务
- §12.3 边界场景 → 每个场景对应 1 个 `[TDD]` 任务

### 任务组织方式

#### 基于用户故事（设计文档 §1.1.1）——主要组织方式

每个用户故事按故事优先级（P1 → P2）各占一个阶段：

- P1 故事可以并行实现（如果它们操作不同的实体/模块）
- P2 故事通常依赖 P1 故事的基础设施

每个故事阶段内映射以下设计文档元素：

- 该故事涉及的**实体**（§2.2）
- 该故事涉及的**DTO**（§2.3）
- 该故事涉及的**Ro**（§2.4）
- 该故事涉及的**Service 方法**（§4.4）
- 该故事涉及的**Controller 端点**（§5.1）
- 该故事涉及的**异常**（§7.1）
- 该故事涉及的**权限**（§5.4）

#### 基于实体与数据模型（设计文档 §2+§3）

- 每个 Entity 独立成一个任务，包含完整字段（按后端规范的字段注解）
- 每个 DTO 独立成一个任务，包含校验分组
- 每个 Ro 独立成一个任务，包含所有字段手动声明
- 每个 DAO 接口 + 映射文件独立成一个任务组
- 若实体服务于多个故事：放入最早依赖它的故事阶段，或 Phase 2 基础设施

#### 基于枚举（设计文档 §6.1）

**每个枚举类独立成一个任务**（Phase 2 基础设施阶段），原因：

- 枚举被多个用户故事共享
- 枚举定义是小而独立的单元
- 枚举任务可并行执行（无相互依赖）

#### 基于异常与消息码（设计文档 §7）

- 所有消息码汇总到消息码常量类 → Phase 2 基础设施阶段
- 消息码按后端规范的前缀格式分组
- 每个 Service 实现任务描述中必须注明可能抛出的异常

#### i18n 任务生成规则

- 语言文件数量和命名按后端规范
- 所有消息码文本从设计文档 §7.3 提取
- i18n 任务可放在 Final Phase 或最后一个故事阶段（因为消息码在基础设施阶段已定义常量）

#### DB 迁移任务生成规则

- 从设计文档 §3.2 提取表结构 → 生成 DDL SQL
- 迁移文件格式和目录结构按后端规范
- 作为 Phase 2 基础设施的一个任务组

#### 远程调用客户端任务生成规则

- 从设计文档 §10.2 提取外部依赖 → 每个外部模块一个远程调用客户端接口
- 接口命名和路径按后端规范
- 契约层模块中创建

#### 消息消费者任务生成规则

- 从设计文档 §9.1（发布事件）和 §9.2（消费事件）提取
- 每个 Consumer 一个任务
- 路径按后端规范

### 阶段结构

```
Phase 1: 项目初始化
  ├── T001 工程构建配置（按后端规范的模块结构和依赖管理）
  ├── T002 启动类/入口文件（按后端规范的注解/配置）
  ├── T003 基础配置文件（数据源、日志、应用参数等）
  └── T004 工程目录结构创建

Phase 2: 基础设施（阻塞性前置 — 所有用户故事依赖）
  ├── 枚举类（每个枚举一个任务，可并行 [P]）
  ├── 消息码常量类（按后端规范的格式和枚举类）
  ├── DB 迁移 DDL（按后端规范的迁移文件格式）
  ├── ORM 配置（分页、乐观锁等插件/配置）
  ├── API 文档配置（按后端规范的 API 文档工具）
  ├── 数据源配置
  └── 工具类（业务通用计算逻辑）

Phase 3..N-1: 用户故事阶段（每个故事一个阶段，P1→P2 顺序）
  每个阶段内按 TDD 顺序排列：
  ├── [TDD] 测试任务（正常场景 + 异常场景 + 边界场景）
  ├── Entity（按后端规范的基类/注解/字段）
  ├── DTO（按后端规范的基类/校验分组）
  ├── Ro（按后端规范的字段声明）
  ├── DAO + 映射文件（按后端规范的基类/查询方法）
  ├── Service 接口
  ├── Service 实现（含对象转换、事务注解、异常处理）
  ├── Controller（按后端规范的基类/认证注解/响应包装）
  ├── 远程调用客户端（若涉及外部模块调用）
  ├── 消息消费者（若涉及事件消费）
  └── 权限配置

Final Phase: 集成与收尾
  ├── 集成测试（端到端流程 + 远程调用联调）
  ├── i18n 文件（所有消息码的全语言翻译，按后端规范的语言集合）
  ├── API 文档完善
  ├── 代码评审（按后端编码规范检查）
  ├── 安全清单（认证注解 + 权限矩阵验证）
  └── 性能验证（索引 + 缓存 + 分页）
```

> **注意**：以上阶段结构为通用模板示意。具体类名、注解、路径、配置项均以 `end-integration/index.md` 规范为准。用户故事阶段（Phase 3..N-1）的实际内容从设计文档 §1.1.1 提取。

### TDD 就绪确认

生成 tasks.md 后，必须确认以下条件：

- [ ] 每个用户故事阶段内，至少 1 个 `[TDD]` 任务排在所有实现任务之前
- [ ] 每个 `[TDD]` 任务描述了明确的测试场景（正常/异常/边界）和测试数据
- [ ] 测试任务与实现任务的对应关系清晰（1 个测试 → 1 个或多个实现任务）
- [ ] tasks.md 包含 TDD 执行指南章节，说明 RED→GREEN→REFACTOR 循环
- [ ] 任务顺序与 `test-driven-development` skill 的流程一致（先测试失败 → 最小实现 → 重构）

### 后端规范合规确认

生成 tasks.md 后，必须确认：

- [ ] 所有 Entity 任务描述按后端规范标注基类、表名注解、主键策略
- [ ] 所有 DTO 任务描述按后端规范标注基类、校验分组
- [ ] 所有 DAO 任务描述按后端规范标注基类、软删除过滤
- [ ] 无违反后端规范的数据访问方式
- [ ] 所有 Service 任务描述按后端规范区分 save/update 的对象转换策略
- [ ] 所有 Controller 任务描述按后端规范标注基类、认证注解、响应包装
- [ ] 所有 Ro 任务描述按后端规范标注序列化接口、手动字段声明
- [ ] 异常任务描述中异常均来自 Service 层
- [ ] i18n 任务覆盖后端规范要求的语言文件数量
- [ ] 远程调用客户端任务放入契约层模块的指定路径

---

## 完成标准

- [ ] tasks.md 已生成，包含所有阶段、TDD 标记、精确文件路径
- [ ] 扩展钩子已根据上述《强制性执行后钩子》的规则派发或跳过
- [ ] 所有 10 个后端规范维度已通过合规确认
- [ ] 所有故事阶段 TDD 就绪（测试任务在实现任务之前）
- [ ] 已向用户报告完成情况

---

## 参考：设计文档章节 → 任务生成速查表

| 设计文档章节         | 提取内容                | 生成任务类型           | Phase                          |
| -------------------- | ----------------------- | ---------------------- | ------------------------------ |
| §1.1.1 用户故事      | US-01~US-N 优先级       | 阶段划分               | Phase 3+                       |
| §1.2 模块定位        | 服务名/端口/包路径      | 路径前缀               | Phase 1                        |
| §1.3 上下文边界      | 上下游依赖              | 远程客户端, 消费者     | Phase 各故事阶段               |
| §2.2 实体清单        | Entity 完整字段 + 索引  | Entity 类              | Phase 3+                       |
| §2.3 DTO 清单        | DTO 字段 + 校验 + 分组  | DTO 类                 | Phase 3+                       |
| §2.4 Ro 清单         | Ro 字段                 | Ro 类                  | Phase 3+                       |
| §3.2 数据库表设计    | DDL                     | DB 迁移                | Phase 2                        |
| §3.3 ORM 映射        | DAO + 映射文件结构      | DAO 接口 + 映射文件    | Phase 3+                       |
| §4.1 业务行为        | 行为清单                | Service 方法           | Phase 3+                       |
| §4.3 状态机          | 状态+转换               | Service 状态流转       | Phase 3+                       |
| §4.4 Service 接口    | 方法签名                | Service 接口 + 实现    | Phase 3+                       |
| §4.6 事务边界        | 事务注解                | 事务标注               | Phase 3+                       |
| §5.1 端点清单        | HTTP+路径               | Controller 方法        | Phase 3+                       |
| §5.2 Controller 骨架 | 方法路由表              | Controller 类          | Phase 3+                       |
| §5.4 权限矩阵        | 认证注解 + 角色         | 权限控制               | Phase 3+                       |
| §6.1 枚举定义        | 枚举值+编码             | 枚举类                 | Phase 2                        |
| §6.2 校验规则        | 校验注解                | DTO 注解               | Phase 3+                       |
| §7.1 业务异常        | 消息码+触发条件         | Service 异常处理       | Phase 3+                       |
| §7.3 消息码汇总      | 多语言文本              | i18n 文件              | Final Phase                    |
| §8.1 缓存策略        | 缓存键设计              | 缓存配置               | Phase 2 / Final                |
| §8.3 并发控制        | 乐观锁/分布式锁         | 并发控制               | Phase 3+                       |
| §9 领域事件          | 事件 Payload + Consumer | 消息消费者             | Phase 各故事阶段               |
| §10 跨模块依赖       | 远程调用契约            | 远程调用客户端接口     | Phase 3+                       |
| §12 测试场景         | 测试数据 + 预期结果     | TDD 测试任务           | Phase 3+（在每个故事阶段开头） |
| §13 附录             | 目录树                  | 文件路径速查表         | tasks.md 开头                  |
