pdd-skills 3.0.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 (261) hide show
  1. package/README.md +1478 -0
  2. package/bin/pdd.js +354 -0
  3. package/config/bpmn-rules.yaml +166 -0
  4. package/config/checkstyle.xml +105 -0
  5. package/config/eslint.config.js +48 -0
  6. package/config/pmd.xml +91 -0
  7. package/config/prd-rules.yaml +113 -0
  8. package/config/ruff.toml +45 -0
  9. package/config/sqlfluff.cfg +82 -0
  10. package/hooks/hook-executor.js +332 -0
  11. package/index.js +43 -0
  12. package/lib/api-routes.js +750 -0
  13. package/lib/api-server.js +408 -0
  14. package/lib/cache/cache-config.js +209 -0
  15. package/lib/cache/system-cache.js +852 -0
  16. package/lib/config-manager.js +373 -0
  17. package/lib/generate.js +528 -0
  18. package/lib/grpc/grpc-routes.js +1134 -0
  19. package/lib/grpc/grpc-server.js +912 -0
  20. package/lib/grpc/proto-definitions.js +1033 -0
  21. package/lib/init.js +172 -0
  22. package/lib/iteration/auto-fixer.js +1025 -0
  23. package/lib/iteration/auto-reviewer.js +923 -0
  24. package/lib/iteration/controller.js +577 -0
  25. package/lib/list.js +130 -0
  26. package/lib/mcp-server.js +548 -0
  27. package/lib/openclaw/api-integration.js +535 -0
  28. package/lib/openclaw/cli-integration.js +567 -0
  29. package/lib/openclaw/data-sync.js +845 -0
  30. package/lib/openclaw/openclaw-adapter.js +783 -0
  31. package/lib/plugin/example-plugins/code-stats/index.js +332 -0
  32. package/lib/plugin/example-plugins/code-stats/plugin.json +1 -0
  33. package/lib/plugin/example-plugins/custom-linter/index.js +472 -0
  34. package/lib/plugin/example-plugins/custom-linter/plugin.json +1 -0
  35. package/lib/plugin/example-plugins/hello-world/index.js +86 -0
  36. package/lib/plugin/example-plugins/hello-world/plugin.json +1 -0
  37. package/lib/plugin/plugin-manager.js +655 -0
  38. package/lib/plugin/plugin-sdk.js +565 -0
  39. package/lib/plugin/sandbox.js +627 -0
  40. package/lib/quality/rules/maintainability.js +418 -0
  41. package/lib/quality/rules/performance.js +498 -0
  42. package/lib/quality/rules/readability.js +441 -0
  43. package/lib/quality/rules/robustness.js +504 -0
  44. package/lib/quality/rules/security.js +444 -0
  45. package/lib/quality/scorer.js +576 -0
  46. package/lib/report.js +669 -0
  47. package/lib/sdk-base.js +301 -0
  48. package/lib/sdk-js.js +446 -0
  49. package/lib/sdk-python/README.md +546 -0
  50. package/lib/sdk-python/examples/basic_usage.py +450 -0
  51. package/lib/sdk-python/pdd_sdk/__init__.py +180 -0
  52. package/lib/sdk-python/pdd_sdk/client.py +1170 -0
  53. package/lib/sdk-python/pdd_sdk/events.py +423 -0
  54. package/lib/sdk-python/pdd_sdk/exceptions.py +158 -0
  55. package/lib/sdk-python/pdd_sdk/models.py +518 -0
  56. package/lib/sdk-python/pdd_sdk/utils.py +759 -0
  57. package/lib/token/budget-alert.js +367 -0
  58. package/lib/token/budget-manager.js +485 -0
  59. package/lib/update.js +54 -0
  60. package/lib/utils/logger.js +88 -0
  61. package/lib/verify.js +741 -0
  62. package/lib/version.js +52 -0
  63. package/lib/vm/README.md +102 -0
  64. package/lib/vm/dashboard/api-routes.js +669 -0
  65. package/lib/vm/dashboard/server.js +391 -0
  66. package/lib/vm/dashboard/sse.js +358 -0
  67. package/lib/vm/dashboard/static/css/dashboard.css +1378 -0
  68. package/lib/vm/dashboard/static/index.html +118 -0
  69. package/lib/vm/dashboard/static/js/app.js +949 -0
  70. package/lib/vm/dashboard/static/js/charts.js +913 -0
  71. package/lib/vm/dashboard/static/js/kanban-view.js +1053 -0
  72. package/lib/vm/dashboard/static/js/pipeline-view.js +463 -0
  73. package/lib/vm/dashboard/static/js/quality-view.js +598 -0
  74. package/lib/vm/dashboard/static/js/system-view.js +1021 -0
  75. package/lib/vm/data-provider.js +1191 -0
  76. package/lib/vm/event-bus.js +402 -0
  77. package/lib/vm/hooks/extract-hook.js +307 -0
  78. package/lib/vm/hooks/generate-hook.js +374 -0
  79. package/lib/vm/hooks/hook-interface.js +458 -0
  80. package/lib/vm/hooks/report-hook.js +331 -0
  81. package/lib/vm/hooks/verify-hook.js +454 -0
  82. package/lib/vm/models.js +1003 -0
  83. package/lib/vm/reconciler.js +855 -0
  84. package/lib/vm/scanner.js +988 -0
  85. package/lib/vm/state-schema.js +955 -0
  86. package/lib/vm/state-store.js +733 -0
  87. package/lib/vm/tui/components/card.js +339 -0
  88. package/lib/vm/tui/components/progress-bar.js +368 -0
  89. package/lib/vm/tui/components/sparkline.js +327 -0
  90. package/lib/vm/tui/components/status-light.js +294 -0
  91. package/lib/vm/tui/components/table.js +370 -0
  92. package/lib/vm/tui/input.js +335 -0
  93. package/lib/vm/tui/renderer.js +548 -0
  94. package/lib/vm/tui/screens/kanban-screen.js +397 -0
  95. package/lib/vm/tui/screens/overview-screen.js +357 -0
  96. package/lib/vm/tui/screens/quality-screen.js +336 -0
  97. package/lib/vm/tui/screens/system-screen.js +379 -0
  98. package/lib/vm/tui/tui.js +805 -0
  99. package/package.json +1 -0
  100. package/scripts/cso-analyzer.js +198 -0
  101. package/scripts/eval-runner.js +359 -0
  102. package/scripts/i18n-checker.js +109 -0
  103. package/scripts/linter/activiti-linter.js +272 -0
  104. package/scripts/linter/prd-linter.js +162 -0
  105. package/scripts/linter/report-generator.js +207 -0
  106. package/scripts/linter/run-linters.js +285 -0
  107. package/scripts/linter/sql-linter.js +166 -0
  108. package/scripts/token-analyzer.js +162 -0
  109. package/scripts/vm-test.js +180 -0
  110. package/skills/core/official-doc-writer/LICENSE +21 -0
  111. package/skills/core/official-doc-writer/README.md +232 -0
  112. package/skills/core/official-doc-writer/SKILL.md +475 -0
  113. package/skills/core/official-doc-writer/_meta.json +1 -0
  114. package/skills/core/official-doc-writer/document_generator.py +580 -0
  115. package/skills/core/official-doc-writer/evals/default-evals.json +1 -0
  116. package/skills/core/official-doc-writer/examples.md +150 -0
  117. package/skills/core/official-doc-writer/fonts/FONTS_LIST.md +45 -0
  118. package/skills/core/official-doc-writer/fonts/README.md +141 -0
  119. package/skills/core/official-doc-writer/fonts/SIMFANG.TTF +0 -0
  120. package/skills/core/official-doc-writer/fonts/SIMHEI.TTF +0 -0
  121. package/skills/core/official-doc-writer/fonts/SIMKAI.TTF +0 -0
  122. package/skills/core/official-doc-writer/fonts/SIMSUN.TTC +0 -0
  123. package/skills/core/official-doc-writer/fonts//346/226/271/346/255/243/345/260/217/346/240/207/345/256/213GBK.TTF +0 -0
  124. package/skills/core/official-doc-writer/references/GBT_9704-2012_/345/205/232/346/224/277/346/234/272/345/205/263/345/205/254/346/226/207/346/240/274/345/274/217.md +422 -0
  125. package/skills/core/official-doc-writer/scripts/__pycache__/generate_official_doc.cpython-313.pyc +0 -0
  126. package/skills/core/official-doc-writer/scripts/dialog_manager.py +564 -0
  127. package/skills/core/official-doc-writer/scripts/generate_official_doc.py +252 -0
  128. package/skills/core/official-doc-writer/scripts/install_fonts.py +390 -0
  129. package/skills/core/official-doc-writer/scripts/smart_prompts.py +363 -0
  130. package/skills/core/pdd-ba/SKILL.md +305 -0
  131. package/skills/core/pdd-ba/_meta.json +1 -0
  132. package/skills/core/pdd-ba/evals/default-evals.json +1 -0
  133. package/skills/core/pdd-code-reviewer/SKILL.md +378 -0
  134. package/skills/core/pdd-code-reviewer/_meta.json +1 -0
  135. package/skills/core/pdd-code-reviewer/evals/default-evals.json +1 -0
  136. package/skills/core/pdd-doc-change/SKILL.md +350 -0
  137. package/skills/core/pdd-doc-change/_meta.json +1 -0
  138. package/skills/core/pdd-doc-change/evals/default-evals.json +1 -0
  139. package/skills/core/pdd-doc-gardener/SKILL.md +248 -0
  140. package/skills/core/pdd-doc-gardener/_meta.json +1 -0
  141. package/skills/core/pdd-doc-gardener/evals/default-evals.json +1 -0
  142. package/skills/core/pdd-entropy-reduction/SKILL.md +360 -0
  143. package/skills/core/pdd-entropy-reduction/_meta.json +1 -0
  144. package/skills/core/pdd-entropy-reduction/evals/default-evals.json +1 -0
  145. package/skills/core/pdd-entropy-reduction/references/entropy-report-template.md +287 -0
  146. package/skills/core/pdd-entropy-reduction/references/golden-principles.md +573 -0
  147. package/skills/core/pdd-entropy-reduction/scripts/entropy_scan.py +712 -0
  148. package/skills/core/pdd-extract-features/SKILL.md +320 -0
  149. package/skills/core/pdd-extract-features/_meta.json +1 -0
  150. package/skills/core/pdd-extract-features/evals/default-evals.json +1 -0
  151. package/skills/core/pdd-generate-spec/SKILL.md +418 -0
  152. package/skills/core/pdd-generate-spec/_meta.json +1 -0
  153. package/skills/core/pdd-generate-spec/evals/default-evals.json +1 -0
  154. package/skills/core/pdd-implement-feature/SKILL.md +332 -0
  155. package/skills/core/pdd-implement-feature/_meta.json +1 -0
  156. package/skills/core/pdd-implement-feature/evals/default-evals.json +1 -0
  157. package/skills/core/pdd-main/SKILL.md +540 -0
  158. package/skills/core/pdd-main/_meta.json +1 -0
  159. package/skills/core/pdd-main/evals/default-evals.json +1 -0
  160. package/skills/core/pdd-main/evals/evals.json +215 -0
  161. package/skills/core/pdd-verify-feature/SKILL.md +474 -0
  162. package/skills/core/pdd-verify-feature/_meta.json +1 -0
  163. package/skills/core/pdd-verify-feature/evals/default-evals.json +1 -0
  164. package/skills/core/pdd-vm/evals/default-evals.json +1 -0
  165. package/skills/core/traffic-accident-assessor/LICENSE +29 -0
  166. package/skills/core/traffic-accident-assessor/SKILL.md +439 -0
  167. package/skills/core/traffic-accident-assessor/evals/evals.json +1 -0
  168. package/skills/core/traffic-accident-assessor/references/accident-types.md +369 -0
  169. package/skills/core/traffic-accident-assessor/references/liability-rules.md +287 -0
  170. package/skills/core/traffic-accident-assessor/references/traffic-laws.md +226 -0
  171. package/skills/core/traffic-accident-assessor/references//351/253/230/345/260/224/345/244/253/350/257/264/346/230/216/344/271/246.pdf +32576 -106
  172. package/skills/core/traffic-accident-assessor/scripts/generate_official_statement.py +588 -0
  173. package/skills/core/traffic-accident-assessor/scripts/generate_report.py +495 -0
  174. package/skills/core/traffic-accident-assessor/scripts/generate_statement.py +528 -0
  175. package/skills/core/traffic-accident-assessor.zip +0 -0
  176. package/skills/entropy/expert-arch-enforcer/SKILL.md +292 -0
  177. package/skills/entropy/expert-arch-enforcer/_meta.json +1 -0
  178. package/skills/entropy/expert-arch-enforcer/evals/default-evals.json +1 -0
  179. package/skills/entropy/expert-auto-refactor/SKILL.md +327 -0
  180. package/skills/entropy/expert-auto-refactor/_meta.json +1 -0
  181. package/skills/entropy/expert-auto-refactor/evals/default-evals.json +1 -0
  182. package/skills/entropy/expert-code-quality/SKILL.md +468 -0
  183. package/skills/entropy/expert-code-quality/_meta.json +1 -0
  184. package/skills/entropy/expert-code-quality/evals/default-evals.json +1 -0
  185. package/skills/entropy/expert-code-quality/evals/evals.json +109 -0
  186. package/skills/entropy/expert-code-quality/references/code-smells.md +605 -0
  187. package/skills/entropy/expert-code-quality/references/design-patterns.md +1111 -0
  188. package/skills/entropy/expert-code-quality/references/refactoring-catalog.md +1281 -0
  189. package/skills/entropy/expert-code-quality/references/solid-principles.md +524 -0
  190. package/skills/entropy/expert-entropy-auditor/SKILL.md +276 -0
  191. package/skills/entropy/expert-entropy-auditor/_meta.json +1 -0
  192. package/skills/entropy/expert-entropy-auditor/evals/default-evals.json +1 -0
  193. package/skills/expert/expert-activiti/SKILL.md +497 -0
  194. package/skills/expert/expert-activiti/_meta.json +1 -0
  195. package/skills/expert/expert-mysql/SKILL.md +832 -0
  196. package/skills/expert/expert-mysql/_meta.json +1 -0
  197. package/skills/expert/expert-performance/SKILL.md +379 -0
  198. package/skills/expert/expert-performance/_meta.json +1 -0
  199. package/skills/expert/expert-performance/evals/default-evals.json +1 -0
  200. package/skills/expert/expert-ruoyi/SKILL.md +472 -0
  201. package/skills/expert/expert-ruoyi/_meta.json +1 -0
  202. package/skills/expert/expert-security/SKILL.md +1341 -0
  203. package/skills/expert/expert-security/_meta.json +1 -0
  204. package/skills/expert/expert-security/evals/default-evals.json +1 -0
  205. package/skills/expert/software-architect/SKILL.md +350 -0
  206. package/skills/expert/software-architect/_meta.json +1 -0
  207. package/skills/expert/software-engineer/SKILL.md +437 -0
  208. package/skills/expert/software-engineer/_meta.json +1 -0
  209. package/skills/expert/software-engineer/architecture.md +130 -0
  210. package/skills/expert/software-engineer/patterns.md +151 -0
  211. package/skills/expert/software-engineer/testing.md +135 -0
  212. package/skills/expert/system-architect/SKILL.md +628 -0
  213. package/skills/expert/system-architect/_meta.json +1 -0
  214. package/skills/expert/system-architect/assets/templates/ARCHITECTURE.md +25 -0
  215. package/skills/expert/system-architect/assets/templates/README.md +44 -0
  216. package/skills/expert/system-architect/references/js-ts-standards.md +18 -0
  217. package/skills/expert/system-architect/references/python-standards.md +19 -0
  218. package/skills/expert/system-architect/references/scaffolding.md +61 -0
  219. package/skills/expert/system-architect/references/security-checklist.md +21 -0
  220. package/skills/openspec/openspec-apply-change/SKILL.md +156 -0
  221. package/skills/openspec/openspec-apply-change/_meta.json +1 -0
  222. package/skills/openspec/openspec-archive-change/SKILL.md +114 -0
  223. package/skills/openspec/openspec-archive-change/_meta.json +1 -0
  224. package/skills/openspec/openspec-bulk-archive-change/SKILL.md +246 -0
  225. package/skills/openspec/openspec-bulk-archive-change/_meta.json +1 -0
  226. package/skills/openspec/openspec-continue-change/SKILL.md +118 -0
  227. package/skills/openspec/openspec-continue-change/_meta.json +1 -0
  228. package/skills/openspec/openspec-explore/SKILL.md +288 -0
  229. package/skills/openspec/openspec-explore/_meta.json +1 -0
  230. package/skills/openspec/openspec-ff-change/SKILL.md +101 -0
  231. package/skills/openspec/openspec-ff-change/_meta.json +1 -0
  232. package/skills/openspec/openspec-new-change/SKILL.md +74 -0
  233. package/skills/openspec/openspec-new-change/_meta.json +1 -0
  234. package/skills/openspec/openspec-onboard/SKILL.md +554 -0
  235. package/skills/openspec/openspec-onboard/_meta.json +1 -0
  236. package/skills/openspec/openspec-sync-specs/SKILL.md +138 -0
  237. package/skills/openspec/openspec-sync-specs/_meta.json +1 -0
  238. package/skills/openspec/openspec-verify-change/SKILL.md +168 -0
  239. package/skills/openspec/openspec-verify-change/_meta.json +1 -0
  240. package/skills/pr/pdd-multi-review/SKILL.md +534 -0
  241. package/skills/pr/pdd-multi-review/_meta.json +1 -0
  242. package/skills/pr/pdd-pr-batch/SKILL.md +303 -0
  243. package/skills/pr/pdd-pr-batch/_meta.json +1 -0
  244. package/skills/pr/pdd-pr-create/SKILL.md +344 -0
  245. package/skills/pr/pdd-pr-create/_meta.json +1 -0
  246. package/skills/pr/pdd-pr-merge/SKILL.md +286 -0
  247. package/skills/pr/pdd-pr-merge/_meta.json +1 -0
  248. package/skills/pr/pdd-pr-review/SKILL.md +217 -0
  249. package/skills/pr/pdd-pr-review/_meta.json +1 -0
  250. package/skills/pr/pdd-task-manager/SKILL.md +636 -0
  251. package/skills/pr/pdd-task-manager/_meta.json +1 -0
  252. package/skills/pr/pdd-template-engine/SKILL.md +306 -0
  253. package/skills/pr/pdd-template-engine/_meta.json +1 -0
  254. package/templates/behavior-shaping/iron-law-template.md +87 -0
  255. package/templates/behavior-shaping/rationalization-template.md +62 -0
  256. package/templates/behavior-shaping/red-flags-template.md +70 -0
  257. package/templates/bilingual-template.md +139 -0
  258. package/templates/config/default.yaml +47 -0
  259. package/templates/project/default/README.md +31 -0
  260. package/templates/project/frontend/README.md +46 -0
  261. package/templates/project/java/README.md +48 -0
package/README.md ADDED
@@ -0,0 +1,1478 @@
1
+ # PDD-Skills v3.0
2
+
3
+ [![Version](https://img.shields.io/badge/version-3.0.0-blue.svg)](https://github.com/pdd-skills/pdd-skills)
4
+ [![Node](https://img.shields.io/badge/node-%3E%3D18.0.0-green.svg)](https://nodejs.org/)
5
+ [![License](https://img.shields.io/badge/license-MIT-orange.svg)](LICENSE)
6
+ [![Tasks](https://img.shields.io/badge/tasks-153%2F153-brightgreen.svg)](docs/tasks.md)
7
+ [![Milestones](https://img.shields.io/badge/milestones-29%2F29-success.svg)](docs/tasks.md)
8
+
9
+ > **PRD 驱动的 AI 原生软件开发工作流框架**
10
+ >
11
+ > 从需求文档到代码交付的全链路自动化平台 — **7 大 Phase**、**29 个里程碑**、**153 项任务**、**100% 完成** 🎉
12
+
13
+ ---
14
+
15
+ ## 目录
16
+
17
+ - [什么是 PDD-Skills?](#什么是-pdd-skills)
18
+ - [核心特性](#核心特性)
19
+ - [快速开始](#快速开始)
20
+ - [CLI 命令大全](#cli-命令大全)
21
+ - [七大 Phase 架构](#七大-phase-架构)
22
+ - [Phase 1: 基础设施建设](#phase-1-基础设施建设)
23
+ - [Phase 2: 核心能力增强](#phase-2-核心能力增强)
24
+ - [Phase 3: 专家系统扩展](#phase-3-专家系统扩展)
25
+ - [Phase 4: 平台化建设](#phase-4-平台化建设)
26
+ - [Phase 5: 智能化升级](#phase-5-智能化升级)
27
+ - [Phase 6: 生态建设](#phase-6-生态建设)
28
+ - [📊 Phase 7: PDD Visual Manager](#-phase-7-pdd-visual-manager)
29
+ - [技能系统](#技能系统)
30
+ - [API 层](#api-层)
31
+ - [MCP 协议集成](#mcp-协议集成)
32
+ - [SDK 使用指南](#sdk-使用指南)
33
+ - [智能引擎](#智能引擎)
34
+ - [插件系统](#插件系统)
35
+ - [OpenClaw 集成](#openclaw-集成)
36
+ - [项目结构](#项目结构)
37
+ - [配置说明](#配置说明)
38
+ - [开发指南](#开发指南)
39
+ - [版本历史](#版本历史)
40
+
41
+ ---
42
+
43
+ ## 什么是 PDD-Skills?
44
+
45
+ **PDD (PRD-Driven Development)** 是一种以 **产品需求文档 (PRD)** 为驱动的 AI 原生软件开发方法论。PDD-Skills 是该方法的完整工具链实现,覆盖从需求分析到代码交付的完整生命周期。
46
+
47
+ ### 核心理念
48
+
49
+ ```
50
+ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
51
+ │ PRD 文档 │───▶│ 特征提取 │───▶│ 规格生成 │───▶│ 代码实现 │───▶│ 验证报告 │
52
+ │ │ │ │ │ │ │ │ │ │
53
+ │ pdd-ba │ │ pdd-extract │ │ pdd-generate│ │ pdd-implement│ │ pdd-verify │
54
+ └─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘
55
+ ▲ ▲ ▲ ▲ ▲
56
+ │ │ │ │ │
57
+ 业务分析师 AI Agent AI Agent 开发者 QA
58
+ ```
59
+
60
+ ### 为什么选择 PDD-Skills?
61
+
62
+ | 特性 | 传统开发 | TDD | **PDD-Skills** |
63
+ |------|---------|-----|----------------|
64
+ | 驱动文档 | 无/弱 | 测试用例 | **PRD 需求文档** |
65
+ | AI 原生 | ❌ | ❌ | ✅ **深度集成** |
66
+ | 双语支持 | ❌ | ❌ | ✅ **🇨🇳🇺🇸 中英双语** |
67
+ | 行为塑造 | ❌ | ❌ | ✅ **Iron Law + Red Flags** |
68
+ | 质量门禁 | 弱 | 强 | ✅ **5维评分 + Linter** |
69
+ | 可视化监控 | ❌ | ❌ | ✅ **PDD Visual Manager** |
70
+ | 插件扩展 | 有限 | 有限 | ✅ **沙箱隔离插件系统** |
71
+ | 多协议 | 单一 | 无 | ✅ **REST + MCP + gRPC** |
72
+
73
+ ---
74
+
75
+ ## 核心特性
76
+
77
+ ### 🎯 七大能力矩阵
78
+
79
+ ```
80
+ ┌─────────────────────────────────────────────────────────────────────────────────┐
81
+ │ PDD-Skills v3.0 能力全景图 │
82
+ ├─────────────────────────────────────────────────────────────────────────────────┤
83
+ │ │
84
+ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
85
+ │ │ Phase 1 │ │ Phase 2 │ │ Phase 3 │ │ Phase 4 │ │
86
+ │ │ 基础设施 │ │ 核心能力 │ │ 专家系统 │ │ 平台化 │ │
87
+ │ │ │ │ │ │ │ │ │ │
88
+ │ │ • npx安装 │ │ • 11核心 │ │ • 安全 │ │ • CLI │ │
89
+ │ │ • Linter │ │ 技能 │ │ • 性能 │ │ • API │ │
90
+ │ │ • Hook │ │ • i18n │ │ 专家 │ │ • MCP │ │
91
+ │ │ • Evals │ │ • CSO │ │ │ │ • JS SDK │ │
92
+ │ │ │ │ • Token │ │ │ │ • Python│ │
93
+ │ └──────────┘ │ • Evals │ └──────────┘ │ • gRPC │ │
94
+ │ └──────────┘ └──────────┘ │
95
+ │ │
96
+ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
97
+ │ │ Phase 5 │ │ Phase 6 │ │ Phase 7 │ │
98
+ │ │ 智能化 │ │ 生态建设 │ │ VM可视化 │ │
99
+ │ │ │ │ │ │ │ │
100
+ │ │ • 三层缓存│ │ • 插件 │ │ • Web │ │
101
+ │ │ • Token │ │ 系统 │ │ Dashboard│ │
102
+ │ │ 预算 │ │ • OpenClaw│ │ • TUI │ │
103
+ │ │ • 质量评分│ │ • 社区文档│ │ • SSE │ │
104
+ │ │ • 迭代优化│ │ │ │ • Canvas │ │
105
+ │ └──────────┘ └──────────┘ └──────────┘ │
106
+ │ │
107
+ └─────────────────────────────────────────────────────────────────────────────────┘
108
+ ```
109
+
110
+ ### 📊 关键数据
111
+
112
+ | 指标 | 数值 |
113
+ |------|------|
114
+ | **版本** | v3.0.0 |
115
+ | **总任务数** | 153 (**100% 完成**) |
116
+ | **里程碑数** | 29 (**100% 达成**) |
117
+ | **核心技能** | 11 个(全双语 🇨🇳🇺🇸) |
118
+ | **专家技能** | 2 个(安全 + 性能) |
119
+ | **代码文件** | ~80 个 `lib/*.js` 模块(含 Phase 7 新增 38 个) |
120
+ | **协议支持** | RESTful + MCP + gRPC + SSE |
121
+ | **SDK 语言** | JavaScript + Python |
122
+ | **示例插件** | 3 个(hello-world / code-stats / custom-linter) |
123
+ | **社区文档** | 5 套(~10,700 行) |
124
+ | **VM 新增代码** | ~6000 行(Phase 7) |
125
+
126
+ ---
127
+
128
+ ## 快速开始
129
+
130
+ ### 安装
131
+
132
+ ```bash
133
+ # 全局安装(推荐)
134
+ npm install -g pdd-skills
135
+
136
+ # 或本地安装
137
+ npm install pdd-skills
138
+ ```
139
+
140
+ <details>
141
+ <summary>⚙️ 环境要求</summary>
142
+
143
+ - **Node.js**: >= 18.0.0 (ESM 模块支持)
144
+ - **操作系统**: Windows / macOS / Linux
145
+ - **依赖**: commander ^12.0.0, chalk ^5.3.0, fs-extra ^11.2.0, yaml ^2.3.0
146
+ </details>
147
+
148
+ ### 5 分钟上手
149
+
150
+ ```bash
151
+ # 1️⃣ 初始化项目
152
+ pdd init my-project
153
+ cd my-project
154
+
155
+ # 2️⃣ 查看可用技能
156
+ pdd list --json
157
+
158
+ # 3️⃣ 编写你的 PRD 文档(或使用模板)
159
+ cp templates/prd-template.prdx ./my-feature.prdx
160
+
161
+ # 4️⃣ 提取功能特征
162
+ npx pdd-skills extract-features ./my-feature.prdx
163
+
164
+ # 5️⃣ 生成开发规格
165
+ npx pdd-skills generate-spec ./my-feature.prdx -o ./specs
166
+
167
+ # 6️⃣ 基于规格生成代码骨架
168
+ pdd generate -s ./specs/spec.md -o ./src --dry-run
169
+
170
+ # 7️⃣ 验证实现
171
+ pdd verify -s ./specs/spec.md -c ./src --json
172
+
173
+ # 8️⃣ 生成质量报告
174
+ pdd report -t html -o ./reports
175
+ ```
176
+
177
+ ### Docker 一键启动
178
+
179
+ ```bash
180
+ docker run -it --rm -v $(pwd):/workspace pdd-skills:latest init
181
+ ```
182
+
183
+ ---
184
+
185
+ ## CLI 命令大全
186
+
187
+ PDD-Skills 提供丰富的 CLI 命令,覆盖完整的开发生命周期和可视化监控。
188
+
189
+ ### 项目管理
190
+
191
+ ```bash
192
+ pdd init [path] # 初始化项目目录结构
193
+ pdd update [--version] # 更新技能到最新版本
194
+ pdd list [-c category] # 列出所有技能(core/expert/openspec)
195
+ pdd version # 显示版本信息
196
+ ```
197
+
198
+ ### 开发流程
199
+
200
+ ```bash
201
+ # 规格与代码
202
+ pdd generate -s spec.md -o ./src --dry-run # 代码生成(预览模式)
203
+ pdd verify -s spec.md -c ./src --json # 功能验证
204
+ pdd report -t html|json|md -o ./reports # 报告生成
205
+
206
+ # 质量门禁
207
+ pdd linter -t java|js|python|sql|prd|skill|all -f ./src
208
+ pdd eval -c core|expert # 运行评估测试
209
+ pdd token -f ./src # Token 效率分析
210
+
211
+ # 国际化
212
+ pdd i18n -c core|expert|all # 双语合规检查
213
+ pdd cso # 触发准确率分析
214
+ ```
215
+
216
+ ### 🔥 PDD Visual Manager(新增)
217
+
218
+ ```bash
219
+ # Web Dashboard
220
+ pdd dashboard # 启动 Web Dashboard http://localhost:3001
221
+ pdd dashboard -p 8080 # 自定义端口
222
+
223
+ # Terminal TUI
224
+ pdd tui # 启动 Terminal TUI
225
+
226
+ # VM 数据查询
227
+ pdd vm status # 项目状态摘要
228
+ pdd vm features # 功能点列表
229
+ pdd vm export --format csv # 导出数据
230
+ ```
231
+
232
+ ### 服务端
233
+
234
+ ```bash
235
+ # API 服务器
236
+ pdd api -p 3000 --cors # 启动 RESTful API
237
+ pdd api:dev # 开发模式(CORS全开)
238
+
239
+ # OpenClaw 集成
240
+ pdd openclaw start [-p port] [-t token] [--daemon]
241
+ pdd openclaw stop
242
+ pdd openclaw status
243
+ pdd openclaw list-tools
244
+ pdd openclaw test [-n tool-name]
245
+ pdd openclaw logs [--tail]
246
+
247
+ # 配置管理
248
+ pdd config --list # 查看配置
249
+ pdd config --set key=value # 设置配置项
250
+ pdd config --get key # 读取配置项
251
+ ```
252
+
253
+ ---
254
+
255
+ ## 七大 Phase 架构
256
+
257
+ ### Phase 1: 基础设施建设
258
+
259
+ 提供项目脚手架、质量门禁和工具链基础能力。
260
+
261
+ | 组件 | 说明 |
262
+ |------|------|
263
+ | **npx 安装机制** | `npx pdd-skills init` 一键初始化 |
264
+ | **Linter 体系** | Java(Checkstyle+PMD) / JS(ESLint) / Python(Ruff) / SQL(SQLFluff) / Activiti(BPMN) / Skill(自定义) |
265
+ | **Hook 系统** | 7 种事件钩子,可在流程节点注入自定义逻辑 |
266
+ | **Evals 框架** | 结构/内容/质量/CSO 四种测试类型 |
267
+ | **Token 分析器** | 中英文混合 Token 计数与效率评级 |
268
+
269
+ ### Phase 2: 核心能力增强
270
+
271
+ 11 个核心技能 + 五大行为塑造机制。
272
+
273
+ #### 核心技能列表
274
+
275
+ | 技能名称 | 用途 | 双语 |
276
+ |---------|------|------|
277
+ | `pdd-main` | 主入口,协调全部子技能 | ✅ |
278
+ | `pdd-ba` | 业务分析与需求建模 | ✅ |
279
+ | `pdd-extract-features` | 从 PRD 提取功能点 | ✅ |
280
+ | `pdd-generate-spec` | 生成开发规格文档 | ✅ |
281
+ | `pdd-implement-feature` | 基于规格实现代码 | ✅ |
282
+ | `pdd-verify-feature` | 验证实现符合规格 | ✅ |
283
+ | `pdd-code-reviewer` | 多维度代码审查 | ✅ |
284
+ | `pdd-doc-change` | 变更文档管理 | ✅ |
285
+ | `pdd-doc-gardener` | 文档清理与维护 | ✅ |
286
+ | `pdd-entropy-reduction` | 技术债务治理 | ✅ |
287
+ | `official-doc-writer` | 党政机关公文生成 | ✅ |
288
+
289
+ #### 行为塑造三层防御
290
+
291
+ ```
292
+ ┌─────────────────────────────────────────────────┐
293
+ │ Layer 3: Red Flags (红旗警告) │ ← "不要这样做"
294
+ │ • 安全反模式检测 │
295
+ │ • 质量反模式检测 │
296
+ │ • 流程反模式检测 │
297
+ ├─────────────────────────────────────────────────┤
298
+ │ Layer 2: Rationalization Table │ ← "你可能想这样做,但..."
299
+ │ • "用户说很简单" → 实际需要深入分析 │
300
+ │ • "先做MVP" → 可能导致技术债务 │
301
+ │ • "复制粘贴" → 可能引入隐藏bug │
302
+ ├─────────────────────────────────────────────────┤
303
+ │ Layer 1: Iron Law (铁律) │ ← "必须这样做"
304
+ │ • 铁律 1: 先理解再编码 │
305
+ │ • 铁律 2: 每个功能必须有验收标准 │
306
+ │ • 铁律 3: 代码必须可审查 │
307
+ └─────────────────────────────────────────────────┘
308
+ ```
309
+
310
+ ### Phase 3: 专家系统扩展
311
+
312
+ | 专家技能 | 能力范围 | 特色 |
313
+ |---------|---------|------|
314
+ | **expert-security** | SQL注入 / XSS / CSRF / 命令注入 / 路径遍历 / SSRF | OWASP Top 10 2021 完整覆盖,8 条安全铁律 |
315
+ | **expert-performance** | CPU / 内存 / I/O / 网络 / 锁竞争诊断 | HikariCP / Redis多级缓存 / G1 GC调优 / P99指标 |
316
+
317
+ ### Phase 4: 平台化建设
318
+
319
+ 将核心能力暴露为标准化接口,支持远程调用和多语言接入。
320
+
321
+ #### 4.1 CLI 工具扩展
322
+
323
+ 6 个新增子命令:`generate` / `verify` / `report` / `config` / `linter` / `api`
324
+
325
+ #### 4.2 RESTful API 层
326
+
327
+ 基于 Node.js **零依赖 HTTP 服务器**(仅使用内置 `http` 模块):
328
+
329
+ | 方法 | 端点 | 说明 |
330
+ |------|------|------|
331
+ | GET | `/api/v1/status` | 服务状态 |
332
+ | GET | `/api/v1/docs` | API 文档 |
333
+ | GET | `/api/v1/health` | 健康检查 |
334
+ | GET/POST | `/api/v1/spec/*` | 规格 CRUD |
335
+ | POST | `/api/v1/generate` | 代码生成 |
336
+ | POST | `/api/v1/verify` | 功能验证 |
337
+ | POST | `/api/v1/report` | 报告生成 |
338
+ | GET/POST | `/api/v1/config/*` | 配置管理 |
339
+ | GET | `/api/v1/skills` | 技能列表 |
340
+
341
+ **特性**: Rate Limiting + CORS + Graceful Shutdown
342
+
343
+ #### 4.3 MCP Protocol
344
+
345
+ 遵循 Model Context Protocol 标准,AI Agent 原生集成:
346
+
347
+ ```
348
+ Tools (6个):
349
+ ├── pdd_generate_spec # 生成开发规格
350
+ ├── pdd_generate_code # 生成代码
351
+ ├── pdd_verify_feature # 验证功能
352
+ ├── pdd_code_review # 代码审查
353
+ ├── pdd_list_skills # 列出技能
354
+ └── pdd_get_status # 获取状态
355
+
356
+ Resources (4个):
357
+ ├── pdd://specs # 规格资源
358
+ ├── pdd://features # 功能资源
359
+ ├── pdd://skills # 技能资源
360
+ └── pdd://config # 配置资源
361
+ ```
362
+
363
+ 协议: JSON-RPC 2.0,零外部依赖。
364
+
365
+ #### 4.4 SDK
366
+
367
+ | SDK | 文件 | 特性 |
368
+ |-----|------|------|
369
+ | **JavaScript** | `lib/sdk-base.js` + `lib/sdk-js.js` | 重试 / 事件 / 缓存 / 批量 / 流式 / 链式 API |
370
+ | **Python** | `lib/sdk-python/pdd_sdk/` (8文件) | async/await / dataclass / EventEmitter / 纯标准库 |
371
+
372
+ #### 4.5 gRPC 兼容层
373
+
374
+ 基于 Node.js **http2** 内置模块的 Protocol Buffer 风格服务:
375
+
376
+ | Service | Methods |
377
+ |---------|---------|
378
+ | SpecService | GenerateSpec / GetSpec / ListSpecs |
379
+ | CodeService | GenerateCode |
380
+ | VerifyService | VerifyFeature |
381
+ | ReportService | GenerateReport |
382
+ | SkillService | ListSkills / GetSkillInfo |
383
+ | HealthService | Check (标准 gRPC 健康协议) |
384
+
385
+ 包含: proto3 JSON 编解码器、拦截器链、反射服务。
386
+
387
+ ### Phase 5: 智能化升级
388
+
389
+ #### 三级缓存系统
390
+
391
+ ```
392
+ 请求 → L1 Session Cache (LRU, 内存)
393
+ → MISS → L2 Project Cache (LRU, 内存, 跨会话共享)
394
+ → MISS → L3 Global Cache (LFU, 磁盘JSON持久化)
395
+ ```
396
+
397
+ | 级别 | 策略 | 存储 | TTL | 容量 |
398
+ |------|------|------|-----|------|
399
+ | L1 Session | LRU | 内存 | 5min | 100条 |
400
+ | L2 Project | LRU | 内存 | 30min | 500条 |
401
+ | L3 Global | LFU | 磁盘 | 2h | 2000条 |
402
+
403
+ O(1) 时间复杂度操作,Write-Through 写入策略。
404
+
405
+ #### Token 预算管理
406
+
407
+ 五阶段分配模型:
408
+
409
+ | 阶段 | 占比 | 说明 |
410
+ |------|------|------|
411
+ | analysis | 15% | 需求分析阶段 |
412
+ | design | 20% | 规格设计阶段 |
413
+ | implementation | 35% | 代码实现阶段 |
414
+ | review | 20% | 代码审查阶段 |
415
+ | verify | 10% | 验证确认阶段 |
416
+
417
+ 阈值策略: **80% 警告** / **95% 阻断**
418
+
419
+ 4 种预警策略: `LOG_ONLY` / `SOFT_BLOCK` / `HARD_BLOCK` / `AUTO_SCALE`
420
+
421
+ #### 代码质量评分 — 五维引擎
422
+
423
+ | 维度 | 权重 | 规则数 | 评级 |
424
+ |------|------|--------|------|
425
+ | **可读性** | 20% | 7 条 | 命名规范 / 函数长度 / 行长度 / 圈复杂度 / 注释覆盖率 / 魔法数字 / 缩进一致性 |
426
+ | **可维护性** | 20% | 6 条 | 重复代码 / 模块内聚 / 耦合度 / 单一职责 / 死代码 / 依赖方向 |
427
+ | **健壮性** | 25% | 6 条 | Null检查 / 错误处理 / 边界验证 / 异步错误 / 类型检查 / 资源清理 |
428
+ | **性能** | 15% | 6 条 | 循环效率 / 内存分配 / I/O操作 / 字符串拼接 / 异步模式 / 数据结构 |
429
+ | **安全性** | 20% | 6 条 | SQL注入 / XSS风险 / 硬编码密钥 / 输入验证 / 依赖安全 / 不安全配置 |
430
+
431
+ **评级**: S≥90 / A≥80 / B≥70 / C≥60 / D≥50 / F<50
432
+
433
+ #### 多轮迭代优化
434
+
435
+ ```
436
+ Round 1: Review → Fix → Verify
437
+ ↓ 收敛 < 5%
438
+ Round 2: Review → Fix → Verify
439
+ ↓ 收敛 < 5%
440
+ ...
441
+ Round N (max=5): 最终结果
442
+ ```
443
+
444
+ - 自动审查: 集成 code-reviewer 逻辑
445
+ - 自动修复: **建议式修复**(不直接修改源码,安全原则)
446
+ - 收敛检测: 质量提升 < 5% 时自动终止
447
+
448
+ ### Phase 6: 生态建设
449
+
450
+ #### 插件系统
451
+
452
+ ```
453
+ PluginBase (抽象基类)
454
+ ├── onInstall() 安装后执行一次
455
+ ├── onActivate() 激活时调用
456
+ ├── onDeactivate() 停用时调用
457
+ ├── onUninstall() 卸载前清理
458
+ └── onConfigChange() 配置变更响应
459
+
460
+ ├─ registerCommand(name, opts) 注册 CLI 命令
461
+ ├─ registerHook(event, handler) 注册流程钩子
462
+ ├─ registerTool(name, opts) 注册 MCP Tool
463
+ └─ registerFormatter(type, fn) 注册输出格式化器
464
+ ```
465
+
466
+ **安全沙箱**: Proxy 拦截 fs/net/process/env,四维策略控制(filesystem/network/execution/environment)
467
+
468
+ **3 个内置示例插件**: hello-world / code-stats / custom-linter
469
+
470
+ #### OpenClaw 集成
471
+
472
+ | 模块 | 能力 |
473
+ |------|------|
474
+ | **Adapter** | 连接管理 + 心跳30s + 指数退避重连 + 6 Tool 映射 |
475
+ | **CLI** | 7个子命令: start/stop/status/list-tools/test/logs/init |
476
+ | **API Bridge** | 5端点 + SSE流式 + 中间件链 + batchExecute |
477
+ | **Data Sync** | push/pull/bidirectional 四类型同步 + 冲突解决 + 定时调度 |
478
+
479
+ #### 社区文档
480
+
481
+ | 文档 | 内容 | 行数 |
482
+ |------|------|------|
483
+ | [user-guide](docs/user-guide/user-guide.md) | 快速开始 / 工作流 / FAQ | ~1480 |
484
+ | [developer-guide](docs/developer-guide/developer-guide.md) | 架构 / 规范 / 贡献流程 | ~2960 |
485
+ | [api-reference](docs/api-reference/api-reference.md) | 全模块 API / 错误码大全 | ~3948 |
486
+ | [operations](docs/operations/operations-guide.md) | 部署 / 调优 / 监控 / 安全 | ~2018 |
487
+ | [plugin-market](docs/plugin-market/README.md) | 发布流程 / 评分标准 / 审核 | ~400 |
488
+
489
+ ---
490
+
491
+ ## 📊 Phase 7: PDD Visual Manager
492
+
493
+ > **重要说明**: PDD Visual Manager 用于 **可视化监控使用 PDD 方法开发的业务项目的运行状态**,而非管理 PDD-Skills 自身的开发任务。
494
+
495
+ ### 定位与目标
496
+
497
+ PDD Visual Manager (PDD-VM) 是 Phase 7 的核心交付物,提供 **双形态可视化监控** 能力:
498
+
499
+ - **Web Dashboard**: 基于 HTML/CSS/JS 的零依赖 SPA,通过浏览器实时查看项目状态
500
+ - **Terminal TUI**: 基于 Node.js ANSI 的终端 UI,适合 SSH 远程场景
501
+
502
+ 两者共享同一数据模型和 API 层,可根据使用场景自由切换。
503
+
504
+ ### 双形态架构图
505
+
506
+ ```
507
+ ┌─────────────────────────────────────────────────────────────────────────────────┐
508
+ │ PDD Visual Manager Architecture │
509
+ ├─────────────────────────────────────────────────────────────────────────────────┤
510
+ │ │
511
+ │ ┌─────────────────────────────────────────────────────────────────────────┐ │
512
+ │ │ Data Layer (数据层) │ │
513
+ │ │ │ │
514
+ │ │ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ┌────────────┐ │ │
515
+ │ │ │ Feature Store│ │ Config Store │ │ Cache Store │ │ Event Bus │ │ │
516
+ │ │ └──────────────┘ └──────────────┘ └──────────────┘ └────────────┘ │ │
517
+ │ └─────────────────────────────────────────────────────────────────────────┘ │
518
+ │ │ │
519
+ │ ▼ │
520
+ │ ┌─────────────────────────────────────────────────────────────────────────┐ │
521
+ │ │ Service Layer (服务层) │ │
522
+ │ │ │ │
523
+ │ │ ┌────────────────┐ ┌────────────────┐ ┌──────────────────────────┐ │ │
524
+ │ │ │ HTTP Server │ │ SSE Server │ │ REST API (11端点) │ │ │
525
+ │ │ │ (server.js) │ │ (sse.js) │ │ (api-routes.js) │ │ │
526
+ │ │ └────────────────┘ └────────────────┘ └──────────────────────────┘ │ │
527
+ │ └─────────────────────────────────────────────────────────────────────────┘ │
528
+ │ │ │ │
529
+ │ ▼ ▼ │
530
+ │ ┌─────────────────────────────┐ ┌─────────────────────────────────────┐ │
531
+ │ │ Presentation Layer │ │ Presentation Layer │ │
532
+ │ │ │ │ │ │
533
+ │ │ ┌───────────────────────┐ │ │ ┌─────────────────────────────┐ │ │
534
+ │ │ │ Web Dashboard │ │ │ │ Terminal TUI │ │ │
535
+ │ │ │ │ │ │ │ │ │ │
536
+ │ │ │ ┌─────────────────┐ │ │ │ │ ┌───────────────────────┐ │ │ │
537
+ │ │ │ │ index.html (SPA)│ │ │ │ │ │ tui.js (主控制器) │ │ │ │
538
+ │ │ │ ├─────────────────┤ │ │ │ │ ├───────────────────────┤ │ │ │
539
+ │ │ │ │ dashboard.css │ │ │ │ │ │ renderer.js (ANSI渲染) │ │ │ │
540
+ │ │ │ ├─────────────────┤ │ │ │ │ ├───────────────────────┤ │ │ │
541
+ │ │ │ │ app.js (SPA框架)│ │ │ │ │ │ input.js (键盘输入) │ │ │ │
542
+ │ │ │ └─────────────────┘ │ │ │ │ └───────────────────────┘ │ │ │
543
+ │ │ │ │ │ │ │ 5 组件: │ │ │
544
+ │ │ │ 4 视图面板: │ │ │ │ progress-bar / table / │ │ │
545
+ │ │ │ • Pipeline (流水线) │ │ │ │ sparkline / status-light │ │ │
546
+ │ │ │ • Kanban (看板) │ │ │ │ / card │ │ │
547
+ │ │ │ • Quality (质量) │ │ │ │ │ │ │
548
+ │ │ │ • System (系统) │ │ │ │ 4 屏幕 + 详情overlay: │ │ │
549
+ │ │ │ │ │ │ │ overview / kanban / │ │ │
550
+ │ │ │ Canvas 图表引擎: │ │ │ │ quality / system │ │ │
551
+ │ │ │ radar/histogram/ │ │ │ │ │ │ │
552
+ │ │ │ gauge/lineChart/ │ │ │ └─────────────────────────────┘ │ │
553
+ │ │ │ horizontalBar │ │ │ │ │
554
+ │ │ └───────────────────────┘ │ └─────────────────────────────────────┘ │
555
+ │ └─────────────────────────────┘ │
556
+ │ │
557
+ └─────────────────────────────────────────────────────────────────────────────────┘
558
+ ```
559
+
560
+ ### 数据流图
561
+
562
+ ```
563
+ ┌─────────────┐ ┌─────────────┐ ┌─────────────────┐
564
+ │ PRD 文档 │ │ 配置文件 │ │ 运行时事件 │
565
+ │ (.prdx) │ │ (.pddrc) │ │ (Hook/Timer) │
566
+ └──────┬──────┘ └──────┬──────┘ └────────┬────────┘
567
+ │ │ │
568
+ ▼ ▼ ▼
569
+ ┌─────────────────────────────────────────────────────────┐
570
+ │ Data Aggregator │
571
+ │ (lib/vm/data-aggregator.js) │
572
+ └─────────────────────────┬───────────────────────────────┘
573
+
574
+
575
+ ┌─────────────────────────────────────────────────────────┐
576
+ │ State Manager │
577
+ │ (lib/vm/state-manager.js) │
578
+ │ │
579
+ │ ┌────────────┐ ┌────────────┐ ┌────────────┐ │
580
+ │ │ Features │ │ Pipeline │ │ Quality │ │
581
+ │ │ State │ │ State │ │ Metrics │ │
582
+ │ └────────────┘ └────────────┘ └────────────┘ │
583
+ └─────────────────────────┬───────────────────────────────┘
584
+
585
+ ┌─────────────┼─────────────┐
586
+ ▼ ▼ ▼
587
+ ┌──────────────┐ ┌──────────┐ ┌──────────────┐
588
+ │ REST API │ │ SSE Push │ │ Data Export │
589
+ │ (11 端点) │ │ (实时) │ │ (CSV/JSON) │
590
+ └──────┬───────┘ └────┬─────┘ └──────────────┘
591
+ │ │
592
+ ▼ ▼
593
+ ┌──────────────┐ ┌──────────────┐
594
+ │ Web Dashboard│ │ Terminal TUI │
595
+ │ (HTTP Poll) │ │ (Direct) │
596
+ └──────────────┘ └──────────────┘
597
+ ```
598
+
599
+ ### Web Dashboard — 4 大视图面板
600
+
601
+ #### 1. Pipeline View(流水线视图)
602
+
603
+ 展示 PDD 开发流水线的各阶段状态和进度:
604
+
605
+ | 阶段 | 显示内容 | 交互 |
606
+ |------|---------|------|
607
+ | Analysis | 需求分析进度 | 点击查看详情 |
608
+ | Design | 规格生成状态 | 点击查看规格 |
609
+ | Implementation | 代码实现进度 | 点击查看代码 |
610
+ | Review | 审查状态 | 点击查看问题 |
611
+ | Verify | 验证结果 | 点击查看报告 |
612
+
613
+ **特色功能**:
614
+ - 实时进度条动画
615
+ - 阶段间依赖关系可视化
616
+ - 阻塞项高亮提示
617
+ - 历史趋势对比
618
+
619
+ #### 2. Kanban View(看板视图)
620
+
621
+ 以看板形式展示功能点的开发状态:
622
+
623
+ ```
624
+ ┌─────────────┬─────────────┬─────────────┬─────────────┬─────────────┐
625
+ │ BACKLOG │ ANALYSIS │ DESIGN │ IMPLEMENT │ VERIFY │
626
+ │ │ │ │ │ │
627
+ │ ┌───────┐ │ ┌───────┐ │ ┌───────┐ │ ┌───────┐ │ ┌───────┐ │
628
+ │ │Feat A │ │ │Feat B │ │ │Feat C │ │ │Feat D │ │ │Feat E │ │
629
+ │ │ High │ │ │ Med │ │ │ Low │ │ │ Done │ │ │ Pass │ │
630
+ │ └───────┘ │ └───────┘ │ └───────┘ │ └───────┘ │ └───────┘ │
631
+ │ ┌───────┐ │ ┌───────┐ │ │ ┌───────┐ │ │
632
+ │ │Feat F │ │ │Feat G │ │ │ │Feat H │ │ │
633
+ │ │ Med │ │ │ Low │ │ │ │ WIP │ │ │
634
+ │ └───────┘ │ └───────┘ │ │ └───────┘ │ │
635
+ └─────────────┴─────────────┴─────────────┴─────────────┴─────────────┘
636
+ ```
637
+
638
+ **特色功能**:
639
+ - 拖拽排序(规划中)
640
+ - 优先级标签筛选
641
+ - 负责人分配显示
642
+ - WIP 限制警告
643
+
644
+ #### 3. Quality View(质量视图)
645
+
646
+ 多维度展示代码质量指标:
647
+
648
+ | 指标类型 | 图表组件 | 数据来源 |
649
+ |---------|---------|---------|
650
+ | 五维评分雷达图 | Canvas Radar Chart | QualityScorer |
651
+ | 规则分布直方图 | Canvas Histogram | Linter 结果 |
652
+ | 总体评分仪表盘 | Canvas Gauge | 综合计算 |
653
+ | 趋势折线图 | Canvas LineChart | 历史快照 |
654
+ | 问题分类横向条形图 | Canvas HorizontalBar | CodeReviewer |
655
+
656
+ **特色功能**:
657
+ - 实时评分更新
658
+ - 阈值超标红色预警
659
+ - 下钻至具体规则
660
+ - 与基准对比
661
+
662
+ #### 4. System View(系统视图)
663
+
664
+ 监控系统运行状态和资源使用:
665
+
666
+ | 监控项 | 显示方式 | 刷新频率 |
667
+ |-------|---------|---------|
668
+ | 服务状态 | 状态灯 | 30s |
669
+ | API 响应时间 | 数值 + 趋势 | 30s |
670
+ | 缓存命中率 | 百分比 + 图表 | 30s |
671
+ | Token 使用量 | 进度条 + 预警 | 30s |
672
+ | 连接数 | 数值 | 30s |
673
+ | 错误日志 | 滚动列表 | 实时 |
674
+
675
+ ### Terminal TUI — 4 屏 + 快捷键
676
+
677
+ TUI 提供 4 个主要屏幕,支持丰富的键盘交互:
678
+
679
+ #### 4 个屏幕概览
680
+
681
+ | 屏幕 | 名称 | 主要内容 |
682
+ |------|------|---------|
683
+ | Screen 1 | Overview | 项目总览:任务统计、进度摘要、关键指标 |
684
+ | Screen 2 | Kanban | 功能点看板:按状态分列的功能卡片 |
685
+ | Screen 3 | Quality | 质量仪表:评分、规则分布、趋势 |
686
+ | Screen 4 | System | 系统监控:服务状态、资源使用、错误日志 |
687
+
688
+ #### TUI 快捷键一览表
689
+
690
+ | 按键 | 功能 | 适用场景 |
691
+ |------|------|---------|
692
+ | `Tab` | 切换到下一个屏幕 | 所有屏幕 |
693
+ | `q` 或 `Ctrl+C` | 退出 TUI | 所有屏幕 |
694
+ | `r` 或 `F5` | 强制刷新当前屏幕 | 所有屏幕 |
695
+ | `p` | 暂停/恢复自动刷新 | 所有屏幕 |
696
+ | `j` / `↓` | 向下选择(移动光标) | 列表/表格场景 |
697
+ | `k` / `↑` | 向上选择(移动光标) | 列表/表格场景 |
698
+ | `Enter` | 查看选中项详情 | 列表/表格场景 |
699
+ | `Esc` | 返回上一级 / 关闭详情 | 详情 overlay |
700
+ | `?` | 显示帮助信息 | 所有屏幕 |
701
+ | `1` - `4` | 直接跳转到指定屏幕 | 所有屏幕 |
702
+ | `/` | 打开搜索框 | 支持搜索的屏幕 |
703
+ | `n` | 跳转到下一个搜索结果 | 搜索激活时 |
704
+
705
+ #### TUI 组件库
706
+
707
+ ```
708
+ lib/vm/tui/components/
709
+ ├── progress-bar.js # 彩色进度条 (████████░░░░ 80%)
710
+ ├── table.js # 对齐表格 (支持排序/高亮)
711
+ ├── sparkline.js # 迷你折线图 (▁▂▃▅▆▇█)
712
+ ├── status-light.js # 状态指示灯 (● ● ○)
713
+ └── card.js # 信息卡片 (标题+内容+元数据)
714
+ ```
715
+
716
+ ### CLI 命令速查
717
+
718
+ ```bash
719
+ # ========== Web Dashboard ==========
720
+ pdd dashboard # 启动 Dashboard (默认 http://localhost:3001)
721
+ pdd dashboard -p 8080 # 自定义端口
722
+ pdd dashboard --no-open # 不自动打开浏览器
723
+
724
+ # ========== Terminal TUI ==========
725
+ pdd tui # 启动 TUI
726
+ pdd tui --refresh 3 # 自定义刷新间隔(秒)
727
+
728
+ # ========== VM 数据查询 ==========
729
+ pdd vm status # 项目状态摘要 (JSON 格式)
730
+ pdd vm features # 功能点列表 (含状态)
731
+ pdd vm features --status done # 筛选已完成功能点
732
+ pdd vm export --format csv # 导出为 CSV
733
+ pdd vm export --format json # 导出为 JSON
734
+ pdd vm export -o report.csv # 导出到指定文件
735
+ ```
736
+
737
+ ### Data Model 说明
738
+
739
+ PDD-VM 的数据模型围绕 **业务项目** 的 PDD 开发流程设计:
740
+
741
+ ```
742
+ Project (业务项目)
743
+ ├── metadata (元数据)
744
+ │ ├── name: string # 项目名称
745
+ │ ├── version: string # 项目版本
746
+ │ ├── createdAt: timestamp # 创建时间
747
+ │ └── updatedAt: timestamp # 更新时间
748
+
749
+ ├── features (功能点列表)
750
+ │ ├── id: string # 功能点 ID
751
+ │ ├── name: string # 功能点名称
752
+ │ ├── status: enum # backlog/analysis/design/implement/review/verify/done
753
+ │ ├── priority: enum # critical/high/medium/low
754
+ │ ├── assignee?: string # 负责人
755
+ │ ├── specPath?: string # 规格文件路径
756
+ │ ├── sourceDir?: string # 源码目录
757
+ │ └── metrics (度量指标)
758
+ │ ├── coveragePercent: number # 覆盖率
759
+ │ ├── passRate: number # 通过率
760
+ │ ├── qualityScore: number # 质量评分
761
+ │ └── grade: string # 等级 (S/A/B/C/D/F)
762
+
763
+ ├── pipeline (流水线状态)
764
+ │ ├── phase: string # 当前阶段
765
+ │ ├── progress: number # 整体进度 (0-100)
766
+ │ ├── stages[] (各阶段详情)
767
+ │ │ ├── name: string
768
+ │ │ ├── status: enum # pending/in-progress/completed/blocked
769
+ │ │ ├── progress: number
770
+ │ │ └── startedAt?: timestamp
771
+
772
+ ├── quality (质量指标)
773
+ │ ├── overallScore: number # 总分 (0-100)
774
+ │ ├── overallGrade: string # 总等级
775
+ │ ├── dimensions (五维评分)
776
+ │ │ ├── readability: { score, grade }
777
+ │ │ ├── maintainability: { score, grade }
778
+ │ │ ├── robustness: { score, grade }
779
+ │ │ ├── performance: { score, grade }
780
+ │ │ └── security: { score, grade }
781
+ │ └── rulesViolated[] (违规规则列表)
782
+ │ ├── ruleId: string
783
+ │ ├── category: string
784
+ │ ├── severity: enum # error/warning/info
785
+ │ └── count: number
786
+
787
+ └── system (系统状态)
788
+ ├── apiStatus: enum # online/degraded/offline
789
+ ├── uptime: number # 运行时长(秒)
790
+ ├── requestsTotal: number # 总请求数
791
+ ├── cacheHitRate: number # 缓存命中率
792
+ ├── tokenUsage (Token 使用)
793
+ │ ├── totalBudget: number
794
+ │ ├── consumed: number
795
+ │ ├── remaining: number
796
+ │ └── percent: number
797
+ └── errors[] (最近错误列表)
798
+ ├── timestamp: timestamp
799
+ ├── level: enum # error/warn/info
800
+ ├── message: string
801
+ └── source: string
802
+ ```
803
+
804
+ ### Phase 7 文件清单
805
+
806
+ ```
807
+ lib/vm/ # PDD Visual Manager 核心目录 (~38 文件, ~6000 行)
808
+ ├── index.js # VM 入口,导出全部模块
809
+ ├── data-aggregator.js # 数据聚合器
810
+ ├── state-manager.js # 状态管理器
811
+ ├── event-bus.js # 事件总线
812
+
813
+ ├── dashboard/ # Web Dashboard 模块
814
+ │ ├── server.js # HTTP 服务器 (零依赖)
815
+ │ ├── sse.js # SSE (Server-Sent Events) 推送服务
816
+ │ ├── api-routes.js # 11 个 REST API 端点
817
+ │ ├── index.html # SPA 主页面
818
+ │ ├── css/
819
+ │ │ └── dashboard.css # 完整样式表 (响应式布局)
820
+ │ └── js/
821
+ │ ├── app.js # SPA 应用框架 (路由/状态/组件)
822
+ │ ├── pipeline-view.js # 流水线视图组件
823
+ │ ├── kanban-view.js # 看板视图组件
824
+ │ ├── quality-view.js # 质量视图组件
825
+ │ ├── system-view.js # 系统视图组件
826
+ │ └── charts/
827
+ │ ├── canvas-engine.js # Canvas 图表引擎基类
828
+ │ ├── radar.js # 雷达图
829
+ │ ├── histogram.js # 直方图
830
+ │ ├── gauge.js # 仪表盘
831
+ │ ├── line-chart.js # 折线图
832
+ │ └── horizontal-bar.js # 横向条形图
833
+
834
+ ├── tui/ # Terminal TUI 模块
835
+ │ ├── tui.js # TUIApp 主控制器
836
+ │ ├── renderer.js # ANSI 渲染引擎
837
+ │ ├── input.js # 键盘输入处理器 (raw mode)
838
+ │ ├── screens/
839
+ │ │ ├── overview-screen.js # 总览屏幕
840
+ │ │ ├── kanban-screen.js # 看板屏幕
841
+ │ │ ├── quality-screen.js # 质量屏幕
842
+ │ │ └── system-screen.js # 系统屏幕
843
+ │ ├── components/
844
+ │ │ ├── progress-bar.js # 进度条组件
845
+ │ │ ├── table.js # 表格组件
846
+ │ │ ├── sparkline.js # 迷你折线图组件
847
+ │ │ ├── status-light.js # 状态灯组件
848
+ │ │ └── card.js # 卡片组件
849
+ │ └── overlays/
850
+ │ ├── detail-overlay.js # 详情覆盖层
851
+ │ └── help-overlay.js # 帮助覆盖层
852
+
853
+ └── hooks/ # VM Hook 系统
854
+ ├── vm-hooks.js # Hook 定义与注册
855
+ └── handlers/
856
+ ├── on-feature-update.js # 功能点更新处理
857
+ ├── on-phase-change.js # 阶段变更处理
858
+ └── on-quality-alert.js # 质量预警处理
859
+ ```
860
+
861
+ ---
862
+
863
+ ## 技能系统
864
+
865
+ ### 如何使用技能
866
+
867
+ PDD-Skills 的技能通过 AI Agent(如 Claude、GPT 等)自动加载和使用。每个技能的 SKILL.md 包含:
868
+
869
+ 1. **触发词** (`_meta.json` triggers) — AI 何时激活此技能
870
+ 2. **行为塑造** — Iron Law / Rationalization / Red Flags
871
+ 3. **详细指令** — 分层的 🇨🇳 中文 / 🇺🇸 英文指导
872
+
873
+ ### 技能分类
874
+
875
+ ```
876
+ skills/
877
+ ├── core/ # 11 个核心技能 (必装)
878
+ │ ├── pdd-main/ # 主协调器
879
+ │ ├── pdd-ba/ # 业务分析
880
+ │ ├── pdd-extract-features/
881
+ │ ├── pdd-generate-spec/
882
+ │ ├── pdd-implement-feature/
883
+ │ ├── pdd-verify-feature/
884
+ │ ├── pdd-code-reviewer/
885
+ │ ├── pdd-doc-change/
886
+ │ ├── pdd-doc-gardener/
887
+ │ ├── pdd-entropy-reduction/
888
+ │ └── official-doc-writer/
889
+
890
+ ├── expert/ # 专家技能 (按需加载)
891
+ │ ├── expert-security/ # 安全审计专家
892
+ │ └── expert-performance/ # 性能优化专家
893
+
894
+ ├── openspec/ # OpenSpec 协作技能
895
+ │ ├── openspec-explore/
896
+ │ ├── openspec-new-change/
897
+ │ ├── openspec-ff-change/
898
+ │ └── ... (10 个)
899
+
900
+ └── software/ # 通用软件工程技能
901
+ ├── system-architect/
902
+ ├── software-architect/
903
+ └── software-engineer/
904
+ ```
905
+
906
+ ---
907
+
908
+ ## API 层
909
+
910
+ ### 启动 API 服务器
911
+
912
+ ```bash
913
+ # 默认端口 3000
914
+ pdd api
915
+
916
+ # 自定义端口 + CORS
917
+ pdd api -p 8080 --cors
918
+ ```
919
+
920
+ ### 调用示例
921
+
922
+ ```bash
923
+ # 生成规格
924
+ curl -X POST http://localhost:3000/api/v1/generate \
925
+ -H "Content-Type: application/json" \
926
+ -d '{"prd_path": "./prd.prdx", "template": "default"}'
927
+
928
+ # 验证功能
929
+ curl -X POST http://localhost:3000/api/v1/verify \
930
+ -H "Content-Type: application/json" \
931
+ -d '{"spec_path": "./spec.md", "source_dir": "./src"}'
932
+
933
+ # 列出技能
934
+ curl http://localhost:3000/api/v1/skills?category=core
935
+ ```
936
+
937
+ ### gRPC 调用示例
938
+
939
+ ```bash
940
+ # 基于 HTTP/2 + Protobuf JSON 格式
941
+ curl -X POST http://localhost:50051/pdd.SkillService/ListSkills \
942
+ -H "Content-Type: application/grpc+protojson" \
943
+ -d '{}'
944
+ ```
945
+
946
+ ---
947
+
948
+ ## MCP 协议集成
949
+
950
+ PDD-Skills 可作为 MCP Server 被 Claude Desktop / Cursor / Windsurf 等 AI IDE 直接调用:
951
+
952
+ ### 配置 Claude Desktop
953
+
954
+ ```json
955
+ {
956
+ "mcpServers": {
957
+ "pdd": {
958
+ "command": "node",
959
+ "args": ["path/to/pdd-skills-v3/lib/mcp-server.js"]
960
+ }
961
+ }
962
+ }
963
+ ```
964
+
965
+ ### 可用 Tools
966
+
967
+ AI Agent 可以直接调用以下工具:
968
+
969
+ | Tool | 参数 | 返回值 |
970
+ |------|------|--------|
971
+ | `pdd_generate_spec` | prd_path, template | 生成的规格文件路径 |
972
+ | `pdd_generate_code` | spec_path, feature_id | 生成的文件列表 |
973
+ | `pdd_verify_feature` | spec_path, source_dir | 验证结果(覆盖率/通过率) |
974
+ | `pdd_code_review` | source_dir, rules | 审查报告(评分/问题列表) |
975
+ | `pdd_list_skills` | category, language | 技能列表 |
976
+ | `pdd_get_status` | - | 系统状态 |
977
+
978
+ ---
979
+
980
+ ## SDK 使用指南
981
+
982
+ ### JavaScript SDK
983
+
984
+ ```javascript
985
+ import { PDDJS } from 'pdd-skills/lib/sdk-js.js';
986
+
987
+ const client = new PDDJS({
988
+ endpoint: 'http://localhost:3000',
989
+ apiKey: 'your-key',
990
+ maxRetries: 3,
991
+ enableCache: true
992
+ });
993
+
994
+ // 事件监听
995
+ client.on('success', ({ method, result }) => {
996
+ console.log(`✅ ${method} 完成`);
997
+ });
998
+
999
+ // 完整工作流
1000
+ const spec = await client.generateSpec({ prdPath: './prd.prdx' });
1001
+ console.log(`提取了 ${spec.features.length} 个功能点`);
1002
+
1003
+ for (const feature of spec.features.slice(0, 3)) {
1004
+ const code = await client.generateCode({
1005
+ specPath: spec.specPath,
1006
+ featureId: feature.id
1007
+ });
1008
+ console.log(` 📄 ${feature.id}: ${code.filesGenerated.length} files`);
1009
+ }
1010
+
1011
+ // 验证
1012
+ const verifyResult = await client.verifyFeature({
1013
+ specPath: spec.specPath,
1014
+ sourceDir: './src'
1015
+ });
1016
+ console.log(`覆盖率: ${verifyResult.coveragePercent}%`);
1017
+
1018
+ await client.close();
1019
+ ```
1020
+
1021
+ ### Python SDK
1022
+
1023
+ ```python
1024
+ import asyncio
1025
+ from pdd_sdk import PDDClient
1026
+
1027
+ async def main():
1028
+ async with PDDClient(endpoint="http://localhost:3000", debug=True) as client:
1029
+ # 事件监听
1030
+ client.on("request:end", lambda e: print(f"✅ {e['method']} ({e['duration_ms']}ms)"))
1031
+
1032
+ # 生成规格
1033
+ spec = await client.generate_spec(prd_path="./prd.prdx")
1034
+ print(f"生成 {len(spec.features)} 个功能点")
1035
+
1036
+ # 批量生成代码
1037
+ results = await client.batch_generate_specs([
1038
+ {"spec_path": spec.spec_path, "feature_id": f["id"]}
1039
+ for f in spec.features[:3]
1040
+ ])
1041
+
1042
+ # 验证
1043
+ verify = await client.verify_feature(spec_path=spec.spec_path, source_dir="./src")
1044
+ print(f"覆盖率: {verify.coverage_percent}%")
1045
+ print(f"等级: {verify.grade}")
1046
+
1047
+ if __name__ == "__main__":
1048
+ asyncio.run(main())
1049
+ ```
1050
+
1051
+ ---
1052
+
1053
+ ## 智能引擎
1054
+
1055
+ ### 缓存使用
1056
+
1057
+ ```javascript
1058
+ import { createSystemCache } from 'pdd-skills/lib/cache/system-cache.js';
1059
+
1060
+ const cache = createSystemCache({
1061
+ l1: { maxSize: 100, ttl: 300000 }, // 5min
1062
+ l2: { maxSize: 500, ttl: 1800000 }, // 30min
1063
+ l3: { maxSize: 2000, ttl: 7200000, dir: './cache' } // 2h
1064
+ });
1065
+
1066
+ // 自动三级穿透
1067
+ await cache.set('spec:user-auth', specData);
1068
+ const hit = await cache.get('spec:user-auth'); // L1 命中
1069
+
1070
+ // 命中统计
1071
+ console.log(cache.stats());
1072
+ // { l1: { hits: 95, misses: 5, rate: 0.95 }, ... }
1073
+ ```
1074
+
1075
+ ### Token 预算
1076
+
1077
+ ```javascript
1078
+ import { TokenBudgetManager } from 'pdd-skills/lib/token/budget-manager.js';
1079
+
1080
+ const budget = new TokenBudgetManager({ totalTokens: 100000 });
1081
+
1082
+ budget.on('warning', ({ phase, percent }) => {
1083
+ console.log(`⚠️ ${phase} 阶段已使用 ${percent}%`);
1084
+ });
1085
+
1086
+ budget.on('critical', ({ phase }) => {
1087
+ console.log(`🚫 ${phase} 阶段超预算!`);
1088
+ });
1089
+
1090
+ // 在各阶段消费
1091
+ budget.consume('analysis', 5000);
1092
+ budget.consume('implementation', 35000);
1093
+
1094
+ // 生成报告
1095
+ console.log(budget.generateReport());
1096
+ ```
1097
+
1098
+ ### 质量评分
1099
+
1100
+ ```javascript
1101
+ import { QualityScorer } from 'pdd-skills/lib/quality/scorer.js';
1102
+
1103
+ const scorer = new QualityScorer();
1104
+
1105
+ // 评分单个文件
1106
+ const result = await scorer.scoreFile('./src/user-service.js');
1107
+ console.log(`${result.grade} (${result.score}/100)`);
1108
+ // B (72/100) — readability: B, maintainability: A, robustness: C, ...
1109
+
1110
+ // 评分整个目录
1111
+ const report = await scorer.scoreDirectory('./src', {
1112
+ format: 'table', // table | json | markdown
1113
+ threshold: 'C' // 低于此级别高亮显示
1114
+ });
1115
+ ```
1116
+
1117
+ ### 迭代优化
1118
+
1119
+ ```javascript
1120
+ import { IterationController } from 'pdd-skills/lib/iteration/controller.js';
1121
+
1122
+ const controller = new IterationController({
1123
+ maxRounds: 5,
1124
+ convergenceThreshold: 0.05,
1125
+ reviewer: autoReviewer,
1126
+ fixer: autoFixer
1127
+ });
1128
+
1129
+ controller.on('round-complete', ({ round, score, improved }) => {
1130
+ console.log(`Round ${round}: score=${score.toFixed(1)}, improved=${improved ? 'yes' : 'no'}`);
1131
+ });
1132
+
1133
+ const result = await controller.run({
1134
+ specPath: './specs/auth.md',
1135
+ sourceDir: './src'
1136
+ });
1137
+
1138
+ console.log(`完成 ${result.roundsCompleted} 轮, 最终得分: ${result.finalScore}`);
1139
+ ```
1140
+
1141
+ ---
1142
+
1143
+ ## 插件系统
1144
+
1145
+ ### 开发插件
1146
+
1147
+ 最小可行插件只需 2 个文件:
1148
+
1149
+ **plugin.json**
1150
+ ```json
1151
+ {
1152
+ "name": "my-plugin",
1153
+ "version": "1.0.0",
1154
+ "description": "我的插件",
1155
+ "main": "index.js",
1156
+ "pdd": ">=3.0.0",
1157
+ "hooks": ["post-verify"],
1158
+ "permissions": {
1159
+ "filesystem": { "allowRead": true, "allowWrite": false }
1160
+ }
1161
+ }
1162
+ ```
1163
+
1164
+ **index.js**
1165
+ ```javascript
1166
+ import { PluginBase } from 'pdd-skills/lib/plugin/plugin-sdk.js';
1167
+
1168
+ export default class MyPlugin extends PluginBase {
1169
+ async onActivate(context) {
1170
+ context.logger.info('MyPlugin 已激活!');
1171
+
1172
+ this.registerCommand('greet', {
1173
+ description: '打个招呼',
1174
+ handler: (args) => `Hello, ${args.name || 'world'}!`
1175
+ });
1176
+ }
1177
+
1178
+ async onDeactivate(context) {
1179
+ context.logger.info('MyPlugin 正在停用...');
1180
+ }
1181
+ }
1182
+ ```
1183
+
1184
+ ### 加载插件
1185
+
1186
+ ```bash
1187
+ # 复制到插件目录
1188
+ cp -r my-plugin ~/.pdd-skills/plugins/
1189
+
1190
+ # 通过 PluginManager 加载
1191
+ node -e "
1192
+ import { PluginManager } from './lib/plugin/plugin-manager.js';
1193
+ const mgr = new PluginManager({ pluginsDir: './plugins' });
1194
+ await mgr.loadAll();
1195
+ console.log(mgr.listPlugins());
1196
+ "
1197
+ ```
1198
+
1199
+ ---
1200
+
1201
+ ## OpenClaw 集成
1202
+
1203
+ ### 启动 OpenClaw 服务
1204
+
1205
+ ```bash
1206
+ # 启动服务(后台守护进程)
1207
+ pdd openclaw start -p 5001 -t my-secret-token --daemon
1208
+
1209
+ # 查看状态
1210
+ pdd openclaw status
1211
+
1212
+ # 列出已注册工具
1213
+ pdd openclaw list-tools
1214
+
1215
+ # 测试工具调用
1216
+ pdd openclaw test -n pdd_generate_spec
1217
+
1218
+ # 查看通信日志
1219
+ pdd openclaw logs --tail
1220
+ ```
1221
+
1222
+ ### 数据同步
1223
+
1224
+ ```javascript
1225
+ import { DataSyncManager, SyncScheduler } from 'pdd-skills/lib/openclaw/data-sync.js';
1226
+
1227
+ const sync = new DataSyncManager({
1228
+ direction: 'bidirectional',
1229
+ conflictStrategy: 'last-write-wins'
1230
+ });
1231
+
1232
+ // 同步四种数据类型
1233
+ await sync.syncSkills();
1234
+ await sync.syncConfig();
1235
+ await sync.syncCache();
1236
+ await sync.syncReports();
1237
+
1238
+ // 定时同步(每5分钟)
1239
+ const scheduler = new SyncScheduler(sync, { interval: 300000 });
1240
+ scheduler.start();
1241
+ ```
1242
+
1243
+ ---
1244
+
1245
+ ## 项目结构
1246
+
1247
+ ```
1248
+ pdd-skills-v3/
1249
+ ├── bin/
1250
+ │ └── pdd.js # CLI 入口 (20+ 子命令)
1251
+
1252
+ ├── lib/ # 核心库 (~80 个模块)
1253
+ │ ├── api-server.js # HTTP 服务器
1254
+ │ ├── api-routes.js # 18 个 RESTful 端点
1255
+ │ ├── mcp-server.js # MCP 协议服务器
1256
+ │ ├── grpc/ # gRPC 兼容层
1257
+ │ │ ├── grpc-server.js # HTTP/2 服务器
1258
+ │ │ ├── proto-definitions.js # Proto3 编解码
1259
+ │ │ └── grpc-routes.js # 8 个方法路由
1260
+ │ ├── sdk-base.js # SDK 统一接口
1261
+ │ ├── sdk-js.js # JavaScript SDK
1262
+ │ ├── sdk-python/ # Python SDK (8 文件)
1263
+ │ ├── plugin/ # 插件系统
1264
+ │ │ ├── plugin-sdk.js # PluginBase 基类
1265
+ │ │ ├── plugin-manager.js # 生命周期管理
1266
+ │ │ ├── sandbox.js # 安全沙箱
1267
+ │ │ └── example-plugins/ # 3 个示例插件
1268
+ │ ├── openclaw/ # OpenClaw 集成
1269
+ │ │ ├── openclaw-adapter.js
1270
+ │ │ ├── cli-integration.js
1271
+ │ │ ├── api-integration.js
1272
+ │ │ └── data-sync.js
1273
+ │ ├── cache/ # 三级缓存
1274
+ │ │ ├── system-cache.js # L1/L2/L3 缓存
1275
+ │ │ └── cache-config.js # 缓存配置
1276
+ │ ├── token/ # Token 预算
1277
+ │ │ ├── budget-manager.js # 预算管理器
1278
+ │ │ └── budget-alert.js # 预算预警
1279
+ │ ├── quality/ # 质量评分
1280
+ │ │ ├── scorer.js # 五维引擎
1281
+ │ │ └── rules/ # 31 条规则
1282
+ │ │ ├── readability.js
1283
+ │ │ ├── maintainability.js
1284
+ │ │ ├── robustness.js
1285
+ │ │ ├── performance.js
1286
+ │ │ └── security.js
1287
+ │ ├── iteration/ # 迭代优化
1288
+ │ │ ├── controller.js # 迭代控制器
1289
+ │ │ ├── auto-reviewer.js # 自动审查
1290
+ │ │ └── auto-fixer.js # 自动修复
1291
+ │ │
1292
+ │ └── vm/ # ★ PDD Visual Manager (Phase 7 新增, ~38 文件)
1293
+ │ ├── index.js # VM 入口
1294
+ │ ├── data-aggregator.js # 数据聚合器
1295
+ │ ├── state-manager.js # 状态管理器
1296
+ │ ├── event-bus.js # 事件总线
1297
+ │ │
1298
+ │ ├── dashboard/ # Web Dashboard (零依赖 SPA)
1299
+ │ │ ├── server.js # HTTP+SSE 服务器
1300
+ │ │ ├── sse.js # SSE 推送服务
1301
+ │ │ ├── api-routes.js # 11 个 REST API 端点
1302
+ │ │ ├── index.html # SPA 主页面
1303
+ │ │ ├── css/
1304
+ │ │ │ └── dashboard.css
1305
+ │ │ └── js/
1306
+ │ │ ├── app.js # SPA 框架
1307
+ │ │ ├── pipeline-view.js
1308
+ │ │ ├── kanban-view.js
1309
+ │ │ ├── quality-view.js
1310
+ │ │ ├── system-view.js
1311
+ │ │ └── charts/ # Canvas 图表引擎
1312
+ │ │ ├── canvas-engine.js
1313
+ │ │ ├── radar.js
1314
+ │ │ ├── histogram.js
1315
+ │ │ ├── gauge.js
1316
+ │ │ ├── line-chart.js
1317
+ │ │ └── horizontal-bar.js
1318
+ │ │
1319
+ │ ├── tui/ # Terminal TUI (零依赖 ANSI)
1320
+ │ │ ├── tui.js # 主控制器
1321
+ │ │ ├── renderer.js # ANSI 渲染引擎
1322
+ │ │ ├── input.js # 键盘输入处理
1323
+ │ │ ├── screens/ # 4 个屏幕
1324
+ │ │ │ ├── overview-screen.js
1325
+ │ │ │ ├── kanban-screen.js
1326
+ │ │ │ ├── quality-screen.js
1327
+ │ │ │ └── system-screen.js
1328
+ │ │ ├── components/ # 5 个组件
1329
+ │ │ │ ├── progress-bar.js
1330
+ │ │ │ ├── table.js
1331
+ │ │ │ ├── sparkline.js
1332
+ │ │ │ ├── status-light.js
1333
+ │ │ │ └── card.js
1334
+ │ │ └── overlays/ # 覆盖层
1335
+ │ │ ├── detail-overlay.js
1336
+ │ │ └── help-overlay.js
1337
+ │ │
1338
+ │ └── hooks/ # VM Hook 系统
1339
+ │ ├── vm-hooks.js
1340
+ │ └── handlers/
1341
+ │ ├── on-feature-update.js
1342
+ │ ├── on-phase-change.js
1343
+ │ └── on-quality-alert.js
1344
+
1345
+ ├── skills/ # 技能文件
1346
+ │ ├── core/ # 11 个核心技能
1347
+ │ ├── expert/ # 2 个专家技能
1348
+ │ └── openspec/ # 10 个 OpenSpec 技能
1349
+
1350
+ ├── scripts/ # 工具脚本
1351
+ │ ├── skill-linter.py # Skill 文件检查器
1352
+ │ ├── skill-rules.yaml # Linter 规则配置
1353
+ │ ├── i18n-checker.js # 双语合规检查
1354
+ │ ├── token-analyzer.js # Token 分析
1355
+ │ └── ...
1356
+
1357
+ ├── docs/ # 社区文档 (~10,700 行)
1358
+ │ ├── user-guide/
1359
+ │ ├── developer-guide/
1360
+ │ ├── api-reference/
1361
+ │ ├── operations/
1362
+ │ ├── plugin-market/
1363
+ │ └── tasks.md # 任务跟踪 (153/100%)
1364
+
1365
+ ├── templates/ # 项目模板
1366
+ ├── config/ # 配置文件
1367
+ ├── hooks/ # Hook 配置
1368
+ └── package.json # v3.0.0
1369
+ ```
1370
+
1371
+ ---
1372
+
1373
+ ## 配置说明
1374
+
1375
+ ### 全局配置文件
1376
+
1377
+ PDD-Skills 支持多层配置覆盖:
1378
+
1379
+ ```bash
1380
+ # 查看当前配置
1381
+ pdd config --list
1382
+
1383
+ # 设置配置项
1384
+ pdd config --set server.port=8080
1385
+ pdd config --set cache.l1.maxSize=200
1386
+ pdd config --set quality.threshold=B
1387
+ ```
1388
+
1389
+ ### 配置优先级
1390
+
1391
+ ```
1392
+ CLI 参数 > 环境变量 > .pddrc.local > .pddrc > defaults
1393
+ ```
1394
+
1395
+ ### 关键配置项
1396
+
1397
+ | 分类 | 配置项 | 默认值 | 说明 |
1398
+ |------|--------|--------|------|
1399
+ | **服务器** | server.port | 3000 | API 端口 |
1400
+ | | server.cors | false | CORS 跨域 |
1401
+ | | server.rateLimit | 100/min | 限流阈值 |
1402
+ | **缓存** | cache.l1.enabled | true | L1 缓存开关 |
1403
+ | | cache.l1.maxSize | 100 | L1 容量 |
1404
+ | | cache.l3.dir | ./cache | L3 磁盘目录 |
1405
+ | **Token** | budget.total | 100000 | 总预算 |
1406
+ | | budget.warnAt | 0.80 | 警告阈值 |
1407
+ | | budget.blockAt | 0.95 | 阻断阈值 |
1408
+ | **质量** | quality.grade | C | 最低通过等级 |
1409
+ | | iteration.maxRounds | 5 | 最大迭代轮次 |
1410
+ | | iteration.convergence | 0.05 | 收敛阈值 |
1411
+ | **插件** | plugins.dir | ./plugins | 插件目录 |
1412
+ | | sandbox.enabled | true | 沙箱开关 |
1413
+ | **★ VM** | vm.port | 3001 | Dashboard 端口 |
1414
+ | | vm.refreshInterval | 30 | Dashboard 刷新间隔(秒) |
1415
+ | | vm.theme | light | 主题 light/dark |
1416
+ | | vm.autoOpen | true | 自动打开浏览器 |
1417
+ | | vm.maxSSEConnections | 100 | 最大SSE连接数 |
1418
+ | | vm.tuiRefreshInterval | 5 | TUI 刷新间隔(秒) |
1419
+
1420
+ ---
1421
+
1422
+ ## 开发指南
1423
+
1424
+ ### 贡献流程
1425
+
1426
+ 1. Fork 本仓库
1427
+ 2. 创建特性分支: `git checkout -b feature/amazing`
1428
+ 3. 编写代码(遵循 ESM / JSDoc / 零依赖原则)
1429
+ 4. 添加/更新 evals 测试
1430
+ 5. 运行 `pdd i18n` 和 `pdd cso` 确保合规
1431
+ 6. 提交 PR 并填写模板
1432
+
1433
+ ### 代码规范
1434
+
1435
+ - **模块**: ESM (`import`/`export`)
1436
+ - **风格**: JSDoc 注释 + 中文注释
1437
+ - **依赖**: 仅 Node.js 内置模块(lib/ 下)
1438
+ - **测试**: evals 框架(`pdd eval -c your-category`)
1439
+ - **i18n**: 新技能必须包含 🇨🇳/🇺🇸 双语章节
1440
+
1441
+ ### 技能开发模板
1442
+
1443
+ 详见 [开发者指南](docs/developer-guide/developer-guide.md) 或参考 `example-plugins/hello-world/`。
1444
+
1445
+ ---
1446
+
1447
+ ## 版本历史
1448
+
1449
+ | 版本 | 日期 | 重要变更 |
1450
+ |------|------|---------|
1451
+ | **v3.0.1** | 2026-04-07 | **PDD Visual Manager 发布**: Web Dashboard + Terminal TUI 双形态可视化监控, 11个REST API端点, SSE实时推送, Canvas图表引擎, ANSI TUI组件库 (59/59 任务 100%, 4/4 里程碑 100%) |
1452
+ | **v3.0.0** | 2026-04-05 | **正式发布版**: 6大Phase全部完成 + 插件系统 + OpenClaw + gRPC + Python SDK + 暂缓清零 (94/94 任务 100%) |
1453
+ | v2.x | 2026-03 | 内部迭代版本: MCP/SDK/缓存/Token/质量/迭代 |
1454
+ | v1.x | 2025-12 | 初始版本: 基础设施 + 核心技能 + Linter |
1455
+
1456
+ ---
1457
+
1458
+ ## 致谢
1459
+
1460
+ - **Claude / Anthropic** — AI 原生开发的理想伙伴
1461
+ - **Node.js 社区** — 提供卓越的内置模块(http/http2/stream/events)
1462
+ - **开源社区** — 所有灵感和最佳实践的来源
1463
+
1464
+ ---
1465
+
1466
+ ## 许可证
1467
+
1468
+ [MIT](LICENSE) © PDD Team 2025-2026
1469
+
1470
+ ---
1471
+
1472
+ <p align="center">
1473
+ <b>PDD-Skills v3.0 — 让 AI 成为你的全职结对编程伙伴 🤖</b>
1474
+ </p>
1475
+
1476
+ <p align="center">
1477
+ <sub>153/153 Tasks ✅ · 29/29 Milestones ✅ · 100% Complete 🎉</sub>
1478
+ </p>