@liangjie559567/ultrapower 7.5.2 → 7.6.0

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 (132) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/README.md +12 -1
  4. package/dist/cli/commands/repair.d.ts +3 -0
  5. package/dist/cli/commands/repair.d.ts.map +1 -0
  6. package/dist/cli/commands/repair.js +130 -0
  7. package/dist/cli/commands/repair.js.map +1 -0
  8. package/dist/features/analytics-dashboard/metrics-collector.d.ts.map +1 -1
  9. package/dist/features/analytics-dashboard/metrics-collector.js +4 -0
  10. package/dist/features/analytics-dashboard/metrics-collector.js.map +1 -1
  11. package/dist/features/analytics-dashboard/storage.d.ts +22 -2
  12. package/dist/features/analytics-dashboard/storage.d.ts.map +1 -1
  13. package/dist/features/analytics-dashboard/storage.js.map +1 -1
  14. package/dist/features/analytics-dashboard/tracker.d.ts.map +1 -1
  15. package/dist/features/analytics-dashboard/tracker.js +14 -2
  16. package/dist/features/analytics-dashboard/tracker.js.map +1 -1
  17. package/dist/features/personalized-recommendation/behavior-tracker.js +1 -1
  18. package/dist/features/personalized-recommendation/behavior-tracker.js.map +1 -1
  19. package/dist/features/personalized-recommendation/recommender.d.ts +1 -1
  20. package/dist/features/personalized-recommendation/recommender.d.ts.map +1 -1
  21. package/dist/features/personalized-recommendation/recommender.js +1 -1
  22. package/dist/features/personalized-recommendation/recommender.js.map +1 -1
  23. package/dist/features/quality-gate/gate-checker.d.ts.map +1 -1
  24. package/dist/features/quality-gate/gate-checker.js +2 -1
  25. package/dist/features/quality-gate/gate-checker.js.map +1 -1
  26. package/dist/hooks/bridge-converter.d.ts +8 -0
  27. package/dist/hooks/bridge-converter.d.ts.map +1 -1
  28. package/dist/hooks/bridge-converter.js +38 -0
  29. package/dist/hooks/bridge-converter.js.map +1 -1
  30. package/dist/hooks/handlers/route-map.js +6 -6
  31. package/dist/hooks/handlers/route-map.js.map +1 -1
  32. package/dist/hooks/handlers/stop-continuation.d.ts.map +1 -1
  33. package/dist/hooks/handlers/stop-continuation.js.map +1 -1
  34. package/dist/hooks/keyword-detector/conflict-resolver.d.ts +16 -0
  35. package/dist/hooks/keyword-detector/conflict-resolver.d.ts.map +1 -0
  36. package/dist/hooks/keyword-detector/conflict-resolver.js +41 -0
  37. package/dist/hooks/keyword-detector/conflict-resolver.js.map +1 -0
  38. package/dist/hooks/persistent-mode/index.js +2 -2
  39. package/dist/hooks/persistent-mode/index.js.map +1 -1
  40. package/dist/hooks/processors/permissionRequest.d.ts.map +1 -1
  41. package/dist/hooks/processors/permissionRequest.js.map +1 -1
  42. package/dist/hooks/ultrawork/index.js +3 -3
  43. package/dist/hooks/ultrawork/index.js.map +1 -1
  44. package/dist/hooks/workflow-gate/index.js +4 -4
  45. package/dist/hooks/workflow-gate/index.js.map +1 -1
  46. package/dist/hud/usage-api.d.ts.map +1 -1
  47. package/dist/hud/usage-api.js +3 -2
  48. package/dist/hud/usage-api.js.map +1 -1
  49. package/dist/index.js +1 -1
  50. package/dist/index.js.map +1 -1
  51. package/dist/installer/index.js +1 -1
  52. package/dist/installer/index.js.map +1 -1
  53. package/dist/lib/atomic-write.d.ts.map +1 -1
  54. package/dist/lib/atomic-write.js +21 -2
  55. package/dist/lib/atomic-write.js.map +1 -1
  56. package/dist/lib/auditLog.d.ts +1 -1
  57. package/dist/lib/auditLog.d.ts.map +1 -1
  58. package/dist/lib/crypto.d.ts +3 -0
  59. package/dist/lib/crypto.d.ts.map +1 -0
  60. package/dist/lib/crypto.js +60 -0
  61. package/dist/lib/crypto.js.map +1 -0
  62. package/dist/lib/deadlock-detector.d.ts +21 -0
  63. package/dist/lib/deadlock-detector.d.ts.map +1 -0
  64. package/dist/lib/deadlock-detector.js +74 -0
  65. package/dist/lib/deadlock-detector.js.map +1 -0
  66. package/dist/lib/fs-utils.d.ts +11 -0
  67. package/dist/lib/fs-utils.d.ts.map +1 -0
  68. package/dist/lib/fs-utils.js +32 -0
  69. package/dist/lib/fs-utils.js.map +1 -0
  70. package/dist/lib/logger.d.ts +7 -1
  71. package/dist/lib/logger.d.ts.map +1 -1
  72. package/dist/lib/logger.js +23 -4
  73. package/dist/lib/logger.js.map +1 -1
  74. package/dist/lib/state-adapter.d.ts +3 -2
  75. package/dist/lib/state-adapter.d.ts.map +1 -1
  76. package/dist/lib/state-adapter.js +12 -3
  77. package/dist/lib/state-adapter.js.map +1 -1
  78. package/dist/security/concurrency-control.d.ts +1 -1
  79. package/dist/security/concurrency-control.d.ts.map +1 -1
  80. package/dist/security/tenant-isolator.js.map +1 -1
  81. package/dist/state/index.d.ts +2 -0
  82. package/dist/state/index.d.ts.map +1 -1
  83. package/dist/state/index.js +8 -6
  84. package/dist/state/index.js.map +1 -1
  85. package/dist/state/migration/integrity.d.ts.map +1 -1
  86. package/dist/state/migration/integrity.js +1 -2
  87. package/dist/state/migration/integrity.js.map +1 -1
  88. package/dist/tools/lsp-tools.js.map +1 -1
  89. package/dist/workers/sqlite-adapter.d.ts.map +1 -1
  90. package/dist/workers/sqlite-adapter.js.map +1 -1
  91. package/docs/CLAUDE.md +1 -1
  92. package/docs/INSTALL.md +2 -2
  93. package/docs/REFERENCE.md +2 -2
  94. package/docs/audit/direct-write-scan.md +88 -0
  95. package/docs/audit/subagent-stop-scan.md +48 -0
  96. package/docs/dev-experience/README.md +226 -0
  97. package/docs/dev-experience/best-practices.md +364 -0
  98. package/docs/dev-experience/quick-reference.md +114 -0
  99. package/docs/dev-experience/troubleshooting-guide.md +280 -0
  100. package/docs/dev-standards/AGENTS.md +68 -68
  101. package/docs/glossary.md +174 -0
  102. package/docs/plans/2026-03-14-mcp-intelligent-orchestration.md +679 -679
  103. package/docs/prd/bugs-pain-points-audit-dag.md +297 -0
  104. package/docs/prd/bugs-pain-points-audit-draft.md +154 -0
  105. package/docs/prd/bugs-pain-points-audit-manifest.md +830 -0
  106. package/docs/prd/bugs-pain-points-audit-rough.md +654 -0
  107. package/docs/research/deadlock-detection-poc.md +275 -0
  108. package/docs/reviews/bugs-pain-points-audit/review_critic.md +213 -0
  109. package/docs/reviews/bugs-pain-points-audit/review_domain.md +247 -0
  110. package/docs/reviews/bugs-pain-points-audit/review_product.md +189 -0
  111. package/docs/reviews/bugs-pain-points-audit/review_tech.md +382 -0
  112. package/docs/reviews/bugs-pain-points-audit/review_ux.md +161 -0
  113. package/docs/reviews/bugs-pain-points-audit/summary.md +129 -0
  114. package/docs/security/command-injection-scan.md +223 -0
  115. package/docs/security/path-traversal-scan-report.md +229 -0
  116. package/docs/security/sensitive-data-inventory.md +170 -0
  117. package/docs/security/sensitive-data-violations.md +388 -0
  118. package/docs/standards/README.md +1 -1
  119. package/docs/standards/cascade-failure.md +324 -0
  120. package/docs/tech-debt/classification.md +190 -0
  121. package/docs/tech-debt/cleanup-report.md +172 -0
  122. package/docs/testing/client-additional-test-fix.md +64 -0
  123. package/docs/testing/concurrent-write-test-fix.md +111 -0
  124. package/docs/testing/coverage-report.md +274 -0
  125. package/docs/testing/phase2-test-coverage-completion.md +223 -0
  126. package/docs/testing/phase2-week3-docs-completion.md +271 -0
  127. package/docs/testing/phase2-week4-observability-completion.md +324 -0
  128. package/docs/testing/phase3-completion.md +324 -0
  129. package/docs/testing/test-fix-progress-2026-03-16.md +75 -0
  130. package/docs/testing/test-fix-summary.md +197 -0
  131. package/docs/testing/timer-buffer-test-fix.md +117 -0
  132. package/package.json +10 -10
@@ -0,0 +1,830 @@
1
+ # Manifest: ultrapower v7.5.2 Bug 审计
2
+
3
+ > **状态**: ACTIVE
4
+ > **创建日期**: 2026-03-16
5
+ > **来源 PRD**: bugs-pain-points-audit-rough.md
6
+ > **总任务数**: 42 个原子任务
7
+ > **预估总工时**: 18-22 天
8
+
9
+ ---
10
+
11
+ ## 架构概览
12
+
13
+ 本审计覆盖 4 大维度,分 3 个阶段交付:
14
+
15
+ ```mermaid
16
+ graph TD
17
+ subgraph Phase1[Phase 1: v7.5.3 安全补丁]
18
+ P1_Security[安全加固]
19
+ P1_State[状态一致性]
20
+ P1_Lifecycle[生命周期修复]
21
+ end
22
+
23
+ subgraph Phase2[Phase 2: v7.6.0 质量改进]
24
+ P2_Test[测试覆盖]
25
+ P2_Doc[文档同步]
26
+ P2_Observability[可观测性]
27
+ end
28
+
29
+ subgraph Phase3[Phase 3: v7.7.0+ 持续优化]
30
+ P3_TechDebt[技术债务]
31
+ P3_DevEx[开发体验]
32
+ end
33
+
34
+ P1_Security --> P2_Test
35
+ P1_State --> P2_Test
36
+ P1_Lifecycle --> P2_Doc
37
+ P2_Test --> P3_TechDebt
38
+ P2_Doc --> P3_DevEx
39
+ ```
40
+
41
+ ---
42
+
43
+ ## Phase 1: v7.5.3 安全补丁 (P0 任务)
44
+
45
+ ### 🔒 FR-01: 路径遍历防护
46
+
47
+ #### T-001: 路径遍历漏洞扫描
48
+ - **优先级**: P0
49
+ - **预估工时**: 2h
50
+ - **依赖**: 无
51
+ - **负责模块**: 安全审计
52
+ - **输入**: 代码库所有 TypeScript 文件
53
+ - **输出**: `docs/security/path-traversal-scan-report.md`
54
+ - **验收标准**:
55
+ - [ ] 扫描所有 `mode` 参数使用点(正则: `\$\{mode\}`)
56
+ - [ ] 报告包含文件路径、行号、代码片段
57
+ - [ ] 按风险等级分类(高/中/低)
58
+ - [ ] 生成修复优先级清单
59
+
60
+ #### T-002: assertValidMode 工具函数实现
61
+ - **优先级**: P0
62
+ - **预估工时**: 3h
63
+ - **依赖**: T-001
64
+ - **负责模块**: `src/lib/validateMode.ts`
65
+ - **输入**: T-001 扫描报告
66
+ - **输出**:
67
+ - `src/lib/validateMode.ts` (新增)
68
+ - `src/lib/validateMode.test.ts` (单元测试)
69
+ - **验收标准**:
70
+ - [ ] 实现 `assertValidMode(mode: string): ValidMode`
71
+ - [ ] 白名单包含 8 个合法 mode
72
+ - [ ] 非法输入抛出 `InvalidModeError`
73
+ - [ ] 单元测试覆盖率 100%
74
+ - [ ] 测试用例包含路径遍历攻击向量(`../`, `..\\`, `%2e%2e/`)
75
+
76
+ #### T-003: 全局替换未校验路径拼接
77
+ - **优先级**: P0
78
+ - **预估工时**: 4h
79
+ - **依赖**: T-002
80
+ - **负责模块**: 所有状态管理模块
81
+ - **输入**: T-001 扫描报告 + T-002 工具函数
82
+ - **输出**: 修复后的代码文件
83
+ - **验收标准**:
84
+ - [ ] 所有路径拼接前调用 `assertValidMode(mode)`
85
+ - [ ] 修复所有高风险点(T-001 报告)
86
+ - [ ] 回归测试通过率 100%
87
+
88
+ #### T-004: ESLint 规则实现
89
+ - **优先级**: P0
90
+ - **预估工时**: 3h
91
+ - **依赖**: T-003
92
+ - **负责模块**: `.eslintrc.js`
93
+ - **输出**: 自定义 ESLint 规则
94
+ - **验收标准**:
95
+ - [ ] 检测未校验的 `${mode}` 路径拼接
96
+ - [ ] CI 集成 ESLint 检查
97
+ - [ ] 违规时构建失败
98
+
99
+ ---
100
+
101
+ ### 🔐 FR-02: 敏感数据保护
102
+
103
+ #### T-005: 敏感数据清单定义
104
+ - **优先级**: P0
105
+ - **预估工时**: 2h
106
+ - **依赖**: 无
107
+ - **输出**: `docs/security/sensitive-data-inventory.md`
108
+ - **验收标准**:
109
+ - [ ] 定义敏感字段白名单(apiKey, token, credential, password, secret)
110
+ - [ ] 定义扫描规则(正则模式)
111
+ - [ ] 文档说明加密策略
112
+
113
+ #### T-006: 敏感数据扫描
114
+ - **优先级**: P0
115
+ - **预估工时**: 2h
116
+ - **依赖**: T-005
117
+ - **输出**: `docs/security/sensitive-data-violations.md`
118
+ - **验收标准**:
119
+ - [ ] 扫描所有状态文件和日志代码
120
+ - [ ] 生成违规点统计报告
121
+ - [ ] 按严重程度分级
122
+
123
+ #### T-007: 加密工具实现
124
+ - **优先级**: P0
125
+ - **预估工时**: 4h
126
+ - **依赖**: T-006
127
+ - **负责模块**: `src/lib/crypto.ts`
128
+ - **输出**:
129
+ - `src/lib/crypto.ts` (新增)
130
+ - `src/lib/crypto.test.ts`
131
+ - **验收标准**:
132
+ - [ ] 实现 `encryptSensitiveFields()` (AES-256-GCM)
133
+ - [ ] 实现 `decryptSensitiveFields()`
134
+ - [ ] 密钥管理策略(环境变量 + 密钥轮换)
135
+ - [ ] 单元测试覆盖率 100%
136
+
137
+ #### T-008: 状态文件加密集成
138
+ - **优先级**: P0
139
+ - **预估工时**: 3h
140
+ - **依赖**: T-007
141
+ - **输出**: 修复后的状态管理代码
142
+ - **验收标准**:
143
+ - [ ] 所有状态写入前加密敏感字段
144
+ - [ ] 状态读取后解密
145
+ - [ ] 文件权限设置为 0o600
146
+ - [ ] 集成测试通过
147
+
148
+ #### T-009: CI 密钥泄露检测
149
+ - **优先级**: P0
150
+ - **预估工时**: 2h
151
+ - **依赖**: T-008
152
+ - **输出**: `.github/workflows/security.yml`
153
+ - **验收标准**:
154
+ - [ ] 集成 gitleaks 或 truffleHog
155
+ - [ ] 检测到密钥时构建失败
156
+ - [ ] 每日定时扫描
157
+
158
+ ---
159
+
160
+ ### 🔄 FR-03: 状态一致性保护
161
+
162
+ #### T-010: 直接写入点扫描
163
+ - **优先级**: P0
164
+ - **预估工时**: 2h
165
+ - **依赖**: 无
166
+ - **输出**: `docs/audit/direct-write-scan.md`
167
+ - **验收标准**:
168
+ - [ ] 扫描所有 `writeFileSync` 调用
169
+ - [ ] 识别绕过原子写入的代码路径
170
+ - [ ] 生成修复清单
171
+
172
+ #### T-011: 原子写入统一替换
173
+ - **优先级**: P0
174
+ - **预估工时**: 4h
175
+ - **依赖**: T-010
176
+ - **输出**: 修复后的代码
177
+ - **验收标准**:
178
+ - [ ] 替换所有直接写入为 `atomicWriteJsonSyncWithRetry`
179
+ - [ ] 修复 `writeTrackingStateImmediate` 问题
180
+ - [ ] 单元测试验证原子性
181
+
182
+ #### T-012: 并发写入压力测试
183
+ - **优先级**: P0
184
+ - **预估工时**: 3h
185
+ - **依赖**: T-011
186
+ - **输出**: `tests/integration/concurrent-write.test.ts`
187
+ - **验收标准**:
188
+ - [ ] 10 个会话同时写入 `subagent-tracking.json`
189
+ - [ ] 验证无数据丢失
190
+ - [ ] 验证无 JSON 损坏
191
+ - [ ] 文件锁超时降级策略验证
192
+
193
+ #### T-013: 跨会话污染测试
194
+ - **优先级**: P0
195
+ - **预估工时**: 3h
196
+ - **依赖**: T-011
197
+ - **输出**: `tests/integration/session-isolation.test.ts`
198
+ - **验收标准**:
199
+ - [ ] 会话 A 异常终止,会话 B 读取状态
200
+ - [ ] 验证 session_id 匹配逻辑
201
+ - [ ] 验证旧版状态文件兼容性(session_id 为 null)
202
+
203
+ ---
204
+
205
+ ### 🐛 FR-04: SubagentStop 推断修复
206
+
207
+ #### T-014: success 字段使用点扫描
208
+ - **优先级**: P0
209
+ - **预估工时**: 1h
210
+ - **依赖**: 无
211
+ - **输出**: `docs/audit/subagent-stop-scan.md`
212
+ - **验收标准**:
213
+ - [ ] 扫描所有 `input.success` 使用点
214
+ - [ ] 生成修复清单
215
+
216
+ #### T-015: 推断逻辑统一替换
217
+ - **优先级**: P0
218
+ - **预估工时**: 2h
219
+ - **依赖**: T-014
220
+ - **输出**: 修复后的代码
221
+ - **验收标准**:
222
+ - [ ] 替换为 `input.success !== false`
223
+ - [ ] 补充单元测试(undefined/true/false 三种情况)
224
+ - [ ] 文档澄清字段语义
225
+
226
+ ---
227
+
228
+ ### ⚡ FR-05: 并发度上限
229
+
230
+ #### T-016: 并发度检查实现
231
+ - **优先级**: P0
232
+ - **预估工时**: 3h
233
+ - **依赖**: 无
234
+ - **负责模块**: Agent 启动逻辑
235
+ - **输出**: 修复后的代码
236
+ - **验收标准**:
237
+ - [ ] 定义 `MAX_CONCURRENT_AGENTS = 20`
238
+ - [ ] Agent 启动前检查当前并发数
239
+ - [ ] 超限返回明确错误信息
240
+ - [ ] 提供配置项允许用户调整
241
+
242
+ #### T-017: 并发度上限测试
243
+ - **优先级**: P0
244
+ - **预估工时**: 2h
245
+ - **依赖**: T-016
246
+ - **输出**: `tests/integration/concurrent-limit.test.ts`
247
+ - **验收标准**:
248
+ - [ ] 尝试启动 25 个 Agent
249
+ - [ ] 验证第 21 个被拒绝
250
+ - [ ] 验证错误信息准确性
251
+
252
+ ---
253
+
254
+ ### 🪟 FR-06: Windows 命令注入审计
255
+
256
+ #### T-018: 命令执行点扫描
257
+ - **优先级**: P0
258
+ - **预估工时**: 2h
259
+ - **依赖**: 无
260
+ - **输出**: `docs/security/command-injection-scan.md`
261
+ - **验收标准**:
262
+ - [ ] 扫描所有 `execSync`/`exec`/`spawn` 调用
263
+ - [ ] 识别 Windows 平台风险点
264
+ - [ ] 生成修复建议
265
+
266
+ #### T-019: 安全命令执行替换
267
+ - **优先级**: P0
268
+ - **预估工时**: 3h
269
+ - **依赖**: T-018
270
+ - **输出**: 修复后的代码
271
+ - **验收标准**:
272
+ - [ ] 使用 `execFile` 或参数数组形式
273
+ - [ ] Windows 平台测试通过
274
+ - [ ] 文档说明安全模式
275
+
276
+ #### T-020: Windows CI 集成
277
+ - **优先级**: P0
278
+ - **预估工时**: 2h
279
+ - **依赖**: T-019
280
+ - **输出**: `.github/workflows/windows.yml`
281
+ - **验收标准**:
282
+ - [ ] 添加 Windows 平台 CI 测试
283
+ - [ ] 测试通过率 100%
284
+
285
+ ---
286
+
287
+ ## Phase 2: v7.6.0 质量改进 (P1 任务)
288
+
289
+ ### 🔍 FR-07: 死锁检测实现
290
+
291
+ #### T-021: 死锁检测 POC
292
+ - **优先级**: P1
293
+ - **预估工时**: 4h
294
+ - **依赖**: 无
295
+ - **输出**: `docs/research/deadlock-detection-poc.md`
296
+ - **验收标准**:
297
+ - [ ] 实现循环依赖图分析算法
298
+ - [ ] 验证检测准确性(无误报/漏报)
299
+ - [ ] 性能测试(100 个 Agent 场景)
300
+
301
+ #### T-022: 死锁检测实现
302
+ - **优先级**: P1
303
+ - **预估工时**: 4h
304
+ - **依赖**: T-021
305
+ - **负责模块**: `src/lib/deadlock-detector.ts`
306
+ - **输出**:
307
+ - `src/lib/deadlock-detector.ts`
308
+ - `src/lib/deadlock-detector.test.ts`
309
+ - **验收标准**:
310
+ - [ ] 实现 `DEADLOCK_CHECK_THRESHOLD = 3`
311
+ - [ ] 检测到死锁时记录警告日志(不自动终止)
312
+ - [ ] 单元测试覆盖 3 个死锁场景
313
+
314
+ ---
315
+
316
+ ### 🧪 FR-08: 测试覆盖补充
317
+
318
+ #### T-023: 并发场景测试套件
319
+ - **优先级**: P1
320
+ - **预估工时**: 6h
321
+ - **依赖**: T-011, T-012
322
+ - **输出**: `tests/integration/concurrent-scenarios.test.ts`
323
+ - **验收标准**:
324
+ - [ ] 100 并发写入压力测试
325
+ - [ ] JSON 文件部分写入恢复测试
326
+ - [ ] 文件大小为 0 恢复测试
327
+ - [ ] JSON 格式错误恢复测试
328
+
329
+ #### T-024: 状态污染测试套件
330
+ - **优先级**: P1
331
+ - **预估工时**: 4h
332
+ - **依赖**: T-013
333
+ - **输出**: `tests/integration/state-pollution.test.ts`
334
+ - **验收标准**:
335
+ - [ ] 会话 A 异常终止,会话 B 读取脏状态
336
+ - [ ] 两个会话同时清理同一 mode 状态
337
+ - [ ] session_id 为 null/undefined 的旧版状态文件
338
+
339
+ #### T-025: 安全关键路径测试
340
+ - **优先级**: P1
341
+ - **预估工时**: 6h
342
+ - **依赖**: T-003, T-008
343
+ - **输出**: `tests/security/critical-paths.test.ts`
344
+ - **验收标准**:
345
+ - [ ] 路径遍历攻击测试(5 个场景)
346
+ - [ ] 敏感数据加密/解密测试
347
+ - [ ] 测试覆盖率 100%
348
+
349
+ #### T-026: 测试覆盖率报告
350
+ - **优先级**: P1
351
+ - **预估工时**: 2h
352
+ - **依赖**: T-023, T-024, T-025
353
+ - **输出**: `docs/testing/coverage-report.md`
354
+ - **验收标准**:
355
+ - [ ] 安全模块覆盖率 ≥100%
356
+ - [ ] 状态管理模块覆盖率 ≥90%
357
+ - [ ] 其他模块覆盖率 ≥80%
358
+ - [ ] CI 集成覆盖率门禁
359
+
360
+ ---
361
+
362
+ ### 📚 FR-09: 文档同步
363
+
364
+ #### T-027: 文档差异点修复
365
+ - **优先级**: P1
366
+ - **预估工时**: 3h
367
+ - **依赖**: 无
368
+ - **输出**: 修复后的文档
369
+ - **验收标准**:
370
+ - [ ] 修复 D-03: 合法 mode 数量(7 → 8)
371
+ - [ ] 修复 D-04: 互斥模式范围(2 → 4)
372
+ - [ ] 修复 D-09: stale 阈值双重含义澄清
373
+
374
+ #### T-028: 反模式代码示例补充
375
+ - **优先级**: P1
376
+ - **预估工时**: 6h
377
+ - **依赖**: T-027
378
+ - **输出**: `docs/standards/anti-patterns.md` (更新)
379
+ - **验收标准**:
380
+ - [ ] 为 51 个反模式补充 Before/After 示例
381
+ - [ ] 每个示例包含错误代码 + 正确代码 + 说明
382
+ - [ ] 代码示例可直接运行
383
+
384
+ #### T-029: 术语表和调试指南
385
+ - **优先级**: P1
386
+ - **预估工时**: 4h
387
+ - **依赖**: T-028
388
+ - **输出**:
389
+ - `docs/glossary.md` (新增)
390
+ - `docs/troubleshooting.md` (新增)
391
+ - **验收标准**:
392
+ - [ ] 术语表包含 ≥20 个核心术语
393
+ - [ ] 调试指南覆盖常见错误场景
394
+ - [ ] 每个错误包含恢复路径
395
+
396
+ #### T-030: 文档同步 CI 检查
397
+ - **优先级**: P1
398
+ - **预估工时**: 3h
399
+ - **依赖**: T-029
400
+ - **输出**: `.github/workflows/docs-sync.yml`
401
+ - **验收标准**:
402
+ - [ ] 检测文档与代码不一致
403
+ - [ ] 检测过期代码示例
404
+ - [ ] 违规时构建失败
405
+
406
+ ---
407
+
408
+ ### ⏱️ FR-10: 超时阈值澄清
409
+
410
+ #### T-031: 超时常量提取
411
+ - **优先级**: P1
412
+ - **预估工时**: 2h
413
+ - **依赖**: 无
414
+ - **输出**: `src/config/timeouts.ts` (新增)
415
+ - **验收标准**:
416
+ - [ ] 定义 `AGENT_STALE_WARNING_MS = 5 * 60 * 1000`
417
+ - [ ] 定义 `AGENT_STALE_TERMINATE_MS = 10 * 60 * 1000`
418
+ - [ ] 全局替换硬编码超时值
419
+
420
+ #### T-032: 两阶段超时测试
421
+ - **优先级**: P1
422
+ - **预估工时**: 3h
423
+ - **依赖**: T-031
424
+ - **输出**: `tests/integration/timeout-stages.test.ts`
425
+ - **验收标准**:
426
+ - [ ] 5 分钟触发警告日志
427
+ - [ ] 10 分钟触发自动终止
428
+ - [ ] 文档明确说明两阶段语义
429
+
430
+ ---
431
+
432
+ ### 🔗 FR-11: Agent 级联失败处理
433
+
434
+ #### T-033: 级联失败策略文档
435
+ - **优先级**: P1
436
+ - **预估工时**: 3h
437
+ - **依赖**: 无
438
+ - **输出**: `docs/standards/cascade-failure.md` (新增)
439
+ - **验收标准**:
440
+ - [ ] 定义失败传播策略(立即停止 vs 继续执行)
441
+ - [ ] 说明依赖链中断处理
442
+ - [ ] 提供决策树
443
+
444
+ #### T-034: 级联失败测试
445
+ - **优先级**: P1
446
+ - **预估工时**: 4h
447
+ - **依赖**: T-033
448
+ - **输出**: `tests/integration/cascade-failure.test.ts`
449
+ - **验收标准**:
450
+ - [ ] planner Agent 失败,executor Agents 处理
451
+ - [ ] 记录失败传播路径
452
+ - [ ] 验证策略正确性
453
+
454
+ ---
455
+
456
+ ### 📊 FR-12: 结构化日志
457
+
458
+ #### T-035: StructuredLogger 实现
459
+ - **优先级**: P1
460
+ - **预估工时**: 4h
461
+ - **依赖**: 无
462
+ - **负责模块**: `src/lib/logger.ts`
463
+ - **输出**:
464
+ - `src/lib/logger.ts` (重构)
465
+ - `src/lib/logger.test.ts`
466
+ - **验收标准**:
467
+ - [ ] 实现 JSON 格式日志
468
+ - [ ] 支持日志级别(DEBUG/INFO/WARN/ERROR)
469
+ - [ ] 包含 trace_id、session_id、agent_id
470
+ - [ ] 支持日志级别过滤
471
+
472
+ #### T-036: 关键路径日志集成
473
+ - **优先级**: P1
474
+ - **预估工时**: 4h
475
+ - **依赖**: T-035
476
+ - **输出**: 修复后的代码
477
+ - **验收标准**:
478
+ - [ ] 所有状态变更记录结构化日志
479
+ - [ ] 所有 Agent 生命周期事件记录日志
480
+ - [ ] 集成测试验证日志完整性
481
+
482
+ ---
483
+
484
+ ## Phase 3: v7.7.0+ 持续优化 (P2 任务)
485
+
486
+ ### 🧹 FR-13: 技术债务清理
487
+
488
+ #### T-037: 技术债务分级
489
+ - **优先级**: P2
490
+ - **预估工时**: 3h
491
+ - **依赖**: 无
492
+ - **输出**: `docs/tech-debt/classification.md`
493
+ - **验收标准**:
494
+ - [ ] 对 51 个 TODO/FIXME/HACK 标记分级(P0/P1/P2)
495
+ - [ ] 识别过期标记
496
+ - [ ] 生成清理优先级清单
497
+
498
+ #### T-038: P0/P1 技术债务清理
499
+ - **优先级**: P2
500
+ - **预估工时**: 8h
501
+ - **依赖**: T-037
502
+ - **输出**: 修复后的代码
503
+ - **验收标准**:
504
+ - [ ] 清理所有 P0/P1 标记
505
+ - [ ] 重构反模式代码
506
+ - [ ] 技术债务标记数量 <20 个
507
+
508
+ #### T-039: 技术债务清理报告
509
+ - **优先级**: P2
510
+ - **预估工时**: 2h
511
+ - **依赖**: T-038
512
+ - **输出**: `docs/tech-debt/cleanup-report.md`
513
+ - **验收标准**:
514
+ - [ ] 记录清理前后对比
515
+ - [ ] 说明保留的技术债务原因
516
+ - [ ] 提供后续清理建议
517
+
518
+ ---
519
+
520
+ ### 🛠️ FR-14: 开发体验改进
521
+
522
+ #### T-040: omc repair 命令实现
523
+ - **优先级**: P2
524
+ - **预估工时**: 6h
525
+ - **依赖**: 无
526
+ - **负责模块**: `src/cli/repair.ts`
527
+ - **输出**:
528
+ - `src/cli/repair.ts` (新增)
529
+ - `src/cli/repair.test.ts`
530
+ - **验收标准**:
531
+ - [ ] 实现 `omc repair --fix-state-pollution`
532
+ - [ ] 实现 `omc repair --fix-orphan-agents`
533
+ - [ ] 实现 `omc repair --validate-state`
534
+ - [ ] 提供交互式修复向导
535
+
536
+ #### T-041: 错误信息改进
537
+ - **优先级**: P2
538
+ - **预估工时**: 4h
539
+ - **依赖**: T-040
540
+ - **输出**: 修复后的错误处理代码
541
+ - **验收标准**:
542
+ - [ ] 错误信息包含调试提示
543
+ - [ ] 错误信息包含文档链接
544
+ - [ ] 错误信息包含修复命令建议
545
+
546
+ #### T-042: 开发体验文档
547
+ - **优先级**: P2
548
+ - **预估工时**: 3h
549
+ - **依赖**: T-041
550
+ - **输出**: `docs/developer-experience.md` (新增)
551
+ - **验收标准**:
552
+ - [ ] 说明常见错误和修复方法
553
+ - [ ] 提供 omc repair 使用指南
554
+ - [ ] 包含最佳实践建议
555
+
556
+ ---
557
+
558
+ ## 任务依赖关系图 (DAG)
559
+
560
+ ### Phase 1 依赖图
561
+
562
+ ```mermaid
563
+ graph TD
564
+ %% FR-01: 路径遍历防护
565
+ T001[T-001: 路径遍历扫描] --> T002[T-002: assertValidMode 实现]
566
+ T002 --> T003[T-003: 全局替换]
567
+ T003 --> T004[T-004: ESLint 规则]
568
+
569
+ %% FR-02: 敏感数据保护
570
+ T005[T-005: 敏感数据清单] --> T006[T-006: 敏感数据扫描]
571
+ T006 --> T007[T-007: 加密工具实现]
572
+ T007 --> T008[T-008: 状态文件加密集成]
573
+ T008 --> T009[T-009: CI 密钥泄露检测]
574
+
575
+ %% FR-03: 状态一致性
576
+ T010[T-010: 直接写入点扫描] --> T011[T-011: 原子写入统一替换]
577
+ T011 --> T012[T-012: 并发写入压力测试]
578
+ T011 --> T013[T-013: 跨会话污染测试]
579
+
580
+ %% FR-04: SubagentStop 推断
581
+ T014[T-014: success 字段扫描] --> T015[T-015: 推断逻辑替换]
582
+
583
+ %% FR-05: 并发度上限
584
+ T016[T-016: 并发度检查实现] --> T017[T-017: 并发度上限测试]
585
+
586
+ %% FR-06: Windows 命令注入
587
+ T018[T-018: 命令执行点扫描] --> T019[T-019: 安全命令执行替换]
588
+ T019 --> T020[T-020: Windows CI 集成]
589
+
590
+ %% 关键路径标注
591
+ classDef critical fill:#ff6b6b,stroke:#c92a2a,stroke-width:3px
592
+ class T001,T002,T003,T010,T011 critical
593
+ ```
594
+
595
+ ### Phase 2 依赖图
596
+
597
+ ```mermaid
598
+ graph TD
599
+ %% FR-07: 死锁检测
600
+ T021[T-021: 死锁检测 POC] --> T022[T-022: 死锁检测实现]
601
+
602
+ %% FR-08: 测试覆盖
603
+ T023[T-023: 并发场景测试] --> T026[T-026: 测试覆盖率报告]
604
+ T024[T-024: 状态污染测试] --> T026
605
+ T025[T-025: 安全关键路径测试] --> T026
606
+
607
+ %% FR-09: 文档同步
608
+ T027[T-027: 文档差异点修复] --> T028[T-028: 反模式代码示例]
609
+ T028 --> T029[T-029: 术语表和调试指南]
610
+ T029 --> T030[T-030: 文档同步 CI]
611
+
612
+ %% FR-10: 超时阈值
613
+ T031[T-031: 超时常量提取] --> T032[T-032: 两阶段超时测试]
614
+
615
+ %% FR-11: 级联失败
616
+ T033[T-033: 级联失败策略文档] --> T034[T-034: 级联失败测试]
617
+
618
+ %% FR-12: 结构化日志
619
+ T035[T-035: StructuredLogger 实现] --> T036[T-036: 关键路径日志集成]
620
+
621
+ %% Phase 1 到 Phase 2 依赖
622
+ T011 -.-> T023
623
+ T011 -.-> T024
624
+ T003 -.-> T025
625
+ T008 -.-> T025
626
+
627
+ classDef p1 fill:#4dabf7,stroke:#1971c2,stroke-width:2px
628
+ class T023,T024,T025,T026 p1
629
+ ```
630
+
631
+ ### Phase 3 依赖图
632
+
633
+ ```mermaid
634
+ graph TD
635
+ %% FR-13: 技术债务
636
+ T037[T-037: 技术债务分级] --> T038[T-038: P0/P1 债务清理]
637
+ T038 --> T039[T-039: 清理报告]
638
+
639
+ %% FR-14: 开发体验
640
+ T040[T-040: omc repair 命令] --> T041[T-041: 错误信息改进]
641
+ T041 --> T042[T-042: 开发体验文档]
642
+
643
+ %% Phase 2 到 Phase 3 依赖
644
+ T026 -.-> T037
645
+ T030 -.-> T042
646
+
647
+ classDef p2 fill:#51cf66,stroke:#2f9e44,stroke-width:2px
648
+ class T037,T038,T040,T041 p2
649
+ ```
650
+
651
+
652
+ ---
653
+
654
+ ## 关键路径分析
655
+
656
+ ### 🔴 关键路径 (Critical Path)
657
+
658
+ **Phase 1 关键路径** (阻塞后续所有工作):
659
+ ```
660
+ T-001 → T-002 → T-003 → T-004 (路径遍历防护: 11h)
661
+ T-010 → T-011 → T-012/T-013 (状态一致性: 9h)
662
+ ```
663
+
664
+ **总关键路径工时**: 20h (约 2.5 天)
665
+
666
+ ### 🟡 可并行任务组
667
+
668
+ **Phase 1 并行组**:
669
+ - 组 A: T-001→T-004 (路径遍历)
670
+ - 组 B: T-005→T-009 (敏感数据)
671
+ - 组 C: T-010→T-013 (状态一致性)
672
+ - 组 D: T-014→T-015 (SubagentStop)
673
+ - 组 E: T-016→T-017 (并发度)
674
+ - 组 F: T-018→T-020 (Windows)
675
+
676
+ **Phase 2 并行组**:
677
+ - 组 G: T-021→T-022 (死锁检测)
678
+ - 组 H: T-023→T-026 (测试覆盖)
679
+ - 组 I: T-027→T-030 (文档同步)
680
+ - 组 J: T-031→T-032 (超时阈值)
681
+ - 组 K: T-033→T-034 (级联失败)
682
+ - 组 L: T-035→T-036 (结构化日志)
683
+
684
+ ---
685
+
686
+ ## 执行计划
687
+
688
+ ### Phase 1: v7.5.3 安全补丁 (2 周)
689
+
690
+ **Week 1** (Day 1-5):
691
+ - Day 1: T-001, T-005, T-010, T-014, T-018 (并行启动 5 个扫描任务)
692
+ - Day 2: T-002, T-006, T-016 (工具函数实现)
693
+ - Day 3: T-003, T-007, T-011, T-015, T-019 (核心修复)
694
+ - Day 4: T-004, T-008, T-012, T-017 (集成和测试)
695
+ - Day 5: T-009, T-013, T-020 (CI 集成)
696
+
697
+ **Week 2** (Day 6-10):
698
+ - Day 6-8: 回归测试 + Bug 修复
699
+ - Day 9: 发布准备 (Release Notes, 迁移指南)
700
+ - Day 10: v7.5.3 发布
701
+
702
+ **交付物**:
703
+ - ✅ 所有 P0 安全漏洞修复
704
+ - ✅ 状态一致性保护
705
+ - ✅ Windows CI 集成
706
+ - ✅ 回归测试通过率 ≥95%
707
+
708
+ ---
709
+
710
+ ### Phase 2: v7.6.0 质量改进 (4 周)
711
+
712
+ **Week 1-2** (测试覆盖):
713
+ - T-023, T-024, T-025 (并行执行)
714
+ - T-026 (覆盖率报告)
715
+
716
+ **Week 3** (文档和超时):
717
+ - T-027, T-028, T-029, T-030 (文档同步)
718
+ - T-031, T-032 (超时阈值)
719
+
720
+ **Week 4** (可观测性):
721
+ - T-021, T-022 (死锁检测)
722
+ - T-033, T-034 (级联失败)
723
+ - T-035, T-036 (结构化日志)
724
+
725
+ **交付物**:
726
+ - ✅ 测试覆盖率达标
727
+ - ✅ 文档-代码一致性 100%
728
+ - ✅ 结构化日志和可观测性
729
+
730
+ ---
731
+
732
+ ### Phase 3: v7.7.0+ 持续优化 (按需)
733
+
734
+ **按需执行**:
735
+ - T-037, T-038, T-039 (技术债务清理)
736
+ - T-040, T-041, T-042 (开发体验改进)
737
+
738
+ **交付物**:
739
+ - ✅ 技术债务标记 <20 个
740
+ - ✅ omc repair 命令
741
+ - ✅ 改进的错误信息
742
+
743
+ ---
744
+
745
+ ## 资源分配建议
746
+
747
+ ### 人员配置
748
+
749
+ **Phase 1** (2 周, 需 2-3 人):
750
+ - 安全工程师 x1: T-001→T-009 (路径遍历 + 敏感数据)
751
+ - 后端工程师 x1: T-010→T-013 (状态一致性)
752
+ - 全栈工程师 x1: T-014→T-020 (其他 P0 修复)
753
+
754
+ **Phase 2** (4 周, 需 2 人):
755
+ - 测试工程师 x1: T-023→T-026 (测试覆盖)
756
+ - 技术作家 x1: T-027→T-030 (文档同步)
757
+ - 后端工程师 x1: T-021→T-036 (可观测性)
758
+
759
+ **Phase 3** (按需, 需 1 人):
760
+ - 维护工程师 x1: T-037→T-042 (优化)
761
+
762
+ ### 风险缓解
763
+
764
+ | 风险 | 缓解措施 |
765
+ |------|----------|
766
+ | 并发测试不充分 | 增加压力测试场景,使用 chaos engineering |
767
+ | Windows 兼容性问题 | 提前集成 Windows CI,每日运行 |
768
+ | 回归引入 | 强制测试覆盖率门禁,分阶段发布 |
769
+ | 范围蔓延 | 严格限制 MVP 范围,P2 延后处理 |
770
+
771
+ ---
772
+
773
+ ## 验收门禁
774
+
775
+ ### v7.5.3 发布门禁 (Phase 1)
776
+
777
+ **必须满足** (全部通过才能发布):
778
+ - [ ] 所有 P0 任务 (T-001 至 T-020) 完成
779
+ - [ ] 路径遍历攻击测试通过 (≥5 个场景)
780
+ - [ ] 并发压力测试通过 (10 个会话)
781
+ - [ ] 敏感数据扫描无违规
782
+ - [ ] Windows CI 测试通过
783
+ - [ ] 回归测试通过率 ≥95%
784
+ - [ ] 代码审查通过 (≥2 reviewers)
785
+ - [ ] ESLint 错误数 = 0
786
+ - [ ] TypeScript 编译错误 = 0
787
+
788
+ ### v7.6.0 发布门禁 (Phase 2)
789
+
790
+ **必须满足**:
791
+ - [ ] 所有 P1 任务 (T-021 至 T-036) 完成
792
+ - [ ] 测试覆盖率达标 (安全 100%, 状态 90%, 其他 80%)
793
+ - [ ] 文档差异点全部修复
794
+ - [ ] 死锁检测 POC 验证通过
795
+ - [ ] 所有反模式有 Before/After 示例
796
+ - [ ] 结构化日志集成完成
797
+
798
+ ### v7.7.0+ 发布门禁 (Phase 3)
799
+
800
+ **建议满足**:
801
+ - [ ] 技术债务标记 <20 个
802
+ - [ ] omc repair 命令可用
803
+ - [ ] 错误信息改进完成
804
+
805
+ ---
806
+
807
+ ## 成功指标追踪
808
+
809
+ | 指标 | 基线 | v7.5.3 目标 | v7.6.0 目标 | v7.7.0 目标 |
810
+ |------|------|------------|------------|------------|
811
+ | 安全漏洞数 | 3 类 | 0 | 0 | 0 |
812
+ | 状态管理缺陷 | 3 类 | 0 | 0 | 0 |
813
+ | Agent 生命周期问题 | 3 类 | 1 类 | 0 | 0 |
814
+ | 技术债务标记 | 51 个 | 40 个 | 30 个 | <20 个 |
815
+ | 测试覆盖率 | 未知 | 70% | 85% | 90% |
816
+ | 文档-代码一致性 | 未知 | 80% | 100% | 100% |
817
+
818
+ ---
819
+
820
+ ## 下一步行动
821
+
822
+ 1. **用户确认**: 审查本 Manifest,确认任务拆解合理性
823
+ 2. **启动 Phase 1**: 调用 `/ax-implement` 开始执行 T-001
824
+ 3. **建立追踪**: 创建 GitHub Project 追踪 42 个任务进度
825
+ 4. **每日站会**: 同步进度,识别阻塞点
826
+
827
+ ---
828
+
829
+ **生成时间**: 2026-03-16
830
+ **下一步**: 用户确认后,开始执行 Phase 1 任务