adspecs 0.1.19 → 0.1.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.adspecs/feature.json +16 -16
- package/.adspecs/feature.yml +28 -28
- package/.adspecs/paths.json +17 -17
- package/.adspecs/templates/04-/345/211/215/347/253/257/345/212/237/350/203/275/350/256/276/350/256/241/346/250/241/346/235/277.md +1 -1
- package/.adspecs/templates/05-/345/220/216/347/253/257/344/273/273/345/212/241/346/270/205/345/215/225/346/250/241/346/235/277.md +613 -724
- package/.adspecs/templates/05b-/345/211/215/347/253/257/344/273/273/345/212/241/346/270/205/345/215/225/346/250/241/346/235/277.md +51 -51
- package/.claude-plugin/marketplace.json +23 -23
- package/.claude-plugin/plugin.json +18 -18
- package/.qoder-plugin/plugin.json +31 -31
- package/CLAUDE.md +1 -5
- package/INSTALL.md +3 -3
- package/README.md +395 -395
- package/bin/adspecs.js +129 -129
- package/hooks/commit-queue.js +245 -245
- package/hooks/hooks.json +63 -63
- package/hooks/session-start.js +44 -44
- package/hooks/wiki-queue.js +127 -127
- package/package.json +61 -61
- package/references/ant6-front-standard/index.md +99 -99
- package/references/antd-front-demo/public/mockServiceWorker.js +361 -361
- package/references/ecp-end-standard/index.md +63 -63
- package/references/python-end-standard/01-Python/345/220/216/347/253/257/347/274/226/347/240/201/350/247/204/350/214/203.md +372 -372
- package/references/python-end-standard/02-/346/225/260/346/215/256/345/272/223/350/256/276/350/256/241/344/270/216/344/275/277/347/224/250/350/247/204/350/214/203.md +226 -226
- package/references/python-end-standard/03-Celery/345/274/202/346/255/245/344/273/273/345/212/241/350/247/204/350/214/203.md +237 -237
- package/references/python-end-standard/04-Redis/344/275/277/347/224/250/350/247/204/350/214/203.md +231 -231
- package/scripts/postinstall.js +107 -107
- package/scripts/sync-version.js +105 -105
- package/skills/.claude/.wiki-update-queue +26 -26
- package/skills/adspecs-constitution/SKILL.md +157 -0
- package/skills/adspecs-export-word/SKILL.md +498 -498
- package/skills/adspecs-export-word/references/md-to-docx.js +862 -862
- package/skills/adspecs-export-word/references/package-lock.json +220 -220
- package/skills/adspecs-export-word/references/package.json +10 -10
- package/skills/adspecs-front-prototype/SKILL.md +405 -405
- package/skills/adspecs-front-spec/SKILL.md +4 -4
- package/skills/adspecs-front-tasks/SKILL.md +213 -173
- package/skills/adspecs-plan/SKILL.md +59 -69
- package/skills/adspecs-prd/SKILL.md +13 -5
- package/skills/adspecs-prd-to-demo/SKILL.md +532 -0
- package/skills/adspecs-tasks/SKILL.md +175 -204
- package/skills/adspecs-update-status/SKILL.md +382 -382
- package/skills/adspecs-utest/SKILL.md +107 -116
- package/skills/grill-me/SKILL.md +7 -0
- package/skills/grill-me/agents/openai.yaml +5 -0
- package/skills/playwright-cli/SKILL.md +420 -0
- package/skills/playwright-cli/references/element-attributes.md +23 -0
- package/skills/playwright-cli/references/playwright-tests.md +39 -0
- package/skills/playwright-cli/references/request-mocking.md +87 -0
- package/skills/playwright-cli/references/running-code.md +241 -0
- package/skills/playwright-cli/references/session-management.md +225 -0
- package/skills/playwright-cli/references/storage-state.md +275 -0
- package/skills/playwright-cli/references/test-generation.md +433 -0
- package/skills/playwright-cli/references/tracing.md +139 -0
- package/skills/playwright-cli/references/video-recording.md +143 -0
- package/skills/playwright-trace/SKILL.md +171 -0
- package/skills/project-init/SKILL.md +93 -22
- package/skills/project-init/references/front-demo/.claude/settings.local.json +9 -0
- package/skills/wiki-update/SKILL.md +232 -232
- package/src/commands/doctor.js +197 -197
- package/src/commands/init.js +83 -83
- package/src/commands/plugin.js +165 -165
- package/src/commands/update.js +87 -87
- package/src/lib/area-scanner.js +129 -129
- package/src/lib/copier.js +104 -104
- package/src/lib/dir-utils.js +161 -133
- package/src/lib/json-merge.js +114 -114
- package/src/lib/paths-defaults.js +37 -37
- package/src/lib/prompts.js +428 -347
- package/src/lib/readme-gen.js +143 -143
- package/src/lib/report.js +338 -327
- package/src/lib/scaffolder.js +551 -518
- package/src/lib/short-name.js +36 -36
- package/src/utils.js +80 -80
- package/references/antd-front-demo/.env +0 -15
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: "adspecs-tasks"
|
|
3
|
-
description: "基于统一系统设计文档(_system-design.md
|
|
3
|
+
description: "基于统一系统设计文档(_system-design.md),为项目功能生成 TDD 就绪的、按依赖排序的 tasks.md 文件"
|
|
4
4
|
argument-hint: "指定系统设计文档路径,如 docs/30-system-design/crm/M06-01-销售预测_system-design.md"
|
|
5
|
-
compatibility: "需要 adspecs 项目结构,含 adspecs/ 目录 + CLAUDE.md
|
|
5
|
+
compatibility: "需要 adspecs 项目结构,含 adspecs/ 目录 + CLAUDE.md + docs/30-system-design + .adspecs/templates + docs/40-project_conventions/end-integration/index.md"
|
|
6
6
|
metadata:
|
|
7
7
|
author: "qingwen"
|
|
8
|
-
source: "基于 adspecs-tasks 通用模板 +
|
|
8
|
+
source: "基于 adspecs-tasks 通用模板 + 项目后端编码规范 + TDD 流程改造"
|
|
9
9
|
user-invocable: true
|
|
10
10
|
disable-model-invocation: false
|
|
11
11
|
---
|
|
@@ -74,45 +74,61 @@ $ARGUMENTS
|
|
|
74
74
|
|
|
75
75
|
---
|
|
76
76
|
|
|
77
|
-
##
|
|
77
|
+
## 后端编码规范(任务生成强制校验清单)
|
|
78
78
|
|
|
79
|
-
>
|
|
80
|
-
>
|
|
79
|
+
> **来源**:`docs/40-project_conventions/end-integration/index.md` 及其引用的全部规范文件。
|
|
80
|
+
> **所有规则在生成每个任务时必须满足,违反任何一条即为不合格任务。**
|
|
81
|
+
> **具体规则内容以运行时加载的规范为准,本节不再硬编码特定平台的类名/注解/字段名。**
|
|
81
82
|
|
|
82
|
-
|
|
83
|
-
| --- | ---------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
84
|
-
| 1 | **Entity 规范** | `extends BaseEntity<Entity>`, `@TableName` 用反引号, 所有字段 `@TableField` + `@Schema`, `IdType.ASSIGN_ID`。审计字段继承自 BaseEntity,Entity 中禁止重复声明 |
|
|
85
|
-
| 2 | **DTO 规范** | `extends ReqeustCommonDataBean`(注意平台拼写),校验分组为内部接口(`saveXxx`/`updateXxx`),日期字段 `@JSONField(format = "yyyy-MM-dd HH:mm:ss")`,消息格式 `{port}_{table_snake}_{三位序号}` |
|
|
86
|
-
| 3 | **DAO 规范** | `extends BaseCommonDAO_HI<Entity>`, `@Component("{camel}DAO")`,**MyBatis XML 与 DAO 接口同包路径**,所有 SELECT 必须含 `WHERE delete_flag = 0`,resultMap 映射所有字段含审计字段 |
|
|
87
|
-
| 4 | **禁止 QueryWrapper/LambdaQueryWrapper** | 所有 DB 操作通过 MyBatis XML 实现,绝对禁止使用 MyBatis Plus 条件构造器 |
|
|
88
|
-
| 5 | **Service 规范** | 接口 `II{Entity}`(双I前缀)`extends IBaseCommon<Entity>`,实现 `extends BaseCommonServer<Entity>`, `@Component("{camel}Service")`。Save 用 **FastJSON**:`JSONObject.parseObject(JSONObject.toJSONString(dto), Entity.class)`。Update 用 **Spring BeanUtils**:`BeanUtils.copyProperties(dto, entity, "createdBy", "creationDate", "versionNum")`。软删除:`this.deleteById(id, true)`。分页默认排序 `creation_date desc` |
|
|
89
|
-
| 6 | **Controller 规范** | `extends CommonAbstractService`,重写 `getBaseCommonServer()`,所有端点 `@CheckToken`。标准路径:`/get-id`, `/find-pagination`, `/save`, `/update`, `/delete`。请求包装 `RequestData<Dto>` / `PaginationRequestData<Dto>`,响应包装 `ResponseData<T>` |
|
|
90
|
-
| 7 | **Ro(只读视图)规范** | `implements Serializable` + `serialVersionUID`,手动声明所有字段(不继承 BaseEntity),置于 `model/entity/readonly/`。日期字段标注 `@DateTimeFormat @JsonFormat` |
|
|
91
|
-
| 8 | **异常处理** | **异常在 Service 层抛出**(`RecordNotExistsException`、`GushenRuntimeException`),Controller 仅做参数空校验返回 `ResponseData.fail()`。所有消息引用 `ResponseMsgCode` 枚举,**禁止硬编码字符串** |
|
|
92
|
-
| 9 | **i18n 规范** | 每个模块 7 个 `.properties` 文件(default/zh_CN/zh_TW/en_US/vi_VN/th_TH/hu_HU),位于 `src/main/resources/config/`,**每个语言文件必须包含该语言的实际翻译内容** |
|
|
93
|
-
| 10 | **注入与工具** | `@Autowired` 注入(Spring),FastJSON 序列化,Hutool 工具类优先(`StrUtil`, `CollUtil`, `BeanUtil`, `ObjectUtil`),SLF4J 日志 |
|
|
83
|
+
### 规范加载
|
|
94
84
|
|
|
95
|
-
|
|
85
|
+
在执行大纲 §1"定位统一系统设计文档"时,必须同时加载后端编码规范:
|
|
86
|
+
|
|
87
|
+
1. 读取 `docs/40-project_conventions/end-integration/index.md`
|
|
88
|
+
2. 按 `index.md` 中"推荐读取顺序"依次加载所有关联规范文件
|
|
89
|
+
3. 后续所有任务描述中的基类、注解、命名、响应包装、异常处理、DB 迁移格式等,均以该规范为准
|
|
90
|
+
4. 如该目录不存在或 `index.md` 缺失,中止执行并提示先运行 `/project-init` 选择技术栈
|
|
91
|
+
|
|
92
|
+
### 通用校验维度(所有后端规范均须覆盖)
|
|
93
|
+
|
|
94
|
+
| # | 校验维度 | 说明 |
|
|
95
|
+
| -- | -------------- | -------------------------------------------------------------------------------------- |
|
|
96
|
+
| 1 | Entity 规范 | 基类继承、表名注解、主键策略、审计字段继承(按后端规范) |
|
|
97
|
+
| 2 | DTO 规范 | 基类继承、校验分组、日期格式注解、消息码格式(按后端规范) |
|
|
98
|
+
| 3 | DAO 规范 | 基类继承、ORM 映射文件、软删除过滤(按后端规范) |
|
|
99
|
+
| 4 | 数据访问约束 | 禁止使用规范外的数据访问方式(按后端规范) |
|
|
100
|
+
| 5 | Service 规范 | 接口/实现命名、对象转换策略、软删除、分页排序(按后端规范) |
|
|
101
|
+
| 6 | Controller 规范 | 基类继承、认证注解、标准端点路径、请求/响应包装(按后端规范) |
|
|
102
|
+
| 7 | Ro(只读视图) | 序列化接口、字段手动声明、日期注解(按后端规范) |
|
|
103
|
+
| 8 | 异常处理 | 异常在 Service 层抛出、消息码枚举、禁止硬编码字符串(按后端规范) |
|
|
104
|
+
| 9 | i18n 规范 | 语言文件数量、命名、内容要求(按后端规范) |
|
|
105
|
+
| 10 | 注入与工具 | DI 方式、序列化工具、工具类选型、日志框架(按后端规范) |
|
|
106
|
+
|
|
107
|
+
### 工程结构速查
|
|
108
|
+
|
|
109
|
+
> 具体工程结构以 `end-integration/index.md` 中描述为准。以下为通用分层参考。
|
|
96
110
|
|
|
97
111
|
```
|
|
98
|
-
{
|
|
99
|
-
{
|
|
100
|
-
{
|
|
112
|
+
{模块}-api/ # 契约层:远程接口 + DTO(按后端规范)
|
|
113
|
+
{模块}-model/ # 数据层:Entity + DAO + ORM 映射 + Ro(按后端规范)
|
|
114
|
+
{模块}-application/ # 实现层:Service + Controller + Config + Consumer + Enum + i18n(按后端规范)
|
|
101
115
|
```
|
|
102
116
|
|
|
103
|
-
###
|
|
117
|
+
### 平台基础设施速查
|
|
104
118
|
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
|
108
|
-
|
|
|
109
|
-
|
|
|
110
|
-
|
|
|
111
|
-
|
|
|
112
|
-
|
|
|
113
|
-
|
|
|
114
|
-
|
|
|
115
|
-
|
|
|
119
|
+
> 具体组件名称和使用方式以 `end-integration/index.md` 中描述为准。以下为通用能力参考。
|
|
120
|
+
|
|
121
|
+
| 能力 | 用途 |
|
|
122
|
+
| -------- | -------------------------- |
|
|
123
|
+
| 缓存 | 配置缓存、详情缓存 |
|
|
124
|
+
| 全文检索 | 列表搜索(按需) |
|
|
125
|
+
| 分布式锁 | 并发控制 |
|
|
126
|
+
| 文件中心 | 附件上传(按需) |
|
|
127
|
+
| 审批流 | 业务流程审批(按需) |
|
|
128
|
+
| ID 翻译 | 名称回填(按需) |
|
|
129
|
+
| 自动编码 | 业务单号生成(按需) |
|
|
130
|
+
| 加密 | 敏感字段(按需) |
|
|
131
|
+
| 配置中心 | 业务参数配置(按需) |
|
|
116
132
|
|
|
117
133
|
---
|
|
118
134
|
|
|
@@ -126,11 +142,17 @@ $ARGUMENTS
|
|
|
126
142
|
- 若仍找不到,搜索当前打开文件或上下文中引用的设计文档
|
|
127
143
|
- 确认文件存在且可读取
|
|
128
144
|
|
|
129
|
-
2. **加载 CLAUDE.md**:读取项目根目录下的 `CLAUDE.md
|
|
145
|
+
2. **加载 CLAUDE.md**:读取项目根目录下的 `CLAUDE.md`,获取项目背景和模块结构
|
|
130
146
|
|
|
131
147
|
3. **定位模板文件**(如果存在):
|
|
132
148
|
- 检查 `.adspecs/templates/05-后端任务清单模板.md` 下的相关模板
|
|
133
149
|
|
|
150
|
+
4. **加载后端编码规范**(必选):
|
|
151
|
+
- 读取 `docs/40-project_conventions/end-integration/index.md`
|
|
152
|
+
- 按 `index.md` 中"推荐读取顺序"依次加载所有关联规范文件
|
|
153
|
+
- 后续所有任务描述中的基类、注解、命名、响应包装、异常处理、DB 迁移格式等,均以该规范为准
|
|
154
|
+
- 如该目录不存在或 `index.md` 缺失,中止执行并提示先运行 `/project-init` 选择技术栈
|
|
155
|
+
|
|
134
156
|
### 2. 提取设计文档信息
|
|
135
157
|
|
|
136
158
|
> 统一设计文档(由 `adspecs-plan` 产出)包含 13 个章节,一次性覆盖 OOA+OOD。按以下顺序提取所有任务生成所需信息。
|
|
@@ -144,7 +166,7 @@ $ARGUMENTS
|
|
|
144
166
|
| 功能条目映射 | §1.1.3 功能条目映射表 | 生成 Controller 端点任务 |
|
|
145
167
|
| 权限映射 | §1.1.4 权限映射表 | 生成权限配置任务 |
|
|
146
168
|
| 模块名称/端口 | §1.2 模块定位 | 生成三模块路径 + 消息码前缀 |
|
|
147
|
-
| 上下游依赖 | §1.3 上下文边界 |
|
|
169
|
+
| 上下游依赖 | §1.3 上下文边界 | 生成远程调用客户端任务 |
|
|
148
170
|
| 核心职责 | §1.4 核心职责 | 验证任务覆盖完整性 |
|
|
149
171
|
|
|
150
172
|
#### 2.2 从 §2 提取:实体与领域对象
|
|
@@ -159,8 +181,8 @@ $ARGUMENTS
|
|
|
159
181
|
|
|
160
182
|
| 提取项 | 来源 | 用途 |
|
|
161
183
|
| ------------ | ------------------------------------- | ----------------------- |
|
|
162
|
-
| 数据库表结构 | §3.2 数据库表设计 → 表名+字段+索引 | 生成
|
|
163
|
-
|
|
|
184
|
+
| 数据库表结构 | §3.2 数据库表设计 → 表名+字段+索引 | 生成 DB 迁移 DDL 任务 |
|
|
185
|
+
| ORM 映射 | §3.3 ORM 映射 → DAO 接口+映射文件结构 | 生成 DAO + 映射文件任务 |
|
|
164
186
|
|
|
165
187
|
#### 2.4 从 §4 提取:业务行为与 Service
|
|
166
188
|
|
|
@@ -170,7 +192,7 @@ $ARGUMENTS
|
|
|
170
192
|
| 状态机 | §4.3 状态机图 → 状态+转换条件 | 确保状态流转任务覆盖 |
|
|
171
193
|
| Service 接口 | §4.4 Service 接口设计 → 方法签名+事务 | 生成 Service 接口+实现任务 |
|
|
172
194
|
| 关键方法逻辑 | §4.5 Service 实现逻辑 → 伪代码 | 确保实现任务描述精确 |
|
|
173
|
-
| 事务边界 | §4.6 事务边界汇总 |
|
|
195
|
+
| 事务边界 | §4.6 事务边界汇总 | 确保事务注解标记准确 |
|
|
174
196
|
|
|
175
197
|
#### 2.5 从 §5 提取:接口与 Controller
|
|
176
198
|
|
|
@@ -198,11 +220,11 @@ $ARGUMENTS
|
|
|
198
220
|
|
|
199
221
|
| 提取项 | 来源 | 用途 |
|
|
200
222
|
| ------------ | ----------------------------------- | --------------------------- |
|
|
201
|
-
| 缓存策略 | §8.1 缓存策略 → 键格式+过期时间
|
|
202
|
-
| 并发控制 | §8.3 并发控制 →
|
|
203
|
-
| 领域事件 | §9 领域事件 → 发布/消费事件
|
|
204
|
-
| 跨模块依赖 | §10 跨模块依赖 →
|
|
205
|
-
| 非功能性需求 | §11 非功能性需求
|
|
223
|
+
| 缓存策略 | §8.1 缓存策略 → 键格式+过期时间 | 生成缓存配置任务 |
|
|
224
|
+
| 并发控制 | §8.3 并发控制 → 乐观锁/分布式锁 | 生成并发控制任务 |
|
|
225
|
+
| 领域事件 | §9 领域事件 → 发布/消费事件 | 生成消息消费者任务 |
|
|
226
|
+
| 跨模块依赖 | §10 跨模块依赖 → 远程调用客户端 + SDK | 生成远程调用客户端任务 |
|
|
227
|
+
| 非功能性需求 | §11 非功能性需求 | 生成收尾阶段的性能/安全任务 |
|
|
206
228
|
|
|
207
229
|
#### 2.9 从 §13 提取:代码结构
|
|
208
230
|
|
|
@@ -215,17 +237,15 @@ $ARGUMENTS
|
|
|
215
237
|
|
|
216
238
|
按以下顺序生成任务:
|
|
217
239
|
|
|
218
|
-
1. **从 §13
|
|
219
|
-
-
|
|
220
|
-
-
|
|
221
|
-
- 列出所有 ~45 个目标文件路径
|
|
240
|
+
1. **从 §13 提取工程目录结构**:
|
|
241
|
+
- 确定模块标识、服务名、包根路径(按后端规范)
|
|
242
|
+
- 列出所有目标文件路径
|
|
222
243
|
|
|
223
244
|
2. **从 §1.1.1 提取用户故事并按优先级分组**:
|
|
224
|
-
- P1
|
|
225
|
-
- P2 故事:US-06~US-08, US-10(概览/释放/取消删除/配置)→ 辅助功能
|
|
245
|
+
- 按 PRD 中定义的优先级分组(P1 → P2)
|
|
226
246
|
- 确认故事间依赖关系
|
|
227
247
|
|
|
228
|
-
3.
|
|
248
|
+
3. **按后端规范工程结构 + TDD 顺序组织任务**(详见 §任务生成规则)
|
|
229
249
|
|
|
230
250
|
4. **生成依赖关系图**
|
|
231
251
|
|
|
@@ -235,7 +255,7 @@ $ARGUMENTS
|
|
|
235
255
|
- 所有实体/DTO/Ro/DAO/Service/Controller 都有对应任务
|
|
236
256
|
- 所有枚举都有独立任务
|
|
237
257
|
- 所有消息码都有 i18n 任务
|
|
238
|
-
-
|
|
258
|
+
- 所有远程调用客户端依赖都有任务
|
|
239
259
|
- 所有消费者/定时任务都有任务
|
|
240
260
|
|
|
241
261
|
### 4. 生成 tasks.md
|
|
@@ -243,10 +263,10 @@ $ARGUMENTS
|
|
|
243
263
|
使用 `.adspecs/templates/05-后端任务清单模板.md` 下的任务模板作为结构参考(若不存在则按本节结构生成)。必须包含以下全部章节:
|
|
244
264
|
|
|
245
265
|
1. **功能名称 + 元数据**(来源设计文档 §1.2)
|
|
246
|
-
2.
|
|
247
|
-
3.
|
|
248
|
-
4. **Phase 1
|
|
249
|
-
5. **Phase 2**:基础设施(枚举类 ×N、消息码常量、
|
|
266
|
+
2. **文件路径速查表**(所有目标文件的绝对路径清单,按工程结构组织)
|
|
267
|
+
3. **后端规范合规检查清单**(10 个维度,标记每条是否满足)
|
|
268
|
+
4. **Phase 1**:项目初始化(工程配置、启动类、基础配置、工程目录)
|
|
269
|
+
5. **Phase 2**:基础设施(枚举类 ×N、消息码常量、DB 迁移 DDL、ORM 配置)
|
|
250
270
|
6. **Phase 3+**:每个用户故事一个阶段(P1→P2 顺序),阶段内按 TDD 顺序排列
|
|
251
271
|
7. **Final Phase**:集成与收尾(集成测试、代码评审、API 文档、安全清单、性能验证)
|
|
252
272
|
8. **依赖关系图**(故事完成顺序 + 并行机会)
|
|
@@ -301,8 +321,8 @@ $ARGUMENTS
|
|
|
301
321
|
- **设计文档来源**:使用的 `_system-design.md` 路径
|
|
302
322
|
- **任务总数**:含各阶段分布
|
|
303
323
|
- **每个用户故事的任务数量**:含 TDD 测试任务/实现任务分别计数
|
|
304
|
-
- **文件覆盖**:Entity ×N, DTO ×N, Ro ×N, DAO ×N, Service ×N, Controller ×N,
|
|
305
|
-
-
|
|
324
|
+
- **文件覆盖**:Entity ×N, DTO ×N, Ro ×N, DAO ×N, Service ×N, Controller ×N, 远程客户端 ×N, Enum ×N, i18n ×N, Consumer ×N, Config ×N
|
|
325
|
+
- **后端规范合规检查结果**:10 个维度逐条确认通过
|
|
306
326
|
- **TDD 就绪确认**:是否每个故事阶段内测试任务均在实现任务之前
|
|
307
327
|
- **识别到的并行执行机会**:标注可并行的任务数
|
|
308
328
|
- **每个故事的独立测试标准**:从设计文档 §12 提取
|
|
@@ -317,8 +337,8 @@ $ARGUMENTS
|
|
|
317
337
|
|
|
318
338
|
1. **任务必须按用户故事组织**:每个故事独立可测试,支持独立实现
|
|
319
339
|
2. **TDD 严格排序**:每个故事阶段内,测试任务必须在实现任务之前
|
|
320
|
-
3.
|
|
321
|
-
4.
|
|
340
|
+
3. **后端编码规范强制遵守**:每个任务描述必须包含正确的基类/注解/命名(按 `end-integration/index.md` 规范)
|
|
341
|
+
4. **文件路径精确**:每个任务必须包含从工程模块根目录开始的完整文件路径
|
|
322
342
|
5. **设计文档全量覆盖**:§1~§13 的所有设计元素都必须映射到对应任务
|
|
323
343
|
|
|
324
344
|
### 检查清单格式(必需)
|
|
@@ -341,20 +361,20 @@ $ARGUMENTS
|
|
|
341
361
|
- Phase 2(基础设施):无故事标签
|
|
342
362
|
- Phase 3+(用户故事):**必须**有故事标签
|
|
343
363
|
- Final Phase(集成收尾):无故事标签
|
|
344
|
-
6. **描述**:明确操作 +
|
|
364
|
+
6. **描述**:明确操作 + 精确的文件路径(从工程模块根目录开始)+ 按后端规范标注基类/注解/命名
|
|
345
365
|
|
|
346
|
-
|
|
366
|
+
**正确示例**(以通用 Java/Spring 风格示意,实际以 `end-integration/index.md` 规范为准):
|
|
347
367
|
|
|
348
368
|
```text
|
|
349
|
-
- [ ] T012 [TDD] [US1] 编写
|
|
350
|
-
文件:
|
|
351
|
-
- [ ] T013 [US1] 创建
|
|
352
|
-
文件:
|
|
353
|
-
- [ ] T014 [P] [US1] 创建
|
|
354
|
-
文件:
|
|
355
|
-
- [ ] T015 [P] [US1] 创建
|
|
356
|
-
文件:
|
|
357
|
-
文件:
|
|
369
|
+
- [ ] T012 [TDD] [US1] 编写 {Entity}Service 提交{业务对象}测试
|
|
370
|
+
文件: {模块}-application/src/test/java/{包路径}/service/impl/{Entity}ServiceTest.java
|
|
371
|
+
- [ ] T013 [US1] 创建 {Entity}Entity(按后端规范标注基类、表名注解、主键策略)
|
|
372
|
+
文件: {模块}-model/src/main/java/{包路径}/entity/{Entity}Entity.java
|
|
373
|
+
- [ ] T014 [P] [US1] 创建 {Entity}Dto(按后端规范标注 DTO 基类、校验分组)
|
|
374
|
+
文件: {模块}-api/src/main/java/{包路径}/dto/{Entity}Dto.java
|
|
375
|
+
- [ ] T015 [P] [US1] 创建 {Entity}DAO 接口 + ORM 映射文件(按后端规范标注基类、软删除过滤)
|
|
376
|
+
文件: {模块}-model/src/main/java/{包路径}/dao/{Entity}DAO.java
|
|
377
|
+
文件: {模块}-model/src/main/resources/{包路径}/dao/{Entity}DAO.xml
|
|
358
378
|
```
|
|
359
379
|
|
|
360
380
|
**错误示例**:
|
|
@@ -380,7 +400,7 @@ $ARGUMENTS
|
|
|
380
400
|
↓
|
|
381
401
|
Entity + DTO + Ro 类
|
|
382
402
|
↓
|
|
383
|
-
DAO 接口 +
|
|
403
|
+
DAO 接口 + ORM 映射文件
|
|
384
404
|
↓
|
|
385
405
|
Service 接口
|
|
386
406
|
↓
|
|
@@ -388,7 +408,7 @@ Service 实现(最小代码使测试通过)
|
|
|
388
408
|
↓
|
|
389
409
|
Controller 端点
|
|
390
410
|
↓
|
|
391
|
-
|
|
411
|
+
远程调用客户端(若涉及外部调用)
|
|
392
412
|
↓
|
|
393
413
|
i18n 配置
|
|
394
414
|
```
|
|
@@ -426,10 +446,10 @@ i18n 配置
|
|
|
426
446
|
|
|
427
447
|
#### 基于实体与数据模型(设计文档 §2+§3)
|
|
428
448
|
|
|
429
|
-
- 每个 Entity
|
|
430
|
-
- 每个 DTO
|
|
449
|
+
- 每个 Entity 独立成一个任务,包含完整字段(按后端规范的字段注解)
|
|
450
|
+
- 每个 DTO 独立成一个任务,包含校验分组
|
|
431
451
|
- 每个 Ro 独立成一个任务,包含所有字段手动声明
|
|
432
|
-
- 每个 DAO 接口 +
|
|
452
|
+
- 每个 DAO 接口 + 映射文件独立成一个任务组
|
|
433
453
|
- 若实体服务于多个故事:放入最早依赖它的故事阶段,或 Phase 2 基础设施
|
|
434
454
|
|
|
435
455
|
#### 基于枚举(设计文档 §6.1)
|
|
@@ -442,126 +462,77 @@ i18n 配置
|
|
|
442
462
|
|
|
443
463
|
#### 基于异常与消息码(设计文档 §7)
|
|
444
464
|
|
|
445
|
-
-
|
|
446
|
-
-
|
|
465
|
+
- 所有消息码汇总到消息码常量类 → Phase 2 基础设施阶段
|
|
466
|
+
- 消息码按后端规范的前缀格式分组
|
|
447
467
|
- 每个 Service 实现任务描述中必须注明可能抛出的异常
|
|
448
468
|
|
|
449
469
|
#### i18n 任务生成规则
|
|
450
470
|
|
|
451
|
-
-
|
|
471
|
+
- 语言文件数量和命名按后端规范
|
|
452
472
|
- 所有消息码文本从设计文档 §7.3 提取
|
|
453
473
|
- i18n 任务可放在 Final Phase 或最后一个故事阶段(因为消息码在基础设施阶段已定义常量)
|
|
454
474
|
|
|
455
|
-
####
|
|
475
|
+
#### DB 迁移任务生成规则
|
|
456
476
|
|
|
457
477
|
- 从设计文档 §3.2 提取表结构 → 生成 DDL SQL
|
|
458
|
-
-
|
|
459
|
-
- 路径:`3103-sales-forecast-model/src/main/resources/liquibase/mysql/sales_forecast/`
|
|
478
|
+
- 迁移文件格式和目录结构按后端规范
|
|
460
479
|
- 作为 Phase 2 基础设施的一个任务组
|
|
461
480
|
|
|
462
|
-
####
|
|
481
|
+
#### 远程调用客户端任务生成规则
|
|
463
482
|
|
|
464
|
-
- 从设计文档 §10.2 提取外部依赖 →
|
|
465
|
-
-
|
|
466
|
-
-
|
|
483
|
+
- 从设计文档 §10.2 提取外部依赖 → 每个外部模块一个远程调用客户端接口
|
|
484
|
+
- 接口命名和路径按后端规范
|
|
485
|
+
- 契约层模块中创建
|
|
467
486
|
|
|
468
|
-
####
|
|
487
|
+
#### 消息消费者任务生成规则
|
|
469
488
|
|
|
470
489
|
- 从设计文档 §9.1(发布事件)和 §9.2(消费事件)提取
|
|
471
490
|
- 每个 Consumer 一个任务
|
|
472
|
-
-
|
|
491
|
+
- 路径按后端规范
|
|
473
492
|
|
|
474
493
|
### 阶段结构
|
|
475
494
|
|
|
476
495
|
```
|
|
477
496
|
Phase 1: 项目初始化
|
|
478
|
-
├── T001
|
|
479
|
-
├── T002
|
|
480
|
-
├── T003
|
|
481
|
-
└── T004
|
|
497
|
+
├── T001 工程构建配置(按后端规范的模块结构和依赖管理)
|
|
498
|
+
├── T002 启动类/入口文件(按后端规范的注解/配置)
|
|
499
|
+
├── T003 基础配置文件(数据源、日志、应用参数等)
|
|
500
|
+
└── T004 工程目录结构创建
|
|
482
501
|
|
|
483
502
|
Phase 2: 基础设施(阻塞性前置 — 所有用户故事依赖)
|
|
484
503
|
├── 枚举类(每个枚举一个任务,可并行 [P])
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
├──
|
|
495
|
-
├──
|
|
496
|
-
├──
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
├──
|
|
501
|
-
├──
|
|
502
|
-
├──
|
|
503
|
-
├──
|
|
504
|
-
├── ForecastOrderDAO + XML(findPagination)
|
|
505
|
-
├── IIForecastOrder 接口
|
|
506
|
-
├── ForecastOrderService(saveForecastOrder, updateForecastOrder, submitForecastOrder)
|
|
507
|
-
├── ForecastOrderController(save, update, submit 端点)
|
|
508
|
-
└── Feign Client(CtctClient — CTCT物料查询)
|
|
509
|
-
|
|
510
|
-
Phase 4: US-02 计划部门评审预测单 [P1]
|
|
511
|
-
├── [TDD] 测试任务(接收场景 + 驳回场景 + 状态校验)
|
|
512
|
-
├── ForecastOrderService(acceptForecastOrder, rejectForecastOrder)
|
|
513
|
-
├── ForecastOrderController(accept, reject 端点)
|
|
504
|
+
├── 消息码常量类(按后端规范的格式和枚举类)
|
|
505
|
+
├── DB 迁移 DDL(按后端规范的迁移文件格式)
|
|
506
|
+
├── ORM 配置(分页、乐观锁等插件/配置)
|
|
507
|
+
├── API 文档配置(按后端规范的 API 文档工具)
|
|
508
|
+
├── 数据源配置
|
|
509
|
+
└── 工具类(业务通用计算逻辑)
|
|
510
|
+
|
|
511
|
+
Phase 3..N-1: 用户故事阶段(每个故事一个阶段,P1→P2 顺序)
|
|
512
|
+
每个阶段内按 TDD 顺序排列:
|
|
513
|
+
├── [TDD] 测试任务(正常场景 + 异常场景 + 边界场景)
|
|
514
|
+
├── Entity(按后端规范的基类/注解/字段)
|
|
515
|
+
├── DTO(按后端规范的基类/校验分组)
|
|
516
|
+
├── Ro(按后端规范的字段声明)
|
|
517
|
+
├── DAO + 映射文件(按后端规范的基类/查询方法)
|
|
518
|
+
├── Service 接口
|
|
519
|
+
├── Service 实现(含对象转换、事务注解、异常处理)
|
|
520
|
+
├── Controller(按后端规范的基类/认证注解/响应包装)
|
|
521
|
+
├── 远程调用客户端(若涉及外部模块调用)
|
|
522
|
+
├── 消息消费者(若涉及事件消费)
|
|
514
523
|
└── 权限配置
|
|
515
524
|
|
|
516
|
-
Phase 5: US-09 撤回预测单 + US-08 取消/删除 [P1+P2]
|
|
517
|
-
├── [TDD] 测试任务(撤回 + 已排产阻止 + 取消 + 物理删除)
|
|
518
|
-
├── ForecastOrderService(withdrawForecastOrder, cancelForecastOrder, deleteForecastOrder)
|
|
519
|
-
└── ForecastOrderController(withdraw, cancel, delete 端点)
|
|
520
|
-
|
|
521
|
-
Phase 6: US-03 查看APS排产反馈 [P1]
|
|
522
|
-
├── [TDD] 测试任务(排产确认 + 乐观锁冲突)
|
|
523
|
-
├── ForecastOrderService(scheduleConfirm)
|
|
524
|
-
├── ForecastOrderController(schedule-confirm 端点)
|
|
525
|
-
├── Kafka Consumer(ApsScheduleConfirmConsumer)
|
|
526
|
-
└── Feign Client(ApsClient — APS排产进度查询)
|
|
527
|
-
|
|
528
|
-
Phase 7: US-04 预测单转履约单 [P1]
|
|
529
|
-
├── [TDD] 测试任务(全部转 + 部分转 + 转单超限 + 状态校验)
|
|
530
|
-
├── DTO(TransferToFoDto)
|
|
531
|
-
├── ForecastOrderService(transferToFO)
|
|
532
|
-
├── ForecastOrderController(transfer-to-fo 端点)
|
|
533
|
-
└── Feign Client(FoClient — FO创建 + SoClient — SO行项目查询)
|
|
534
|
-
|
|
535
|
-
Phase 8: US-05 变更单修改预测单 [P1]
|
|
536
|
-
├── [TDD] 测试任务(新增变更单 + 提交审批 + 审批通过联动 + 审批驳回 + 并发控制 + 校验场景)
|
|
537
|
-
├── ForecastChangeOrderEntity
|
|
538
|
-
├── ForecastChangeOrderDto + ApproveDto
|
|
539
|
-
├── ForecastChangeOrderDAO + XML(findListByForecastOrderId, findIncompleteByForecastOrderId)
|
|
540
|
-
├── IIForecastChangeOrder 接口
|
|
541
|
-
├── ForecastChangeOrderService(save/submit/approve/reject/withdraw/delete/void)
|
|
542
|
-
├── ForecastChangeOrderController(9 个端点)
|
|
543
|
-
└── Feign Client(BondedManualClient — P03 保税手册查询)+ BPM/BpmHelper 集成
|
|
544
|
-
|
|
545
|
-
Phase 9: US-06 多维度概览 + US-07 释放预测单 [P2]
|
|
546
|
-
├── [TDD] 测试任务(概览聚合 + 强制释放)
|
|
547
|
-
├── ForecastOrderService(findOverview, forceRelease)
|
|
548
|
-
├── ForecastOrderController(overview, force-release 端点)
|
|
549
|
-
└── 定时任务配置
|
|
550
|
-
|
|
551
|
-
Phase 10: US-10 系统配置管理 [P2]
|
|
552
|
-
├── 提报提前期配置接口
|
|
553
|
-
├── 强制转FO天数配置接口
|
|
554
|
-
└── Feign Client(P01 组织架构 + P03 保税手册)
|
|
555
|
-
|
|
556
525
|
Final Phase: 集成与收尾
|
|
557
|
-
├── 集成测试(端到端流程 +
|
|
558
|
-
├── i18n
|
|
559
|
-
├── API
|
|
560
|
-
├──
|
|
561
|
-
├──
|
|
526
|
+
├── 集成测试(端到端流程 + 远程调用联调)
|
|
527
|
+
├── i18n 文件(所有消息码的全语言翻译,按后端规范的语言集合)
|
|
528
|
+
├── API 文档完善
|
|
529
|
+
├── 代码评审(按后端编码规范检查)
|
|
530
|
+
├── 安全清单(认证注解 + 权限矩阵验证)
|
|
562
531
|
└── 性能验证(索引 + 缓存 + 分页)
|
|
563
532
|
```
|
|
564
533
|
|
|
534
|
+
> **注意**:以上阶段结构为通用模板示意。具体类名、注解、路径、配置项均以 `end-integration/index.md` 规范为准。用户故事阶段(Phase 3..N-1)的实际内容从设计文档 §1.1.1 提取。
|
|
535
|
+
|
|
565
536
|
### TDD 就绪确认
|
|
566
537
|
|
|
567
538
|
生成 tasks.md 后,必须确认以下条件:
|
|
@@ -572,20 +543,20 @@ Final Phase: 集成与收尾
|
|
|
572
543
|
- [ ] tasks.md 包含 TDD 执行指南章节,说明 RED→GREEN→REFACTOR 循环
|
|
573
544
|
- [ ] 任务顺序与 `test-driven-development` skill 的流程一致(先测试失败 → 最小实现 → 重构)
|
|
574
545
|
|
|
575
|
-
###
|
|
546
|
+
### 后端规范合规确认
|
|
576
547
|
|
|
577
548
|
生成 tasks.md 后,必须确认:
|
|
578
549
|
|
|
579
|
-
- [ ] 所有 Entity
|
|
580
|
-
- [ ] 所有 DTO
|
|
581
|
-
- [ ] 所有 DAO
|
|
582
|
-
- [ ]
|
|
583
|
-
- [ ] 所有 Service
|
|
584
|
-
- [ ] 所有 Controller
|
|
585
|
-
- [ ] 所有 Ro
|
|
550
|
+
- [ ] 所有 Entity 任务描述按后端规范标注基类、表名注解、主键策略
|
|
551
|
+
- [ ] 所有 DTO 任务描述按后端规范标注基类、校验分组
|
|
552
|
+
- [ ] 所有 DAO 任务描述按后端规范标注基类、软删除过滤
|
|
553
|
+
- [ ] 无违反后端规范的数据访问方式
|
|
554
|
+
- [ ] 所有 Service 任务描述按后端规范区分 save/update 的对象转换策略
|
|
555
|
+
- [ ] 所有 Controller 任务描述按后端规范标注基类、认证注解、响应包装
|
|
556
|
+
- [ ] 所有 Ro 任务描述按后端规范标注序列化接口、手动字段声明
|
|
586
557
|
- [ ] 异常任务描述中异常均来自 Service 层
|
|
587
|
-
- [ ] i18n
|
|
588
|
-
- [ ]
|
|
558
|
+
- [ ] i18n 任务覆盖后端规范要求的语言文件数量
|
|
559
|
+
- [ ] 远程调用客户端任务放入契约层模块的指定路径
|
|
589
560
|
|
|
590
561
|
---
|
|
591
562
|
|
|
@@ -593,7 +564,7 @@ Final Phase: 集成与收尾
|
|
|
593
564
|
|
|
594
565
|
- [ ] tasks.md 已生成,包含所有阶段、TDD 标记、精确文件路径
|
|
595
566
|
- [ ] 扩展钩子已根据上述《强制性执行后钩子》的规则派发或跳过
|
|
596
|
-
- [ ] 所有 10
|
|
567
|
+
- [ ] 所有 10 个后端规范维度已通过合规确认
|
|
597
568
|
- [ ] 所有故事阶段 TDD 就绪(测试任务在实现任务之前)
|
|
598
569
|
- [ ] 已向用户报告完成情况
|
|
599
570
|
|
|
@@ -601,30 +572,30 @@ Final Phase: 集成与收尾
|
|
|
601
572
|
|
|
602
573
|
## 参考:设计文档章节 → 任务生成速查表
|
|
603
574
|
|
|
604
|
-
| 设计文档章节 | 提取内容 | 生成任务类型
|
|
605
|
-
| -------------------- | ----------------------- |
|
|
606
|
-
| §1.1.1 用户故事 | US-01~US-
|
|
607
|
-
| §1.2 模块定位 | 服务名/端口/包路径 | 路径前缀
|
|
608
|
-
| §1.3 上下文边界 | 上下游依赖 |
|
|
609
|
-
| §2.2 实体清单 | Entity 完整字段 + 索引 | Entity 类
|
|
610
|
-
| §2.3 DTO 清单 | DTO 字段 + 校验 + 分组 | DTO 类
|
|
611
|
-
| §2.4 Ro 清单 | Ro 字段 | Ro 类
|
|
612
|
-
| §3.2 数据库表设计 | DDL |
|
|
613
|
-
| §3.3
|
|
614
|
-
| §4.1 业务行为 | 行为清单 | Service 方法
|
|
615
|
-
| §4.3 状态机 | 状态+转换 | Service 状态流转
|
|
616
|
-
| §4.4 Service 接口 | 方法签名 | Service 接口 + 实现
|
|
617
|
-
| §4.6 事务边界 |
|
|
618
|
-
| §5.1 端点清单 | HTTP+路径 | Controller 方法
|
|
619
|
-
| §5.2 Controller 骨架 | 方法路由表 | Controller 类
|
|
620
|
-
| §5.4 权限矩阵 |
|
|
621
|
-
| §6.1 枚举定义 | 枚举值+编码 | 枚举类
|
|
622
|
-
| §6.2 校验规则 |
|
|
623
|
-
| §7.1 业务异常 | 消息码+触发条件 | Service 异常处理
|
|
624
|
-
| §7.3 消息码汇总 |
|
|
625
|
-
| §8.1 缓存策略 |
|
|
626
|
-
| §8.3 并发控制 |
|
|
627
|
-
| §9 领域事件 | 事件 Payload + Consumer |
|
|
628
|
-
| §10 跨模块依赖 |
|
|
629
|
-
| §12 测试场景 | 测试数据 + 预期结果 | TDD 测试任务
|
|
630
|
-
| §13 附录 | 目录树
|
|
575
|
+
| 设计文档章节 | 提取内容 | 生成任务类型 | Phase |
|
|
576
|
+
| -------------------- | ----------------------- | ---------------------- | ------------------------------ |
|
|
577
|
+
| §1.1.1 用户故事 | US-01~US-N 优先级 | 阶段划分 | Phase 3+ |
|
|
578
|
+
| §1.2 模块定位 | 服务名/端口/包路径 | 路径前缀 | Phase 1 |
|
|
579
|
+
| §1.3 上下文边界 | 上下游依赖 | 远程客户端, 消费者 | Phase 各故事阶段 |
|
|
580
|
+
| §2.2 实体清单 | Entity 完整字段 + 索引 | Entity 类 | Phase 3+ |
|
|
581
|
+
| §2.3 DTO 清单 | DTO 字段 + 校验 + 分组 | DTO 类 | Phase 3+ |
|
|
582
|
+
| §2.4 Ro 清单 | Ro 字段 | Ro 类 | Phase 3+ |
|
|
583
|
+
| §3.2 数据库表设计 | DDL | DB 迁移 | Phase 2 |
|
|
584
|
+
| §3.3 ORM 映射 | DAO + 映射文件结构 | DAO 接口 + 映射文件 | Phase 3+ |
|
|
585
|
+
| §4.1 业务行为 | 行为清单 | Service 方法 | Phase 3+ |
|
|
586
|
+
| §4.3 状态机 | 状态+转换 | Service 状态流转 | Phase 3+ |
|
|
587
|
+
| §4.4 Service 接口 | 方法签名 | Service 接口 + 实现 | Phase 3+ |
|
|
588
|
+
| §4.6 事务边界 | 事务注解 | 事务标注 | Phase 3+ |
|
|
589
|
+
| §5.1 端点清单 | HTTP+路径 | Controller 方法 | Phase 3+ |
|
|
590
|
+
| §5.2 Controller 骨架 | 方法路由表 | Controller 类 | Phase 3+ |
|
|
591
|
+
| §5.4 权限矩阵 | 认证注解 + 角色 | 权限控制 | Phase 3+ |
|
|
592
|
+
| §6.1 枚举定义 | 枚举值+编码 | 枚举类 | Phase 2 |
|
|
593
|
+
| §6.2 校验规则 | 校验注解 | DTO 注解 | Phase 3+ |
|
|
594
|
+
| §7.1 业务异常 | 消息码+触发条件 | Service 异常处理 | Phase 3+ |
|
|
595
|
+
| §7.3 消息码汇总 | 多语言文本 | i18n 文件 | Final Phase |
|
|
596
|
+
| §8.1 缓存策略 | 缓存键设计 | 缓存配置 | Phase 2 / Final |
|
|
597
|
+
| §8.3 并发控制 | 乐观锁/分布式锁 | 并发控制 | Phase 3+ |
|
|
598
|
+
| §9 领域事件 | 事件 Payload + Consumer | 消息消费者 | Phase 各故事阶段 |
|
|
599
|
+
| §10 跨模块依赖 | 远程调用契约 | 远程调用客户端接口 | Phase 3+ |
|
|
600
|
+
| §12 测试场景 | 测试数据 + 预期结果 | TDD 测试任务 | Phase 3+(在每个故事阶段开头) |
|
|
601
|
+
| §13 附录 | 目录树 | 文件路径速查表 | tasks.md 开头 |
|