pdd-skills 3.1.13 → 3.2.2

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 (41) hide show
  1. package/LICENSE +21 -21
  2. package/package.json +1 -1
  3. package/scaffolds/python-fullstack/.github/workflows/ci.yml +1 -1
  4. package/scaffolds/python-fullstack/Dockerfile +1 -1
  5. package/scaffolds/python-fullstack/docker-compose.yml +1 -1
  6. package/scaffolds/python-fullstack/frontend/Dockerfile +1 -1
  7. package/scaffolds/python-fullstack/frontend/nginx.conf +1 -1
  8. package/scaffolds/python-fullstack/frontend/postcss.config.js +1 -1
  9. package/scaffolds/python-fullstack/frontend/src/api/client.ts +1 -1
  10. package/scaffolds/python-fullstack/frontend/src/composables/useResponsive.ts +1 -1
  11. package/scaffolds/python-fullstack/frontend/src/router/index.ts +1 -1
  12. package/scaffolds/python-fullstack/frontend/src/stores/user.ts +1 -1
  13. package/scaffolds/python-fullstack/frontend/src/styles/responsive.css +1 -1
  14. package/scaffolds/python-fullstack/frontend/src/styles/variables.css +1 -1
  15. package/scaffolds/python-fullstack/frontend/src/views/DashboardView.vue +1 -1
  16. package/scaffolds/python-fullstack/frontend/src/views/HomeView.vue +1 -1
  17. package/scaffolds/python-fullstack/frontend/src/views/LoginView.vue +1 -1
  18. package/scaffolds/python-fullstack/frontend/tailwind.config.js +1 -1
  19. package/skills/core/official-doc-writer/README.md +232 -232
  20. package/skills/core/official-doc-writer/fonts/FONTS_LIST.md +44 -44
  21. 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 -422
  22. package/skills/core/pdd-main/evals/evals.json +215 -215
  23. package/skills/entropy/expert-arch-enforcer/SKILL.md +292 -292
  24. package/skills/entropy/expert-auto-refactor/SKILL.md +327 -327
  25. package/skills/entropy/expert-code-quality/SKILL.md +468 -468
  26. package/skills/entropy/expert-entropy-auditor/SKILL.md +276 -276
  27. package/skills/expert/expert-activiti/SKILL.md +497 -497
  28. package/skills/expert/expert-mysql/SKILL.md +832 -832
  29. package/skills/expert/expert-ruoyi/SKILL.md +674 -674
  30. package/skills/expert/testcase-agent/SKILL.md +10 -0
  31. package/skills/expert/testcase-modeler/SKILL.md +45 -2
  32. package/skills/pr/pdd-multi-review/SKILL.md +534 -534
  33. package/skills/pr/pdd-pr-batch/SKILL.md +303 -303
  34. package/skills/pr/pdd-pr-create/SKILL.md +344 -344
  35. package/skills/pr/pdd-pr-merge/SKILL.md +286 -286
  36. package/skills/pr/pdd-pr-review/SKILL.md +217 -217
  37. package/skills/pr/pdd-task-manager/SKILL.md +636 -636
  38. package/skills/pr/pdd-template-engine/SKILL.md +386 -386
  39. package/tests/login_manager.py +5 -30
  40. package/tests/recorder.py +362 -294
  41. package/tests/testcase-ai.py +1184 -11
@@ -1,292 +1,292 @@
1
- ---
2
- name: expert-arch-enforcer
3
- description: 架构约束强制技能,监控代码是否违反预设的不变量和架构边界。当用户需要架构检查或依赖检查时自动触发。支持中文触发:架构检查、依赖检查、模块边界检查。
4
-
5
- 核心职责:确保架构连贯性,防止架构漂移。
6
- license: MIT
7
- compatibility: 需要架构约束配置
8
- metadata:
9
- author: "neuqik@hotmail.com"
10
- version: "1.0"
11
- ---
12
-
13
- # 架构约束强制 (expert-arch-enforcer)
14
-
15
- ## 核心理念
16
-
17
- > "在智能体优先的世界中,架构连贯性容易随时间漂移。约束是速度的保障,不是束缚。" —— Harness Engineering
18
-
19
- 架构约束强制技能负责监控代码是否违反了预设的不变量和架构边界,确保代码结构保持一致性。
20
-
21
- ## 架构约束模型
22
-
23
- ### 六层依赖模型
24
-
25
- ```
26
- Types → Config → Repo → Service → Runtime → UI
27
-
28
- 规则:只能向前依赖,不能反向依赖
29
- ```
30
-
31
- | 层级 | 职责 | 允许依赖 |
32
- |------|------|---------|
33
- | Types | 类型定义、数据模型 | 无 |
34
- | Config | 配置管理、常量定义 | Types |
35
- | Repo | 数据访问、外部服务调用 | Types, Config |
36
- | Service | 业务逻辑、领域服务 | Types, Config, Repo |
37
- | Runtime | 运行时、应用入口 | Types, Config, Repo, Service |
38
- | UI | 用户界面、展示层 | 所有层 |
39
-
40
- ### 边界约束
41
-
42
- **数据边界**:
43
- - 所有外部数据必须验证
44
- - API 入口参数必须有 Schema 验证
45
- - 不允许猜测数据结构
46
-
47
- **模块边界**:
48
- - 模块间通过接口通信
49
- - 禁止跨层直接访问
50
- - 共享状态必须显式声明
51
-
52
- ---
53
-
54
- ## 检测项
55
-
56
- ### 1. 模块依赖方向违规
57
-
58
- **检测方法**:
59
- - 解析 import/require 语句
60
- - 构建依赖图
61
- - 检查是否违反依赖方向
62
-
63
- **示例**:
64
- ```
65
- 文件:src/types/User.ts
66
- import: import { UserService } from '../service/UserService'
67
- → 检测结果:Types 层依赖 Service 层,违反依赖方向
68
- ```
69
-
70
- ### 2. 边界数据验证缺失
71
-
72
- **检测方法**:
73
- - 扫描 API 入口函数
74
- - 检查是否有 Schema 验证
75
- - 标记缺失验证的入口
76
-
77
- **示例**:
78
- ```
79
- API 入口:POST /api/users
80
- 参数验证:无
81
- → 检测结果:缺少参数验证 Schema
82
- ```
83
-
84
- ### 3. 文件大小超限
85
-
86
- **检测方法**:
87
- - 统计文件行数
88
- - 对比配置的最大行数
89
- - 标记超限文件
90
-
91
- **示例**:
92
- ```
93
- 文件:src/service/UserService.ts
94
- 行数:450 行
95
- 限制:300 行
96
- → 检测结果:文件过大,建议拆分
97
- ```
98
-
99
- ### 4. 命名规范违反
100
-
101
- **检测方法**:
102
- - 检查文件名、函数名、变量名
103
- - 对比命名规范
104
- - 标记违规命名
105
-
106
- **示例**:
107
- ```
108
- 函数名:get_data
109
- 规范:camelCase
110
- → 检测结果:命名不规范,应为 getData
111
- ```
112
-
113
- ---
114
-
115
- ## 执行流程
116
-
117
- ```
118
- ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
119
- │ 解析 │ ──→ │ 构建 │ ──→ │ 检测 │ ──→ │ 报告 │
120
- │ │ │ │ │ │ │ │
121
- │ • 代码文件 │ │ • 依赖图 │ │ • 依赖违规 │ │ • 问题清单 │
122
- │ • import │ │ • 调用关系 │ │ • 边界违规 │ │ • 修复建议 │
123
- │ • 函数签名 │ │ • 模块结构 │ │ • 大小违规 │ │ • PR 创建 │
124
- └─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘
125
- ```
126
-
127
- ---
128
-
129
- ## 工具集成
130
-
131
- ### 自定义 Linter
132
-
133
- ```javascript
134
- // custom-linter.js
135
- module.exports = {
136
- rules: {
137
- 'layer-dependency': {
138
- meta: {
139
- docs: { description: '强制六层依赖方向' }
140
- },
141
- create(context) {
142
- const layers = ['types', 'config', 'repo', 'service', 'runtime', 'ui'];
143
- return {
144
- ImportDeclaration(node) {
145
- const source = node.source.value;
146
- const currentLayer = getCurrentLayer(context.getFilename());
147
- const targetLayer = getLayerFromPath(source);
148
-
149
- if (layers.indexOf(targetLayer) < layers.indexOf(currentLayer)) {
150
- context.report({
151
- node,
152
- message: `违反依赖方向: ${currentLayer} 不能依赖 ${targetLayer}`
153
- });
154
- }
155
- }
156
- };
157
- }
158
- }
159
- }
160
- };
161
- ```
162
-
163
- ### ArchUnit 测试
164
-
165
- ```java
166
- // ArchitectureTest.java
167
- @AnalyzeClasses(packages = "com.example")
168
- public class ArchitectureTest {
169
-
170
- @ArchTest
171
- static final ArchRule layer_dependency_rule = layeredArchitecture()
172
- .layer("Types").definedBy("..types..")
173
- .layer("Config").definedBy("..config..")
174
- .layer("Repo").definedBy("..repo..")
175
- .layer("Service").definedBy("..service..")
176
- .layer("Runtime").definedBy("..runtime..")
177
- .layer("UI").definedBy("..ui..")
178
- .whereLayer("Types").mayNotBeAccessedByAnyLayer()
179
- .whereLayer("Config").mayOnlyBeAccessedByLayers("Repo", "Service", "Runtime", "UI")
180
- .whereLayer("Repo").mayOnlyBeAccessedByLayers("Service", "Runtime", "UI");
181
- }
182
- ```
183
-
184
- ---
185
-
186
- ## 输出格式
187
-
188
- ### 架构约束报告
189
-
190
- ```markdown
191
- # 架构约束报告 - YYYY-MM-DD
192
-
193
- ## 架构健康度:XX/100
194
-
195
- ## 依赖图
196
-
197
- [依赖关系可视化图]
198
-
199
- ## 发现问题
200
-
201
- ### Critical(必须修复)
202
- | 文件 | 问题 | 违规类型 |
203
- |------|------|---------|
204
- | src/types/User.ts | 依赖 Service 层 | 依赖方向违规 |
205
-
206
- ### Warning(建议修复)
207
- | 文件 | 问题 | 违规类型 |
208
- |------|------|---------|
209
- | src/api/users.ts | 缺少参数验证 | 边界验证缺失 |
210
-
211
- ### Info(可选修复)
212
- | 文件 | 问题 | 违规类型 |
213
- |------|------|---------|
214
- | src/service/UserService.ts | 文件 450 行 | 大小超限 |
215
-
216
- ## 修复建议
217
-
218
- ### Critical 修复
219
- 1. 移除 User.ts 中对 UserService 的依赖
220
- 2. 将共享逻辑提取到 Types 层
221
- ```
222
-
223
- ---
224
-
225
- ## 配置选项
226
-
227
- ```yaml
228
- # arch-enforcer-config.yaml
229
- arch_enforcer:
230
- # 层级定义
231
- layers:
232
- - name: types
233
- paths: ["src/types/", "src/models/"]
234
- - name: config
235
- paths: ["src/config/", "src/constants/"]
236
- - name: repo
237
- paths: ["src/repo/", "src/data/"]
238
- - name: service
239
- paths: ["src/service/", "src/domain/"]
240
- - name: runtime
241
- paths: ["src/runtime/", "src/app/"]
242
- - name: ui
243
- paths: ["src/ui/", "src/components/"]
244
-
245
- # 约束规则
246
- constraints:
247
- max_file_lines: 300
248
- max_function_lines: 50
249
- require_schema_validation: true
250
-
251
- # 执行配置
252
- execution:
253
- run_linter: true
254
- run_arch_test: true
255
- create_pr: true
256
- ```
257
-
258
- ---
259
-
260
- ## 使用示例
261
-
262
- ### 示例 1:全面架构检查
263
-
264
- ```
265
- 用户:检查架构约束
266
-
267
- AI:
268
- 1. 解析代码文件
269
- 2. 构建依赖图
270
- 3. 运行 Linter 和 ArchUnit
271
- 4. 生成报告
272
- ```
273
-
274
- ### 示例 2:依赖方向检查
275
-
276
- ```
277
- 用户:检查模块依赖方向
278
-
279
- AI:
280
- 1. 解析 import 语句
281
- 2. 构建依赖图
282
- 3. 检查是否违反六层模型
283
- 4. 生成违规报告
284
- ```
285
-
286
- ---
287
-
288
- ## 与其他技能的协作
289
-
290
- - **pdd-entropy-reduction**:作为子技能被协调调用
291
- - **expert-auto-refactor**:接收架构违规,执行重构
292
- - **pdd-code-reviewer**:集成架构检查到代码审查
1
+ ---
2
+ name: expert-arch-enforcer
3
+ description: 架构约束强制技能,监控代码是否违反预设的不变量和架构边界。当用户需要架构检查或依赖检查时自动触发。支持中文触发:架构检查、依赖检查、模块边界检查。
4
+
5
+ 核心职责:确保架构连贯性,防止架构漂移。
6
+ license: MIT
7
+ compatibility: 需要架构约束配置
8
+ metadata:
9
+ author: "neuqik@hotmail.com"
10
+ version: "1.0"
11
+ ---
12
+
13
+ # 架构约束强制 (expert-arch-enforcer)
14
+
15
+ ## 核心理念
16
+
17
+ > "在智能体优先的世界中,架构连贯性容易随时间漂移。约束是速度的保障,不是束缚。" —— Harness Engineering
18
+
19
+ 架构约束强制技能负责监控代码是否违反了预设的不变量和架构边界,确保代码结构保持一致性。
20
+
21
+ ## 架构约束模型
22
+
23
+ ### 六层依赖模型
24
+
25
+ ```
26
+ Types → Config → Repo → Service → Runtime → UI
27
+
28
+ 规则:只能向前依赖,不能反向依赖
29
+ ```
30
+
31
+ | 层级 | 职责 | 允许依赖 |
32
+ |------|------|---------|
33
+ | Types | 类型定义、数据模型 | 无 |
34
+ | Config | 配置管理、常量定义 | Types |
35
+ | Repo | 数据访问、外部服务调用 | Types, Config |
36
+ | Service | 业务逻辑、领域服务 | Types, Config, Repo |
37
+ | Runtime | 运行时、应用入口 | Types, Config, Repo, Service |
38
+ | UI | 用户界面、展示层 | 所有层 |
39
+
40
+ ### 边界约束
41
+
42
+ **数据边界**:
43
+ - 所有外部数据必须验证
44
+ - API 入口参数必须有 Schema 验证
45
+ - 不允许猜测数据结构
46
+
47
+ **模块边界**:
48
+ - 模块间通过接口通信
49
+ - 禁止跨层直接访问
50
+ - 共享状态必须显式声明
51
+
52
+ ---
53
+
54
+ ## 检测项
55
+
56
+ ### 1. 模块依赖方向违规
57
+
58
+ **检测方法**:
59
+ - 解析 import/require 语句
60
+ - 构建依赖图
61
+ - 检查是否违反依赖方向
62
+
63
+ **示例**:
64
+ ```
65
+ 文件:src/types/User.ts
66
+ import: import { UserService } from '../service/UserService'
67
+ → 检测结果:Types 层依赖 Service 层,违反依赖方向
68
+ ```
69
+
70
+ ### 2. 边界数据验证缺失
71
+
72
+ **检测方法**:
73
+ - 扫描 API 入口函数
74
+ - 检查是否有 Schema 验证
75
+ - 标记缺失验证的入口
76
+
77
+ **示例**:
78
+ ```
79
+ API 入口:POST /api/users
80
+ 参数验证:无
81
+ → 检测结果:缺少参数验证 Schema
82
+ ```
83
+
84
+ ### 3. 文件大小超限
85
+
86
+ **检测方法**:
87
+ - 统计文件行数
88
+ - 对比配置的最大行数
89
+ - 标记超限文件
90
+
91
+ **示例**:
92
+ ```
93
+ 文件:src/service/UserService.ts
94
+ 行数:450 行
95
+ 限制:300 行
96
+ → 检测结果:文件过大,建议拆分
97
+ ```
98
+
99
+ ### 4. 命名规范违反
100
+
101
+ **检测方法**:
102
+ - 检查文件名、函数名、变量名
103
+ - 对比命名规范
104
+ - 标记违规命名
105
+
106
+ **示例**:
107
+ ```
108
+ 函数名:get_data
109
+ 规范:camelCase
110
+ → 检测结果:命名不规范,应为 getData
111
+ ```
112
+
113
+ ---
114
+
115
+ ## 执行流程
116
+
117
+ ```
118
+ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
119
+ │ 解析 │ ──→ │ 构建 │ ──→ │ 检测 │ ──→ │ 报告 │
120
+ │ │ │ │ │ │ │ │
121
+ │ • 代码文件 │ │ • 依赖图 │ │ • 依赖违规 │ │ • 问题清单 │
122
+ │ • import │ │ • 调用关系 │ │ • 边界违规 │ │ • 修复建议 │
123
+ │ • 函数签名 │ │ • 模块结构 │ │ • 大小违规 │ │ • PR 创建 │
124
+ └─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘
125
+ ```
126
+
127
+ ---
128
+
129
+ ## 工具集成
130
+
131
+ ### 自定义 Linter
132
+
133
+ ```javascript
134
+ // custom-linter.js
135
+ module.exports = {
136
+ rules: {
137
+ 'layer-dependency': {
138
+ meta: {
139
+ docs: { description: '强制六层依赖方向' }
140
+ },
141
+ create(context) {
142
+ const layers = ['types', 'config', 'repo', 'service', 'runtime', 'ui'];
143
+ return {
144
+ ImportDeclaration(node) {
145
+ const source = node.source.value;
146
+ const currentLayer = getCurrentLayer(context.getFilename());
147
+ const targetLayer = getLayerFromPath(source);
148
+
149
+ if (layers.indexOf(targetLayer) < layers.indexOf(currentLayer)) {
150
+ context.report({
151
+ node,
152
+ message: `违反依赖方向: ${currentLayer} 不能依赖 ${targetLayer}`
153
+ });
154
+ }
155
+ }
156
+ };
157
+ }
158
+ }
159
+ }
160
+ };
161
+ ```
162
+
163
+ ### ArchUnit 测试
164
+
165
+ ```java
166
+ // ArchitectureTest.java
167
+ @AnalyzeClasses(packages = "com.example")
168
+ public class ArchitectureTest {
169
+
170
+ @ArchTest
171
+ static final ArchRule layer_dependency_rule = layeredArchitecture()
172
+ .layer("Types").definedBy("..types..")
173
+ .layer("Config").definedBy("..config..")
174
+ .layer("Repo").definedBy("..repo..")
175
+ .layer("Service").definedBy("..service..")
176
+ .layer("Runtime").definedBy("..runtime..")
177
+ .layer("UI").definedBy("..ui..")
178
+ .whereLayer("Types").mayNotBeAccessedByAnyLayer()
179
+ .whereLayer("Config").mayOnlyBeAccessedByLayers("Repo", "Service", "Runtime", "UI")
180
+ .whereLayer("Repo").mayOnlyBeAccessedByLayers("Service", "Runtime", "UI");
181
+ }
182
+ ```
183
+
184
+ ---
185
+
186
+ ## 输出格式
187
+
188
+ ### 架构约束报告
189
+
190
+ ```markdown
191
+ # 架构约束报告 - YYYY-MM-DD
192
+
193
+ ## 架构健康度:XX/100
194
+
195
+ ## 依赖图
196
+
197
+ [依赖关系可视化图]
198
+
199
+ ## 发现问题
200
+
201
+ ### Critical(必须修复)
202
+ | 文件 | 问题 | 违规类型 |
203
+ |------|------|---------|
204
+ | src/types/User.ts | 依赖 Service 层 | 依赖方向违规 |
205
+
206
+ ### Warning(建议修复)
207
+ | 文件 | 问题 | 违规类型 |
208
+ |------|------|---------|
209
+ | src/api/users.ts | 缺少参数验证 | 边界验证缺失 |
210
+
211
+ ### Info(可选修复)
212
+ | 文件 | 问题 | 违规类型 |
213
+ |------|------|---------|
214
+ | src/service/UserService.ts | 文件 450 行 | 大小超限 |
215
+
216
+ ## 修复建议
217
+
218
+ ### Critical 修复
219
+ 1. 移除 User.ts 中对 UserService 的依赖
220
+ 2. 将共享逻辑提取到 Types 层
221
+ ```
222
+
223
+ ---
224
+
225
+ ## 配置选项
226
+
227
+ ```yaml
228
+ # arch-enforcer-config.yaml
229
+ arch_enforcer:
230
+ # 层级定义
231
+ layers:
232
+ - name: types
233
+ paths: ["src/types/", "src/models/"]
234
+ - name: config
235
+ paths: ["src/config/", "src/constants/"]
236
+ - name: repo
237
+ paths: ["src/repo/", "src/data/"]
238
+ - name: service
239
+ paths: ["src/service/", "src/domain/"]
240
+ - name: runtime
241
+ paths: ["src/runtime/", "src/app/"]
242
+ - name: ui
243
+ paths: ["src/ui/", "src/components/"]
244
+
245
+ # 约束规则
246
+ constraints:
247
+ max_file_lines: 300
248
+ max_function_lines: 50
249
+ require_schema_validation: true
250
+
251
+ # 执行配置
252
+ execution:
253
+ run_linter: true
254
+ run_arch_test: true
255
+ create_pr: true
256
+ ```
257
+
258
+ ---
259
+
260
+ ## 使用示例
261
+
262
+ ### 示例 1:全面架构检查
263
+
264
+ ```
265
+ 用户:检查架构约束
266
+
267
+ AI:
268
+ 1. 解析代码文件
269
+ 2. 构建依赖图
270
+ 3. 运行 Linter 和 ArchUnit
271
+ 4. 生成报告
272
+ ```
273
+
274
+ ### 示例 2:依赖方向检查
275
+
276
+ ```
277
+ 用户:检查模块依赖方向
278
+
279
+ AI:
280
+ 1. 解析 import 语句
281
+ 2. 构建依赖图
282
+ 3. 检查是否违反六层模型
283
+ 4. 生成违规报告
284
+ ```
285
+
286
+ ---
287
+
288
+ ## 与其他技能的协作
289
+
290
+ - **pdd-entropy-reduction**:作为子技能被协调调用
291
+ - **expert-auto-refactor**:接收架构违规,执行重构
292
+ - **pdd-code-reviewer**:集成架构检查到代码审查