pdd-skills 3.1.13 → 3.2.3
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/LICENSE +21 -21
- package/package.json +1 -1
- package/scaffolds/python-fullstack/.github/workflows/ci.yml +1 -1
- package/scaffolds/python-fullstack/Dockerfile +1 -1
- package/scaffolds/python-fullstack/docker-compose.yml +1 -1
- package/scaffolds/python-fullstack/frontend/Dockerfile +1 -1
- package/scaffolds/python-fullstack/frontend/nginx.conf +1 -1
- package/scaffolds/python-fullstack/frontend/postcss.config.js +1 -1
- package/scaffolds/python-fullstack/frontend/src/api/client.ts +1 -1
- package/scaffolds/python-fullstack/frontend/src/composables/useResponsive.ts +1 -1
- package/scaffolds/python-fullstack/frontend/src/router/index.ts +1 -1
- package/scaffolds/python-fullstack/frontend/src/stores/user.ts +1 -1
- package/scaffolds/python-fullstack/frontend/src/styles/responsive.css +1 -1
- package/scaffolds/python-fullstack/frontend/src/styles/variables.css +1 -1
- package/scaffolds/python-fullstack/frontend/src/views/DashboardView.vue +1 -1
- package/scaffolds/python-fullstack/frontend/src/views/HomeView.vue +1 -1
- package/scaffolds/python-fullstack/frontend/src/views/LoginView.vue +1 -1
- package/scaffolds/python-fullstack/frontend/tailwind.config.js +1 -1
- package/skills/core/official-doc-writer/README.md +232 -232
- package/skills/core/official-doc-writer/SKILL.md +4 -7
- package/skills/core/official-doc-writer/fonts/FONTS_LIST.md +44 -44
- package/skills/core/official-doc-writer/references/GBT_9704-2012_/345/205/232/346/224/277/346/234/272/345/205/263/345/205/254/346/226/207/346/240/274/345/274/217.md +422 -422
- package/skills/core/pdd-ba/SKILL.md +1 -11
- package/skills/core/pdd-entropy-reduction/SKILL.md +1 -9
- package/skills/core/pdd-extract-features/SKILL.md +1 -10
- package/skills/core/pdd-generate-spec/SKILL.md +1 -10
- package/skills/core/pdd-main/evals/evals.json +215 -215
- package/skills/core/pdd-verify-feature/SKILL.md +1 -10
- package/skills/core/pdd-vm/SKILL.md +1 -11
- package/skills/entropy/expert-arch-enforcer/SKILL.md +292 -292
- package/skills/entropy/expert-auto-refactor/SKILL.md +316 -327
- package/skills/entropy/expert-code-quality/SKILL.md +468 -468
- package/skills/entropy/expert-entropy-auditor/SKILL.md +276 -276
- package/skills/expert/expert-activiti/SKILL.md +488 -497
- package/skills/expert/expert-bug-fixer/SKILL.md +1 -26
- package/skills/expert/expert-mysql/SKILL.md +832 -832
- package/skills/expert/expert-ruoyi/SKILL.md +664 -674
- package/skills/expert/expert-springcloud/SKILL.md +1 -10
- package/skills/expert/expert-vue3/SKILL.md +1 -10
- package/skills/expert/testcase-agent/SKILL.md +5 -0
- package/skills/expert/testcase-modeler/SKILL.md +40 -2
- package/skills/pr/pdd-multi-review/SKILL.md +534 -534
- package/skills/pr/pdd-pr-batch/SKILL.md +303 -303
- package/skills/pr/pdd-pr-create/SKILL.md +344 -344
- package/skills/pr/pdd-pr-merge/SKILL.md +286 -286
- package/skills/pr/pdd-pr-review/SKILL.md +217 -217
- package/skills/pr/pdd-task-manager/SKILL.md +636 -636
- package/skills/pr/pdd-template-engine/SKILL.md +386 -386
- package/tests/login_manager.py +5 -30
- package/tests/recorder.py +362 -294
- package/tests/testcase-ai.py +1184 -11
|
@@ -1,636 +1,636 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: pdd-task-manager
|
|
3
|
-
description: PDD任务管理技能,提供细粒度任务清单管理和断点续传能力。当用户需要继续中断任务或恢复执行进度时自动触发。支持中文触发:任务管理、断点续传、恢复进度、继续执行。
|
|
4
|
-
license: MIT
|
|
5
|
-
compatibility: 需要 .pdd/state-{moduleId}.json 状态文件,支持多模块并行执行
|
|
6
|
-
metadata:
|
|
7
|
-
author: "neuqik@hotmail.com"
|
|
8
|
-
version: "1.0"
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
# PDD任务管理技能
|
|
12
|
-
|
|
13
|
-
## 技能描述
|
|
14
|
-
|
|
15
|
-
PDD任务管理技能提供细粒度的任务清单管理和断点续传能力,支持在开发过程中中断后精确恢复执行进度,确保不会遗漏任何执行步骤。
|
|
16
|
-
|
|
17
|
-
## 触发条件
|
|
18
|
-
|
|
19
|
-
- PDD流程开始时自动创建任务清单
|
|
20
|
-
- 用户发出"继续执行"、"恢复进度"等命令
|
|
21
|
-
- 功能点实现过程中需要跟踪子任务进度
|
|
22
|
-
|
|
23
|
-
## 核心能力
|
|
24
|
-
|
|
25
|
-
### 1. 分层任务清单
|
|
26
|
-
|
|
27
|
-
```yaml
|
|
28
|
-
任务层级:
|
|
29
|
-
模块级 (Module)
|
|
30
|
-
└── 功能点级 (Feature)
|
|
31
|
-
└── 任务组级 (TaskGroup)
|
|
32
|
-
└── 原子任务级 (Task)
|
|
33
|
-
|
|
34
|
-
示例:
|
|
35
|
-
ZCCZ-1 (模块)
|
|
36
|
-
└── FP-ZCCZ1-001 (功能点)
|
|
37
|
-
├── database (任务组)
|
|
38
|
-
│ ├── create-table
|
|
39
|
-
│ └── insert-dict-data
|
|
40
|
-
├── backend (任务组)
|
|
41
|
-
│ ├── generate-entity
|
|
42
|
-
│ ├── generate-mapper
|
|
43
|
-
│ ├── generate-service
|
|
44
|
-
│ └── generate-controller
|
|
45
|
-
└── frontend (任务组)
|
|
46
|
-
├── generate-api
|
|
47
|
-
├── generate-list-page
|
|
48
|
-
├── generate-form-page
|
|
49
|
-
└── generate-detail-page
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
### 2. 任务状态跟踪
|
|
53
|
-
|
|
54
|
-
```yaml
|
|
55
|
-
任务状态:
|
|
56
|
-
- pending: 待执行
|
|
57
|
-
- in_progress: 执行中
|
|
58
|
-
- completed: 已完成
|
|
59
|
-
- failed: 失败
|
|
60
|
-
- skipped: 已跳过
|
|
61
|
-
- blocked: 被阻塞
|
|
62
|
-
|
|
63
|
-
状态转换规则:
|
|
64
|
-
pending → in_progress: 开始执行任务
|
|
65
|
-
in_progress → completed: 任务执行成功
|
|
66
|
-
in_progress → failed: 任务执行失败
|
|
67
|
-
in_progress → blocked: 任务被阻塞(依赖未满足)
|
|
68
|
-
failed → in_progress: 重试任务
|
|
69
|
-
pending → skipped: 跳过任务
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
### 3. 断点续传机制
|
|
73
|
-
|
|
74
|
-
```yaml
|
|
75
|
-
状态文件路径规则:
|
|
76
|
-
- 单模块模式: .pdd/state.json
|
|
77
|
-
- 多模块模式: .pdd/state-{moduleId}.json
|
|
78
|
-
- 示例: .pdd/state-ZCCZ-1.json, .pdd/state-ZCPG-1.json
|
|
79
|
-
|
|
80
|
-
目录结构:
|
|
81
|
-
.pdd/
|
|
82
|
-
├── state-ZCCZ-1.json # 国有产权转让模块状态
|
|
83
|
-
├── state-ZCCZ-2.json # 资产转让模块状态
|
|
84
|
-
├── state-ZCPG-1.json # 评估备案模块状态
|
|
85
|
-
└── archive/ # 已完成模块归档目录
|
|
86
|
-
└── state-ZCCZ-1.completed.json
|
|
87
|
-
|
|
88
|
-
并发安全机制:
|
|
89
|
-
- 每个模块独立状态文件,避免冲突
|
|
90
|
-
- 文件锁机制防止并发写入
|
|
91
|
-
- 状态文件版本控制
|
|
92
|
-
|
|
93
|
-
内容结构:
|
|
94
|
-
version: "2.0"
|
|
95
|
-
moduleId: "ZCCZ-1"
|
|
96
|
-
moduleName: "国有产权转让"
|
|
97
|
-
|
|
98
|
-
currentPhase: "feature-loop"
|
|
99
|
-
currentFeature: "FP-ZCCZ1-002"
|
|
100
|
-
currentTaskGroup: "backend"
|
|
101
|
-
currentTask: "generate-service"
|
|
102
|
-
|
|
103
|
-
progress:
|
|
104
|
-
totalFeatures: 5
|
|
105
|
-
completedFeatures: 1
|
|
106
|
-
currentFeatureProgress: 45%
|
|
107
|
-
|
|
108
|
-
taskProgress:
|
|
109
|
-
FP-ZCCZ1-001:
|
|
110
|
-
status: completed
|
|
111
|
-
completedAt: "2026-03-31T10:30:00Z"
|
|
112
|
-
taskGroups:
|
|
113
|
-
database: completed
|
|
114
|
-
backend: completed
|
|
115
|
-
frontend: completed
|
|
116
|
-
menu: completed
|
|
117
|
-
|
|
118
|
-
FP-ZCCZ1-002:
|
|
119
|
-
status: in_progress
|
|
120
|
-
startedAt: "2026-03-31T11:00:00Z"
|
|
121
|
-
taskGroups:
|
|
122
|
-
database: completed
|
|
123
|
-
backend:
|
|
124
|
-
generate-entity: completed
|
|
125
|
-
generate-mapper: completed
|
|
126
|
-
generate-service: in_progress
|
|
127
|
-
generate-controller: pending
|
|
128
|
-
frontend: pending
|
|
129
|
-
menu: pending
|
|
130
|
-
|
|
131
|
-
retryHistory:
|
|
132
|
-
- taskId: "generate-service"
|
|
133
|
-
attempt: 1
|
|
134
|
-
error: "缺少依赖接口定义"
|
|
135
|
-
timestamp: "2026-03-31T11:15:00Z"
|
|
136
|
-
resolved: true
|
|
137
|
-
resolution: "补充接口定义后重试成功"
|
|
138
|
-
|
|
139
|
-
checkpoints:
|
|
140
|
-
- id: "cp-001"
|
|
141
|
-
timestamp: "2026-03-31T10:00:00Z"
|
|
142
|
-
phase: "spec-generation"
|
|
143
|
-
description: "规格生成完成"
|
|
144
|
-
|
|
145
|
-
- id: "cp-002"
|
|
146
|
-
timestamp: "2026-03-31T11:00:00Z"
|
|
147
|
-
phase: "feature-loop"
|
|
148
|
-
featureId: "FP-ZCCZ1-001"
|
|
149
|
-
description: "第一个功能点完成"
|
|
150
|
-
```
|
|
151
|
-
|
|
152
|
-
### 4. 任务依赖管理
|
|
153
|
-
|
|
154
|
-
```yaml
|
|
155
|
-
依赖类型:
|
|
156
|
-
- sequential: 顺序依赖(A完成后才能执行B)
|
|
157
|
-
- parallel: 并行依赖(A和B可以同时执行)
|
|
158
|
-
- conditional: 条件依赖(满足条件后才能执行)
|
|
159
|
-
|
|
160
|
-
依赖规则:
|
|
161
|
-
backend → frontend: 后端完成后才能开发前端
|
|
162
|
-
database → backend: 数据库完成后才能开发后端
|
|
163
|
-
generate-entity → generate-mapper: 实体类完成后才能生成Mapper
|
|
164
|
-
generate-service → generate-controller: Service完成后才能生成Controller
|
|
165
|
-
|
|
166
|
-
依赖图示例:
|
|
167
|
-
database
|
|
168
|
-
│
|
|
169
|
-
▼
|
|
170
|
-
generate-entity
|
|
171
|
-
│
|
|
172
|
-
├──────────────┐
|
|
173
|
-
▼ ▼
|
|
174
|
-
generate-mapper generate-service
|
|
175
|
-
│ │
|
|
176
|
-
│ ▼
|
|
177
|
-
│ generate-controller
|
|
178
|
-
│ │
|
|
179
|
-
└──────────────┤
|
|
180
|
-
▼
|
|
181
|
-
frontend
|
|
182
|
-
```
|
|
183
|
-
|
|
184
|
-
## 执行流程
|
|
185
|
-
|
|
186
|
-
```
|
|
187
|
-
PDD流程启动
|
|
188
|
-
│
|
|
189
|
-
▼
|
|
190
|
-
┌─────────────────────────────────┐
|
|
191
|
-
│ 1. 创建模块级任务清单 │
|
|
192
|
-
│ - 解析功能点矩阵 │
|
|
193
|
-
│ - 生成功能点列表 │
|
|
194
|
-
│ - 初始化状态文件 │
|
|
195
|
-
└─────────────────────────────────┘
|
|
196
|
-
│
|
|
197
|
-
▼
|
|
198
|
-
┌─────────────────────────────────┐
|
|
199
|
-
│ 2. 为每个功能点生成任务清单 │
|
|
200
|
-
│ - 数据库任务组 │
|
|
201
|
-
│ - 后端任务组 │
|
|
202
|
-
│ - 前端任务组 │
|
|
203
|
-
│ - 菜单配置任务组 │
|
|
204
|
-
│ - 测试任务组 │
|
|
205
|
-
└─────────────────────────────────┘
|
|
206
|
-
│
|
|
207
|
-
▼
|
|
208
|
-
┌─────────────────────────────────┐
|
|
209
|
-
│ 3. 执行任务并更新状态 │
|
|
210
|
-
│ - 标记任务开始 │
|
|
211
|
-
│ - 执行任务 │
|
|
212
|
-
│ - 记录结果 │
|
|
213
|
-
│ - 更新进度 │
|
|
214
|
-
└─────────────────────────────────┘
|
|
215
|
-
│
|
|
216
|
-
▼
|
|
217
|
-
┌─────────────────────────────────┐
|
|
218
|
-
│ 4. 检查点保存 │
|
|
219
|
-
│ - 每完成一个任务组保存检查点 │
|
|
220
|
-
│ - 记录关键状态变更 │
|
|
221
|
-
└─────────────────────────────────┘
|
|
222
|
-
│
|
|
223
|
-
▼
|
|
224
|
-
┌─────────────────────────────────┐
|
|
225
|
-
│ 5. 异常处理与恢复 │
|
|
226
|
-
│ - 记录失败原因 │
|
|
227
|
-
│ - 保存恢复上下文 │
|
|
228
|
-
│ - 等待用户指令 │
|
|
229
|
-
└─────────────────────────────────┘
|
|
230
|
-
```
|
|
231
|
-
|
|
232
|
-
## 任务清单模板
|
|
233
|
-
|
|
234
|
-
### 功能点任务清单模板 (tasks.md)
|
|
235
|
-
|
|
236
|
-
```markdown
|
|
237
|
-
# 功能点任务清单
|
|
238
|
-
|
|
239
|
-
## 功能点信息
|
|
240
|
-
- **功能点ID**: FP-ZCCZ1-001
|
|
241
|
-
- **功能名称**: 国有产权转让申请
|
|
242
|
-
- **复杂度**: P0
|
|
243
|
-
- **创建时间**: 2026-03-31 10:00:00
|
|
244
|
-
|
|
245
|
-
## 任务概览
|
|
246
|
-
|
|
247
|
-
| 任务组 | 任务数 | 已完成 | 进度 |
|
|
248
|
-
|--------|--------|--------|------|
|
|
249
|
-
| 数据库 | 2 | 2 | 100% |
|
|
250
|
-
| 后端 | 4 | 2 | 50% |
|
|
251
|
-
| 前端 | 4 | 0 | 0% |
|
|
252
|
-
| 菜单 | 1 | 0 | 0% |
|
|
253
|
-
| 测试 | 2 | 0 | 0% |
|
|
254
|
-
|
|
255
|
-
## 详细任务列表
|
|
256
|
-
|
|
257
|
-
### 1. 数据库任务组
|
|
258
|
-
|
|
259
|
-
#### 1.1 创建数据库表
|
|
260
|
-
- **状态**: ✅ 已完成
|
|
261
|
-
- **开始时间**: 2026-03-31 10:05:00
|
|
262
|
-
- **完成时间**: 2026-03-31 10:10:00
|
|
263
|
-
- **输出文件**: `sql/equity_transfer_apply.sql`
|
|
264
|
-
- **执行结果**: 成功创建表 equity_transfer_apply
|
|
265
|
-
|
|
266
|
-
#### 1.2 插入字典数据
|
|
267
|
-
- **状态**: ✅ 已完成
|
|
268
|
-
- **开始时间**: 2026-03-31 10:10:00
|
|
269
|
-
- **完成时间**: 2026-03-31 10:12:00
|
|
270
|
-
- **输出文件**: `sql/dict_data.sql`
|
|
271
|
-
- **执行结果**: 成功插入5条字典数据
|
|
272
|
-
|
|
273
|
-
### 2. 后端任务组
|
|
274
|
-
|
|
275
|
-
#### 2.1 生成实体类
|
|
276
|
-
- **状态**: ✅ 已完成
|
|
277
|
-
- **开始时间**: 2026-03-31 10:15:00
|
|
278
|
-
- **完成时间**: 2026-03-31 10:20:00
|
|
279
|
-
- **输出文件**: `EquityTransferApply.java`
|
|
280
|
-
- **执行结果**: 成功生成实体类
|
|
281
|
-
|
|
282
|
-
#### 2.2 生成Mapper
|
|
283
|
-
- **状态**: ✅ 已完成
|
|
284
|
-
- **开始时间**: 2026-03-31 10:20:00
|
|
285
|
-
- **完成时间**: 2026-03-31 10:25:00
|
|
286
|
-
- **输出文件**:
|
|
287
|
-
- `EquityTransferApplyMapper.java`
|
|
288
|
-
- `EquityTransferApplyMapper.xml`
|
|
289
|
-
- **执行结果**: 成功生成Mapper接口和XML
|
|
290
|
-
|
|
291
|
-
#### 2.3 生成Service
|
|
292
|
-
- **状态**: 🔄 执行中
|
|
293
|
-
- **开始时间**: 2026-03-31 10:25:00
|
|
294
|
-
- **依赖**: 2.2 生成Mapper
|
|
295
|
-
- **输出文件**:
|
|
296
|
-
- `IEquityTransferApplyService.java`
|
|
297
|
-
- `EquityTransferApplyServiceImpl.java`
|
|
298
|
-
|
|
299
|
-
#### 2.4 生成Controller
|
|
300
|
-
- **状态**: ⏳ 待执行
|
|
301
|
-
- **依赖**: 2.3 生成Service
|
|
302
|
-
- **输出文件**: `EquityTransferApplyController.java`
|
|
303
|
-
|
|
304
|
-
### 3. 前端任务组
|
|
305
|
-
|
|
306
|
-
#### 3.1 生成API接口
|
|
307
|
-
- **状态**: ⏳ 待执行
|
|
308
|
-
- **依赖**: 2.4 生成Controller
|
|
309
|
-
- **输出文件**: `equity-transfer.js`
|
|
310
|
-
|
|
311
|
-
#### 3.2 生成列表页
|
|
312
|
-
- **状态**: ⏳ 待执行
|
|
313
|
-
- **依赖**: 3.1 生成API接口
|
|
314
|
-
- **输出文件**: `index.vue`
|
|
315
|
-
|
|
316
|
-
#### 3.3 生成表单页
|
|
317
|
-
- **状态**: ⏳ 待执行
|
|
318
|
-
- **依赖**: 3.1 生成API接口
|
|
319
|
-
- **输出文件**: `form.vue`
|
|
320
|
-
|
|
321
|
-
#### 3.4 生成详情页
|
|
322
|
-
- **状态**: ⏳ 待执行
|
|
323
|
-
- **依赖**: 3.1 生成API接口
|
|
324
|
-
- **输出文件**: `detail.vue`
|
|
325
|
-
|
|
326
|
-
### 4. 菜单配置任务组
|
|
327
|
-
|
|
328
|
-
#### 4.1 配置菜单权限
|
|
329
|
-
- **状态**: ⏳ 待执行
|
|
330
|
-
- **依赖**: 3.4 生成详情页
|
|
331
|
-
- **输出文件**: `menu_equity_transfer_apply.sql`
|
|
332
|
-
|
|
333
|
-
### 5. 测试任务组
|
|
334
|
-
|
|
335
|
-
#### 5.1 编写单元测试
|
|
336
|
-
- **状态**: ⏳ 待执行
|
|
337
|
-
- **依赖**: 4.1 配置菜单权限
|
|
338
|
-
- **输出文件**: `EquityTransferApplyTest.java`
|
|
339
|
-
|
|
340
|
-
#### 5.2 编写集成测试
|
|
341
|
-
- **状态**: ⏳ 待执行
|
|
342
|
-
- **依赖**: 5.1 编写单元测试
|
|
343
|
-
- **输出文件**: `EquityTransferApplyIntegrationTest.java`
|
|
344
|
-
|
|
345
|
-
## 执行历史
|
|
346
|
-
|
|
347
|
-
| 时间 | 任务 | 操作 | 结果 |
|
|
348
|
-
|------|------|------|------|
|
|
349
|
-
| 10:05 | 1.1 创建数据库表 | 开始 | - |
|
|
350
|
-
| 10:10 | 1.1 创建数据库表 | 完成 | 成功 |
|
|
351
|
-
| 10:10 | 1.2 插入字典数据 | 开始 | - |
|
|
352
|
-
| 10:12 | 1.2 插入字典数据 | 完成 | 成功 |
|
|
353
|
-
| 10:15 | 2.1 生成实体类 | 开始 | - |
|
|
354
|
-
| 10:20 | 2.1 生成实体类 | 完成 | 成功 |
|
|
355
|
-
| 10:20 | 2.2 生成Mapper | 开始 | - |
|
|
356
|
-
| 10:25 | 2.2 生成Mapper | 完成 | 成功 |
|
|
357
|
-
| 10:25 | 2.3 生成Service | 开始 | - |
|
|
358
|
-
|
|
359
|
-
## 重试记录
|
|
360
|
-
|
|
361
|
-
| 任务 | 尝试次数 | 最后错误 | 解决方案 |
|
|
362
|
-
|------|---------|---------|---------|
|
|
363
|
-
| - | - | - | - |
|
|
364
|
-
|
|
365
|
-
## 恢复点
|
|
366
|
-
|
|
367
|
-
**当前恢复点**: 2.3 生成Service
|
|
368
|
-
|
|
369
|
-
**恢复操作**:
|
|
370
|
-
1. 读取 spec.md 获取服务接口定义
|
|
371
|
-
2. 调用 pdd-template-engine 渲染 Service 模板
|
|
372
|
-
3. 输出 IEquityTransferApplyService.java
|
|
373
|
-
4. 输出 EquityTransferApplyServiceImpl.java
|
|
374
|
-
5. 更新任务状态为完成
|
|
375
|
-
6. 继续执行 2.4 生成Controller
|
|
376
|
-
```
|
|
377
|
-
|
|
378
|
-
## 中断续传流程
|
|
379
|
-
|
|
380
|
-
```
|
|
381
|
-
用户发出"继续执行"命令
|
|
382
|
-
│
|
|
383
|
-
▼
|
|
384
|
-
┌─────────────────────────────────┐
|
|
385
|
-
│ 1. 读取状态文件 │
|
|
386
|
-
│ - 读取 .pdd/state-{moduleId}.json │
|
|
387
|
-
│ - 解析当前进度 │
|
|
388
|
-
│ - 识别当前任务 │
|
|
389
|
-
└─────────────────────────────────┘
|
|
390
|
-
│
|
|
391
|
-
▼
|
|
392
|
-
┌─────────────────────────────────┐
|
|
393
|
-
│ 2. 验证恢复条件 │
|
|
394
|
-
│ - 检查依赖是否满足 │
|
|
395
|
-
│ - 检查文件是否完整 │
|
|
396
|
-
│ - 检查环境是否就绪 │
|
|
397
|
-
└─────────────────────────────────┘
|
|
398
|
-
│
|
|
399
|
-
├─ 条件满足 ─────────────────────┐
|
|
400
|
-
│ │
|
|
401
|
-
▼ ▼
|
|
402
|
-
┌─────────────────────────────────┐
|
|
403
|
-
│ 3. 恢复执行上下文 │
|
|
404
|
-
│ - 加载 spec.md │
|
|
405
|
-
│ - 加载已完成的代码 │
|
|
406
|
-
│ - 准备模板变量 │
|
|
407
|
-
└─────────────────────────────────┘
|
|
408
|
-
│
|
|
409
|
-
▼
|
|
410
|
-
┌─────────────────────────────────┐
|
|
411
|
-
│ 4. 继续执行当前任务 │
|
|
412
|
-
│ - 从断点处继续 │
|
|
413
|
-
│ - 执行剩余步骤 │
|
|
414
|
-
│ - 更新任务状态 │
|
|
415
|
-
└─────────────────────────────────┘
|
|
416
|
-
│
|
|
417
|
-
▼
|
|
418
|
-
┌─────────────────────────────────┐
|
|
419
|
-
│ 5. 继续后续任务 │
|
|
420
|
-
│ - 按依赖顺序执行 │
|
|
421
|
-
│ - 定期保存检查点 │
|
|
422
|
-
└─────────────────────────────────┘
|
|
423
|
-
```
|
|
424
|
-
|
|
425
|
-
## 状态文件格式
|
|
426
|
-
|
|
427
|
-
### .pdd/state-{moduleId}.json 完整示例
|
|
428
|
-
|
|
429
|
-
```json
|
|
430
|
-
{
|
|
431
|
-
"version": "2.0",
|
|
432
|
-
"moduleId": "ZCCZ-1",
|
|
433
|
-
"moduleName": "国有产权转让",
|
|
434
|
-
"startedAt": "2026-03-31T09:00:00Z",
|
|
435
|
-
"updatedAt": "2026-03-31T11:30:00Z",
|
|
436
|
-
|
|
437
|
-
"currentPhase": "feature-loop",
|
|
438
|
-
"currentFeature": "FP-ZCCZ1-002",
|
|
439
|
-
"currentTaskGroup": "backend",
|
|
440
|
-
"currentTask": "generate-service",
|
|
441
|
-
|
|
442
|
-
"progress": {
|
|
443
|
-
"totalFeatures": 5,
|
|
444
|
-
"completedFeatures": 1,
|
|
445
|
-
"skippedFeatures": 0,
|
|
446
|
-
"failedFeatures": 0,
|
|
447
|
-
"overallProgress": 25
|
|
448
|
-
},
|
|
449
|
-
|
|
450
|
-
"featureList": [
|
|
451
|
-
{
|
|
452
|
-
"id": "FP-ZCCZ1-001",
|
|
453
|
-
"name": "转让申请",
|
|
454
|
-
"priority": "P0",
|
|
455
|
-
"status": "completed",
|
|
456
|
-
"completedAt": "2026-03-31T10:30:00Z"
|
|
457
|
-
},
|
|
458
|
-
{
|
|
459
|
-
"id": "FP-ZCCZ1-002",
|
|
460
|
-
"name": "转让审批",
|
|
461
|
-
"priority": "P0",
|
|
462
|
-
"status": "in_progress",
|
|
463
|
-
"startedAt": "2026-03-31T11:00:00Z",
|
|
464
|
-
"progress": 45
|
|
465
|
-
},
|
|
466
|
-
{
|
|
467
|
-
"id": "FP-ZCCZ1-003",
|
|
468
|
-
"name": "转让公告",
|
|
469
|
-
"priority": "P1",
|
|
470
|
-
"status": "pending"
|
|
471
|
-
},
|
|
472
|
-
{
|
|
473
|
-
"id": "FP-ZCCZ1-004",
|
|
474
|
-
"name": "转让成交",
|
|
475
|
-
"priority": "P1",
|
|
476
|
-
"status": "pending"
|
|
477
|
-
},
|
|
478
|
-
{
|
|
479
|
-
"id": "FP-ZCCZ1-005",
|
|
480
|
-
"name": "转让归档",
|
|
481
|
-
"priority": "P2",
|
|
482
|
-
"status": "pending"
|
|
483
|
-
}
|
|
484
|
-
],
|
|
485
|
-
|
|
486
|
-
"taskProgress": {
|
|
487
|
-
"FP-ZCCZ1-001": {
|
|
488
|
-
"status": "completed",
|
|
489
|
-
"taskGroups": {
|
|
490
|
-
"database": {
|
|
491
|
-
"status": "completed",
|
|
492
|
-
"tasks": {
|
|
493
|
-
"create-table": "completed",
|
|
494
|
-
"insert-dict-data": "completed"
|
|
495
|
-
}
|
|
496
|
-
},
|
|
497
|
-
"backend": {
|
|
498
|
-
"status": "completed",
|
|
499
|
-
"tasks": {
|
|
500
|
-
"generate-entity": "completed",
|
|
501
|
-
"generate-mapper": "completed",
|
|
502
|
-
"generate-service": "completed",
|
|
503
|
-
"generate-controller": "completed"
|
|
504
|
-
}
|
|
505
|
-
},
|
|
506
|
-
"frontend": {
|
|
507
|
-
"status": "completed",
|
|
508
|
-
"tasks": {
|
|
509
|
-
"generate-api": "completed",
|
|
510
|
-
"generate-list-page": "completed",
|
|
511
|
-
"generate-form-page": "completed",
|
|
512
|
-
"generate-detail-page": "completed"
|
|
513
|
-
}
|
|
514
|
-
},
|
|
515
|
-
"menu": {
|
|
516
|
-
"status": "completed",
|
|
517
|
-
"tasks": {
|
|
518
|
-
"config-menu": "completed"
|
|
519
|
-
}
|
|
520
|
-
},
|
|
521
|
-
"test": {
|
|
522
|
-
"status": "completed",
|
|
523
|
-
"tasks": {
|
|
524
|
-
"unit-test": "completed",
|
|
525
|
-
"integration-test": "completed"
|
|
526
|
-
}
|
|
527
|
-
}
|
|
528
|
-
}
|
|
529
|
-
},
|
|
530
|
-
"FP-ZCCZ1-002": {
|
|
531
|
-
"status": "in_progress",
|
|
532
|
-
"taskGroups": {
|
|
533
|
-
"database": {
|
|
534
|
-
"status": "completed",
|
|
535
|
-
"tasks": {
|
|
536
|
-
"create-table": "completed",
|
|
537
|
-
"insert-dict-data": "completed"
|
|
538
|
-
}
|
|
539
|
-
},
|
|
540
|
-
"backend": {
|
|
541
|
-
"status": "in_progress",
|
|
542
|
-
"tasks": {
|
|
543
|
-
"generate-entity": "completed",
|
|
544
|
-
"generate-mapper": "completed",
|
|
545
|
-
"generate-service": "in_progress",
|
|
546
|
-
"generate-controller": "pending"
|
|
547
|
-
}
|
|
548
|
-
},
|
|
549
|
-
"frontend": {
|
|
550
|
-
"status": "pending",
|
|
551
|
-
"tasks": {
|
|
552
|
-
"generate-api": "pending",
|
|
553
|
-
"generate-list-page": "pending",
|
|
554
|
-
"generate-form-page": "pending",
|
|
555
|
-
"generate-detail-page": "pending"
|
|
556
|
-
}
|
|
557
|
-
},
|
|
558
|
-
"menu": {
|
|
559
|
-
"status": "pending",
|
|
560
|
-
"tasks": {
|
|
561
|
-
"config-menu": "pending"
|
|
562
|
-
}
|
|
563
|
-
},
|
|
564
|
-
"test": {
|
|
565
|
-
"status": "pending",
|
|
566
|
-
"tasks": {
|
|
567
|
-
"unit-test": "pending",
|
|
568
|
-
"integration-test": "pending"
|
|
569
|
-
}
|
|
570
|
-
}
|
|
571
|
-
}
|
|
572
|
-
}
|
|
573
|
-
},
|
|
574
|
-
|
|
575
|
-
"retryHistory": [
|
|
576
|
-
{
|
|
577
|
-
"taskId": "FP-ZCCZ1-002/generate-service",
|
|
578
|
-
"attempt": 1,
|
|
579
|
-
"error": "缺少依赖接口定义",
|
|
580
|
-
"timestamp": "2026-03-31T11:15:00Z",
|
|
581
|
-
"resolved": true,
|
|
582
|
-
"resolution": "补充接口定义后重试成功"
|
|
583
|
-
}
|
|
584
|
-
],
|
|
585
|
-
|
|
586
|
-
"checkpoints": [
|
|
587
|
-
{
|
|
588
|
-
"id": "cp-001",
|
|
589
|
-
"timestamp": "2026-03-31T09:30:00Z",
|
|
590
|
-
"phase": "business-analysis",
|
|
591
|
-
"description": "业务分析完成"
|
|
592
|
-
},
|
|
593
|
-
{
|
|
594
|
-
"id": "cp-002",
|
|
595
|
-
"timestamp": "2026-03-31T10:00:00Z",
|
|
596
|
-
"phase": "spec-generation",
|
|
597
|
-
"description": "规格生成完成"
|
|
598
|
-
},
|
|
599
|
-
{
|
|
600
|
-
"id": "cp-003",
|
|
601
|
-
"timestamp": "2026-03-31T10:30:00Z",
|
|
602
|
-
"phase": "feature-loop",
|
|
603
|
-
"featureId": "FP-ZCCZ1-001",
|
|
604
|
-
"description": "功能点FP-ZCCZ1-001完成"
|
|
605
|
-
}
|
|
606
|
-
],
|
|
607
|
-
|
|
608
|
-
"context": {
|
|
609
|
-
"specPath": "docs/dev-specs/ZCCZ-1/spec.md",
|
|
610
|
-
"outputPath": "Asset-Management-Platform/asset-equity",
|
|
611
|
-
"templateVariables": {
|
|
612
|
-
"package": "com.sjjk.equity.transfer",
|
|
613
|
-
"moduleName": "equity-transfer",
|
|
614
|
-
"permissionPrefix": "equity:transfer"
|
|
615
|
-
}
|
|
616
|
-
}
|
|
617
|
-
}
|
|
618
|
-
```
|
|
619
|
-
|
|
620
|
-
## Guardrails
|
|
621
|
-
|
|
622
|
-
- 每个任务必须有明确的开始和结束状态
|
|
623
|
-
- 任务失败必须记录原因和重试次数
|
|
624
|
-
- 检查点保存频率:每完成一个任务组
|
|
625
|
-
- 状态文件更新频率:每次任务状态变更
|
|
626
|
-
- 重试次数限制:同一任务最多3次
|
|
627
|
-
- 依赖检查:执行任务前必须验证依赖是否满足
|
|
628
|
-
|
|
629
|
-
## 与其他技能协作
|
|
630
|
-
|
|
631
|
-
| 协作技能 | 协作方式 | 传入数据 | 期望输出 |
|
|
632
|
-
|---------|---------|---------|---------|
|
|
633
|
-
| **pdd-main** | 被调用 | 功能点矩阵 | 任务清单 |
|
|
634
|
-
| **pdd-implement-feature** | 被调用 | 任务清单 | 任务执行结果 |
|
|
635
|
-
| **pdd-template-engine** | 调用 | 任务上下文 | 生成的代码 |
|
|
636
|
-
| **pdd-code-reviewer** | 调用 | 完成的任务 | 审查结果 |
|
|
1
|
+
---
|
|
2
|
+
name: pdd-task-manager
|
|
3
|
+
description: PDD任务管理技能,提供细粒度任务清单管理和断点续传能力。当用户需要继续中断任务或恢复执行进度时自动触发。支持中文触发:任务管理、断点续传、恢复进度、继续执行。
|
|
4
|
+
license: MIT
|
|
5
|
+
compatibility: 需要 .pdd/state-{moduleId}.json 状态文件,支持多模块并行执行
|
|
6
|
+
metadata:
|
|
7
|
+
author: "neuqik@hotmail.com"
|
|
8
|
+
version: "1.0"
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# PDD任务管理技能
|
|
12
|
+
|
|
13
|
+
## 技能描述
|
|
14
|
+
|
|
15
|
+
PDD任务管理技能提供细粒度的任务清单管理和断点续传能力,支持在开发过程中中断后精确恢复执行进度,确保不会遗漏任何执行步骤。
|
|
16
|
+
|
|
17
|
+
## 触发条件
|
|
18
|
+
|
|
19
|
+
- PDD流程开始时自动创建任务清单
|
|
20
|
+
- 用户发出"继续执行"、"恢复进度"等命令
|
|
21
|
+
- 功能点实现过程中需要跟踪子任务进度
|
|
22
|
+
|
|
23
|
+
## 核心能力
|
|
24
|
+
|
|
25
|
+
### 1. 分层任务清单
|
|
26
|
+
|
|
27
|
+
```yaml
|
|
28
|
+
任务层级:
|
|
29
|
+
模块级 (Module)
|
|
30
|
+
└── 功能点级 (Feature)
|
|
31
|
+
└── 任务组级 (TaskGroup)
|
|
32
|
+
└── 原子任务级 (Task)
|
|
33
|
+
|
|
34
|
+
示例:
|
|
35
|
+
ZCCZ-1 (模块)
|
|
36
|
+
└── FP-ZCCZ1-001 (功能点)
|
|
37
|
+
├── database (任务组)
|
|
38
|
+
│ ├── create-table
|
|
39
|
+
│ └── insert-dict-data
|
|
40
|
+
├── backend (任务组)
|
|
41
|
+
│ ├── generate-entity
|
|
42
|
+
│ ├── generate-mapper
|
|
43
|
+
│ ├── generate-service
|
|
44
|
+
│ └── generate-controller
|
|
45
|
+
└── frontend (任务组)
|
|
46
|
+
├── generate-api
|
|
47
|
+
├── generate-list-page
|
|
48
|
+
├── generate-form-page
|
|
49
|
+
└── generate-detail-page
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### 2. 任务状态跟踪
|
|
53
|
+
|
|
54
|
+
```yaml
|
|
55
|
+
任务状态:
|
|
56
|
+
- pending: 待执行
|
|
57
|
+
- in_progress: 执行中
|
|
58
|
+
- completed: 已完成
|
|
59
|
+
- failed: 失败
|
|
60
|
+
- skipped: 已跳过
|
|
61
|
+
- blocked: 被阻塞
|
|
62
|
+
|
|
63
|
+
状态转换规则:
|
|
64
|
+
pending → in_progress: 开始执行任务
|
|
65
|
+
in_progress → completed: 任务执行成功
|
|
66
|
+
in_progress → failed: 任务执行失败
|
|
67
|
+
in_progress → blocked: 任务被阻塞(依赖未满足)
|
|
68
|
+
failed → in_progress: 重试任务
|
|
69
|
+
pending → skipped: 跳过任务
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### 3. 断点续传机制
|
|
73
|
+
|
|
74
|
+
```yaml
|
|
75
|
+
状态文件路径规则:
|
|
76
|
+
- 单模块模式: .pdd/state.json
|
|
77
|
+
- 多模块模式: .pdd/state-{moduleId}.json
|
|
78
|
+
- 示例: .pdd/state-ZCCZ-1.json, .pdd/state-ZCPG-1.json
|
|
79
|
+
|
|
80
|
+
目录结构:
|
|
81
|
+
.pdd/
|
|
82
|
+
├── state-ZCCZ-1.json # 国有产权转让模块状态
|
|
83
|
+
├── state-ZCCZ-2.json # 资产转让模块状态
|
|
84
|
+
├── state-ZCPG-1.json # 评估备案模块状态
|
|
85
|
+
└── archive/ # 已完成模块归档目录
|
|
86
|
+
└── state-ZCCZ-1.completed.json
|
|
87
|
+
|
|
88
|
+
并发安全机制:
|
|
89
|
+
- 每个模块独立状态文件,避免冲突
|
|
90
|
+
- 文件锁机制防止并发写入
|
|
91
|
+
- 状态文件版本控制
|
|
92
|
+
|
|
93
|
+
内容结构:
|
|
94
|
+
version: "2.0"
|
|
95
|
+
moduleId: "ZCCZ-1"
|
|
96
|
+
moduleName: "国有产权转让"
|
|
97
|
+
|
|
98
|
+
currentPhase: "feature-loop"
|
|
99
|
+
currentFeature: "FP-ZCCZ1-002"
|
|
100
|
+
currentTaskGroup: "backend"
|
|
101
|
+
currentTask: "generate-service"
|
|
102
|
+
|
|
103
|
+
progress:
|
|
104
|
+
totalFeatures: 5
|
|
105
|
+
completedFeatures: 1
|
|
106
|
+
currentFeatureProgress: 45%
|
|
107
|
+
|
|
108
|
+
taskProgress:
|
|
109
|
+
FP-ZCCZ1-001:
|
|
110
|
+
status: completed
|
|
111
|
+
completedAt: "2026-03-31T10:30:00Z"
|
|
112
|
+
taskGroups:
|
|
113
|
+
database: completed
|
|
114
|
+
backend: completed
|
|
115
|
+
frontend: completed
|
|
116
|
+
menu: completed
|
|
117
|
+
|
|
118
|
+
FP-ZCCZ1-002:
|
|
119
|
+
status: in_progress
|
|
120
|
+
startedAt: "2026-03-31T11:00:00Z"
|
|
121
|
+
taskGroups:
|
|
122
|
+
database: completed
|
|
123
|
+
backend:
|
|
124
|
+
generate-entity: completed
|
|
125
|
+
generate-mapper: completed
|
|
126
|
+
generate-service: in_progress
|
|
127
|
+
generate-controller: pending
|
|
128
|
+
frontend: pending
|
|
129
|
+
menu: pending
|
|
130
|
+
|
|
131
|
+
retryHistory:
|
|
132
|
+
- taskId: "generate-service"
|
|
133
|
+
attempt: 1
|
|
134
|
+
error: "缺少依赖接口定义"
|
|
135
|
+
timestamp: "2026-03-31T11:15:00Z"
|
|
136
|
+
resolved: true
|
|
137
|
+
resolution: "补充接口定义后重试成功"
|
|
138
|
+
|
|
139
|
+
checkpoints:
|
|
140
|
+
- id: "cp-001"
|
|
141
|
+
timestamp: "2026-03-31T10:00:00Z"
|
|
142
|
+
phase: "spec-generation"
|
|
143
|
+
description: "规格生成完成"
|
|
144
|
+
|
|
145
|
+
- id: "cp-002"
|
|
146
|
+
timestamp: "2026-03-31T11:00:00Z"
|
|
147
|
+
phase: "feature-loop"
|
|
148
|
+
featureId: "FP-ZCCZ1-001"
|
|
149
|
+
description: "第一个功能点完成"
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
### 4. 任务依赖管理
|
|
153
|
+
|
|
154
|
+
```yaml
|
|
155
|
+
依赖类型:
|
|
156
|
+
- sequential: 顺序依赖(A完成后才能执行B)
|
|
157
|
+
- parallel: 并行依赖(A和B可以同时执行)
|
|
158
|
+
- conditional: 条件依赖(满足条件后才能执行)
|
|
159
|
+
|
|
160
|
+
依赖规则:
|
|
161
|
+
backend → frontend: 后端完成后才能开发前端
|
|
162
|
+
database → backend: 数据库完成后才能开发后端
|
|
163
|
+
generate-entity → generate-mapper: 实体类完成后才能生成Mapper
|
|
164
|
+
generate-service → generate-controller: Service完成后才能生成Controller
|
|
165
|
+
|
|
166
|
+
依赖图示例:
|
|
167
|
+
database
|
|
168
|
+
│
|
|
169
|
+
▼
|
|
170
|
+
generate-entity
|
|
171
|
+
│
|
|
172
|
+
├──────────────┐
|
|
173
|
+
▼ ▼
|
|
174
|
+
generate-mapper generate-service
|
|
175
|
+
│ │
|
|
176
|
+
│ ▼
|
|
177
|
+
│ generate-controller
|
|
178
|
+
│ │
|
|
179
|
+
└──────────────┤
|
|
180
|
+
▼
|
|
181
|
+
frontend
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
## 执行流程
|
|
185
|
+
|
|
186
|
+
```
|
|
187
|
+
PDD流程启动
|
|
188
|
+
│
|
|
189
|
+
▼
|
|
190
|
+
┌─────────────────────────────────┐
|
|
191
|
+
│ 1. 创建模块级任务清单 │
|
|
192
|
+
│ - 解析功能点矩阵 │
|
|
193
|
+
│ - 生成功能点列表 │
|
|
194
|
+
│ - 初始化状态文件 │
|
|
195
|
+
└─────────────────────────────────┘
|
|
196
|
+
│
|
|
197
|
+
▼
|
|
198
|
+
┌─────────────────────────────────┐
|
|
199
|
+
│ 2. 为每个功能点生成任务清单 │
|
|
200
|
+
│ - 数据库任务组 │
|
|
201
|
+
│ - 后端任务组 │
|
|
202
|
+
│ - 前端任务组 │
|
|
203
|
+
│ - 菜单配置任务组 │
|
|
204
|
+
│ - 测试任务组 │
|
|
205
|
+
└─────────────────────────────────┘
|
|
206
|
+
│
|
|
207
|
+
▼
|
|
208
|
+
┌─────────────────────────────────┐
|
|
209
|
+
│ 3. 执行任务并更新状态 │
|
|
210
|
+
│ - 标记任务开始 │
|
|
211
|
+
│ - 执行任务 │
|
|
212
|
+
│ - 记录结果 │
|
|
213
|
+
│ - 更新进度 │
|
|
214
|
+
└─────────────────────────────────┘
|
|
215
|
+
│
|
|
216
|
+
▼
|
|
217
|
+
┌─────────────────────────────────┐
|
|
218
|
+
│ 4. 检查点保存 │
|
|
219
|
+
│ - 每完成一个任务组保存检查点 │
|
|
220
|
+
│ - 记录关键状态变更 │
|
|
221
|
+
└─────────────────────────────────┘
|
|
222
|
+
│
|
|
223
|
+
▼
|
|
224
|
+
┌─────────────────────────────────┐
|
|
225
|
+
│ 5. 异常处理与恢复 │
|
|
226
|
+
│ - 记录失败原因 │
|
|
227
|
+
│ - 保存恢复上下文 │
|
|
228
|
+
│ - 等待用户指令 │
|
|
229
|
+
└─────────────────────────────────┘
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
## 任务清单模板
|
|
233
|
+
|
|
234
|
+
### 功能点任务清单模板 (tasks.md)
|
|
235
|
+
|
|
236
|
+
```markdown
|
|
237
|
+
# 功能点任务清单
|
|
238
|
+
|
|
239
|
+
## 功能点信息
|
|
240
|
+
- **功能点ID**: FP-ZCCZ1-001
|
|
241
|
+
- **功能名称**: 国有产权转让申请
|
|
242
|
+
- **复杂度**: P0
|
|
243
|
+
- **创建时间**: 2026-03-31 10:00:00
|
|
244
|
+
|
|
245
|
+
## 任务概览
|
|
246
|
+
|
|
247
|
+
| 任务组 | 任务数 | 已完成 | 进度 |
|
|
248
|
+
|--------|--------|--------|------|
|
|
249
|
+
| 数据库 | 2 | 2 | 100% |
|
|
250
|
+
| 后端 | 4 | 2 | 50% |
|
|
251
|
+
| 前端 | 4 | 0 | 0% |
|
|
252
|
+
| 菜单 | 1 | 0 | 0% |
|
|
253
|
+
| 测试 | 2 | 0 | 0% |
|
|
254
|
+
|
|
255
|
+
## 详细任务列表
|
|
256
|
+
|
|
257
|
+
### 1. 数据库任务组
|
|
258
|
+
|
|
259
|
+
#### 1.1 创建数据库表
|
|
260
|
+
- **状态**: ✅ 已完成
|
|
261
|
+
- **开始时间**: 2026-03-31 10:05:00
|
|
262
|
+
- **完成时间**: 2026-03-31 10:10:00
|
|
263
|
+
- **输出文件**: `sql/equity_transfer_apply.sql`
|
|
264
|
+
- **执行结果**: 成功创建表 equity_transfer_apply
|
|
265
|
+
|
|
266
|
+
#### 1.2 插入字典数据
|
|
267
|
+
- **状态**: ✅ 已完成
|
|
268
|
+
- **开始时间**: 2026-03-31 10:10:00
|
|
269
|
+
- **完成时间**: 2026-03-31 10:12:00
|
|
270
|
+
- **输出文件**: `sql/dict_data.sql`
|
|
271
|
+
- **执行结果**: 成功插入5条字典数据
|
|
272
|
+
|
|
273
|
+
### 2. 后端任务组
|
|
274
|
+
|
|
275
|
+
#### 2.1 生成实体类
|
|
276
|
+
- **状态**: ✅ 已完成
|
|
277
|
+
- **开始时间**: 2026-03-31 10:15:00
|
|
278
|
+
- **完成时间**: 2026-03-31 10:20:00
|
|
279
|
+
- **输出文件**: `EquityTransferApply.java`
|
|
280
|
+
- **执行结果**: 成功生成实体类
|
|
281
|
+
|
|
282
|
+
#### 2.2 生成Mapper
|
|
283
|
+
- **状态**: ✅ 已完成
|
|
284
|
+
- **开始时间**: 2026-03-31 10:20:00
|
|
285
|
+
- **完成时间**: 2026-03-31 10:25:00
|
|
286
|
+
- **输出文件**:
|
|
287
|
+
- `EquityTransferApplyMapper.java`
|
|
288
|
+
- `EquityTransferApplyMapper.xml`
|
|
289
|
+
- **执行结果**: 成功生成Mapper接口和XML
|
|
290
|
+
|
|
291
|
+
#### 2.3 生成Service
|
|
292
|
+
- **状态**: 🔄 执行中
|
|
293
|
+
- **开始时间**: 2026-03-31 10:25:00
|
|
294
|
+
- **依赖**: 2.2 生成Mapper
|
|
295
|
+
- **输出文件**:
|
|
296
|
+
- `IEquityTransferApplyService.java`
|
|
297
|
+
- `EquityTransferApplyServiceImpl.java`
|
|
298
|
+
|
|
299
|
+
#### 2.4 生成Controller
|
|
300
|
+
- **状态**: ⏳ 待执行
|
|
301
|
+
- **依赖**: 2.3 生成Service
|
|
302
|
+
- **输出文件**: `EquityTransferApplyController.java`
|
|
303
|
+
|
|
304
|
+
### 3. 前端任务组
|
|
305
|
+
|
|
306
|
+
#### 3.1 生成API接口
|
|
307
|
+
- **状态**: ⏳ 待执行
|
|
308
|
+
- **依赖**: 2.4 生成Controller
|
|
309
|
+
- **输出文件**: `equity-transfer.js`
|
|
310
|
+
|
|
311
|
+
#### 3.2 生成列表页
|
|
312
|
+
- **状态**: ⏳ 待执行
|
|
313
|
+
- **依赖**: 3.1 生成API接口
|
|
314
|
+
- **输出文件**: `index.vue`
|
|
315
|
+
|
|
316
|
+
#### 3.3 生成表单页
|
|
317
|
+
- **状态**: ⏳ 待执行
|
|
318
|
+
- **依赖**: 3.1 生成API接口
|
|
319
|
+
- **输出文件**: `form.vue`
|
|
320
|
+
|
|
321
|
+
#### 3.4 生成详情页
|
|
322
|
+
- **状态**: ⏳ 待执行
|
|
323
|
+
- **依赖**: 3.1 生成API接口
|
|
324
|
+
- **输出文件**: `detail.vue`
|
|
325
|
+
|
|
326
|
+
### 4. 菜单配置任务组
|
|
327
|
+
|
|
328
|
+
#### 4.1 配置菜单权限
|
|
329
|
+
- **状态**: ⏳ 待执行
|
|
330
|
+
- **依赖**: 3.4 生成详情页
|
|
331
|
+
- **输出文件**: `menu_equity_transfer_apply.sql`
|
|
332
|
+
|
|
333
|
+
### 5. 测试任务组
|
|
334
|
+
|
|
335
|
+
#### 5.1 编写单元测试
|
|
336
|
+
- **状态**: ⏳ 待执行
|
|
337
|
+
- **依赖**: 4.1 配置菜单权限
|
|
338
|
+
- **输出文件**: `EquityTransferApplyTest.java`
|
|
339
|
+
|
|
340
|
+
#### 5.2 编写集成测试
|
|
341
|
+
- **状态**: ⏳ 待执行
|
|
342
|
+
- **依赖**: 5.1 编写单元测试
|
|
343
|
+
- **输出文件**: `EquityTransferApplyIntegrationTest.java`
|
|
344
|
+
|
|
345
|
+
## 执行历史
|
|
346
|
+
|
|
347
|
+
| 时间 | 任务 | 操作 | 结果 |
|
|
348
|
+
|------|------|------|------|
|
|
349
|
+
| 10:05 | 1.1 创建数据库表 | 开始 | - |
|
|
350
|
+
| 10:10 | 1.1 创建数据库表 | 完成 | 成功 |
|
|
351
|
+
| 10:10 | 1.2 插入字典数据 | 开始 | - |
|
|
352
|
+
| 10:12 | 1.2 插入字典数据 | 完成 | 成功 |
|
|
353
|
+
| 10:15 | 2.1 生成实体类 | 开始 | - |
|
|
354
|
+
| 10:20 | 2.1 生成实体类 | 完成 | 成功 |
|
|
355
|
+
| 10:20 | 2.2 生成Mapper | 开始 | - |
|
|
356
|
+
| 10:25 | 2.2 生成Mapper | 完成 | 成功 |
|
|
357
|
+
| 10:25 | 2.3 生成Service | 开始 | - |
|
|
358
|
+
|
|
359
|
+
## 重试记录
|
|
360
|
+
|
|
361
|
+
| 任务 | 尝试次数 | 最后错误 | 解决方案 |
|
|
362
|
+
|------|---------|---------|---------|
|
|
363
|
+
| - | - | - | - |
|
|
364
|
+
|
|
365
|
+
## 恢复点
|
|
366
|
+
|
|
367
|
+
**当前恢复点**: 2.3 生成Service
|
|
368
|
+
|
|
369
|
+
**恢复操作**:
|
|
370
|
+
1. 读取 spec.md 获取服务接口定义
|
|
371
|
+
2. 调用 pdd-template-engine 渲染 Service 模板
|
|
372
|
+
3. 输出 IEquityTransferApplyService.java
|
|
373
|
+
4. 输出 EquityTransferApplyServiceImpl.java
|
|
374
|
+
5. 更新任务状态为完成
|
|
375
|
+
6. 继续执行 2.4 生成Controller
|
|
376
|
+
```
|
|
377
|
+
|
|
378
|
+
## 中断续传流程
|
|
379
|
+
|
|
380
|
+
```
|
|
381
|
+
用户发出"继续执行"命令
|
|
382
|
+
│
|
|
383
|
+
▼
|
|
384
|
+
┌─────────────────────────────────┐
|
|
385
|
+
│ 1. 读取状态文件 │
|
|
386
|
+
│ - 读取 .pdd/state-{moduleId}.json │
|
|
387
|
+
│ - 解析当前进度 │
|
|
388
|
+
│ - 识别当前任务 │
|
|
389
|
+
└─────────────────────────────────┘
|
|
390
|
+
│
|
|
391
|
+
▼
|
|
392
|
+
┌─────────────────────────────────┐
|
|
393
|
+
│ 2. 验证恢复条件 │
|
|
394
|
+
│ - 检查依赖是否满足 │
|
|
395
|
+
│ - 检查文件是否完整 │
|
|
396
|
+
│ - 检查环境是否就绪 │
|
|
397
|
+
└─────────────────────────────────┘
|
|
398
|
+
│
|
|
399
|
+
├─ 条件满足 ─────────────────────┐
|
|
400
|
+
│ │
|
|
401
|
+
▼ ▼
|
|
402
|
+
┌─────────────────────────────────┐
|
|
403
|
+
│ 3. 恢复执行上下文 │
|
|
404
|
+
│ - 加载 spec.md │
|
|
405
|
+
│ - 加载已完成的代码 │
|
|
406
|
+
│ - 准备模板变量 │
|
|
407
|
+
└─────────────────────────────────┘
|
|
408
|
+
│
|
|
409
|
+
▼
|
|
410
|
+
┌─────────────────────────────────┐
|
|
411
|
+
│ 4. 继续执行当前任务 │
|
|
412
|
+
│ - 从断点处继续 │
|
|
413
|
+
│ - 执行剩余步骤 │
|
|
414
|
+
│ - 更新任务状态 │
|
|
415
|
+
└─────────────────────────────────┘
|
|
416
|
+
│
|
|
417
|
+
▼
|
|
418
|
+
┌─────────────────────────────────┐
|
|
419
|
+
│ 5. 继续后续任务 │
|
|
420
|
+
│ - 按依赖顺序执行 │
|
|
421
|
+
│ - 定期保存检查点 │
|
|
422
|
+
└─────────────────────────────────┘
|
|
423
|
+
```
|
|
424
|
+
|
|
425
|
+
## 状态文件格式
|
|
426
|
+
|
|
427
|
+
### .pdd/state-{moduleId}.json 完整示例
|
|
428
|
+
|
|
429
|
+
```json
|
|
430
|
+
{
|
|
431
|
+
"version": "2.0",
|
|
432
|
+
"moduleId": "ZCCZ-1",
|
|
433
|
+
"moduleName": "国有产权转让",
|
|
434
|
+
"startedAt": "2026-03-31T09:00:00Z",
|
|
435
|
+
"updatedAt": "2026-03-31T11:30:00Z",
|
|
436
|
+
|
|
437
|
+
"currentPhase": "feature-loop",
|
|
438
|
+
"currentFeature": "FP-ZCCZ1-002",
|
|
439
|
+
"currentTaskGroup": "backend",
|
|
440
|
+
"currentTask": "generate-service",
|
|
441
|
+
|
|
442
|
+
"progress": {
|
|
443
|
+
"totalFeatures": 5,
|
|
444
|
+
"completedFeatures": 1,
|
|
445
|
+
"skippedFeatures": 0,
|
|
446
|
+
"failedFeatures": 0,
|
|
447
|
+
"overallProgress": 25
|
|
448
|
+
},
|
|
449
|
+
|
|
450
|
+
"featureList": [
|
|
451
|
+
{
|
|
452
|
+
"id": "FP-ZCCZ1-001",
|
|
453
|
+
"name": "转让申请",
|
|
454
|
+
"priority": "P0",
|
|
455
|
+
"status": "completed",
|
|
456
|
+
"completedAt": "2026-03-31T10:30:00Z"
|
|
457
|
+
},
|
|
458
|
+
{
|
|
459
|
+
"id": "FP-ZCCZ1-002",
|
|
460
|
+
"name": "转让审批",
|
|
461
|
+
"priority": "P0",
|
|
462
|
+
"status": "in_progress",
|
|
463
|
+
"startedAt": "2026-03-31T11:00:00Z",
|
|
464
|
+
"progress": 45
|
|
465
|
+
},
|
|
466
|
+
{
|
|
467
|
+
"id": "FP-ZCCZ1-003",
|
|
468
|
+
"name": "转让公告",
|
|
469
|
+
"priority": "P1",
|
|
470
|
+
"status": "pending"
|
|
471
|
+
},
|
|
472
|
+
{
|
|
473
|
+
"id": "FP-ZCCZ1-004",
|
|
474
|
+
"name": "转让成交",
|
|
475
|
+
"priority": "P1",
|
|
476
|
+
"status": "pending"
|
|
477
|
+
},
|
|
478
|
+
{
|
|
479
|
+
"id": "FP-ZCCZ1-005",
|
|
480
|
+
"name": "转让归档",
|
|
481
|
+
"priority": "P2",
|
|
482
|
+
"status": "pending"
|
|
483
|
+
}
|
|
484
|
+
],
|
|
485
|
+
|
|
486
|
+
"taskProgress": {
|
|
487
|
+
"FP-ZCCZ1-001": {
|
|
488
|
+
"status": "completed",
|
|
489
|
+
"taskGroups": {
|
|
490
|
+
"database": {
|
|
491
|
+
"status": "completed",
|
|
492
|
+
"tasks": {
|
|
493
|
+
"create-table": "completed",
|
|
494
|
+
"insert-dict-data": "completed"
|
|
495
|
+
}
|
|
496
|
+
},
|
|
497
|
+
"backend": {
|
|
498
|
+
"status": "completed",
|
|
499
|
+
"tasks": {
|
|
500
|
+
"generate-entity": "completed",
|
|
501
|
+
"generate-mapper": "completed",
|
|
502
|
+
"generate-service": "completed",
|
|
503
|
+
"generate-controller": "completed"
|
|
504
|
+
}
|
|
505
|
+
},
|
|
506
|
+
"frontend": {
|
|
507
|
+
"status": "completed",
|
|
508
|
+
"tasks": {
|
|
509
|
+
"generate-api": "completed",
|
|
510
|
+
"generate-list-page": "completed",
|
|
511
|
+
"generate-form-page": "completed",
|
|
512
|
+
"generate-detail-page": "completed"
|
|
513
|
+
}
|
|
514
|
+
},
|
|
515
|
+
"menu": {
|
|
516
|
+
"status": "completed",
|
|
517
|
+
"tasks": {
|
|
518
|
+
"config-menu": "completed"
|
|
519
|
+
}
|
|
520
|
+
},
|
|
521
|
+
"test": {
|
|
522
|
+
"status": "completed",
|
|
523
|
+
"tasks": {
|
|
524
|
+
"unit-test": "completed",
|
|
525
|
+
"integration-test": "completed"
|
|
526
|
+
}
|
|
527
|
+
}
|
|
528
|
+
}
|
|
529
|
+
},
|
|
530
|
+
"FP-ZCCZ1-002": {
|
|
531
|
+
"status": "in_progress",
|
|
532
|
+
"taskGroups": {
|
|
533
|
+
"database": {
|
|
534
|
+
"status": "completed",
|
|
535
|
+
"tasks": {
|
|
536
|
+
"create-table": "completed",
|
|
537
|
+
"insert-dict-data": "completed"
|
|
538
|
+
}
|
|
539
|
+
},
|
|
540
|
+
"backend": {
|
|
541
|
+
"status": "in_progress",
|
|
542
|
+
"tasks": {
|
|
543
|
+
"generate-entity": "completed",
|
|
544
|
+
"generate-mapper": "completed",
|
|
545
|
+
"generate-service": "in_progress",
|
|
546
|
+
"generate-controller": "pending"
|
|
547
|
+
}
|
|
548
|
+
},
|
|
549
|
+
"frontend": {
|
|
550
|
+
"status": "pending",
|
|
551
|
+
"tasks": {
|
|
552
|
+
"generate-api": "pending",
|
|
553
|
+
"generate-list-page": "pending",
|
|
554
|
+
"generate-form-page": "pending",
|
|
555
|
+
"generate-detail-page": "pending"
|
|
556
|
+
}
|
|
557
|
+
},
|
|
558
|
+
"menu": {
|
|
559
|
+
"status": "pending",
|
|
560
|
+
"tasks": {
|
|
561
|
+
"config-menu": "pending"
|
|
562
|
+
}
|
|
563
|
+
},
|
|
564
|
+
"test": {
|
|
565
|
+
"status": "pending",
|
|
566
|
+
"tasks": {
|
|
567
|
+
"unit-test": "pending",
|
|
568
|
+
"integration-test": "pending"
|
|
569
|
+
}
|
|
570
|
+
}
|
|
571
|
+
}
|
|
572
|
+
}
|
|
573
|
+
},
|
|
574
|
+
|
|
575
|
+
"retryHistory": [
|
|
576
|
+
{
|
|
577
|
+
"taskId": "FP-ZCCZ1-002/generate-service",
|
|
578
|
+
"attempt": 1,
|
|
579
|
+
"error": "缺少依赖接口定义",
|
|
580
|
+
"timestamp": "2026-03-31T11:15:00Z",
|
|
581
|
+
"resolved": true,
|
|
582
|
+
"resolution": "补充接口定义后重试成功"
|
|
583
|
+
}
|
|
584
|
+
],
|
|
585
|
+
|
|
586
|
+
"checkpoints": [
|
|
587
|
+
{
|
|
588
|
+
"id": "cp-001",
|
|
589
|
+
"timestamp": "2026-03-31T09:30:00Z",
|
|
590
|
+
"phase": "business-analysis",
|
|
591
|
+
"description": "业务分析完成"
|
|
592
|
+
},
|
|
593
|
+
{
|
|
594
|
+
"id": "cp-002",
|
|
595
|
+
"timestamp": "2026-03-31T10:00:00Z",
|
|
596
|
+
"phase": "spec-generation",
|
|
597
|
+
"description": "规格生成完成"
|
|
598
|
+
},
|
|
599
|
+
{
|
|
600
|
+
"id": "cp-003",
|
|
601
|
+
"timestamp": "2026-03-31T10:30:00Z",
|
|
602
|
+
"phase": "feature-loop",
|
|
603
|
+
"featureId": "FP-ZCCZ1-001",
|
|
604
|
+
"description": "功能点FP-ZCCZ1-001完成"
|
|
605
|
+
}
|
|
606
|
+
],
|
|
607
|
+
|
|
608
|
+
"context": {
|
|
609
|
+
"specPath": "docs/dev-specs/ZCCZ-1/spec.md",
|
|
610
|
+
"outputPath": "Asset-Management-Platform/asset-equity",
|
|
611
|
+
"templateVariables": {
|
|
612
|
+
"package": "com.sjjk.equity.transfer",
|
|
613
|
+
"moduleName": "equity-transfer",
|
|
614
|
+
"permissionPrefix": "equity:transfer"
|
|
615
|
+
}
|
|
616
|
+
}
|
|
617
|
+
}
|
|
618
|
+
```
|
|
619
|
+
|
|
620
|
+
## Guardrails
|
|
621
|
+
|
|
622
|
+
- 每个任务必须有明确的开始和结束状态
|
|
623
|
+
- 任务失败必须记录原因和重试次数
|
|
624
|
+
- 检查点保存频率:每完成一个任务组
|
|
625
|
+
- 状态文件更新频率:每次任务状态变更
|
|
626
|
+
- 重试次数限制:同一任务最多3次
|
|
627
|
+
- 依赖检查:执行任务前必须验证依赖是否满足
|
|
628
|
+
|
|
629
|
+
## 与其他技能协作
|
|
630
|
+
|
|
631
|
+
| 协作技能 | 协作方式 | 传入数据 | 期望输出 |
|
|
632
|
+
|---------|---------|---------|---------|
|
|
633
|
+
| **pdd-main** | 被调用 | 功能点矩阵 | 任务清单 |
|
|
634
|
+
| **pdd-implement-feature** | 被调用 | 任务清单 | 任务执行结果 |
|
|
635
|
+
| **pdd-template-engine** | 调用 | 任务上下文 | 生成的代码 |
|
|
636
|
+
| **pdd-code-reviewer** | 调用 | 完成的任务 | 审查结果 |
|