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
@@ -0,0 +1,306 @@
1
+ ---
2
+ name: pdd-template-engine
3
+ description: |
4
+ PDD模板引擎技能,根据功能点规格自动选择和渲染代码模板。当用户需要生成代码、使用模板快速开发、自动生成代码、批量生成、脚手架、代码骨架、快速生成、模板生成、基础代码框架、生成脚手架等场景时自动触发。支持若依框架CRUD和Activiti工作流场景,可将代码有效率从50%提升至75%+。即使用户只说"生成代码"、"用模板"、"脚手架生成"、"生成脚手架"等简短表述,也应触发此Skill。
5
+ license: MIT
6
+ compatibility: 需要模板库 (.trae/templates/)
7
+ metadata:
8
+ author: "neuqik@hotmail.com"
9
+ version: "1.0"
10
+ ---
11
+
12
+ # PDD模板引擎技能
13
+
14
+ ## 技能描述
15
+
16
+ PDD模板引擎是一个代码生成工具,根据功能点规格自动选择和渲染代码模板,生成符合项目规范的代码文件。支持若依框架和Activiti工作流的代码生成。
17
+
18
+ ## 触发条件
19
+
20
+ - 用户请求"生成代码"、"使用模板生成"等
21
+ - pdd-implement-feature技能调用
22
+ - 用户指定使用特定场景模板
23
+
24
+ ## 核心能力
25
+
26
+ ### 1. 模板选择
27
+
28
+ 根据功能点特征自动选择合适的模板组合:
29
+
30
+ | 场景类型 | 判断条件 | 使用模板 |
31
+ |---------|---------|---------|
32
+ | 简单CRUD | 无审批流程 | scenarios/crud |
33
+ | 工作流+CRUD | 需要审批流程 | scenarios/workflow-crud |
34
+
35
+ ### 2. 变量提取
36
+
37
+ 从spec.md中提取模板变量:
38
+
39
+ ```yaml
40
+ 提取规则:
41
+ 基础变量:
42
+ - entityName: 从数据模型中提取实体名称
43
+ - tableName: 从数据模型中提取表名
44
+ - businessName: 从功能描述中提取业务名称
45
+ - moduleName: 根据模块编号转换
46
+
47
+ 字段变量:
48
+ - fields: 从数据模型字段列表提取
49
+ - searchFields: 从查询条件提取
50
+ - formFields: 从表单设计提取
51
+ - requiredFields: 从验证规则提取
52
+
53
+ 工作流变量:
54
+ - processKey: 从流程设计提取
55
+ - approvalRules: 从审批规则提取
56
+ - processVariables: 从流程变量定义提取
57
+ ```
58
+
59
+ ### 3. 模板渲染
60
+
61
+ 使用Handlebars语法渲染模板:
62
+
63
+ ```yaml
64
+ 渲染规则:
65
+ 变量替换: {{variableName}}
66
+ 条件渲染: {{#if condition}}...{{/if}}
67
+ 循环渲染: {{#each items}}...{{/each}}
68
+ 辅助函数:
69
+ - pascalCase: 转换为PascalCase
70
+ - camelCase: 转换为camelCase
71
+ - kebabCase: 转换为kebab-case
72
+ - snakeCase: 转换为snake_case
73
+ ```
74
+
75
+ ### 4. 代码生成
76
+
77
+ 生成符合项目规范的代码文件:
78
+
79
+ ```yaml
80
+ 输出结构:
81
+ 后端:
82
+ - Controller.java
83
+ - Service.java / ServiceImpl.java
84
+ - Mapper.java / Mapper.xml
85
+ - Entity.java
86
+ - SQL脚本
87
+
88
+ 前端:
89
+ - Vue组件 (list/form/detail)
90
+ - API接口文件
91
+ - 工作流组件 (approval-panel)
92
+
93
+ 工作流:
94
+ - BPMN流程定义文件
95
+ - ProcessService.java
96
+ - TaskListener.java
97
+ ```
98
+
99
+ ## 执行流程
100
+
101
+ ```
102
+ 输入: spec.md + feature-matrix.md
103
+
104
+
105
+ ┌─────────────────────────────────┐
106
+ │ 1. 解析规格文档 │
107
+ │ - 提取实体定义 │
108
+ │ - 提取字段列表 │
109
+ │ - 提取业务规则 │
110
+ │ - 提取流程定义 │
111
+ └─────────────────────────────────┘
112
+
113
+
114
+ ┌─────────────────────────────────┐
115
+ │ 2. 选择场景模板 │
116
+ │ - 判断是否需要工作流 │
117
+ │ - 加载场景配置 │
118
+ │ - 确定模板列表 │
119
+ └─────────────────────────────────┘
120
+
121
+
122
+ ┌─────────────────────────────────┐
123
+ │ 3. 构建变量字典 │
124
+ │ - 基础变量 │
125
+ │ - 字段变量 │
126
+ │ - 条件变量 │
127
+ └─────────────────────────────────┘
128
+
129
+
130
+ ┌─────────────────────────────────┐
131
+ │ 4. 渲染模板文件 │
132
+ │ - 读取模板内容 │
133
+ │ - 替换变量 │
134
+ │ - 处理条件渲染 │
135
+ │ - 处理循环渲染 │
136
+ └─────────────────────────────────┘
137
+
138
+
139
+ ┌─────────────────────────────────┐
140
+ │ 5. 输出代码文件 │
141
+ │ - 确定输出路径 │
142
+ │ - 写入文件 │
143
+ │ - 记录生成日志 │
144
+ └─────────────────────────────────┘
145
+
146
+
147
+ 输出: 生成的代码文件列表
148
+ ```
149
+
150
+ ## 模板变量参考
151
+
152
+ ### 基础变量
153
+
154
+ | 变量名 | 说明 | 示例 |
155
+ |-------|------|------|
156
+ | package | 包路径 | com.sjjk.equity.transfer |
157
+ | entityName | 实体类名称 | EquityTransferApply |
158
+ | entityNameLower | 实体类名称(小写) | equityTransferApply |
159
+ | tableName | 数据库表名 | equity_transfer_apply |
160
+ | moduleName | 模块名称 | equity-transfer |
161
+ | businessName | 业务名称 | 国有产权转让申请 |
162
+ | permissionPrefix | 权限前缀 | equity:transfer |
163
+ | author | 作者 | sjjk |
164
+ | datetime | 日期时间 | 2026-03-31 |
165
+
166
+ ### 字段变量
167
+
168
+ | 变量名 | 说明 | 类型 |
169
+ |-------|------|------|
170
+ | fields | 字段列表 | array |
171
+ | fields[].name | 字段名称 | string |
172
+ | fields[].type | 字段类型 | string |
173
+ | fields[].label | 字段标签 | string |
174
+ | fields[].comment | 字段注释 | string |
175
+ | fields[].required | 是否必填 | boolean |
176
+ | fields[].dictType | 字典类型 | string |
177
+
178
+ ### 工作流变量
179
+
180
+ | 变量名 | 说明 | 示例 |
181
+ |-------|------|------|
182
+ | processKey | 流程定义Key | equity-transfer-approval |
183
+ | processName | 流程名称 | 国有产权转让审批流程 |
184
+ | candidateGroups | 候选组 | manager,leader |
185
+ | approvalRules | 审批规则 | array |
186
+ | processVariables | 流程变量 | array |
187
+
188
+ ## 使用示例
189
+
190
+ ### 示例1: 生成简单CRUD代码
191
+
192
+ ```yaml
193
+ 输入:
194
+ spec.md: |
195
+ # 国有产权转让申请
196
+
197
+ ## 数据模型
198
+ 实体: EquityTransferApply
199
+ 表名: equity_transfer_apply
200
+
201
+ 字段:
202
+ - name: transferType
203
+ type: string
204
+ label: 转让方式
205
+ - name: transferReason
206
+ type: string
207
+ label: 转让原因
208
+
209
+ 执行:
210
+ 场景: crud
211
+ 模板: scenarios/crud
212
+
213
+ 输出:
214
+ - EquityTransferApplyController.java
215
+ - IEquityTransferApplyService.java
216
+ - EquityTransferApplyServiceImpl.java
217
+ - EquityTransferApplyMapper.java
218
+ - EquityTransferApplyMapper.xml
219
+ - EquityTransferApply.java
220
+ - equity_transfer_apply.sql
221
+ - menu_equity_transfer_apply.sql
222
+ - index.vue
223
+ - form.vue
224
+ - detail.vue
225
+ - equity-transfer.js
226
+ ```
227
+
228
+ ### 示例2: 生成工作流代码
229
+
230
+ ```yaml
231
+ 输入:
232
+ spec.md: |
233
+ # 资产处置审批
234
+
235
+ ## 数据模型
236
+ 实体: AssetDisposalApply
237
+ 表名: asset_disposal_apply
238
+
239
+ ## 流程定义
240
+ 流程Key: asset-disposal-approval
241
+ 审批类型: multi-level
242
+
243
+ ## 审批规则
244
+ - 金额 >= 500万: 集团审批
245
+ - 金额 >= 30万: 子公司审批
246
+ - 金额 < 30万: 自动通过
247
+
248
+ 执行:
249
+ 场景: workflow-crud
250
+ 模板: scenarios/workflow-crud
251
+
252
+ 输出:
253
+ 后端:
254
+ - AssetDisposalApplyController.java
255
+ - IAssetDisposalApplyService.java
256
+ - AssetDisposalApplyServiceImpl.java
257
+ - AssetDisposalApplyMapper.java
258
+ - AssetDisposalApplyMapper.xml
259
+ - AssetDisposalApply.java
260
+ - AssetDisposalApplyProcessService.java
261
+ - AssetDisposalTaskListener.java
262
+ - asset-disposal-approval.bpmn20.xml
263
+
264
+ 前端:
265
+ - index.vue
266
+ - form.vue
267
+ - detail.vue
268
+ - ApprovalPanel.vue
269
+ - asset-disposal.js
270
+
271
+ SQL:
272
+ - asset_disposal_apply.sql
273
+ - menu_asset_disposal_apply.sql
274
+ ```
275
+
276
+ ## 协作关系
277
+
278
+ ```yaml
279
+ 被调用:
280
+ - pdd-implement-feature: 实现功能点时调用
281
+
282
+ 咨询:
283
+ - expert-ruoyi: 若依框架规范验证
284
+ - expert-activiti: 工作流规范验证
285
+
286
+ 输出给:
287
+ - pdd-code-reviewer: 生成的代码需要审查
288
+ ```
289
+
290
+ ## 注意事项
291
+
292
+ 1. **变量完整性**: 确保所有必需变量都有值
293
+ 2. **条件渲染**: 正确处理条件渲染逻辑
294
+ 3. **输出路径**: 确保输出路径符合项目规范
295
+ 4. **编码规范**: 生成的代码需符合项目编码规范
296
+ 5. **安全检查**: 文本字段需要添加@Xss注解
297
+ 6. **权限配置**: 菜单配置需要包含所有页面
298
+
299
+ ## 错误处理
300
+
301
+ | 错误类型 | 处理方式 |
302
+ |---------|---------|
303
+ | 变量缺失 | 提示用户补充必需变量 |
304
+ | 模板不存在 | 检查模板路径,提示可用模板 |
305
+ | 渲染失败 | 记录错误日志,返回详细错误信息 |
306
+ | 文件已存在 | 提示用户确认是否覆盖 |
@@ -0,0 +1 @@
1
+ {"name": "pdd-template-engine", "version": "1.0.0", "category": "pr", "description": "Template engine generating standardized documents from PDD specs and feature matrices. Call when creating document templates or generating spec/checklist/PRD templates.", "triggers": ["模板引擎", "template", "文档模板"]}
@@ -0,0 +1,87 @@
1
+ # Iron Law Template - 行为塑造铁律
2
+
3
+ > 本模板定义了PDD-Skills中每个技能必须遵守的核心行为约束。
4
+ > 所有核心技能的SKILL.md必须包含此章节。
5
+
6
+ ---
7
+
8
+ ## Iron Law - 核心铁律
9
+
10
+ ### 1. 唯一职责铁律
11
+
12
+ **规则**: 每个技能只做一件事,且做到极致。
13
+
14
+ | 禁止行为 | 正确做法 |
15
+ |---------|---------|
16
+ | 在一个技能中完成多个不相关的操作 | 将复杂操作拆分为多个技能协作 |
17
+ | 越权修改不属于本技能范围的文件 | 通过Hook或主流程协调器传递控制权 |
18
+ | 自行决定是否调用其他技能 | 遵循预定义的技能编排流程 |
19
+
20
+ ### 2. 人类伙伴优先铁律
21
+
22
+ **规则**: 你的"人类伙伴"(Human Partner)是决策者,你是执行者。
23
+
24
+ | 禁止行为 | 正确做法 |
25
+ |---------|---------|
26
+ | 替用户做架构/技术选型决策 | 提供方案对比,让用户选择 |
27
+ | 无视用户明确指令自行其是 | 用户指令高于默认行为 |
28
+ | 隐瞒风险或假设 | 明确告知不确定性和潜在问题 |
29
+ | 在未确认前删除或覆写文件 | 先展示diff,获得确认后执行 |
30
+
31
+ ### 3. 渐进式披露铁律
32
+
33
+ **规则**: 信息按需加载,避免Token浪费。
34
+
35
+ | 禁止行为 | 正确做法 |
36
+ |---------|---------|
37
+ | 一次性加载所有参考文档 | 只加载当前步骤所需的最小文档集 |
38
+ | 输出冗长的中间过程信息 | 仅输出关键决策点和最终结果 |
39
+ | 重复已上下文中存在的信息 | 引用而非复制已有内容 |
40
+
41
+ ### 4. 可验证性铁律
42
+
43
+ **规则**: 所有产出物必须有明确的验证标准。
44
+
45
+ | 禁止行为 | 正确做法 |
46
+ |---------|---------|
47
+ | 输出无法验证的模糊描述 | 使用可测试的具体验收标准 |
48
+ | 跳过验证直接标记完成 | 执行检查并报告通过/失败状态 |
49
+ | 忽略错误继续执行 | 遇到错误立即上报,不静默忽略 |
50
+
51
+ ### 5. 幂等性铁律
52
+
53
+ **规则**: 同一输入多次执行应产生一致结果。
54
+
55
+ | 禁止行为 | 正确做法 |
56
+ |---------|---------|
57
+ | 重复执行产生副作用(如追加重复内容) | 检查是否已存在再决定操作 |
58
+ | 依赖外部可变状态决定行为 | 使输出仅由输入参数决定 |
59
+ | 执行顺序影响结果 | 确保各步骤独立且顺序无关 |
60
+
61
+ ---
62
+
63
+ ## 如何在SKILL.md中使用
64
+
65
+ 将以下章节添加到SKILL.md的 `## Iron Law` 部分:
66
+
67
+ ```markdown
68
+ ## Iron Law
69
+
70
+ 本技能严格遵循以下铁律:
71
+
72
+ 1. **唯一职责**: [本技能的唯一职责描述]
73
+ 2. **人类伙伴优先**: [本技能中需要用户确认的关键决策点]
74
+ 3. **渐进式披露**: [本技能按需加载的信息策略]
75
+ 4. **可验证性**: [本技能的验证标准和输出格式]
76
+ 5. **幂等性**: [重复执行的安全保障措施]
77
+
78
+ ### 违规示例
79
+
80
+ - ❌ [具体的违规行为1]
81
+ - ❌ [具体的违规行为2]
82
+
83
+ ### 合规示例
84
+
85
+ - ✅ [具体的合规行为1]
86
+ - ✅ [具体的合规行为2]
87
+ ```
@@ -0,0 +1,62 @@
1
+ # Rationalization Table Template - 合理化防御表
2
+
3
+ > 本模板用于防止AI Agent在执行过程中自我合理化错误决策。
4
+ > 当Agent倾向于采取捷径、跳过步骤或降低标准时,此表强制其进行反思。
5
+
6
+ ---
7
+
8
+ ## Rationalization Table - 常见合理化陷阱
9
+
10
+ ### 陷阱 1: "用户没要求就不做"
11
+
12
+ | 合理化借口 | 反驳论证 | 正确行动 |
13
+ |-----------|---------|---------|
14
+ | "用户只说了X,不需要做Y" | Y可能是X的前置条件或隐含需求 | 识别隐含依赖,主动告知并征求确认 |
15
+ | "这个检查太耗时,跳过吧" | 跳过检查可能导致严重回归问题 | 执行最小化但有效的验证 |
16
+
17
+ ### 陷阱 2: "差不多就行了"
18
+
19
+ | 合理化借口 | 反驳论证 | 正确行动 |
20
+ |-----------|---------|---------|
21
+ | "代码能跑就行,不用那么规范" | 技术债务会指数级累积 | 遵循项目既定的编码规范和Linter配置 |
22
+ | "这个边界情况很少发生" | 生产环境的异常往往来自罕见路径 | 至少记录TODO和已知限制 |
23
+
24
+ ### 陷阱 3: "之前的代码就是这样"
25
+
26
+ | 合理化借口 | 反驳论证 | 正确行动 |
27
+ |-----------|---------|---------|
28
+ | "原有代码风格如此,保持一致" | 一致性不能作为延续错误的理由 | 在改动范围内遵循最佳实践,不传播旧模式 |
29
+ | "这个函数本来就长,我没办法" | 可以先重构再扩展 | 对新增代码负责,对存量代码提出改进建议 |
30
+
31
+ ### 陷阱 4: "时间不够,先这样"
32
+
33
+ | 合理化借口 | 反驳论证 | 正确行动 |
34
+ |-----------|---------|---------|
35
+ | "来不及写测试了,后面补" | 后面永远不会补 | 测试与实现同步完成,最低限度写关键路径测试 |
36
+ | "这个优化留到下个迭代" | 如果不追踪就会永远丢失 | 记录技术债务项,确保可见性 |
37
+
38
+ ### 陷阱 5: "AI生成的就是对的"
39
+
40
+ | 合理化借口 | 反驳论证 | 正确行动 |
41
+ |-----------|---------|---------|
42
+ | "AI生成的代码质量很高" | AI也会产生幻觉和安全漏洞 | 所有生成代码必须经过人工审查 |
43
+ | "工具链已经检查过了" | 工具只能发现模式化问题 | 结合业务逻辑进行人工验证 |
44
+
45
+ ---
46
+
47
+ ## 如何在SKILL.md中使用
48
+
49
+ ```markdown
50
+ ## Rationalization Table
51
+
52
+ 当你在执行本技能时,如果出现以下想法,请停下来反思:
53
+
54
+ | 你可能的想法 | 请问自己 | 应该怎么做 |
55
+ |-------------|---------|-----------|
56
+ | "[具体合理化]" | "[对应反问]" | "[正确行动]" |
57
+
58
+ ### 本技能常见陷阱
59
+
60
+ 1. **[陷阱名称]**: [在本技能中的具体表现] → [应对策略]
61
+ 2. **[陷阱名称]**: [在本技能中的具体表现] → [应对策略]
62
+ ```
@@ -0,0 +1,70 @@
1
+ # Red Flags Template - 三层防御体系
2
+
3
+ > 本模板定义了三层Red Flags检测机制,用于在技能执行过程中
4
+ > 即时捕获和阻止危险行为。
5
+
6
+ ---
7
+
8
+ ## Red Flags 三层防御
9
+
10
+ ### Layer 1: 输入层 Red Flags (Input Guard)
11
+
12
+ 在接收输入时立即检查,拒绝非法输入。
13
+
14
+ | Flag ID | 检测条件 | 严重度 | 处理方式 |
15
+ |--------|---------|--------|---------|
16
+ | INPUT-001 | 输入文件不存在或为空 | 🔴 CRITICAL | 立即终止,报错提示 |
17
+ | INPUT-002 | 输入格式不符合预期(非MD/YAML/JSON) | 🔴 CRITICAL | 终止并提示支持的格式 |
18
+ | INPUT-003 | 路径包含危险字符(`..`, `$()`, `\``) | 🔴 CRITICAL | 拒绝执行,安全警告 |
19
+ | INPUT-004 | 文件大小超过安全阈值(>5MB) | 🟡 WARN | 警告确认后继续 |
20
+ | INPUT-005 | 编码检测失败(非UTF-8) | 🟡 WARN | 尝试转码,失败则报错 |
21
+
22
+ ### Layer 2: 执行层 Red Flags (Execution Guard)
23
+
24
+ 在执行过程中持续监控,拦截危险操作。
25
+
26
+ | Flag ID | 检测条件 | 严重度 | 处理方式 |
27
+ |--------|---------|--------|---------|
28
+ | EXEC-001 | 尝试删除非目标目录下的文件 | 🔴 CRITICAL | 阻止操作,安全警报 |
29
+ | EXEC-002 | 尝试修改 `.git/` 目录内容 | 🔴 CRITICAL | 阻止操作,Git完整性保护 |
30
+ | EXEC-003 | 生成的代码包含硬编码密钥/密码 | 🔴 CRITICAL | 阻止输出,安全审计提示 |
31
+ | EXEC-004 | 生成SQL包含字符串拼接的用户输入 | 🔴 CRITICAL | 阻止输出,SQL注入警告 |
32
+ | EXEC-005 | 循环依赖检测(A→B→A) | 🟡 WARN | 打断循环,报告依赖图 |
33
+ | EXEC-006 | 单文件超过500行 | 🟡 WARN | 建议拆分,记录技术债务 |
34
+ | EXEC-007 | 函数圈复杂度超过15 | 🟡 WARN | 建议重构,标记需审查 |
35
+ | EXEC-008 | 未处理的异常被catch后吞掉 | 🟡 WARN | 要求至少log记录 |
36
+
37
+ ### Layer 3: 输出层 Red Flags (Output Guard)
38
+
39
+ 在输出结果前进行最终校验。
40
+
41
+ | Flag ID | 检测条件 | 严重度 | 处理方式 |
42
+ |--------|---------|--------|---------|
43
+ | OUTPUT-001 | 输出内容为空 | 🔴 CRITICAL | 不写入文件,报错重试 |
44
+ | OUTPUT-002 | 输出路径超出项目根目录 | 🔴 CRITICAL | 阻止写入,路径越界保护 |
45
+ | OUTPUT-003 | Markdown格式解析失败(表头不匹配等) | 🟡 WARN | 修复格式后重新输出 |
46
+ | OUTPUT-004 | 产出的代码有语法错误(可通过lint检测) | 🟡 WARN | 自动修复或标记需人工审查 |
47
+ | OUTPUT-005 | 产物缺少必需的元数据(header/version) | 🔵 INFO | 补充默认元数据 |
48
+
49
+ ---
50
+
51
+ ## 如何在SKILL.md中使用
52
+
53
+ ```markdown
54
+ ## Red Flags
55
+
56
+ ### Layer 1: 输入检查
57
+ - [INPUT-XXX] [本技能特有的输入检查规则]
58
+
59
+ ### Layer 2: 执行检查
60
+ - [EXEC-XXX] [本技能特有的执行检查规则]
61
+
62
+ ### Layer 3: 输出检查
63
+ - [OUTPUT-XXX] [本技能特有的输出检查规则]
64
+
65
+ ### 触发Red Flag时的处理流程
66
+
67
+ 1. 🔴 CRITICAL → 立即停止,向用户报告问题,等待指示
68
+ 2. 🟡 WARN → 记录警告,继续执行,在报告中标注
69
+ 3. 🔵 INFO → 记录信息,正常继续
70
+ ```
@@ -0,0 +1,139 @@
1
+ # Bilingual SKILL Template / 双语技能模板
2
+
3
+ > 本模板定义了PDD-Skills中英双语SKILL.md的标准格式。
4
+ > 参考: docs/i18n-spec.md (Single File Bilingual策略)
5
+
6
+ ---
7
+
8
+ ## Frontmatter 格式 / 元数据格式
9
+
10
+ ```yaml
11
+ ---
12
+ name: <skill-name>
13
+ version: "1.0.0"
14
+ category: core|expert|entropy|pr|openspec
15
+ description:
16
+ zh: "<中文描述(20-200字),包含触发关键词如'当用户/调用/触发'>"
17
+ en: "<English description (20-200 chars), with trigger keywords like 'when/invoke/call'>"
18
+ license: MIT
19
+ compatibility: <依赖说明>
20
+ metadata:
21
+ author: "<email>"
22
+ version: "<semver>"
23
+ parent: <parent-skill> (可选)
24
+ triggers:
25
+ - "<中文触发词1>" # 至少3个中文
26
+ - "<english trigger 1>" # 至少3个英文
27
+ - "<中文触发词2>"
28
+ - "<english trigger 2>"
29
+ ---
30
+ ```
31
+
32
+ ## 文档结构 / Document Structure
33
+
34
+ ```markdown
35
+ ---
36
+ <frontmatter as above>
37
+ ---
38
+
39
+ # <English Name> / <中文名称>
40
+
41
+ ## Overview / 概述
42
+
43
+ ### English
44
+ [English overview paragraph, 3-5 sentences]
45
+
46
+ ### 中文
47
+ [中文概述段落, 3-5句]
48
+
49
+ ---
50
+
51
+ ## Workflow / 工作流程
52
+
53
+ ### Step 1: <English Name> / 步骤一:<中文名>
54
+
55
+ **EN:** [English instruction, 2-3 sentences]
56
+
57
+ **中文:** [中文指令, 2-3句]
58
+
59
+ ### Step 2: ...
60
+ [重复每个步骤]
61
+
62
+ ---
63
+
64
+ ## Iron Law / 核心铁律
65
+
66
+ ### 🇨🇳 中文版
67
+ [中文铁律内容]
68
+
69
+ ### 🇺🇸 English
70
+ [English Iron Law content]
71
+
72
+ ---
73
+
74
+ ## Rationalization Table / 合理化防御表
75
+
76
+ | # | 陷阱 (Trap) | 辩解 (Rationalization) | 反驳 (Rebuttal) |
77
+ |---|-------------|----------------------|-----------------|
78
+ | 1 | [CN] | [CN] | [CN] |
79
+ | | [EN] | [EN] | [EN] |
80
+
81
+ ---
82
+
83
+ ## Red Flags / 三层防御体系
84
+
85
+ ### Layer 1: Input Guards / 输入防护
86
+
87
+ **EN:** [English guard rules]
88
+
89
+ **中文:** [中文防护规则]
90
+
91
+ ### Layer 2: Execution Guards / 执行防护
92
+
93
+ ...
94
+
95
+ ### Layer 3: Output Guards / 输出防护
96
+
97
+ ...
98
+
99
+ **Trigger Handling / 触发处理流程:**
100
+ 🔴 CRITICAL → Stop & Report | 🟡 WARN → Log & Auto-fix | 🔵 INFO → Continue
101
+
102
+ ---
103
+
104
+ ## Output / 输出规范
105
+
106
+ ### English
107
+ [English output format specification]
108
+
109
+ ### 中文
110
+ [中文输出格式规范]
111
+ ```
112
+
113
+ ## 关键规则 / Key Rules
114
+
115
+ ### 1. 触发词规则 / Trigger Rules
116
+ - 每种语言至少 **3个触发词**
117
+ - 触发词包含技术术语: PRD, feature, spec, workflow, etc.
118
+ - 专有名词不翻译: PDD, BPMN, SQLFluff, RuoYi, etc.
119
+ - 中英文 triggers 在 `_meta.json` 中混合排列
120
+
121
+ ### 2. 分区标记 / Section Markers
122
+ - `## 🇨🇳` 标记中文内容区块
123
+ - `## 🇺🇸` 标记英文内容区块
124
+ - 未标记的公共区域使用双语并列格式
125
+
126
+ ### 3. 语言检测 / Language Detection
127
+ AI Agent 加载技能时:
128
+ 1. 检测最近3条用户消息的语言分布
129
+ 2. 以用户主要语言为主输出
130
+ 3. 技术术语、代码、配置名保持原文
131
+ 4. 内容不足时自动补充另一语言版本
132
+
133
+ ### 4. 代码注释 / Code Comments
134
+ ```javascript
135
+ // Extract features from PRD / 从PRD提取功能点
136
+ function extractFeatures(prdPath) {
137
+ // Parse PRD document / 解析PRD文档
138
+ }
139
+ ```