ai-dev-analytics 1.1.12 → 2.0.1

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.
Files changed (192) hide show
  1. package/README.en.md +51 -57
  2. package/README.md +68 -485
  3. package/dist/cli/commands/doctor.d.ts +2 -0
  4. package/dist/cli/commands/doctor.d.ts.map +1 -0
  5. package/dist/cli/commands/doctor.js +125 -0
  6. package/dist/cli/commands/doctor.js.map +1 -0
  7. package/dist/cli/commands/init.d.ts.map +1 -1
  8. package/dist/cli/commands/init.js +19 -176
  9. package/dist/cli/commands/init.js.map +1 -1
  10. package/dist/cli/commands/memory.d.ts.map +1 -1
  11. package/dist/cli/commands/memory.js +3 -13
  12. package/dist/cli/commands/memory.js.map +1 -1
  13. package/dist/cli/commands/rules.d.ts +0 -10
  14. package/dist/cli/commands/rules.d.ts.map +1 -1
  15. package/dist/cli/commands/rules.js +9 -34
  16. package/dist/cli/commands/rules.js.map +1 -1
  17. package/dist/cli/commands/skills.d.ts +0 -5
  18. package/dist/cli/commands/skills.d.ts.map +1 -1
  19. package/dist/cli/commands/skills.js +5 -24
  20. package/dist/cli/commands/skills.js.map +1 -1
  21. package/dist/cli/commands/sync.d.ts +2 -0
  22. package/dist/cli/commands/sync.d.ts.map +1 -0
  23. package/dist/cli/commands/sync.js +28 -0
  24. package/dist/cli/commands/sync.js.map +1 -0
  25. package/dist/cli/index.js +26 -85
  26. package/dist/cli/index.js.map +1 -1
  27. package/dist/{schemas/run-json.d.ts → internal/runtime/schema.d.ts} +4 -18
  28. package/dist/internal/runtime/schema.d.ts.map +1 -0
  29. package/dist/{schemas/run-json.js → internal/runtime/schema.js} +5 -9
  30. package/dist/internal/runtime/schema.js.map +1 -0
  31. package/dist/{utils/run-data.d.ts → internal/runtime/state.d.ts} +7 -8
  32. package/dist/internal/runtime/state.d.ts.map +1 -0
  33. package/dist/{utils/run-data.js → internal/runtime/state.js} +11 -12
  34. package/dist/internal/runtime/state.js.map +1 -0
  35. package/dist/internal/runtime/summary.d.ts +8 -0
  36. package/dist/internal/runtime/summary.d.ts.map +1 -0
  37. package/dist/internal/runtime/summary.js +260 -0
  38. package/dist/internal/runtime/summary.js.map +1 -0
  39. package/dist/internal/runtime/tokens.d.ts.map +1 -0
  40. package/dist/internal/runtime/tokens.js.map +1 -0
  41. package/dist/mcp/server.js +9 -8
  42. package/dist/mcp/server.js.map +1 -1
  43. package/dist/schemas/aida-project.d.ts +27 -1
  44. package/dist/schemas/aida-project.d.ts.map +1 -1
  45. package/dist/schemas/rules.d.ts +15 -0
  46. package/dist/schemas/rules.d.ts.map +1 -0
  47. package/dist/schemas/rules.js +5 -0
  48. package/dist/schemas/rules.js.map +1 -0
  49. package/dist/services/project-build.d.ts +44 -0
  50. package/dist/services/project-build.d.ts.map +1 -0
  51. package/dist/services/project-build.js +32 -0
  52. package/dist/services/project-build.js.map +1 -0
  53. package/dist/services/project-health.d.ts +14 -0
  54. package/dist/services/project-health.d.ts.map +1 -0
  55. package/dist/services/project-health.js +19 -0
  56. package/dist/services/project-health.js.map +1 -0
  57. package/dist/services/security-audit.d.ts +59 -0
  58. package/dist/services/security-audit.d.ts.map +1 -0
  59. package/dist/services/security-audit.js +638 -0
  60. package/dist/services/security-audit.js.map +1 -0
  61. package/dist/utils/ai-build.d.ts +3 -8
  62. package/dist/utils/ai-build.d.ts.map +1 -1
  63. package/dist/utils/ai-build.js +31 -117
  64. package/dist/utils/ai-build.js.map +1 -1
  65. package/dist/utils/guide.d.ts +3 -3
  66. package/dist/utils/guide.d.ts.map +1 -1
  67. package/dist/utils/guide.js +91 -68
  68. package/dist/utils/guide.js.map +1 -1
  69. package/dist/utils/import.d.ts.map +1 -1
  70. package/dist/utils/import.js +4 -15
  71. package/dist/utils/import.js.map +1 -1
  72. package/dist/utils/memory.d.ts +2 -0
  73. package/dist/utils/memory.d.ts.map +1 -1
  74. package/dist/utils/memory.js +440 -95
  75. package/dist/utils/memory.js.map +1 -1
  76. package/dist/utils/paths.d.ts +2 -10
  77. package/dist/utils/paths.d.ts.map +1 -1
  78. package/dist/utils/paths.js +5 -17
  79. package/dist/utils/paths.js.map +1 -1
  80. package/dist/utils/project-health.d.ts +39 -0
  81. package/dist/utils/project-health.d.ts.map +1 -0
  82. package/dist/utils/project-health.js +286 -0
  83. package/dist/utils/project-health.js.map +1 -0
  84. package/dist/utils/registry.d.ts +11 -0
  85. package/dist/utils/registry.d.ts.map +1 -0
  86. package/dist/utils/registry.js +65 -0
  87. package/dist/utils/registry.js.map +1 -0
  88. package/dist/utils/rules.d.ts +11 -1
  89. package/dist/utils/rules.d.ts.map +1 -1
  90. package/dist/utils/rules.js +76 -8
  91. package/dist/utils/rules.js.map +1 -1
  92. package/dist/utils/skills.d.ts +6 -9
  93. package/dist/utils/skills.d.ts.map +1 -1
  94. package/dist/utils/skills.js +26 -54
  95. package/dist/utils/skills.js.map +1 -1
  96. package/package.json +12 -14
  97. package/dist/cli/commands/build.d.ts +0 -2
  98. package/dist/cli/commands/build.d.ts.map +0 -1
  99. package/dist/cli/commands/build.js +0 -56
  100. package/dist/cli/commands/build.js.map +0 -1
  101. package/dist/cli/commands/dashboard.d.ts +0 -2
  102. package/dist/cli/commands/dashboard.d.ts.map +0 -1
  103. package/dist/cli/commands/dashboard.js +0 -70
  104. package/dist/cli/commands/dashboard.js.map +0 -1
  105. package/dist/cli/commands/import.d.ts +0 -2
  106. package/dist/cli/commands/import.d.ts.map +0 -1
  107. package/dist/cli/commands/import.js +0 -71
  108. package/dist/cli/commands/import.js.map +0 -1
  109. package/dist/cli/commands/log.d.ts +0 -2
  110. package/dist/cli/commands/log.d.ts.map +0 -1
  111. package/dist/cli/commands/log.js +0 -440
  112. package/dist/cli/commands/log.js.map +0 -1
  113. package/dist/cli/commands/merge-data.d.ts +0 -20
  114. package/dist/cli/commands/merge-data.d.ts.map +0 -1
  115. package/dist/cli/commands/merge-data.js +0 -574
  116. package/dist/cli/commands/merge-data.js.map +0 -1
  117. package/dist/cli/commands/merge.d.ts +0 -2
  118. package/dist/cli/commands/merge.d.ts.map +0 -1
  119. package/dist/cli/commands/merge.js +0 -82
  120. package/dist/cli/commands/merge.js.map +0 -1
  121. package/dist/cli/commands/migrate-dir.d.ts +0 -6
  122. package/dist/cli/commands/migrate-dir.d.ts.map +0 -1
  123. package/dist/cli/commands/migrate-dir.js +0 -125
  124. package/dist/cli/commands/migrate-dir.js.map +0 -1
  125. package/dist/cli/commands/migrate-legacy.d.ts +0 -2
  126. package/dist/cli/commands/migrate-legacy.d.ts.map +0 -1
  127. package/dist/cli/commands/migrate-legacy.js +0 -143
  128. package/dist/cli/commands/migrate-legacy.js.map +0 -1
  129. package/dist/cli/commands/migrate.d.ts +0 -2
  130. package/dist/cli/commands/migrate.d.ts.map +0 -1
  131. package/dist/cli/commands/migrate.js +0 -300
  132. package/dist/cli/commands/migrate.js.map +0 -1
  133. package/dist/cli/commands/reindex.d.ts +0 -14
  134. package/dist/cli/commands/reindex.d.ts.map +0 -1
  135. package/dist/cli/commands/reindex.js +0 -139
  136. package/dist/cli/commands/reindex.js.map +0 -1
  137. package/dist/cli/commands/report.d.ts +0 -2
  138. package/dist/cli/commands/report.d.ts.map +0 -1
  139. package/dist/cli/commands/report.js +0 -219
  140. package/dist/cli/commands/report.js.map +0 -1
  141. package/dist/cli/commands/start.d.ts +0 -2
  142. package/dist/cli/commands/start.d.ts.map +0 -1
  143. package/dist/cli/commands/start.js +0 -155
  144. package/dist/cli/commands/start.js.map +0 -1
  145. package/dist/cli/commands/status.d.ts +0 -2
  146. package/dist/cli/commands/status.d.ts.map +0 -1
  147. package/dist/cli/commands/status.js +0 -70
  148. package/dist/cli/commands/status.js.map +0 -1
  149. package/dist/cli/commands/update.d.ts +0 -2
  150. package/dist/cli/commands/update.d.ts.map +0 -1
  151. package/dist/cli/commands/update.js +0 -73
  152. package/dist/cli/commands/update.js.map +0 -1
  153. package/dist/schemas/run-json.d.ts.map +0 -1
  154. package/dist/schemas/run-json.js.map +0 -1
  155. package/dist/server/api.d.ts +0 -30
  156. package/dist/server/api.d.ts.map +0 -1
  157. package/dist/server/api.js +0 -239
  158. package/dist/server/api.js.map +0 -1
  159. package/dist/server/index.d.ts +0 -2
  160. package/dist/server/index.d.ts.map +0 -1
  161. package/dist/server/index.js +0 -228
  162. package/dist/server/index.js.map +0 -1
  163. package/dist/utils/run-data.d.ts.map +0 -1
  164. package/dist/utils/run-data.js.map +0 -1
  165. package/dist/utils/tokens.d.ts.map +0 -1
  166. package/dist/utils/tokens.js.map +0 -1
  167. package/src/assets/skills/audit.md +0 -98
  168. package/src/assets/skills/bug-fixer.md +0 -43
  169. package/src/assets/skills/code-generator.md +0 -71
  170. package/src/assets/skills/commit-code.md +0 -67
  171. package/src/assets/skills/dashboard-generator.md +0 -65
  172. package/src/assets/skills/dev-flower.md +0 -85
  173. package/src/assets/skills/deviation-recorder.md +0 -83
  174. package/src/assets/skills/docx-to-markdown.md +0 -69
  175. package/src/assets/skills/mcp-reviewer.md +0 -38
  176. package/src/assets/skills/requirement-analyzer.md +0 -103
  177. package/src/assets/skills/rules-evolver.md +0 -47
  178. package/src/assets/skills/self-reviewer.md +0 -49
  179. package/src/assets/skills/task-splitter.md +0 -60
  180. package/src/assets/skills/workflow-orchestrator.md +0 -209
  181. package/src/assets/templates/demo-run.json +0 -910
  182. package/src/assets/templates/run.json +0 -63
  183. package/src/dashboard/assets/index-B8QcPcg7.css +0 -1
  184. package/src/dashboard/assets/index-DcAl6lhS.js +0 -111
  185. package/src/dashboard/demo/overview.json +0 -71
  186. package/src/dashboard/demo/run.en.json +0 -1169
  187. package/src/dashboard/demo/run.json +0 -2667
  188. package/src/dashboard/demo/run.zh.json +0 -1169
  189. package/src/dashboard/demo/runs.json +0 -19
  190. package/src/dashboard/index.html +0 -13
  191. /package/dist/{utils → internal/runtime}/tokens.d.ts +0 -0
  192. /package/dist/{utils → internal/runtime}/tokens.js +0 -0
@@ -1,1169 +0,0 @@
1
- {
2
- "meta": {
3
- "schemaVersion": "2.0",
4
- "runId": "feat/order-management",
5
- "project": "saas-crm-platform",
6
- "developer": "zhang-wei",
7
- "branch": "feat/order-management",
8
- "aiModel": "claude-sonnet-4-6",
9
- "aiTool": "claude-code",
10
- "startTime": "2026-03-20T09:00:00.000Z",
11
- "endTime": "2026-03-20T10:18:20.000Z",
12
- "status": "completed",
13
- "prdPhases": [
14
- "PRD1",
15
- "PRD2",
16
- "PRD3"
17
- ]
18
- },
19
- "summary": {
20
- "totalTasks": 22,
21
- "completedTasks": 22,
22
- "bugCount": 4,
23
- "deviationCount": 6,
24
- "reviewCount": 5,
25
- "reviewPassCount": 4,
26
- "reviewFailCount": 1,
27
- "rulesSedimented": 6,
28
- "prdPhaseCount": 3,
29
- "filesChanged": 20,
30
- "linesAdded": 2280,
31
- "linesRemoved": 188
32
- },
33
- "metrics": {
34
- "aiDeviationRate": 27.3,
35
- "bugRate": 18.2,
36
- "reviewPassRate": 80,
37
- "rulesSedimentedCount": 6,
38
- "averageLinesPerTask": 104,
39
- "totalDevelopmentTimeSeconds": 4700,
40
- "actualWorkSeconds": 5668,
41
- "nodeTimeBreakdown": {
42
- "Code Generation": 3958,
43
- "Self Review": 680,
44
- "Bug Fix": 450,
45
- "Deviation Fix": 580,
46
- "Requirement Analysis": 240,
47
- "Requirement Ingestion": 180,
48
- "Task Split": 120,
49
- "Build Verification": 245
50
- },
51
- "efficiencyMultiplier": 10.2,
52
- "estimatedManualHours": 16,
53
- "tokenCost": 1.84
54
- },
55
- "context": {
56
- "currentStage": "completed",
57
- "currentTaskId": "TASK-22",
58
- "currentPrdPhase": "PRD3",
59
- "lastUpdated": "2026-03-20T10:18:20.000Z"
60
- },
61
- "tasks": [
62
- {
63
- "taskId": "TASK-01",
64
- "title": "定义订单实体类型与接口",
65
- "stageName": "阶段一:核心数据层",
66
- "prdPhase": "PRD1",
67
- "status": "done",
68
- "acceptance": "",
69
- "createdAt": "2026-03-20T09:12:00.000Z",
70
- "startedAt": "2026-03-20T09:12:00.000Z",
71
- "completedAt": "2026-03-20T09:12:40.000Z"
72
- },
73
- {
74
- "taskId": "TASK-02",
75
- "title": "创建订单 API Service 封装层",
76
- "stageName": "阶段一:核心数据层",
77
- "prdPhase": "PRD1",
78
- "status": "done",
79
- "acceptance": "",
80
- "createdAt": "2026-03-20T09:12:55.000Z",
81
- "startedAt": "2026-03-20T09:12:55.000Z",
82
- "completedAt": "2026-03-20T09:15:20.000Z"
83
- },
84
- {
85
- "taskId": "TASK-03",
86
- "title": "实现 useOrders 数据 Hook",
87
- "stageName": "阶段一:核心数据层",
88
- "prdPhase": "PRD1",
89
- "status": "done",
90
- "acceptance": "",
91
- "createdAt": "2026-03-20T09:15:35.000Z",
92
- "startedAt": "2026-03-20T09:15:35.000Z",
93
- "completedAt": "2026-03-20T09:18:45.000Z"
94
- },
95
- {
96
- "taskId": "TASK-04",
97
- "title": "构建订单列表 Table 组件",
98
- "stageName": "阶段二:列表与状态",
99
- "prdPhase": "PRD1",
100
- "status": "done",
101
- "acceptance": "",
102
- "createdAt": "2026-03-20T09:19:00.000Z",
103
- "startedAt": "2026-03-20T09:19:00.000Z",
104
- "completedAt": "2026-03-20T09:23:25.000Z"
105
- },
106
- {
107
- "taskId": "TASK-05",
108
- "title": "添加订单状态 Badge 组件",
109
- "stageName": "阶段二:列表与状态",
110
- "prdPhase": "PRD1",
111
- "status": "done",
112
- "acceptance": "",
113
- "createdAt": "2026-03-20T09:23:40.000Z",
114
- "startedAt": "2026-03-20T09:23:40.000Z",
115
- "completedAt": "2026-03-20T09:24:48.000Z"
116
- },
117
- {
118
- "taskId": "TASK-06",
119
- "title": "实现订单详情侧滑抽屉面板",
120
- "stageName": "阶段三:详情与操作",
121
- "prdPhase": "PRD1",
122
- "status": "done",
123
- "acceptance": "",
124
- "createdAt": "2026-03-20T09:25:00.000Z",
125
- "startedAt": "2026-03-20T09:25:00.000Z",
126
- "completedAt": "2026-03-20T09:30:40.000Z"
127
- },
128
- {
129
- "taskId": "TASK-07",
130
- "title": "批量操作工具栏与权限控制",
131
- "stageName": "阶段三:详情与操作",
132
- "prdPhase": "PRD1",
133
- "status": "done",
134
- "acceptance": "",
135
- "createdAt": "2026-03-20T09:30:55.000Z",
136
- "startedAt": "2026-03-20T09:30:55.000Z",
137
- "completedAt": "2026-03-20T09:32:55.000Z"
138
- },
139
- {
140
- "taskId": "TASK-08",
141
- "title": "PRD1 构建验证",
142
- "stageName": "构建验证",
143
- "prdPhase": "PRD1",
144
- "status": "done",
145
- "acceptance": "",
146
- "createdAt": "2026-03-20T09:33:10.000Z",
147
- "startedAt": "2026-03-20T09:33:10.000Z",
148
- "completedAt": "2026-03-20T09:34:25.000Z"
149
- },
150
- {
151
- "taskId": "TASK-09",
152
- "title": "创建营收趋势 ECharts 折线图",
153
- "stageName": "阶段四:图表组件",
154
- "prdPhase": "PRD2",
155
- "status": "done",
156
- "acceptance": "",
157
- "createdAt": "2026-03-20T09:40:00.000Z",
158
- "startedAt": "2026-03-20T09:40:00.000Z",
159
- "completedAt": "2026-03-20T09:44:20.000Z"
160
- },
161
- {
162
- "taskId": "TASK-10",
163
- "title": "构建订单状态分布饼图",
164
- "stageName": "阶段四:图表组件",
165
- "prdPhase": "PRD2",
166
- "status": "done",
167
- "acceptance": "",
168
- "createdAt": "2026-03-20T09:44:35.000Z",
169
- "startedAt": "2026-03-20T09:44:35.000Z",
170
- "completedAt": "2026-03-20T09:47:15.000Z"
171
- },
172
- {
173
- "taskId": "TASK-11",
174
- "title": "实现日期区间筛选栏组件",
175
- "stageName": "阶段五:筛选与搜索",
176
- "prdPhase": "PRD2",
177
- "status": "done",
178
- "acceptance": "",
179
- "createdAt": "2026-03-20T09:47:30.000Z",
180
- "startedAt": "2026-03-20T09:47:30.000Z",
181
- "completedAt": "2026-03-20T09:50:35.000Z"
182
- },
183
- {
184
- "taskId": "TASK-12",
185
- "title": "添加关键词搜索与多选筛选器",
186
- "stageName": "阶段五:筛选与搜索",
187
- "prdPhase": "PRD2",
188
- "status": "done",
189
- "acceptance": "",
190
- "createdAt": "2026-03-20T09:50:50.000Z",
191
- "startedAt": "2026-03-20T09:50:50.000Z",
192
- "completedAt": "2026-03-20T09:54:35.000Z"
193
- },
194
- {
195
- "taskId": "TASK-13",
196
- "title": "创建 TOP10 热销商品排行表",
197
- "stageName": "阶段六:统计报表",
198
- "prdPhase": "PRD2",
199
- "status": "done",
200
- "acceptance": "",
201
- "createdAt": "2026-03-20T09:54:50.000Z",
202
- "startedAt": "2026-03-20T09:54:50.000Z",
203
- "completedAt": "2026-03-20T09:57:15.000Z"
204
- },
205
- {
206
- "taskId": "TASK-14",
207
- "title": "实现订单数据 CSV 导出功能",
208
- "stageName": "阶段六:统计报表",
209
- "prdPhase": "PRD2",
210
- "status": "done",
211
- "acceptance": "",
212
- "createdAt": "2026-03-20T09:57:30.000Z",
213
- "startedAt": "2026-03-20T09:57:30.000Z",
214
- "completedAt": "2026-03-20T09:59:40.000Z"
215
- },
216
- {
217
- "taskId": "TASK-15",
218
- "title": "添加汇总统计 KPI 卡片行",
219
- "stageName": "阶段六:统计报表",
220
- "prdPhase": "PRD2",
221
- "status": "done",
222
- "acceptance": "",
223
- "createdAt": "2026-03-20T09:59:55.000Z",
224
- "startedAt": "2026-03-20T09:59:55.000Z",
225
- "completedAt": "2026-03-20T10:01:35.000Z"
226
- },
227
- {
228
- "taskId": "TASK-16",
229
- "title": "PRD2 构建验证",
230
- "stageName": "构建验证",
231
- "prdPhase": "PRD2",
232
- "status": "done",
233
- "acceptance": "",
234
- "createdAt": "2026-03-20T10:01:50.000Z",
235
- "startedAt": "2026-03-20T10:01:50.000Z",
236
- "completedAt": "2026-03-20T10:03:40.000Z"
237
- },
238
- {
239
- "taskId": "TASK-17",
240
- "title": "修复订单合计小数精度计算 Bug",
241
- "stageName": "缺陷修复",
242
- "prdPhase": "PRD3",
243
- "status": "done",
244
- "acceptance": "",
245
- "createdAt": "2026-03-20T10:08:20.000Z",
246
- "startedAt": "2026-03-20T10:08:20.000Z",
247
- "completedAt": "2026-03-20T10:09:48.000Z"
248
- },
249
- {
250
- "taskId": "TASK-18",
251
- "title": "修复日期选择器时区转换错误",
252
- "stageName": "缺陷修复",
253
- "prdPhase": "PRD3",
254
- "status": "done",
255
- "acceptance": "",
256
- "createdAt": "2026-03-20T10:10:00.000Z",
257
- "startedAt": "2026-03-20T10:10:00.000Z",
258
- "completedAt": "2026-03-20T10:12:05.000Z"
259
- },
260
- {
261
- "taskId": "TASK-19",
262
- "title": "修复空状态组件被加载遮挡问题",
263
- "stageName": "缺陷修复",
264
- "prdPhase": "PRD3",
265
- "status": "done",
266
- "acceptance": "",
267
- "createdAt": "2026-03-20T10:12:20.000Z",
268
- "startedAt": "2026-03-20T10:12:20.000Z",
269
- "completedAt": "2026-03-20T10:13:02.000Z"
270
- },
271
- {
272
- "taskId": "TASK-20",
273
- "title": "优化筛选状态路由切换后重置",
274
- "stageName": "性能与体验",
275
- "prdPhase": "PRD3",
276
- "status": "done",
277
- "acceptance": "",
278
- "createdAt": "2026-03-20T10:13:20.000Z",
279
- "startedAt": "2026-03-20T10:13:20.000Z",
280
- "completedAt": "2026-03-20T10:14:38.000Z"
281
- },
282
- {
283
- "taskId": "TASK-21",
284
- "title": "添加骨架屏提升感知加载速度",
285
- "stageName": "性能与体验",
286
- "prdPhase": "PRD3",
287
- "status": "done",
288
- "acceptance": "",
289
- "createdAt": "2026-03-20T10:14:50.000Z",
290
- "startedAt": "2026-03-20T10:14:50.000Z",
291
- "completedAt": "2026-03-20T10:16:45.000Z"
292
- },
293
- {
294
- "taskId": "TASK-22",
295
- "title": "最终全量构建与冒烟测试",
296
- "stageName": "构建验证",
297
- "prdPhase": "PRD3",
298
- "status": "done",
299
- "acceptance": "",
300
- "createdAt": "2026-03-20T10:17:00.000Z",
301
- "startedAt": "2026-03-20T10:17:00.000Z",
302
- "completedAt": "2026-03-20T10:17:58.000Z"
303
- }
304
- ],
305
- "deviations": [
306
- {
307
- "deviationId": "DEV-01",
308
- "title": "筛选条件状态在路由切换后未持久化,刷新后丢失",
309
- "rootCauseCategory": "rule-missing",
310
- "deviationCategory": "logic",
311
- "files": [
312
- "src/hooks/useOrderFilters.ts",
313
- "src/pages/OrderList.tsx"
314
- ],
315
- "detectedAt": "2026-03-20T09:34:10.000Z",
316
- "aiOutput": "",
317
- "expectedOutput": "",
318
- "ruleSedimented": null,
319
- "fixedAt": null
320
- },
321
- {
322
- "deviationId": "DEV-02",
323
- "title": "营收图表直接使用硬编码 hex 色值而非项目 Token",
324
- "rootCauseCategory": "reference-copy",
325
- "deviationCategory": "style",
326
- "files": [
327
- "src/components/charts/RevenueChart.tsx"
328
- ],
329
- "detectedAt": "2026-03-20T09:45:00.000Z",
330
- "aiOutput": "",
331
- "expectedOutput": "",
332
- "ruleSedimented": null,
333
- "fixedAt": null
334
- },
335
- {
336
- "deviationId": "DEV-03",
337
- "title": "日期区间筛选未处理时区转换,跨时区用户数据错位",
338
- "rootCauseCategory": "context-insufficient",
339
- "deviationCategory": "i18n",
340
- "files": [
341
- "src/utils/dateRange.ts",
342
- "src/components/DateRangePicker.tsx"
343
- ],
344
- "detectedAt": "2026-03-20T09:50:00.000Z",
345
- "aiOutput": "",
346
- "expectedOutput": "",
347
- "ruleSedimented": null,
348
- "fixedAt": null
349
- },
350
- {
351
- "deviationId": "DEV-04",
352
- "title": "CSV 导出包含了不应暴露给用户的内部 ID 字段",
353
- "rootCauseCategory": "misunderstanding",
354
- "deviationCategory": "logic",
355
- "files": [
356
- "src/utils/exportOrders.ts"
357
- ],
358
- "detectedAt": "2026-03-20T09:58:20.000Z",
359
- "aiOutput": "",
360
- "expectedOutput": "",
361
- "ruleSedimented": null,
362
- "fixedAt": null
363
- },
364
- {
365
- "deviationId": "DEV-05",
366
- "title": "TOP10 商品表写死了 10 行,不支持配置化 pageSize",
367
- "rootCauseCategory": "rule-missing",
368
- "deviationCategory": "component-usage",
369
- "files": [
370
- "src/components/TopProductsTable.tsx"
371
- ],
372
- "detectedAt": "2026-03-20T09:55:50.000Z",
373
- "aiOutput": "",
374
- "expectedOutput": "",
375
- "ruleSedimented": null,
376
- "fixedAt": null
377
- },
378
- {
379
- "deviationId": "DEV-06",
380
- "title": "批量操作没有做权限降级提示,直接隐藏按钮体验差",
381
- "rootCauseCategory": "misunderstanding",
382
- "deviationCategory": "ui-spacing",
383
- "files": [
384
- "src/components/BulkActionBar.tsx"
385
- ],
386
- "detectedAt": "2026-03-20T09:31:40.000Z",
387
- "aiOutput": "",
388
- "expectedOutput": "",
389
- "ruleSedimented": null,
390
- "fixedAt": null
391
- }
392
- ],
393
- "bugs": [
394
- {
395
- "bugId": "BUG-01",
396
- "title": "订单含小数件数时合计金额出现浮点精度误差",
397
- "severity": "high",
398
- "source": "user-feedback",
399
- "status": "fixed",
400
- "files": [
401
- "src/utils/orderCalc.ts"
402
- ],
403
- "fix": "使用 Decimal.js 替代原生浮点运算",
404
- "reportedAt": "2026-03-20T10:08:00.000Z",
405
- "fixedAt": "2026-03-20T10:09:48.000Z"
406
- },
407
- {
408
- "bugId": "BUG-02",
409
- "title": "日期选择器在夏令时边界时重置为当天",
410
- "severity": "high",
411
- "source": "testing",
412
- "status": "fixed",
413
- "files": [
414
- "src/components/DateRangePicker.tsx"
415
- ],
416
- "fix": "使用 dayjs UTC 模式处理夏令时边界",
417
- "reportedAt": "2026-03-20T10:09:48.000Z",
418
- "fixedAt": "2026-03-20T10:12:13.000Z"
419
- },
420
- {
421
- "bugId": "BUG-03",
422
- "title": "订单列表无数据时空状态被加载动画遮挡",
423
- "severity": "medium",
424
- "source": "self-review",
425
- "status": "fixed",
426
- "files": [
427
- "src/components/OrderList.tsx"
428
- ],
429
- "fix": "将空状态渲染提到加载状态判断之前",
430
- "reportedAt": "2026-03-20T10:12:13.000Z",
431
- "fixedAt": "2026-03-20T10:12:55.000Z"
432
- },
433
- {
434
- "bugId": "BUG-04",
435
- "title": "搜索框在中文输入法合成期间触发多余 API 请求",
436
- "severity": "medium",
437
- "source": "user-feedback",
438
- "status": "fixed",
439
- "files": [
440
- "src/components/SearchBar.tsx"
441
- ],
442
- "fix": "监听 compositionend 事件延迟触发搜索",
443
- "reportedAt": "2026-03-20T09:53:20.000Z",
444
- "fixedAt": "2026-03-20T09:54:40.000Z"
445
- }
446
- ],
447
- "reviews": [
448
- {
449
- "reviewId": "REV-01",
450
- "taskId": "TASK-06",
451
- "result": "pass",
452
- "issueCount": 0,
453
- "scope": "订单详情侧滑面板组件",
454
- "reviewedAt": "2026-03-20T09:31:20.000Z",
455
- "issues": []
456
- },
457
- {
458
- "reviewId": "REV-02",
459
- "taskId": "TASK-09",
460
- "result": "fail",
461
- "issueCount": 2,
462
- "scope": "营收趋势图表组件",
463
- "reviewedAt": "2026-03-20T09:45:00.000Z",
464
- "issues": [
465
- "图表坐标轴文字对比度不足",
466
- "无数据时缺少空状态处理"
467
- ]
468
- },
469
- {
470
- "reviewId": "REV-03",
471
- "taskId": "TASK-09",
472
- "result": "pass",
473
- "issueCount": 0,
474
- "scope": "营收趋势图表组件(修复后复查)",
475
- "reviewedAt": "2026-03-20T09:46:40.000Z",
476
- "issues": []
477
- },
478
- {
479
- "reviewId": "REV-04",
480
- "taskId": "TASK-16",
481
- "result": "pass",
482
- "issueCount": 0,
483
- "scope": "PRD2 全量自检",
484
- "reviewedAt": "2026-03-20T10:04:00.000Z",
485
- "issues": []
486
- },
487
- {
488
- "reviewId": "REV-05",
489
- "taskId": "TASK-22",
490
- "result": "pass",
491
- "issueCount": 0,
492
- "scope": "PRD3 最终全量自检",
493
- "reviewedAt": "2026-03-20T10:18:10.000Z",
494
- "issues": []
495
- }
496
- ],
497
- "rules": [
498
- {
499
- "ruleId": "RULE-01",
500
- "category": "process",
501
- "sourceDeviation": "DEV-01",
502
- "content": "筛选条件、分页、排序等 URL 状态必须通过 URL SearchParams 持久化,禁止仅存于组件 state。",
503
- "file": "rules.json#RULE-001",
504
- "sedimentedAt": "2026-03-20T09:35:50.000Z"
505
- },
506
- {
507
- "ruleId": "RULE-02",
508
- "category": "style",
509
- "sourceDeviation": "DEV-02",
510
- "content": "组件中禁止硬编码 hex/rgb 色值,必须使用项目设计 Token(CSS 变量或 tailwind 语义色)。",
511
- "file": "rules.json#RULE-002",
512
- "sedimentedAt": "2026-03-20T09:45:50.000Z"
513
- },
514
- {
515
- "ruleId": "RULE-03",
516
- "category": "i18n",
517
- "sourceDeviation": "DEV-03",
518
- "content": "所有日期比较和存储必须统一使用 UTC,展示层再按用户时区转换,禁止使用 new Date() 直接比较。",
519
- "file": "rules.json#RULE-003",
520
- "sedimentedAt": "2026-03-20T09:51:40.000Z"
521
- },
522
- {
523
- "ruleId": "RULE-04",
524
- "category": "general",
525
- "sourceDeviation": "DEV-04",
526
- "content": "导出工具函数必须维护字段白名单,只导出明确允许的字段,不得通过展开对象自动包含所有字段。",
527
- "file": "rules.json#RULE-004",
528
- "sedimentedAt": "2026-03-20T10:00:00.000Z"
529
- },
530
- {
531
- "ruleId": "RULE-05",
532
- "category": "component",
533
- "sourceDeviation": "DEV-05",
534
- "content": "列表类组件必须接受 pageSize prop,默认值使用项目全局常量 DEFAULT_PAGE_SIZE(当前值 20)。",
535
- "file": "rules.json#RULE-005",
536
- "sedimentedAt": "2026-03-20T09:57:00.000Z"
537
- },
538
- {
539
- "ruleId": "RULE-06",
540
- "category": "general",
541
- "sourceDeviation": null,
542
- "content": "每次任务完成后必须调用 aida_log_files 记录文件变更,再调用 aida_log_review 完成自检。",
543
- "file": "rules.json#RULE-006",
544
- "sedimentedAt": "2026-03-20T09:20:00.000Z"
545
- }
546
- ],
547
- "files": [
548
- {
549
- "path": "src/types/order.ts",
550
- "changeType": "created",
551
- "linesAdded": 68,
552
- "linesRemoved": 0,
553
- "changeCount": 2,
554
- "lastModified": "2026-03-20T10:18:00.000Z"
555
- },
556
- {
557
- "path": "src/services/orderApi.ts",
558
- "changeType": "created",
559
- "linesAdded": 142,
560
- "linesRemoved": 0,
561
- "changeCount": 3,
562
- "lastModified": "2026-03-20T10:18:00.000Z"
563
- },
564
- {
565
- "path": "src/hooks/useOrders.ts",
566
- "changeType": "created",
567
- "linesAdded": 95,
568
- "linesRemoved": 0,
569
- "changeCount": 4,
570
- "lastModified": "2026-03-20T10:18:00.000Z"
571
- },
572
- {
573
- "path": "src/hooks/useOrderFilters.ts",
574
- "changeType": "created",
575
- "linesAdded": 78,
576
- "linesRemoved": 12,
577
- "changeCount": 5,
578
- "lastModified": "2026-03-20T10:18:00.000Z"
579
- },
580
- {
581
- "path": "src/pages/OrderList.tsx",
582
- "changeType": "created",
583
- "linesAdded": 245,
584
- "linesRemoved": 18,
585
- "changeCount": 8,
586
- "lastModified": "2026-03-20T10:18:00.000Z"
587
- },
588
- {
589
- "path": "src/components/OrderTable.tsx",
590
- "changeType": "created",
591
- "linesAdded": 188,
592
- "linesRemoved": 0,
593
- "changeCount": 4,
594
- "lastModified": "2026-03-20T10:18:00.000Z"
595
- },
596
- {
597
- "path": "src/components/OrderStatusBadge.tsx",
598
- "changeType": "created",
599
- "linesAdded": 42,
600
- "linesRemoved": 0,
601
- "changeCount": 2,
602
- "lastModified": "2026-03-20T10:18:00.000Z"
603
- },
604
- {
605
- "path": "src/components/OrderDetailPanel.tsx",
606
- "changeType": "created",
607
- "linesAdded": 312,
608
- "linesRemoved": 25,
609
- "changeCount": 6,
610
- "lastModified": "2026-03-20T10:18:00.000Z"
611
- },
612
- {
613
- "path": "src/components/BulkActionBar.tsx",
614
- "changeType": "created",
615
- "linesAdded": 96,
616
- "linesRemoved": 8,
617
- "changeCount": 3,
618
- "lastModified": "2026-03-20T10:18:00.000Z"
619
- },
620
- {
621
- "path": "src/components/charts/RevenueChart.tsx",
622
- "changeType": "created",
623
- "linesAdded": 178,
624
- "linesRemoved": 32,
625
- "changeCount": 5,
626
- "lastModified": "2026-03-20T10:18:00.000Z"
627
- },
628
- {
629
- "path": "src/components/charts/StatusPieChart.tsx",
630
- "changeType": "created",
631
- "linesAdded": 124,
632
- "linesRemoved": 0,
633
- "changeCount": 3,
634
- "lastModified": "2026-03-20T10:18:00.000Z"
635
- },
636
- {
637
- "path": "src/components/DateRangePicker.tsx",
638
- "changeType": "created",
639
- "linesAdded": 145,
640
- "linesRemoved": 28,
641
- "changeCount": 6,
642
- "lastModified": "2026-03-20T10:18:00.000Z"
643
- },
644
- {
645
- "path": "src/components/SearchBar.tsx",
646
- "changeType": "created",
647
- "linesAdded": 88,
648
- "linesRemoved": 15,
649
- "changeCount": 4,
650
- "lastModified": "2026-03-20T10:18:00.000Z"
651
- },
652
- {
653
- "path": "src/components/TopProductsTable.tsx",
654
- "changeType": "created",
655
- "linesAdded": 112,
656
- "linesRemoved": 10,
657
- "changeCount": 4,
658
- "lastModified": "2026-03-20T10:18:00.000Z"
659
- },
660
- {
661
- "path": "src/components/OrderList.tsx",
662
- "changeType": "created",
663
- "linesAdded": 65,
664
- "linesRemoved": 8,
665
- "changeCount": 3,
666
- "lastModified": "2026-03-20T10:18:00.000Z"
667
- },
668
- {
669
- "path": "src/utils/exportOrders.ts",
670
- "changeType": "created",
671
- "linesAdded": 82,
672
- "linesRemoved": 5,
673
- "changeCount": 3,
674
- "lastModified": "2026-03-20T10:18:00.000Z"
675
- },
676
- {
677
- "path": "src/utils/orderCalc.ts",
678
- "changeType": "created",
679
- "linesAdded": 55,
680
- "linesRemoved": 12,
681
- "changeCount": 3,
682
- "lastModified": "2026-03-20T10:18:00.000Z"
683
- },
684
- {
685
- "path": "src/utils/dateRange.ts",
686
- "changeType": "created",
687
- "linesAdded": 48,
688
- "linesRemoved": 10,
689
- "changeCount": 4,
690
- "lastModified": "2026-03-20T10:18:00.000Z"
691
- },
692
- {
693
- "path": "src/i18n/orders.ts",
694
- "changeType": "created",
695
- "linesAdded": 95,
696
- "linesRemoved": 0,
697
- "changeCount": 2,
698
- "lastModified": "2026-03-20T10:18:00.000Z"
699
- },
700
- {
701
- "path": "src/router/index.ts",
702
- "changeType": "modified",
703
- "linesAdded": 22,
704
- "linesRemoved": 5,
705
- "changeCount": 2,
706
- "lastModified": "2026-03-20T10:18:00.000Z"
707
- }
708
- ],
709
- "timeline": [
710
- {
711
- "type": "workflow-start",
712
- "title": "开始工作流",
713
- "timestamp": "2026-03-20T09:00:00.000Z",
714
- "prdPhase": "PRD1"
715
- },
716
- {
717
- "type": "requirement-analysis",
718
- "title": "需求分析进行中",
719
- "timestamp": "2026-03-20T09:05:00.000Z",
720
- "prdPhase": "PRD1"
721
- },
722
- {
723
- "type": "task",
724
- "title": "TASK-01: 定义订单实体类型与接口",
725
- "timestamp": "2026-03-20T09:12:00.000Z",
726
- "prdPhase": "PRD1"
727
- },
728
- {
729
- "type": "task-done",
730
- "title": "TASK-01: 定义订单实体类型与接口",
731
- "timestamp": "2026-03-20T09:12:40.000Z",
732
- "prdPhase": "PRD1"
733
- },
734
- {
735
- "type": "task",
736
- "title": "TASK-02: 创建订单 API Service 封装层",
737
- "timestamp": "2026-03-20T09:12:55.000Z",
738
- "prdPhase": "PRD1"
739
- },
740
- {
741
- "type": "task-done",
742
- "title": "TASK-02: 创建订单 API Service 封装层",
743
- "timestamp": "2026-03-20T09:15:20.000Z",
744
- "prdPhase": "PRD1"
745
- },
746
- {
747
- "type": "task",
748
- "title": "TASK-03: 实现 useOrders 数据 Hook",
749
- "timestamp": "2026-03-20T09:15:35.000Z",
750
- "prdPhase": "PRD1"
751
- },
752
- {
753
- "type": "task-done",
754
- "title": "TASK-03: 实现 useOrders 数据 Hook",
755
- "timestamp": "2026-03-20T09:18:45.000Z",
756
- "prdPhase": "PRD1"
757
- },
758
- {
759
- "type": "task",
760
- "title": "TASK-04: 构建订单列表 Table 组件",
761
- "timestamp": "2026-03-20T09:19:00.000Z",
762
- "prdPhase": "PRD1"
763
- },
764
- {
765
- "type": "rule",
766
- "title": "RULE-06: 每次任务完成后必须调用 aida_log_files 记录文件变更,再调用 ai",
767
- "timestamp": "2026-03-20T09:20:00.000Z"
768
- },
769
- {
770
- "type": "task-done",
771
- "title": "TASK-04: 构建订单列表 Table 组件",
772
- "timestamp": "2026-03-20T09:23:25.000Z",
773
- "prdPhase": "PRD1"
774
- },
775
- {
776
- "type": "task",
777
- "title": "TASK-05: 添加订单状态 Badge 组件",
778
- "timestamp": "2026-03-20T09:23:40.000Z",
779
- "prdPhase": "PRD1"
780
- },
781
- {
782
- "type": "task-done",
783
- "title": "TASK-05: 添加订单状态 Badge 组件",
784
- "timestamp": "2026-03-20T09:24:48.000Z",
785
- "prdPhase": "PRD1"
786
- },
787
- {
788
- "type": "task",
789
- "title": "TASK-06: 实现订单详情侧滑抽屉面板",
790
- "timestamp": "2026-03-20T09:25:00.000Z",
791
- "prdPhase": "PRD1"
792
- },
793
- {
794
- "type": "task-done",
795
- "title": "TASK-06: 实现订单详情侧滑抽屉面板",
796
- "timestamp": "2026-03-20T09:30:40.000Z",
797
- "prdPhase": "PRD1"
798
- },
799
- {
800
- "type": "task",
801
- "title": "TASK-07: 批量操作工具栏与权限控制",
802
- "timestamp": "2026-03-20T09:30:55.000Z",
803
- "prdPhase": "PRD1"
804
- },
805
- {
806
- "type": "review",
807
- "title": "REV-01: pass",
808
- "timestamp": "2026-03-20T09:31:20.000Z",
809
- "prdPhase": "PRD1"
810
- },
811
- {
812
- "type": "deviation",
813
- "title": "DEV-06: 批量操作没有做权限降级提示,直接隐藏按钮体验差",
814
- "timestamp": "2026-03-20T09:31:40.000Z"
815
- },
816
- {
817
- "type": "task-done",
818
- "title": "TASK-07: 批量操作工具栏与权限控制",
819
- "timestamp": "2026-03-20T09:32:55.000Z",
820
- "prdPhase": "PRD1"
821
- },
822
- {
823
- "type": "task",
824
- "title": "TASK-08: PRD1 构建验证",
825
- "timestamp": "2026-03-20T09:33:10.000Z",
826
- "prdPhase": "PRD1"
827
- },
828
- {
829
- "type": "deviation",
830
- "title": "DEV-01: 筛选条件状态在路由切换后未持久化,刷新后丢失",
831
- "timestamp": "2026-03-20T09:34:10.000Z"
832
- },
833
- {
834
- "type": "task-done",
835
- "title": "TASK-08: PRD1 构建验证",
836
- "timestamp": "2026-03-20T09:34:25.000Z",
837
- "prdPhase": "PRD1"
838
- },
839
- {
840
- "type": "rule",
841
- "title": "RULE-01: 筛选条件、分页、排序等 URL 状态必须通过 URL SearchParams ",
842
- "timestamp": "2026-03-20T09:35:50.000Z"
843
- },
844
- {
845
- "type": "task",
846
- "title": "TASK-09: 创建营收趋势 ECharts 折线图",
847
- "timestamp": "2026-03-20T09:40:00.000Z",
848
- "prdPhase": "PRD2"
849
- },
850
- {
851
- "type": "task-done",
852
- "title": "TASK-09: 创建营收趋势 ECharts 折线图",
853
- "timestamp": "2026-03-20T09:44:20.000Z",
854
- "prdPhase": "PRD2"
855
- },
856
- {
857
- "type": "task",
858
- "title": "TASK-10: 构建订单状态分布饼图",
859
- "timestamp": "2026-03-20T09:44:35.000Z",
860
- "prdPhase": "PRD2"
861
- },
862
- {
863
- "type": "review",
864
- "title": "REV-02: fail",
865
- "timestamp": "2026-03-20T09:45:00.000Z",
866
- "prdPhase": "PRD2"
867
- },
868
- {
869
- "type": "deviation",
870
- "title": "DEV-02: 营收图表直接使用硬编码 hex 色值而非项目 Token",
871
- "timestamp": "2026-03-20T09:45:00.000Z"
872
- },
873
- {
874
- "type": "rule",
875
- "title": "RULE-02: 组件中禁止硬编码 hex/rgb 色值,必须使用项目设计 Token(CSS 变",
876
- "timestamp": "2026-03-20T09:45:50.000Z"
877
- },
878
- {
879
- "type": "review",
880
- "title": "REV-03: pass",
881
- "timestamp": "2026-03-20T09:46:40.000Z",
882
- "prdPhase": "PRD2"
883
- },
884
- {
885
- "type": "task-done",
886
- "title": "TASK-10: 构建订单状态分布饼图",
887
- "timestamp": "2026-03-20T09:47:15.000Z",
888
- "prdPhase": "PRD2"
889
- },
890
- {
891
- "type": "task",
892
- "title": "TASK-11: 实现日期区间筛选栏组件",
893
- "timestamp": "2026-03-20T09:47:30.000Z",
894
- "prdPhase": "PRD2"
895
- },
896
- {
897
- "type": "deviation",
898
- "title": "DEV-03: 日期区间筛选未处理时区转换,跨时区用户数据错位",
899
- "timestamp": "2026-03-20T09:50:00.000Z"
900
- },
901
- {
902
- "type": "task-done",
903
- "title": "TASK-11: 实现日期区间筛选栏组件",
904
- "timestamp": "2026-03-20T09:50:35.000Z",
905
- "prdPhase": "PRD2"
906
- },
907
- {
908
- "type": "task",
909
- "title": "TASK-12: 添加关键词搜索与多选筛选器",
910
- "timestamp": "2026-03-20T09:50:50.000Z",
911
- "prdPhase": "PRD2"
912
- },
913
- {
914
- "type": "rule",
915
- "title": "RULE-03: 所有日期比较和存储必须统一使用 UTC,展示层再按用户时区转换,禁止使用 new",
916
- "timestamp": "2026-03-20T09:51:40.000Z"
917
- },
918
- {
919
- "type": "bug",
920
- "title": "BUG-04: 搜索框在中文输入法合成期间触发多余 API 请求",
921
- "timestamp": "2026-03-20T09:53:20.000Z"
922
- },
923
- {
924
- "type": "task-done",
925
- "title": "TASK-12: 添加关键词搜索与多选筛选器",
926
- "timestamp": "2026-03-20T09:54:35.000Z",
927
- "prdPhase": "PRD2"
928
- },
929
- {
930
- "type": "task",
931
- "title": "TASK-13: 创建 TOP10 热销商品排行表",
932
- "timestamp": "2026-03-20T09:54:50.000Z",
933
- "prdPhase": "PRD2"
934
- },
935
- {
936
- "type": "deviation",
937
- "title": "DEV-05: TOP10 商品表写死了 10 行,不支持配置化 pageSize",
938
- "timestamp": "2026-03-20T09:55:50.000Z"
939
- },
940
- {
941
- "type": "rule",
942
- "title": "RULE-05: 列表类组件必须接受 pageSize prop,默认值使用项目全局常量 DEFA",
943
- "timestamp": "2026-03-20T09:57:00.000Z"
944
- },
945
- {
946
- "type": "task-done",
947
- "title": "TASK-13: 创建 TOP10 热销商品排行表",
948
- "timestamp": "2026-03-20T09:57:15.000Z",
949
- "prdPhase": "PRD2"
950
- },
951
- {
952
- "type": "task",
953
- "title": "TASK-14: 实现订单数据 CSV 导出功能",
954
- "timestamp": "2026-03-20T09:57:30.000Z",
955
- "prdPhase": "PRD2"
956
- },
957
- {
958
- "type": "deviation",
959
- "title": "DEV-04: CSV 导出包含了不应暴露给用户的内部 ID 字段",
960
- "timestamp": "2026-03-20T09:58:20.000Z"
961
- },
962
- {
963
- "type": "task-done",
964
- "title": "TASK-14: 实现订单数据 CSV 导出功能",
965
- "timestamp": "2026-03-20T09:59:40.000Z",
966
- "prdPhase": "PRD2"
967
- },
968
- {
969
- "type": "task",
970
- "title": "TASK-15: 添加汇总统计 KPI 卡片行",
971
- "timestamp": "2026-03-20T09:59:55.000Z",
972
- "prdPhase": "PRD2"
973
- },
974
- {
975
- "type": "rule",
976
- "title": "RULE-04: 导出工具函数必须维护字段白名单,只导出明确允许的字段,不得通过展开对象自动包含所",
977
- "timestamp": "2026-03-20T10:00:00.000Z"
978
- },
979
- {
980
- "type": "task-done",
981
- "title": "TASK-15: 添加汇总统计 KPI 卡片行",
982
- "timestamp": "2026-03-20T10:01:35.000Z",
983
- "prdPhase": "PRD2"
984
- },
985
- {
986
- "type": "task",
987
- "title": "TASK-16: PRD2 构建验证",
988
- "timestamp": "2026-03-20T10:01:50.000Z",
989
- "prdPhase": "PRD2"
990
- },
991
- {
992
- "type": "task-done",
993
- "title": "TASK-16: PRD2 构建验证",
994
- "timestamp": "2026-03-20T10:03:40.000Z",
995
- "prdPhase": "PRD2"
996
- },
997
- {
998
- "type": "review",
999
- "title": "REV-04: pass",
1000
- "timestamp": "2026-03-20T10:04:00.000Z",
1001
- "prdPhase": "PRD2"
1002
- },
1003
- {
1004
- "type": "bug",
1005
- "title": "BUG-01: 订单含小数件数时合计金额出现浮点精度误差",
1006
- "timestamp": "2026-03-20T10:08:00.000Z"
1007
- },
1008
- {
1009
- "type": "task",
1010
- "title": "TASK-17: 修复订单合计小数精度计算 Bug",
1011
- "timestamp": "2026-03-20T10:08:20.000Z",
1012
- "prdPhase": "PRD3"
1013
- },
1014
- {
1015
- "type": "task-done",
1016
- "title": "TASK-17: 修复订单合计小数精度计算 Bug",
1017
- "timestamp": "2026-03-20T10:09:48.000Z",
1018
- "prdPhase": "PRD3"
1019
- },
1020
- {
1021
- "type": "bug",
1022
- "title": "BUG-02: 日期选择器在夏令时边界时重置为当天",
1023
- "timestamp": "2026-03-20T10:09:48.000Z"
1024
- },
1025
- {
1026
- "type": "task",
1027
- "title": "TASK-18: 修复日期选择器时区转换错误",
1028
- "timestamp": "2026-03-20T10:10:00.000Z",
1029
- "prdPhase": "PRD3"
1030
- },
1031
- {
1032
- "type": "task-done",
1033
- "title": "TASK-18: 修复日期选择器时区转换错误",
1034
- "timestamp": "2026-03-20T10:12:05.000Z",
1035
- "prdPhase": "PRD3"
1036
- },
1037
- {
1038
- "type": "bug",
1039
- "title": "BUG-03: 订单列表无数据时空状态被加载动画遮挡",
1040
- "timestamp": "2026-03-20T10:12:13.000Z"
1041
- },
1042
- {
1043
- "type": "task",
1044
- "title": "TASK-19: 修复空状态组件被加载遮挡问题",
1045
- "timestamp": "2026-03-20T10:12:20.000Z",
1046
- "prdPhase": "PRD3"
1047
- },
1048
- {
1049
- "type": "task-done",
1050
- "title": "TASK-19: 修复空状态组件被加载遮挡问题",
1051
- "timestamp": "2026-03-20T10:13:02.000Z",
1052
- "prdPhase": "PRD3"
1053
- },
1054
- {
1055
- "type": "task",
1056
- "title": "TASK-20: 优化筛选状态路由切换后重置",
1057
- "timestamp": "2026-03-20T10:13:20.000Z",
1058
- "prdPhase": "PRD3"
1059
- },
1060
- {
1061
- "type": "task-done",
1062
- "title": "TASK-20: 优化筛选状态路由切换后重置",
1063
- "timestamp": "2026-03-20T10:14:38.000Z",
1064
- "prdPhase": "PRD3"
1065
- },
1066
- {
1067
- "type": "task",
1068
- "title": "TASK-21: 添加骨架屏提升感知加载速度",
1069
- "timestamp": "2026-03-20T10:14:50.000Z",
1070
- "prdPhase": "PRD3"
1071
- },
1072
- {
1073
- "type": "task-done",
1074
- "title": "TASK-21: 添加骨架屏提升感知加载速度",
1075
- "timestamp": "2026-03-20T10:16:45.000Z",
1076
- "prdPhase": "PRD3"
1077
- },
1078
- {
1079
- "type": "task",
1080
- "title": "TASK-22: 最终全量构建与冒烟测试",
1081
- "timestamp": "2026-03-20T10:17:00.000Z",
1082
- "prdPhase": "PRD3"
1083
- },
1084
- {
1085
- "type": "task-done",
1086
- "title": "TASK-22: 最终全量构建与冒烟测试",
1087
- "timestamp": "2026-03-20T10:17:58.000Z",
1088
- "prdPhase": "PRD3"
1089
- },
1090
- {
1091
- "type": "review",
1092
- "title": "REV-05: pass",
1093
- "timestamp": "2026-03-20T10:18:10.000Z",
1094
- "prdPhase": "PRD3"
1095
- },
1096
- {
1097
- "type": "workflow-completed",
1098
- "title": "工作流完成",
1099
- "timestamp": "2026-03-20T10:18:20.000Z",
1100
- "prdPhase": "PRD3"
1101
- }
1102
- ],
1103
- "workflow": [
1104
- {
1105
- "stage": "需求接入",
1106
- "prdPhase": "PRD1",
1107
- "status": "completed",
1108
- "startTime": "2026-03-20T09:00:00.000Z",
1109
- "endTime": "2026-03-20T09:05:00.000Z"
1110
- },
1111
- {
1112
- "stage": "需求分析",
1113
- "prdPhase": "PRD1",
1114
- "status": "completed",
1115
- "startTime": "2026-03-20T09:05:00.000Z",
1116
- "endTime": "2026-03-20T09:11:00.000Z"
1117
- },
1118
- {
1119
- "stage": "代码生成",
1120
- "prdPhase": "PRD1",
1121
- "status": "completed",
1122
- "startTime": "2026-03-20T09:12:00.000Z",
1123
- "endTime": "2026-03-20T09:35:00.000Z"
1124
- },
1125
- {
1126
- "stage": "代码生成",
1127
- "prdPhase": "PRD2",
1128
- "status": "completed",
1129
- "startTime": "2026-03-20T09:40:00.000Z",
1130
- "endTime": "2026-03-20T10:04:20.000Z"
1131
- },
1132
- {
1133
- "stage": "缺陷修复",
1134
- "prdPhase": "PRD3",
1135
- "status": "completed",
1136
- "startTime": "2026-03-20T10:08:20.000Z",
1137
- "endTime": "2026-03-20T10:18:00.000Z"
1138
- }
1139
- ],
1140
- "events": [],
1141
- "cost": {
1142
- "totalTokens": 8420000,
1143
- "estimatedManualHours": 16,
1144
- "actualHours": 1.6,
1145
- "tokenDetail": {
1146
- "inputTokens": 580000,
1147
- "outputTokens": 1240000,
1148
- "cacheCreationTokens": 2200000,
1149
- "cacheReadTokens": 4400000
1150
- }
1151
- },
1152
- "highlights": [
1153
- {
1154
- "content": "AI 完成 22 个任务仅需 1.6h,同等工作量人工预估 3 人天,效率提升约 12x",
1155
- "source": "auto",
1156
- "createdAt": "2026-03-20T10:18:30.000Z"
1157
- },
1158
- {
1159
- "content": "6 条偏差沉淀为项目规则,覆盖筛选状态、色值规范、日期时区等高频问题,后续需求零重复",
1160
- "source": "manual",
1161
- "createdAt": "2026-03-20T10:18:40.000Z"
1162
- },
1163
- {
1164
- "content": "自检首次通过率 80%,营收图表发现对比度与空状态问题后快速修复,质量闭环时间 < 3min",
1165
- "source": "auto",
1166
- "createdAt": "2026-03-20T10:18:50.000Z"
1167
- }
1168
- ]
1169
- }