pdd-skills 3.1.13 → 3.2.3

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 (51) 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/SKILL.md +4 -7
  21. package/skills/core/official-doc-writer/fonts/FONTS_LIST.md +44 -44
  22. 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
  23. package/skills/core/pdd-ba/SKILL.md +1 -11
  24. package/skills/core/pdd-entropy-reduction/SKILL.md +1 -9
  25. package/skills/core/pdd-extract-features/SKILL.md +1 -10
  26. package/skills/core/pdd-generate-spec/SKILL.md +1 -10
  27. package/skills/core/pdd-main/evals/evals.json +215 -215
  28. package/skills/core/pdd-verify-feature/SKILL.md +1 -10
  29. package/skills/core/pdd-vm/SKILL.md +1 -11
  30. package/skills/entropy/expert-arch-enforcer/SKILL.md +292 -292
  31. package/skills/entropy/expert-auto-refactor/SKILL.md +316 -327
  32. package/skills/entropy/expert-code-quality/SKILL.md +468 -468
  33. package/skills/entropy/expert-entropy-auditor/SKILL.md +276 -276
  34. package/skills/expert/expert-activiti/SKILL.md +488 -497
  35. package/skills/expert/expert-bug-fixer/SKILL.md +1 -26
  36. package/skills/expert/expert-mysql/SKILL.md +832 -832
  37. package/skills/expert/expert-ruoyi/SKILL.md +664 -674
  38. package/skills/expert/expert-springcloud/SKILL.md +1 -10
  39. package/skills/expert/expert-vue3/SKILL.md +1 -10
  40. package/skills/expert/testcase-agent/SKILL.md +5 -0
  41. package/skills/expert/testcase-modeler/SKILL.md +40 -2
  42. package/skills/pr/pdd-multi-review/SKILL.md +534 -534
  43. package/skills/pr/pdd-pr-batch/SKILL.md +303 -303
  44. package/skills/pr/pdd-pr-create/SKILL.md +344 -344
  45. package/skills/pr/pdd-pr-merge/SKILL.md +286 -286
  46. package/skills/pr/pdd-pr-review/SKILL.md +217 -217
  47. package/skills/pr/pdd-task-manager/SKILL.md +636 -636
  48. package/skills/pr/pdd-template-engine/SKILL.md +386 -386
  49. package/tests/login_manager.py +5 -30
  50. package/tests/recorder.py +362 -294
  51. package/tests/testcase-ai.py +1184 -11
@@ -1,327 +1,316 @@
1
- ---
2
- name: expert-auto-refactor
3
- description: Automated refactoring expert transforming quality improvements into concrete code operations. Call when eliminating duplication or simplifying complexity systematically. 支持中文触发:重构代码、消除重复、简化代码。
4
-
5
- Core responsibility: Initiate targeted refactoring PRs regularly in a "small debt repayment" manner to prevent technical debt accumulation.
6
-
7
- Trigger scenarios:
8
- - User requests "refactor code", "eliminate duplicates", "simplify code"
9
- - Called by pdd-entropy-reduction coordinator
10
- - Refactoring suggestions passed from expert-entropy-auditor
11
-
12
- 支持中文触发:自动重构、代码重构、消除重复、简化代码、重构专家、PDD重构。
13
- author: neuqik@hotmail.com
14
- license: MIT
15
- ---
16
-
17
- # Automated Refactoring Expert (expert-auto-refactor)
18
-
19
- ## Core Philosophy
20
-
21
- > "Initiate targeted refactoring PRs regularly in a 'small debt repayment' manner to prevent technical debt from accumulating into unmanageable 'painful interest'." —— Harness Engineering
22
-
23
- The automated refactoring expert is an upgraded version of `expert-code-quality`, not just recording issues but actively executing refactoring operations.
24
-
25
- ## Refactoring Types
26
-
27
- ### 1. Extract Common Methods
28
-
29
- **Scenario**: Similar code logic in multiple places
30
-
31
- **Refactoring Method**:
32
- 1. Identify similar code
33
- 2. Extract common methods
34
- 3. Replace original calls
35
-
36
- **Example**:
37
-
38
- Before refactoring:
39
- ```javascript
40
- // File A
41
- function formatDate(date) {
42
- return `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate()}`;
43
- }
44
-
45
- // File B
46
- function formatDateString(d) {
47
- return `${d.getFullYear()}-${d.getMonth() + 1}-${d.getDate()}`;
48
- }
49
- ```
50
-
51
- After refactoring:
52
- ```javascript
53
- // utils/dateUtils.ts
54
- export function formatDate(date: Date): string {
55
- return `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate()}`;
56
- }
57
-
58
- // File A
59
- import { formatDate } from '../utils/dateUtils';
60
-
61
- // File B
62
- import { formatDate } from '../utils/dateUtils';
63
- ```
64
-
65
- ### 2. Eliminate Duplicate Code
66
-
67
- **Scenario**: Identical or highly similar code blocks
68
-
69
- **Refactoring Method**:
70
- 1. Detect duplicate code
71
- 2. Extract to shared module
72
- 3. Update references
73
-
74
- **Example**:
75
-
76
- Before refactoring:
77
- ```javascript
78
- // Repeated validation logic in multiple places
79
- if (!user.email || !user.email.includes('@')) {
80
- throw new Error('Invalid email');
81
- }
82
- ```
83
-
84
- After refactoring:
85
- ```javascript
86
- // utils/validators.ts
87
- export function validateEmail(email: string): boolean {
88
- return email && email.includes('@');
89
- }
90
-
91
- // Usage
92
- if (!validateEmail(user.email)) {
93
- throw new Error('Invalid email');
94
- }
95
- ```
96
-
97
- ### 3. Simplify Complex Logic
98
-
99
- **Scenario**: Functions that are too long, deeply nested, or have complex logic
100
-
101
- **Refactoring Method**:
102
- 1. Split long functions
103
- 2. Extract sub-functions
104
- 3. Simplify conditional logic
105
-
106
- **Example**:
107
-
108
- Before refactoring:
109
- ```javascript
110
- function processOrder(order) {
111
- if (order.status === 'pending') {
112
- if (order.items.length > 0) {
113
- if (order.payment) {
114
- // Processing logic...
115
- if (order.shipping) {
116
- // More processing...
117
- }
118
- }
119
- }
120
- }
121
- }
122
- ```
123
-
124
- After refactoring:
125
- ```javascript
126
- function processOrder(order) {
127
- if (!canProcessOrder(order)) return;
128
-
129
- processPayment(order);
130
- processShipping(order);
131
- updateOrderStatus(order);
132
- }
133
-
134
- function canProcessOrder(order) {
135
- return order.status === 'pending'
136
- && order.items.length > 0
137
- && order.payment;
138
- }
139
- ```
140
-
141
- ### 4. Optimize Naming
142
-
143
- **Scenario**: Non-standard naming, unclear meaning
144
-
145
- **Refactoring Method**:
146
- 1. Analyze naming context
147
- 2. Generate better naming
148
- 3. Batch replacement
149
-
150
- **Example**:
151
-
152
- Before refactoring:
153
- ```javascript
154
- function calc(a, b) {
155
- return a * b * 0.1;
156
- }
157
- ```
158
-
159
- After refactoring:
160
- ```javascript
161
- function calculateTax(basePrice: number, quantity: number): number {
162
- const TAX_RATE = 0.1;
163
- return basePrice * quantity * TAX_RATE;
164
- }
165
- ```
166
-
167
- ---
168
-
169
- ## Refactoring Process
170
-
171
- ```
172
- ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
173
- │ Analyze │ ──→ │ Plan │ ──→ │ Execute │ ──→ │ Verify │
174
- │ │ │ │ │ │ │ │
175
- Code │ │ • Refactor │ │ • Code │ │ • Test │
176
- │ structure │ │ strategy │ │ changes │ │ execution │
177
- • │ │ Impact │ │ • Reference │ │ • Function │
178
- │ Dependencies│ │ scope │ │ updates │ │ validation│
179
- Test │ │ • Risk │ │ • Document │ │ • PR │
180
- │ coverage │ │ assessment│ │ sync │ │ creation │
181
- └─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘
182
- ```
183
-
184
- ---
185
-
186
- ## Refactoring Strategy
187
-
188
- ### Small Debt Repayment Principle
189
-
190
- Each refactoring should:
191
- 1. **Small steps**: Only change a small part each time
192
- 2. **Maintain tests**: Ensure tests always pass
193
- 3. **Frequent commits**: Commit after each small step
194
- 4. **Rollback capable**: Keep each commit independently rollbackable
195
-
196
- ### Risk Assessment
197
-
198
- | Risk Level | Condition | Strategy |
199
- |---------|------|------|
200
- | Low | Complete test coverage | Auto execute |
201
- | Medium | Partial test coverage | Create PR |
202
- | High | No test coverage | Add tests first then refactor |
203
-
204
- ---
205
-
206
- ## Output Format
207
-
208
- ### Refactoring Report
209
-
210
- ```markdown
211
- # Refactoring Report - YYYY-MM-DD
212
-
213
- ## Refactoring Scope
214
- - Target files: X
215
- - Affected files: X
216
- - Test coverage: X%
217
-
218
- ## Refactoring Operations
219
-
220
- ### Extract Common Methods
221
- | Original File | New File | Method Name | Status |
222
- |-------|-------|-------|------|
223
- | utils/formatDate.js | utils/dateUtils.ts | formatDate | ✅ Completed |
224
-
225
- ### Eliminate Duplicate Code
226
- | File A | File B | Duplicate Lines | Status |
227
- |-------|-------|---------|------|
228
- | service/UserService.ts | service/OrderService.ts | 25 lines | ✅ Completed |
229
-
230
- ### Simplify Complex Logic
231
- | File | Function Name | Original Lines | New Lines | Status |
232
- |------|-------|-------|-------|------|
233
- | service/OrderService.ts | processOrder | 80 | 35 | ✅ Completed |
234
-
235
- ## Verification Results
236
- - Unit tests: ✅ All passed
237
- - Integration tests: ✅ All passed
238
- - Functional verification: ✅ No anomalies
239
-
240
- ## PR Information
241
- - PR number: #XXX
242
- - Branch: refactor/entropy-reduction-YYYYMMDD
243
- - Status: Pending review
244
- ```
245
-
246
- ---
247
-
248
- ## Configuration Options
249
-
250
- ```yaml
251
- # auto-refactor-config.yaml
252
- auto_refactor:
253
- # Refactoring scope
254
- scope:
255
- code_paths: ["src/"]
256
- exclude: ["node_modules/", "dist/", "build/"]
257
-
258
- # Refactoring rules
259
- rules:
260
- max_file_lines: 300
261
- max_function_lines: 50
262
- min_similarity: 0.8
263
-
264
- # Execution strategy
265
- execution:
266
- auto_fix_low_risk: true # Auto fix low risk
267
- create_pr: true # Create PR
268
- max_changes_per_run: 10 # Max changes per run
269
-
270
- # Testing requirements
271
- testing:
272
- require_tests: true # Require tests
273
- min_coverage: 80 # Minimum coverage
274
- ```
275
-
276
- ---
277
-
278
- ## Usage Examples
279
-
280
- ### Example 1: Extract Duplicate Code
281
-
282
- ```
283
- User: Eliminate duplicates in code
284
-
285
- AI:
286
- 1. Detect duplicate code
287
- 2. Analyze similarity
288
- 3. Extract to shared module
289
- 4. Update all references
290
- 5. Create PR
291
- ```
292
-
293
- ### Example 2: Simplify Complex Function
294
-
295
- ```
296
- User: Simplify processOrder function
297
-
298
- AI:
299
- 1. Analyze function structure
300
- 2. Identify extractable sub-functions
301
- 3. Execute split refactoring
302
- 4. Run test verification
303
- 5. Create PR
304
- ```
305
-
306
- ### Example 3: Optimize Naming
307
-
308
- ```
309
- User: Optimize code naming
310
-
311
- AI:
312
- 1. Scan non-standard naming
313
- 2. Analyze context
314
- 3. Generate better naming
315
- 4. Batch replacement
316
- 5. Create PR
317
- ```
318
-
319
- ---
320
-
321
- ## Collaboration with Other Skills
322
-
323
- - **pdd-entropy-reduction**: Called as a sub-skill by the coordinator
324
- - **expert-entropy-auditor**: Receive refactoring suggestions
325
- - **expert-arch-enforcer**: Receive architecture violation fixes
326
- - **pdd-code-reviewer**: Trigger code review after refactoring
327
- - **pdd-doc-change**: Synchronously update related documentation
1
+ ---
2
+ name: expert-auto-refactor
3
+ description: "Automated refactoring expert transforming quality improvements into concrete code operations. Call when eliminating duplication or simplifying complexity systematically. 支持中文触发:重构代码、消除重复、简化代码、自动重构。"
4
+ ---
5
+
6
+ # Automated Refactoring Expert (expert-auto-refactor)
7
+
8
+ ## Core Philosophy
9
+
10
+ > "Initiate targeted refactoring PRs regularly in a 'small debt repayment' manner to prevent technical debt from accumulating into unmanageable 'painful interest'." —— Harness Engineering
11
+
12
+ The automated refactoring expert is an upgraded version of `expert-code-quality`, not just recording issues but actively executing refactoring operations.
13
+
14
+ ## Refactoring Types
15
+
16
+ ### 1. Extract Common Methods
17
+
18
+ **Scenario**: Similar code logic in multiple places
19
+
20
+ **Refactoring Method**:
21
+ 1. Identify similar code
22
+ 2. Extract common methods
23
+ 3. Replace original calls
24
+
25
+ **Example**:
26
+
27
+ Before refactoring:
28
+ ```javascript
29
+ // File A
30
+ function formatDate(date) {
31
+ return `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate()}`;
32
+ }
33
+
34
+ // File B
35
+ function formatDateString(d) {
36
+ return `${d.getFullYear()}-${d.getMonth() + 1}-${d.getDate()}`;
37
+ }
38
+ ```
39
+
40
+ After refactoring:
41
+ ```javascript
42
+ // utils/dateUtils.ts
43
+ export function formatDate(date: Date): string {
44
+ return `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate()}`;
45
+ }
46
+
47
+ // File A
48
+ import { formatDate } from '../utils/dateUtils';
49
+
50
+ // File B
51
+ import { formatDate } from '../utils/dateUtils';
52
+ ```
53
+
54
+ ### 2. Eliminate Duplicate Code
55
+
56
+ **Scenario**: Identical or highly similar code blocks
57
+
58
+ **Refactoring Method**:
59
+ 1. Detect duplicate code
60
+ 2. Extract to shared module
61
+ 3. Update references
62
+
63
+ **Example**:
64
+
65
+ Before refactoring:
66
+ ```javascript
67
+ // Repeated validation logic in multiple places
68
+ if (!user.email || !user.email.includes('@')) {
69
+ throw new Error('Invalid email');
70
+ }
71
+ ```
72
+
73
+ After refactoring:
74
+ ```javascript
75
+ // utils/validators.ts
76
+ export function validateEmail(email: string): boolean {
77
+ return email && email.includes('@');
78
+ }
79
+
80
+ // Usage
81
+ if (!validateEmail(user.email)) {
82
+ throw new Error('Invalid email');
83
+ }
84
+ ```
85
+
86
+ ### 3. Simplify Complex Logic
87
+
88
+ **Scenario**: Functions that are too long, deeply nested, or have complex logic
89
+
90
+ **Refactoring Method**:
91
+ 1. Split long functions
92
+ 2. Extract sub-functions
93
+ 3. Simplify conditional logic
94
+
95
+ **Example**:
96
+
97
+ Before refactoring:
98
+ ```javascript
99
+ function processOrder(order) {
100
+ if (order.status === 'pending') {
101
+ if (order.items.length > 0) {
102
+ if (order.payment) {
103
+ // Processing logic...
104
+ if (order.shipping) {
105
+ // More processing...
106
+ }
107
+ }
108
+ }
109
+ }
110
+ }
111
+ ```
112
+
113
+ After refactoring:
114
+ ```javascript
115
+ function processOrder(order) {
116
+ if (!canProcessOrder(order)) return;
117
+
118
+ processPayment(order);
119
+ processShipping(order);
120
+ updateOrderStatus(order);
121
+ }
122
+
123
+ function canProcessOrder(order) {
124
+ return order.status === 'pending'
125
+ && order.items.length > 0
126
+ && order.payment;
127
+ }
128
+ ```
129
+
130
+ ### 4. Optimize Naming
131
+
132
+ **Scenario**: Non-standard naming, unclear meaning
133
+
134
+ **Refactoring Method**:
135
+ 1. Analyze naming context
136
+ 2. Generate better naming
137
+ 3. Batch replacement
138
+
139
+ **Example**:
140
+
141
+ Before refactoring:
142
+ ```javascript
143
+ function calc(a, b) {
144
+ return a * b * 0.1;
145
+ }
146
+ ```
147
+
148
+ After refactoring:
149
+ ```javascript
150
+ function calculateTax(basePrice: number, quantity: number): number {
151
+ const TAX_RATE = 0.1;
152
+ return basePrice * quantity * TAX_RATE;
153
+ }
154
+ ```
155
+
156
+ ---
157
+
158
+ ## Refactoring Process
159
+
160
+ ```
161
+ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
162
+ │ Analyze │ ──→ │ Plan │ ──→ │ Execute │ ──→ │ Verify │
163
+ │ │ │ │ │ │ │ │
164
+ │ • Code │ │ • Refactor │ │ • Code │ │ • Test │
165
+ │ structure │ │ strategy │ │ changes │ │ execution │
166
+ │ • │ │ • Impact │ │ • Reference │ │ • Function │
167
+ │ Dependencies│ │ scope │ │ updates │ │ validation│
168
+ │ • Test │ │ • Risk │ │ • Document │ │ • PR │
169
+ │ coverage │ │ assessment│ │ sync │ │ creation │
170
+ └─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘
171
+ ```
172
+
173
+ ---
174
+
175
+ ## Refactoring Strategy
176
+
177
+ ### Small Debt Repayment Principle
178
+
179
+ Each refactoring should:
180
+ 1. **Small steps**: Only change a small part each time
181
+ 2. **Maintain tests**: Ensure tests always pass
182
+ 3. **Frequent commits**: Commit after each small step
183
+ 4. **Rollback capable**: Keep each commit independently rollbackable
184
+
185
+ ### Risk Assessment
186
+
187
+ | Risk Level | Condition | Strategy |
188
+ |---------|------|------|
189
+ | Low | Complete test coverage | Auto execute |
190
+ | Medium | Partial test coverage | Create PR |
191
+ | High | No test coverage | Add tests first then refactor |
192
+
193
+ ---
194
+
195
+ ## Output Format
196
+
197
+ ### Refactoring Report
198
+
199
+ ```markdown
200
+ # Refactoring Report - YYYY-MM-DD
201
+
202
+ ## Refactoring Scope
203
+ - Target files: X
204
+ - Affected files: X
205
+ - Test coverage: X%
206
+
207
+ ## Refactoring Operations
208
+
209
+ ### Extract Common Methods
210
+ | Original File | New File | Method Name | Status |
211
+ |-------|-------|-------|------|
212
+ | utils/formatDate.js | utils/dateUtils.ts | formatDate | ✅ Completed |
213
+
214
+ ### Eliminate Duplicate Code
215
+ | File A | File B | Duplicate Lines | Status |
216
+ |-------|-------|---------|------|
217
+ | service/UserService.ts | service/OrderService.ts | 25 lines | ✅ Completed |
218
+
219
+ ### Simplify Complex Logic
220
+ | File | Function Name | Original Lines | New Lines | Status |
221
+ |------|-------|-------|-------|------|
222
+ | service/OrderService.ts | processOrder | 80 | 35 | ✅ Completed |
223
+
224
+ ## Verification Results
225
+ - Unit tests: ✅ All passed
226
+ - Integration tests: All passed
227
+ - Functional verification: ✅ No anomalies
228
+
229
+ ## PR Information
230
+ - PR number: #XXX
231
+ - Branch: refactor/entropy-reduction-YYYYMMDD
232
+ - Status: Pending review
233
+ ```
234
+
235
+ ---
236
+
237
+ ## Configuration Options
238
+
239
+ ```yaml
240
+ # auto-refactor-config.yaml
241
+ auto_refactor:
242
+ # Refactoring scope
243
+ scope:
244
+ code_paths: ["src/"]
245
+ exclude: ["node_modules/", "dist/", "build/"]
246
+
247
+ # Refactoring rules
248
+ rules:
249
+ max_file_lines: 300
250
+ max_function_lines: 50
251
+ min_similarity: 0.8
252
+
253
+ # Execution strategy
254
+ execution:
255
+ auto_fix_low_risk: true # Auto fix low risk
256
+ create_pr: true # Create PR
257
+ max_changes_per_run: 10 # Max changes per run
258
+
259
+ # Testing requirements
260
+ testing:
261
+ require_tests: true # Require tests
262
+ min_coverage: 80 # Minimum coverage
263
+ ```
264
+
265
+ ---
266
+
267
+ ## Usage Examples
268
+
269
+ ### Example 1: Extract Duplicate Code
270
+
271
+ ```
272
+ User: Eliminate duplicates in code
273
+
274
+ AI:
275
+ 1. Detect duplicate code
276
+ 2. Analyze similarity
277
+ 3. Extract to shared module
278
+ 4. Update all references
279
+ 5. Create PR
280
+ ```
281
+
282
+ ### Example 2: Simplify Complex Function
283
+
284
+ ```
285
+ User: Simplify processOrder function
286
+
287
+ AI:
288
+ 1. Analyze function structure
289
+ 2. Identify extractable sub-functions
290
+ 3. Execute split refactoring
291
+ 4. Run test verification
292
+ 5. Create PR
293
+ ```
294
+
295
+ ### Example 3: Optimize Naming
296
+
297
+ ```
298
+ User: Optimize code naming
299
+
300
+ AI:
301
+ 1. Scan non-standard naming
302
+ 2. Analyze context
303
+ 3. Generate better naming
304
+ 4. Batch replacement
305
+ 5. Create PR
306
+ ```
307
+
308
+ ---
309
+
310
+ ## Collaboration with Other Skills
311
+
312
+ - **pdd-entropy-reduction**: Called as a sub-skill by the coordinator
313
+ - **expert-entropy-auditor**: Receive refactoring suggestions
314
+ - **expert-arch-enforcer**: Receive architecture violation fixes
315
+ - **pdd-code-reviewer**: Trigger code review after refactoring
316
+ - **pdd-doc-change**: Synchronously update related documentation