@liangjie559567/ultrapower 7.5.2 → 7.7.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 (167) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/README.md +13 -2
  4. package/bridge/mcp-server.cjs +1 -0
  5. package/dist/cli/commands/repair.d.ts +3 -0
  6. package/dist/cli/commands/repair.d.ts.map +1 -0
  7. package/dist/cli/commands/repair.js +130 -0
  8. package/dist/cli/commands/repair.js.map +1 -0
  9. package/dist/features/analytics-dashboard/metrics-collector.d.ts.map +1 -1
  10. package/dist/features/analytics-dashboard/metrics-collector.js +4 -0
  11. package/dist/features/analytics-dashboard/metrics-collector.js.map +1 -1
  12. package/dist/features/analytics-dashboard/storage.d.ts +22 -2
  13. package/dist/features/analytics-dashboard/storage.d.ts.map +1 -1
  14. package/dist/features/analytics-dashboard/storage.js.map +1 -1
  15. package/dist/features/analytics-dashboard/tracker.d.ts.map +1 -1
  16. package/dist/features/analytics-dashboard/tracker.js +14 -2
  17. package/dist/features/analytics-dashboard/tracker.js.map +1 -1
  18. package/dist/features/personalized-recommendation/behavior-tracker.js +1 -1
  19. package/dist/features/personalized-recommendation/behavior-tracker.js.map +1 -1
  20. package/dist/features/personalized-recommendation/recommender.d.ts +1 -1
  21. package/dist/features/personalized-recommendation/recommender.d.ts.map +1 -1
  22. package/dist/features/personalized-recommendation/recommender.js +1 -1
  23. package/dist/features/personalized-recommendation/recommender.js.map +1 -1
  24. package/dist/features/quality-gate/gate-checker.d.ts.map +1 -1
  25. package/dist/features/quality-gate/gate-checker.js +2 -1
  26. package/dist/features/quality-gate/gate-checker.js.map +1 -1
  27. package/dist/hooks/bridge-converter.d.ts +8 -0
  28. package/dist/hooks/bridge-converter.d.ts.map +1 -1
  29. package/dist/hooks/bridge-converter.js +38 -0
  30. package/dist/hooks/bridge-converter.js.map +1 -1
  31. package/dist/hooks/handlers/route-map.js +6 -6
  32. package/dist/hooks/handlers/route-map.js.map +1 -1
  33. package/dist/hooks/handlers/stop-continuation.d.ts.map +1 -1
  34. package/dist/hooks/handlers/stop-continuation.js.map +1 -1
  35. package/dist/hooks/keyword-detector/conflict-resolver.d.ts +16 -0
  36. package/dist/hooks/keyword-detector/conflict-resolver.d.ts.map +1 -0
  37. package/dist/hooks/keyword-detector/conflict-resolver.js +41 -0
  38. package/dist/hooks/keyword-detector/conflict-resolver.js.map +1 -0
  39. package/dist/hooks/persistent-mode/index.js +2 -2
  40. package/dist/hooks/persistent-mode/index.js.map +1 -1
  41. package/dist/hooks/processors/permissionRequest.d.ts.map +1 -1
  42. package/dist/hooks/processors/permissionRequest.js.map +1 -1
  43. package/dist/hooks/ultrawork/index.js +3 -3
  44. package/dist/hooks/ultrawork/index.js.map +1 -1
  45. package/dist/hooks/workflow-gate/index.js +4 -4
  46. package/dist/hooks/workflow-gate/index.js.map +1 -1
  47. package/dist/hud/usage-api.d.ts.map +1 -1
  48. package/dist/hud/usage-api.js +3 -2
  49. package/dist/hud/usage-api.js.map +1 -1
  50. package/dist/index.js +1 -1
  51. package/dist/index.js.map +1 -1
  52. package/dist/installer/index.js +1 -1
  53. package/dist/installer/index.js.map +1 -1
  54. package/dist/lib/atomic-write.d.ts.map +1 -1
  55. package/dist/lib/atomic-write.js +23 -2
  56. package/dist/lib/atomic-write.js.map +1 -1
  57. package/dist/lib/auditLog.d.ts +1 -1
  58. package/dist/lib/auditLog.d.ts.map +1 -1
  59. package/dist/lib/crypto.d.ts +3 -0
  60. package/dist/lib/crypto.d.ts.map +1 -0
  61. package/dist/lib/crypto.js +60 -0
  62. package/dist/lib/crypto.js.map +1 -0
  63. package/dist/lib/deadlock-detector.d.ts +21 -0
  64. package/dist/lib/deadlock-detector.d.ts.map +1 -0
  65. package/dist/lib/deadlock-detector.js +74 -0
  66. package/dist/lib/deadlock-detector.js.map +1 -0
  67. package/dist/lib/fs-utils.d.ts +11 -0
  68. package/dist/lib/fs-utils.d.ts.map +1 -0
  69. package/dist/lib/fs-utils.js +32 -0
  70. package/dist/lib/fs-utils.js.map +1 -0
  71. package/dist/lib/logger.d.ts +7 -1
  72. package/dist/lib/logger.d.ts.map +1 -1
  73. package/dist/lib/logger.js +28 -4
  74. package/dist/lib/logger.js.map +1 -1
  75. package/dist/lib/state-adapter.d.ts +3 -2
  76. package/dist/lib/state-adapter.d.ts.map +1 -1
  77. package/dist/lib/state-adapter.js +12 -3
  78. package/dist/lib/state-adapter.js.map +1 -1
  79. package/dist/security/concurrency-control.d.ts +8 -1
  80. package/dist/security/concurrency-control.d.ts.map +1 -1
  81. package/dist/security/concurrency-control.js +22 -0
  82. package/dist/security/concurrency-control.js.map +1 -1
  83. package/dist/security/tenant-isolator.js.map +1 -1
  84. package/dist/state/index.d.ts +2 -0
  85. package/dist/state/index.d.ts.map +1 -1
  86. package/dist/state/index.js +8 -6
  87. package/dist/state/index.js.map +1 -1
  88. package/dist/state/migration/integrity.d.ts.map +1 -1
  89. package/dist/state/migration/integrity.js +1 -2
  90. package/dist/state/migration/integrity.js.map +1 -1
  91. package/dist/tools/lsp-tools.js.map +1 -1
  92. package/dist/workers/sqlite-adapter.d.ts.map +1 -1
  93. package/dist/workers/sqlite-adapter.js.map +1 -1
  94. package/docs/CLAUDE.md +2 -2
  95. package/docs/CODE_BASED_FLOW.md +12 -12
  96. package/docs/COMPATIBILITY.md +1 -1
  97. package/docs/FEATURES.md +16 -16
  98. package/docs/INSTALL.md +4 -4
  99. package/docs/MIGRATION.md +2 -2
  100. package/docs/OMC-CLAUDE.md +1 -1
  101. package/docs/REFERENCE.md +16 -16
  102. package/docs/UPGRADE_VERIFICATION.md +1 -1
  103. package/docs/agent-templates/README.md +2 -2
  104. package/docs/api/media/INSTALL.md +2 -2
  105. package/docs/api/media/MIGRATION.md +2 -2
  106. package/docs/api/media/REFERENCE.md +14 -14
  107. package/docs/api/media/mcp-server-usage.md +4 -4
  108. package/docs/architecture/ultrapower-flow-analysis.md +1 -1
  109. package/docs/audit/direct-write-scan.md +88 -0
  110. package/docs/audit/subagent-stop-scan.md +48 -0
  111. package/docs/dev-experience/README.md +226 -0
  112. package/docs/dev-experience/best-practices.md +364 -0
  113. package/docs/dev-experience/quick-reference.md +114 -0
  114. package/docs/dev-experience/troubleshooting-guide.md +280 -0
  115. package/docs/dev-standards/AGENTS.md +68 -68
  116. package/docs/getting-started/quickstart.md +1 -1
  117. package/docs/glossary.md +174 -0
  118. package/docs/guides/mcp-server-usage.md +4 -4
  119. package/docs/guides/tool-name-migration.md +12 -12
  120. package/docs/mcp/configuration.md +5 -5
  121. package/docs/mcp/performance.md +5 -5
  122. package/docs/mcp-compatibility-matrix.md +1 -1
  123. package/docs/partials/agent-tiers.md +24 -24
  124. package/docs/partials/features.md +1 -1
  125. package/docs/partials/verification-tiers.md +2 -2
  126. package/docs/plans/2026-02-24-superpowers-ultrapower-integration-design.md +2 -2
  127. package/docs/plans/2026-03-02-docs-comprehensive-update.md +16 -16
  128. package/docs/plans/2026-03-05-mcp-adoption-atomic-tasks.md +9 -9
  129. package/docs/plans/2026-03-14-mcp-intelligent-orchestration.md +679 -679
  130. package/docs/plans/2026-03-16-tech-debt-fixes.md +222 -0
  131. package/docs/prd/bugs-pain-points-audit-dag.md +297 -0
  132. package/docs/prd/bugs-pain-points-audit-draft.md +154 -0
  133. package/docs/prd/bugs-pain-points-audit-manifest.md +830 -0
  134. package/docs/prd/bugs-pain-points-audit-rough.md +654 -0
  135. package/docs/reports/tech-debt-verification-2026-03-16.md +87 -0
  136. package/docs/research/deadlock-detection-poc.md +275 -0
  137. package/docs/reviews/bugs-pain-points-audit/review_critic.md +213 -0
  138. package/docs/reviews/bugs-pain-points-audit/review_domain.md +247 -0
  139. package/docs/reviews/bugs-pain-points-audit/review_product.md +189 -0
  140. package/docs/reviews/bugs-pain-points-audit/review_tech.md +382 -0
  141. package/docs/reviews/bugs-pain-points-audit/review_ux.md +161 -0
  142. package/docs/reviews/bugs-pain-points-audit/summary.md +129 -0
  143. package/docs/reviews/bugs-pain-points-audit/tech-debt-v7.6.0-code-review.md +328 -0
  144. package/docs/security/command-injection-scan.md +223 -0
  145. package/docs/security/path-traversal-scan-report.md +229 -0
  146. package/docs/security/sensitive-data-inventory.md +170 -0
  147. package/docs/security/sensitive-data-violations.md +388 -0
  148. package/docs/shared/agent-tiers.md +24 -24
  149. package/docs/shared/features.md +1 -1
  150. package/docs/shared/verification-tiers.md +2 -2
  151. package/docs/standards/README.md +1 -1
  152. package/docs/standards/cascade-failure.md +324 -0
  153. package/docs/standards/runtime-protection.md +7 -0
  154. package/docs/tech-debt/classification.md +190 -0
  155. package/docs/tech-debt/cleanup-report.md +172 -0
  156. package/docs/testing/client-additional-test-fix.md +64 -0
  157. package/docs/testing/concurrent-write-test-fix.md +111 -0
  158. package/docs/testing/coverage-report.md +274 -0
  159. package/docs/testing/phase2-test-coverage-completion.md +223 -0
  160. package/docs/testing/phase2-week3-docs-completion.md +271 -0
  161. package/docs/testing/phase2-week4-observability-completion.md +324 -0
  162. package/docs/testing/phase3-completion.md +324 -0
  163. package/docs/testing/test-fix-progress-2026-03-16.md +75 -0
  164. package/docs/testing/test-fix-summary.md +197 -0
  165. package/docs/testing/timer-buffer-test-fix.md +117 -0
  166. package/docs/troubleshooting.md +1 -1
  167. package/package.json +10 -10
@@ -0,0 +1,654 @@
1
+ # PRD: ultrapower v7.5.2 BUG 与痛点审计 - Rough
2
+
3
+ > **状态**: ROUGH (专家评审完成)
4
+ > **作者**: Axiom Review Aggregator
5
+ > **版本**: 1.0
6
+ > **创建日期**: 2026-03-16
7
+ > **项目**: ultrapower v7.5.2 多 Agent 编排系统
8
+ > **评审轮次**: 5 专家并行评审(UX、Product、Domain、Tech、Critic)
9
+
10
+ ---
11
+
12
+ ## 执行摘要
13
+
14
+ 本 PRD 定义 ultrapower v7.5.2 的全面质量审计和修复计划,覆盖安全、稳定性、测试、文档四大维度。经 5 专家评审后,采用**分阶段发布策略**,优先修复 P0 安全和状态一致性问题。
15
+
16
+ **关键决策**:
17
+ - 分 3 个版本交付:v7.5.3 (安全补丁) → v7.6.0 (质量改进) → v7.7.0+ (持续优化)
18
+ - 死锁检测降级为 P1(需 POC 验证)
19
+ - 测试覆盖率采用分层策略(安全 100%、状态 90%、其他 80%)
20
+ - 敏感数据扫描和加密存储升级为 P0
21
+
22
+ ---
23
+
24
+ ## 1. 背景与目标
25
+
26
+ ### 1.1 项目背景
27
+
28
+ ultrapower v7.5.2 是一个复杂的多 Agent 编排系统:
29
+ - **规模**: 1198 个 TypeScript 源文件
30
+ - **组件**: 49 agents、71 skills、43 hooks、35 tools
31
+ - **技术栈**: TypeScript + Node.js + Vitest + ESLint
32
+ - **核心功能**: 多模式编排(autopilot、ralph、team、pipeline 等 8 种模式)
33
+ - **已知技术债务**: 51 个 TODO/FIXME/HACK 标记
34
+
35
+ ### 1.2 审计目标
36
+
37
+ **主要目标**:
38
+ 1. 修复所有 P0 安全漏洞(路径遍历、输入验证、敏感数据泄露)
39
+ 2. 解决状态管理缺陷(并发写入、跨会话污染)
40
+ 3. 修复 Agent 生命周期问题(超时、孤儿检测、死锁)
41
+ 4. 提升测试覆盖率和质量
42
+ 5. 同步文档与代码
43
+
44
+ **成功指标**:
45
+ - 安全漏洞数: 3 类反模式 → 0
46
+ - 状态管理缺陷: 3 类反模式 → 0
47
+ - 测试覆盖率: 未知 → 安全 100%、状态 90%、其他 80%
48
+ - 文档-代码一致性: 未量化 → 100%
49
+ - 技术债务标记: 51 个 → <20 个
50
+
51
+ ### 1.3 审计范围
52
+
53
+ **包含**:
54
+ - ✅ 安全漏洞修复和验证
55
+ - ✅ 状态管理并发保护
56
+ - ✅ Agent 生命周期边界情况
57
+ - ✅ 测试覆盖补充(边界用例、并发场景)
58
+ - ✅ 文档同步和改进
59
+ - ✅ 敏感数据扫描和加密
60
+
61
+ **不包含**:
62
+ - ❌ 新功能开发
63
+ - ❌ 大规模架构重构(留待 v8.0)
64
+ - ❌ 性能基准测试(需独立专项)
65
+ - ❌ 用户体验调研(需用户反馈数据)
66
+
67
+ ---
68
+
69
+ ## 2. 用户故事与角色
70
+
71
+ ### 2.1 核心角色定义
72
+
73
+ | 角色 | 定义 | 在审计中的参与点 |
74
+ |------|------|------------------|
75
+ | **核心维护者** | ultrapower 核心团队成员 | 执行审计、修复问题、审查 PR |
76
+ | **外部贡献者** | 社区开发者 | 报告问题、提交修复 PR |
77
+ | **终端用户** | 使用 ultrapower 的开发者 | 受益于稳定性和安全性提升 |
78
+ | **架构师** | 负责 v8.0 重构规划 | 使用审计结果作为重构输入 |
79
+
80
+ ### 2.2 用户故事
81
+
82
+ **US-01: 安全加固** (P0)
83
+ - **作为** 核心维护者
84
+ - **我想要** 修复所有路径遍历和输入验证漏洞
85
+ - **以便** 防止生产环境安全事故
86
+
87
+ **US-02: 状态一致性** (P0)
88
+ - **作为** 终端用户
89
+ - **我想要** 系统在并发场景下保持状态一致
90
+ - **以便** 避免任务丢失和数据损坏
91
+
92
+ **US-03: Agent 生命周期** (P0)
93
+ - **作为** 终端用户
94
+ - **我想要** Agent 超时和孤儿检测正确工作
95
+ - **以便** 避免资源泄露和卡死现象
96
+
97
+ **US-04: 测试质量** (P1)
98
+ - **作为** 外部贡献者
99
+ - **我想要** 完善的测试覆盖和边界用例
100
+ - **以便** 安全地提交修复而不引入回归
101
+
102
+ **US-05: 文档同步** (P1)
103
+ - **作为** 外部贡献者
104
+ - **我想要** 文档与代码保持一致
105
+ - **以便** 快速理解系统行为和约束
106
+
107
+ **US-06: 架构洞察** (P1)
108
+ - **作为** 架构师
109
+ - **我想要** 识别架构层面的设计缺陷
110
+ - **以便** 为 v8.0 重构提供决策依据
111
+
112
+ ---
113
+
114
+ ## 3. 功能需求
115
+
116
+ ### 3.1 P0 需求(阻塞性 - v7.5.3)
117
+
118
+ #### FR-01: 路径遍历防护
119
+ **优先级**: P0 | **来源**: Critic S-01, Domain AP-S01
120
+
121
+ **需求描述**:
122
+ - 所有使用 `mode` 参数拼接路径的代码必须通过 `assertValidMode()` 校验
123
+ - 建立 CI 门禁阻止未校验路径拼接
124
+ - 提供静态分析扫描报告
125
+
126
+ **验收标准**:
127
+ - [ ] 全局搜索所有 `mode` 参数使用点,生成扫描报告
128
+ - [ ] 所有路径拼接前调用 `assertValidMode(mode)`
129
+ - [ ] 补充路径遍历攻击测试用例(至少 5 个场景)
130
+ - [ ] ESLint 规则检测未校验的路径拼接
131
+ - [ ] CI 测试通过率 100%
132
+
133
+ **技术实现**:
134
+ ```typescript
135
+ // ❌ 错误(Draft 中的反模式)
136
+ const path = `.omc/state/${mode}-state.json`;
137
+
138
+ // ✅ 正确
139
+ import { assertValidMode } from './src/lib/validateMode';
140
+ const validMode = assertValidMode(mode);
141
+ const path = `.omc/state/${validMode}-state.json`;
142
+ ```
143
+
144
+ ---
145
+
146
+ #### FR-02: 敏感数据保护
147
+ **优先级**: P0 | **来源**: Critic S-02, Domain AP-S03
148
+
149
+ **需求描述**:
150
+ - 建立敏感数据清单(API keys、tokens、credentials)
151
+ - 实现敏感数据扫描机制
152
+ - 状态文件中的敏感字段使用 AES-256-GCM 加密存储
153
+ - 集成密钥泄露检测工具到 CI
154
+
155
+ **验收标准**:
156
+ - [ ] 定义敏感数据白名单/黑名单
157
+ - [ ] 扫描当前代码库,生成违规点统计报告
158
+ - [ ] 实现 `encryptSensitiveFields()` 和 `decryptSensitiveFields()` 工具函数
159
+ - [ ] 状态文件权限设置为 0o600
160
+ - [ ] CI 集成 `gitleaks` 或等效工具
161
+ - [ ] 审计日志脱敏规则覆盖所有敏感字段
162
+
163
+ **技术实现**:
164
+ ```typescript
165
+ // 敏感字段加密存储
166
+ import { encryptSensitiveFields } from './src/lib/crypto';
167
+
168
+ const state = {
169
+ apiKey: 'sk-xxx', // 将被加密
170
+ sessionId: 'abc', // 不加密
171
+ };
172
+
173
+ const encrypted = encryptSensitiveFields(state, ['apiKey']);
174
+ atomicWriteJsonSyncWithRetry(statePath, encrypted, 3, 0o600);
175
+ ```
176
+
177
+ ---
178
+
179
+ #### FR-03: 状态一致性保护
180
+ **优先级**: P0 | **来源**: Tech, Domain AP-C01
181
+
182
+ **需求描述**:
183
+ - 所有状态文件写入统一使用 `atomicWriteJsonSyncWithRetry`
184
+ - 修复 `writeTrackingStateImmediate` 绕过原子写入的问题
185
+ - 实现并发写入冲突检测和重试机制
186
+
187
+ **验收标准**:
188
+ - [ ] 替换所有直接 `writeFileSync` 调用为原子写入
189
+ - [ ] 并发压力测试通过(10 个会话同时写入 `subagent-tracking.json`)
190
+ - [ ] 文件锁超时后的降级策略验证
191
+ - [ ] 跨会话状态污染测试通过(session_id 匹配逻辑)
192
+
193
+ **技术实现**:
194
+ ```typescript
195
+ // ❌ 错误(绕过原子写入)
196
+ writeFileSync(statePath, JSON.stringify(state, null, 2));
197
+
198
+ // ✅ 正确
199
+ import { atomicWriteJsonSyncWithRetry } from './src/lib/atomic-write';
200
+ atomicWriteJsonSyncWithRetry(statePath, state, 3);
201
+ ```
202
+
203
+ ---
204
+
205
+ #### FR-04: SubagentStop 推断修复
206
+ **优先级**: P0 | **来源**: Tech, Domain AP-S02
207
+
208
+ **需求描述**:
209
+ - 修复 `SubagentStopInput.success` 字段推断逻辑
210
+ - 统一使用 `success !== false` 而非直接读取 `input.success`
211
+
212
+ **验收标准**:
213
+ - [ ] 全局搜索所有 `input.success` 使用点
214
+ - [ ] 替换为 `input.success !== false`
215
+ - [ ] 补充单元测试验证 `undefined`、`true`、`false` 三种情况
216
+ - [ ] 文档澄清 `success` 字段语义
217
+
218
+ **技术实现**:
219
+ ```typescript
220
+ // ❌ 错误(直接读取已废弃字段)
221
+ if (input.success) { /* ... */ }
222
+
223
+ // ✅ 正确(推断逻辑)
224
+ const isSuccess = input.success !== false;
225
+ if (isSuccess) { /* ... */ }
226
+ ```
227
+
228
+ ---
229
+
230
+ #### FR-05: 并发度上限
231
+ **优先级**: P0 | **来源**: Critic E-01, Domain
232
+
233
+ **需求描述**:
234
+ - 定义并发 Agent 数量上限(硬编码 20 个)
235
+ - 超出上限时拒绝新 Agent 启动,返回明确错误
236
+ - 提供配置项允许用户调整上限
237
+
238
+ **验收标准**:
239
+ - [ ] 实现 `MAX_CONCURRENT_AGENTS = 20` 常量
240
+ - [ ] Agent 启动前检查当前并发数
241
+ - [ ] 超限时返回错误: "Maximum concurrent agents (20) reached"
242
+ - [ ] 补充并发度上限测试(尝试启动 25 个 Agent)
243
+
244
+ ---
245
+
246
+ #### FR-06: Windows 命令注入审计
247
+ **优先级**: P0 | **来源**: Critic S-03
248
+
249
+ **需求描述**:
250
+ - 审计所有 `execSync`/`exec`/`spawn` 调用
251
+ - 验证 Windows 平台命令执行安全性
252
+ - 确保所有命令执行使用 `execFile` 或参数数组形式
253
+
254
+ **验收标准**:
255
+ - [ ] 生成所有命令执行点的扫描报告
256
+ - [ ] 验证 Windows 平台无命令注入风险
257
+ - [ ] 补充 Windows 平台 CI 测试
258
+ - [ ] 文档说明安全的命令执行模式
259
+
260
+ ---
261
+
262
+ ### 3.2 P1 需求(严重 - v7.6.0)
263
+
264
+ #### FR-07: 死锁检测实现
265
+ **优先级**: P1 | **来源**: Domain AP-AL03, Critic L-02
266
+
267
+ **需求描述**:
268
+ - 实现 `DEADLOCK_CHECK_THRESHOLD = 3` 检测逻辑
269
+ - 检测 Agent 相互等待的循环依赖
270
+ - 先实现警告模式,不自动终止
271
+
272
+ **验收标准**:
273
+ - [ ] 完成 POC 验证检测算法准确性
274
+ - [ ] 实现循环依赖图分析
275
+ - [ ] 检测到死锁时记录警告日志
276
+ - [ ] 补充死锁场景测试用例(至少 3 个场景)
277
+
278
+ **技术实现**:
279
+ ```typescript
280
+ // 死锁检测伪代码
281
+ function detectDeadlock(agents: Agent[]): boolean {
282
+ const graph = buildDependencyGraph(agents);
283
+ return hasCycle(graph);
284
+ }
285
+ ```
286
+
287
+ ---
288
+
289
+ #### FR-08: 测试覆盖补充
290
+ **优先级**: P1 | **来源**: Critic E-01/E-02/E-03, Tech
291
+
292
+ **需求描述**:
293
+ - 补充并发场景测试
294
+ - 补充状态文件损坏恢复测试
295
+ - 补充跨会话状态污染测试
296
+ - 达到分层覆盖率目标
297
+
298
+ **验收标准**:
299
+ - [ ] 安全关键路径测试覆盖率 100%
300
+ - [ ] 状态管理模块测试覆盖率 ≥90%
301
+ - [ ] 其他模块测试覆盖率 ≥80%
302
+ - [ ] 并发压力测试(100 并发写入)
303
+ - [ ] Windows 平台测试通过
304
+
305
+ **测试场景清单**:
306
+ 1. 10 个并发会话同时写入 `subagent-tracking.json`
307
+ 2. JSON 文件部分写入(进程被 kill)
308
+ 3. 文件大小为 0
309
+ 4. JSON 格式错误(手动编辑)
310
+ 5. 会话 A 异常终止,会话 B 读取脏状态
311
+ 6. 两个会话同时清理同一个 mode 状态文件
312
+ 7. session_id 为 null/undefined 的旧版状态文件
313
+
314
+ ---
315
+
316
+ #### FR-09: 文档同步
317
+ **优先级**: P1 | **来源**: Tech D-03/D-04/D-09, UX 问题 10/11
318
+
319
+ **需求描述**:
320
+ - 修复文档与代码不一致的差异点
321
+ - 为每个反模式提供 Before/After 代码示例
322
+ - 添加术语表和调试指南
323
+ - 建立文档同步 CI 检查
324
+
325
+ **验收标准**:
326
+ - [ ] 修复差异点 D-03: 合法 mode 数量(7 → 8)
327
+ - [ ] 修复差异点 D-04: 互斥模式范围(2 → 4)
328
+ - [ ] 修复差异点 D-09: stale 阈值双重含义澄清
329
+ - [ ] 为 51 个反模式补充 Before/After 示例
330
+ - [ ] 添加术语表(至少 20 个核心术语)
331
+ - [ ] 补充调试指南和错误恢复路径
332
+
333
+ ---
334
+
335
+ #### FR-10: 超时阈值澄清
336
+ **优先级**: P1 | **来源**: Critic L-01, Domain AP-AL02
337
+
338
+ **需求描述**:
339
+ - 明确区分两种超时阈值:5 分钟警告 vs 10 分钟自动终止
340
+ - 提取超时常量到配置文件
341
+ - 补充测试验证两阶段超时行为
342
+
343
+ **验收标准**:
344
+ - [ ] 定义常量 `AGENT_STALE_WARNING_MS = 5 * 60 * 1000`
345
+ - [ ] 定义常量 `AGENT_STALE_TERMINATE_MS = 10 * 60 * 1000`
346
+ - [ ] 文档明确说明两阶段超时语义
347
+ - [ ] 补充测试:5 分钟触发警告,10 分钟触发终止
348
+
349
+ ---
350
+
351
+ #### FR-11: Agent 级联失败处理
352
+ **优先级**: P1 | **来源**: Domain G-01
353
+
354
+ **需求描述**:
355
+ - 补充 Agent 级联失败处理文档
356
+ - 定义依赖链中断的处理策略
357
+ - 记录失败传播路径
358
+
359
+ **验收标准**:
360
+ - [ ] 文档说明:当 planner Agent 失败时,executor Agents 如何处理
361
+ - [ ] 定义失败传播策略(立即停止 vs 继续执行)
362
+ - [ ] 补充级联失败测试用例
363
+
364
+ ---
365
+
366
+ #### FR-12: 结构化日志
367
+ **优先级**: P1 | **来源**: Domain G-02
368
+
369
+ **需求描述**:
370
+ - 实现结构化日志(JSON 格式)
371
+ - 支持日志级别(DEBUG/INFO/WARN/ERROR)
372
+ - 集成 OpenTelemetry 或自定义 Trace ID 传播
373
+
374
+ **验收标准**:
375
+ - [ ] 实现 `StructuredLogger` 类
376
+ - [ ] 所有关键路径使用结构化日志
377
+ - [ ] 日志包含 trace_id、session_id、agent_id
378
+ - [ ] 支持日志级别过滤
379
+
380
+ ---
381
+
382
+ ### 3.3 P2 需求(优化 - v7.7.0+)
383
+
384
+ #### FR-13: 技术债务清理
385
+ **优先级**: P2 | **来源**: Draft, Product Q-02
386
+
387
+ **需求描述**:
388
+ - 对 51 个 TODO/FIXME/HACK 标记进行分级
389
+ - 清理过期标记
390
+ - 重构反模式代码
391
+
392
+ **验收标准**:
393
+ - [ ] 技术债务标记数量 <20 个
394
+ - [ ] 所有 P0/P1 标记已处理
395
+ - [ ] 生成技术债务清理报告
396
+
397
+ ---
398
+
399
+ #### FR-14: 开发体验改进
400
+ **优先级**: P2 | **来源**: UX 问题 7/13
401
+
402
+ **需求描述**:
403
+ - 提供自动修复命令(如 `omc repair --fix-state-pollution`)
404
+ - 改善错误信息可读性
405
+ - 在错误信息中包含修复提示
406
+
407
+ **验收标准**:
408
+ - [ ] 实现 `omc repair` 命令
409
+ - [ ] 错误信息包含调试提示和文档链接
410
+ - [ ] 提供交互式错误恢复向导
411
+
412
+ ---
413
+
414
+ ## 4. 业务流程
415
+
416
+ ### 4.1 审计执行流程
417
+
418
+ ```mermaid
419
+ graph TD
420
+ A[启动审计] --> B[静态分析扫描]
421
+ B --> C[生成问题清单]
422
+ C --> D{按优先级分类}
423
+
424
+ D --> E[P0: 安全+状态]
425
+ D --> F[P1: 测试+文档]
426
+ D --> G[P2: 优化]
427
+
428
+ E --> H[修复实施]
429
+ F --> H
430
+ G --> I[技术债务池]
431
+
432
+ H --> J[单元测试]
433
+ J --> K[集成测试]
434
+ K --> L[回归测试]
435
+
436
+ L --> M{测试通过?}
437
+ M -->|否| H
438
+ M -->|是| N[代码审查]
439
+
440
+ N --> O{审查通过?}
441
+ O -->|否| H
442
+ O -->|是| P[合并到 dev]
443
+
444
+ P --> Q[发布版本]
445
+ ```
446
+
447
+ ### 4.2 分阶段发布流程
448
+
449
+ **Phase 1: v7.5.3 安全补丁 (2 周)**
450
+ ```
451
+ Week 1:
452
+ Day 1-2: FR-01 路径遍历防护
453
+ Day 3-4: FR-02 敏感数据保护
454
+ Day 5: FR-04 SubagentStop 推断修复
455
+
456
+ Week 2:
457
+ Day 1-2: FR-03 状态一致性保护
458
+ Day 3: FR-05 并发度上限
459
+ Day 4: FR-06 Windows 命令注入审计
460
+ Day 5: 回归测试 + 发布
461
+ ```
462
+
463
+ **Phase 2: v7.6.0 质量改进 (4 周)**
464
+ ```
465
+ Week 1-2: FR-08 测试覆盖补充
466
+ Week 3: FR-09 文档同步 + FR-10 超时阈值澄清
467
+ Week 4: FR-07 死锁检测 + FR-11 级联失败处理 + FR-12 结构化日志
468
+ ```
469
+
470
+ **Phase 3: v7.7.0+ 持续优化**
471
+ ```
472
+ 按需处理: FR-13 技术债务清理 + FR-14 开发体验改进
473
+ ```
474
+
475
+ ---
476
+
477
+ ## 5. 非功能需求
478
+
479
+ ### 5.1 性能要求
480
+
481
+ | 指标 | 当前 | 目标 | 测量方式 |
482
+ |------|------|------|----------|
483
+ | 状态文件写入延迟 | 未测量 | <100ms (p95) | 性能测试 |
484
+ | 并发 Agent 启动时间 | 未测量 | <500ms (10 个并发) | 压力测试 |
485
+ | 文件锁获取超时 | 5s | 5s (保持) | 配置项 |
486
+
487
+ ### 5.2 安全要求
488
+
489
+ - 所有路径拼接必须通过白名单校验
490
+ - 敏感数据必须加密存储(AES-256-GCM)
491
+ - 状态文件权限必须为 0o600
492
+ - CI 必须集成密钥泄露检测
493
+
494
+ ### 5.3 兼容性要求
495
+
496
+ - Node.js: ≥18.0.0
497
+ - TypeScript: ≥5.0.0
498
+ - 操作系统: macOS、Linux、Windows
499
+ - 向后兼容: 状态文件格式不变,支持热回滚
500
+
501
+ ### 5.4 可观测性要求
502
+
503
+ - 结构化日志(JSON 格式)
504
+ - 日志级别: DEBUG/INFO/WARN/ERROR
505
+ - 关键操作必须记录 trace_id
506
+ - 支持 OpenTelemetry 集成(可选)
507
+
508
+ ---
509
+
510
+ ## 6. 验收标准
511
+
512
+ ### 6.1 P0 验收标准(v7.5.3 发布门禁)
513
+
514
+ **必须满足**:
515
+ - [ ] 所有 P0 功能需求(FR-01 至 FR-06)实施完成
516
+ - [ ] 路径遍历攻击测试通过(至少 5 个场景)
517
+ - [ ] 并发压力测试通过(10 个会话同时写入)
518
+ - [ ] 敏感数据扫描报告无违规点
519
+ - [ ] Windows CI 测试通过
520
+ - [ ] 回归测试通过率 ≥95%
521
+ - [ ] 代码审查通过(至少 2 名 reviewer)
522
+
523
+ ### 6.2 P1 验收标准(v7.6.0 发布门禁)
524
+
525
+ **必须满足**:
526
+ - [ ] 所有 P1 功能需求(FR-07 至 FR-12)实施完成
527
+ - [ ] 测试覆盖率达标(安全 100%、状态 90%、其他 80%)
528
+ - [ ] 文档差异点全部修复
529
+ - [ ] 死锁检测 POC 验证通过
530
+ - [ ] 所有反模式补充 Before/After 示例
531
+
532
+ ### 6.3 质量门禁
533
+
534
+ **代码质量**:
535
+ - ESLint 错误数: 0
536
+ - TypeScript 编译错误: 0
537
+ - 单元测试通过率: 100%
538
+
539
+ **文档质量**:
540
+ - 所有 API 变更有文档说明
541
+ - 所有反模式有代码示例
542
+ - 术语表覆盖核心概念
543
+
544
+ ---
545
+
546
+ ## 7. 风险与缓解
547
+
548
+ ### 7.1 技术风险
549
+
550
+ | 风险 | 概率 | 影响 | 缓解措施 |
551
+ |------|------|------|----------|
552
+ | 原子写入性能回退 | 中 | 中 | 保留 debounce 层,仅修复即时写入 |
553
+ | Windows 平台兼容性 | 低 | 高 | 增加 Windows CI 测试 |
554
+ | 并发测试不充分 | 高 | 中 | 补充压力测试用例 |
555
+ | 死锁检测误报 | 中 | 低 | 先实现警告模式,不自动终止 |
556
+ | 回归引入 | 中 | 高 | 强制测试覆盖率门禁 + 分阶段发布 |
557
+
558
+ ### 7.2 执行风险
559
+
560
+ | 风险 | 概率 | 影响 | 缓解措施 |
561
+ |------|------|------|----------|
562
+ | 范围蔓延 | 高 | 高 | 严格限制 MVP 范围,P2 延后处理 |
563
+ | 资源不足 | 中 | 中 | 优先 P0,P1/P2 按需调整 |
564
+ | 用户感知价值低 | 高 | 中 | 发布说明强调稳定性和安全性 |
565
+
566
+ ### 7.3 战略风险
567
+
568
+ **关键风险**: 审计工作可能延迟新功能开发
569
+
570
+ **缓解措施**:
571
+ - 将审计工作拆分为 3 个 sprint
572
+ - P0 修复后立即发布 v7.5.3
573
+ - P1/P2 问题在后续版本逐步交付
574
+
575
+ ---
576
+
577
+ ## 8. 成功指标
578
+
579
+ ### 8.1 Primary KPI
580
+
581
+ | 指标 | 当前基线 | v7.5.3 目标 | v7.6.0 目标 | 测量方式 |
582
+ |------|---------|------------|------------|----------|
583
+ | 安全漏洞数 | 3 类 | 0 | 0 | 安全审计 |
584
+ | 状态管理缺陷 | 3 类 | 0 | 0 | 并发测试 |
585
+ | Agent 生命周期问题 | 3 类 | 1 类 | 0 | 边界测试 |
586
+ | 技术债务标记 | 51 个 | 40 个 | <20 个 | 代码扫描 |
587
+ | 测试覆盖率 | 未知 | 70% | 80%+ | Coverage 报告 |
588
+
589
+ ### 8.2 Secondary KPI
590
+
591
+ - 构建失败率: 降低 30%
592
+ - 用户报告的运行时错误: 降低 50%
593
+ - 文档-代码一致性: 100%
594
+ - PR 审查时间: 降低 20%
595
+
596
+ ---
597
+
598
+ ## 9. 暂不包含(Out of Scope)
599
+
600
+ 以下内容明确不在本次审计范围内:
601
+
602
+ **延后至 v8.0.0**:
603
+ - Saga 模式补偿事务
604
+ - Redis/etcd 状态存储后端
605
+ - 自适应限流和熔断机制
606
+ - 大规模架构重构
607
+
608
+ **移至技术债务池**:
609
+ - 性能基准测试
610
+ - 用户体验调研
611
+ - UI/可视化改进
612
+
613
+ ---
614
+
615
+ ## 10. 附录
616
+
617
+ ### 附录 A: 反模式清单
618
+
619
+ 详见 `docs/standards/anti-patterns.md`
620
+
621
+ **安全反模式**:
622
+ - AP-S01: 未校验 mode 参数直接拼接路径
623
+ - AP-S02: 直接读取 SubagentStopInput.success
624
+ - AP-S03: 在状态文件中存储敏感信息
625
+
626
+ **状态管理反模式**:
627
+ - AP-ST01: 混淆 agent stale 和 mode stale 阈值
628
+ - AP-ST02: 跨会话误清理状态文件
629
+ - AP-ST03: 在 ~/.claude/ 中存储 OMC 状态
630
+
631
+ **Agent 生命周期反模式**:
632
+ - AP-AL01: 向孤儿 Agent 发送 SHUTDOWN 信号
633
+ - AP-AL02: 混淆超时阈值
634
+ - AP-AL03: 忽略 DEADLOCK_CHECK_THRESHOLD
635
+
636
+ **并发反模式**:
637
+ - AP-C01: 绕过原子写入保护
638
+ - AP-C02: 不使用防抖直接写入高频状态
639
+
640
+ ### 附录 B: 参考文档
641
+
642
+ | 文档 | 路径 | 用途 |
643
+ |------|------|------|
644
+ | 反模式清单 | docs/standards/anti-patterns.md | 已知反模式和正确替代方案 |
645
+ | Agent 生命周期 | docs/standards/agent-lifecycle.md | 边界情况矩阵和处理策略 |
646
+ | 运行时保护 | docs/standards/runtime-protection.md | 安全防护规范 |
647
+ | 状态机规范 | docs/standards/state-machine.md | 状态转换和阈值定义 |
648
+ | 评审摘要 | docs/reviews/bugs-pain-points-audit/summary.md | 专家评审决策记录 |
649
+
650
+ ---
651
+
652
+ **生成时间**: 2026-03-16
653
+ **下一步**: 用户确认后,调用 axiom-system-architect 进行任务拆解
654
+