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.
- package/README.md +1478 -0
- package/bin/pdd.js +354 -0
- package/config/bpmn-rules.yaml +166 -0
- package/config/checkstyle.xml +105 -0
- package/config/eslint.config.js +48 -0
- package/config/pmd.xml +91 -0
- package/config/prd-rules.yaml +113 -0
- package/config/ruff.toml +45 -0
- package/config/sqlfluff.cfg +82 -0
- package/hooks/hook-executor.js +332 -0
- package/index.js +43 -0
- package/lib/api-routes.js +750 -0
- package/lib/api-server.js +408 -0
- package/lib/cache/cache-config.js +209 -0
- package/lib/cache/system-cache.js +852 -0
- package/lib/config-manager.js +373 -0
- package/lib/generate.js +528 -0
- package/lib/grpc/grpc-routes.js +1134 -0
- package/lib/grpc/grpc-server.js +912 -0
- package/lib/grpc/proto-definitions.js +1033 -0
- package/lib/init.js +172 -0
- package/lib/iteration/auto-fixer.js +1025 -0
- package/lib/iteration/auto-reviewer.js +923 -0
- package/lib/iteration/controller.js +577 -0
- package/lib/list.js +130 -0
- package/lib/mcp-server.js +548 -0
- package/lib/openclaw/api-integration.js +535 -0
- package/lib/openclaw/cli-integration.js +567 -0
- package/lib/openclaw/data-sync.js +845 -0
- package/lib/openclaw/openclaw-adapter.js +783 -0
- package/lib/plugin/example-plugins/code-stats/index.js +332 -0
- package/lib/plugin/example-plugins/code-stats/plugin.json +1 -0
- package/lib/plugin/example-plugins/custom-linter/index.js +472 -0
- package/lib/plugin/example-plugins/custom-linter/plugin.json +1 -0
- package/lib/plugin/example-plugins/hello-world/index.js +86 -0
- package/lib/plugin/example-plugins/hello-world/plugin.json +1 -0
- package/lib/plugin/plugin-manager.js +655 -0
- package/lib/plugin/plugin-sdk.js +565 -0
- package/lib/plugin/sandbox.js +627 -0
- package/lib/quality/rules/maintainability.js +418 -0
- package/lib/quality/rules/performance.js +498 -0
- package/lib/quality/rules/readability.js +441 -0
- package/lib/quality/rules/robustness.js +504 -0
- package/lib/quality/rules/security.js +444 -0
- package/lib/quality/scorer.js +576 -0
- package/lib/report.js +669 -0
- package/lib/sdk-base.js +301 -0
- package/lib/sdk-js.js +446 -0
- package/lib/sdk-python/README.md +546 -0
- package/lib/sdk-python/examples/basic_usage.py +450 -0
- package/lib/sdk-python/pdd_sdk/__init__.py +180 -0
- package/lib/sdk-python/pdd_sdk/client.py +1170 -0
- package/lib/sdk-python/pdd_sdk/events.py +423 -0
- package/lib/sdk-python/pdd_sdk/exceptions.py +158 -0
- package/lib/sdk-python/pdd_sdk/models.py +518 -0
- package/lib/sdk-python/pdd_sdk/utils.py +759 -0
- package/lib/token/budget-alert.js +367 -0
- package/lib/token/budget-manager.js +485 -0
- package/lib/update.js +54 -0
- package/lib/utils/logger.js +88 -0
- package/lib/verify.js +741 -0
- package/lib/version.js +52 -0
- package/lib/vm/README.md +102 -0
- package/lib/vm/dashboard/api-routes.js +669 -0
- package/lib/vm/dashboard/server.js +391 -0
- package/lib/vm/dashboard/sse.js +358 -0
- package/lib/vm/dashboard/static/css/dashboard.css +1378 -0
- package/lib/vm/dashboard/static/index.html +118 -0
- package/lib/vm/dashboard/static/js/app.js +949 -0
- package/lib/vm/dashboard/static/js/charts.js +913 -0
- package/lib/vm/dashboard/static/js/kanban-view.js +1053 -0
- package/lib/vm/dashboard/static/js/pipeline-view.js +463 -0
- package/lib/vm/dashboard/static/js/quality-view.js +598 -0
- package/lib/vm/dashboard/static/js/system-view.js +1021 -0
- package/lib/vm/data-provider.js +1191 -0
- package/lib/vm/event-bus.js +402 -0
- package/lib/vm/hooks/extract-hook.js +307 -0
- package/lib/vm/hooks/generate-hook.js +374 -0
- package/lib/vm/hooks/hook-interface.js +458 -0
- package/lib/vm/hooks/report-hook.js +331 -0
- package/lib/vm/hooks/verify-hook.js +454 -0
- package/lib/vm/models.js +1003 -0
- package/lib/vm/reconciler.js +855 -0
- package/lib/vm/scanner.js +988 -0
- package/lib/vm/state-schema.js +955 -0
- package/lib/vm/state-store.js +733 -0
- package/lib/vm/tui/components/card.js +339 -0
- package/lib/vm/tui/components/progress-bar.js +368 -0
- package/lib/vm/tui/components/sparkline.js +327 -0
- package/lib/vm/tui/components/status-light.js +294 -0
- package/lib/vm/tui/components/table.js +370 -0
- package/lib/vm/tui/input.js +335 -0
- package/lib/vm/tui/renderer.js +548 -0
- package/lib/vm/tui/screens/kanban-screen.js +397 -0
- package/lib/vm/tui/screens/overview-screen.js +357 -0
- package/lib/vm/tui/screens/quality-screen.js +336 -0
- package/lib/vm/tui/screens/system-screen.js +379 -0
- package/lib/vm/tui/tui.js +805 -0
- package/package.json +1 -0
- package/scripts/cso-analyzer.js +198 -0
- package/scripts/eval-runner.js +359 -0
- package/scripts/i18n-checker.js +109 -0
- package/scripts/linter/activiti-linter.js +272 -0
- package/scripts/linter/prd-linter.js +162 -0
- package/scripts/linter/report-generator.js +207 -0
- package/scripts/linter/run-linters.js +285 -0
- package/scripts/linter/sql-linter.js +166 -0
- package/scripts/token-analyzer.js +162 -0
- package/scripts/vm-test.js +180 -0
- package/skills/core/official-doc-writer/LICENSE +21 -0
- package/skills/core/official-doc-writer/README.md +232 -0
- package/skills/core/official-doc-writer/SKILL.md +475 -0
- package/skills/core/official-doc-writer/_meta.json +1 -0
- package/skills/core/official-doc-writer/document_generator.py +580 -0
- package/skills/core/official-doc-writer/evals/default-evals.json +1 -0
- package/skills/core/official-doc-writer/examples.md +150 -0
- package/skills/core/official-doc-writer/fonts/FONTS_LIST.md +45 -0
- package/skills/core/official-doc-writer/fonts/README.md +141 -0
- package/skills/core/official-doc-writer/fonts/SIMFANG.TTF +0 -0
- package/skills/core/official-doc-writer/fonts/SIMHEI.TTF +0 -0
- package/skills/core/official-doc-writer/fonts/SIMKAI.TTF +0 -0
- package/skills/core/official-doc-writer/fonts/SIMSUN.TTC +0 -0
- 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
- 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
- package/skills/core/official-doc-writer/scripts/__pycache__/generate_official_doc.cpython-313.pyc +0 -0
- package/skills/core/official-doc-writer/scripts/dialog_manager.py +564 -0
- package/skills/core/official-doc-writer/scripts/generate_official_doc.py +252 -0
- package/skills/core/official-doc-writer/scripts/install_fonts.py +390 -0
- package/skills/core/official-doc-writer/scripts/smart_prompts.py +363 -0
- package/skills/core/pdd-ba/SKILL.md +305 -0
- package/skills/core/pdd-ba/_meta.json +1 -0
- package/skills/core/pdd-ba/evals/default-evals.json +1 -0
- package/skills/core/pdd-code-reviewer/SKILL.md +378 -0
- package/skills/core/pdd-code-reviewer/_meta.json +1 -0
- package/skills/core/pdd-code-reviewer/evals/default-evals.json +1 -0
- package/skills/core/pdd-doc-change/SKILL.md +350 -0
- package/skills/core/pdd-doc-change/_meta.json +1 -0
- package/skills/core/pdd-doc-change/evals/default-evals.json +1 -0
- package/skills/core/pdd-doc-gardener/SKILL.md +248 -0
- package/skills/core/pdd-doc-gardener/_meta.json +1 -0
- package/skills/core/pdd-doc-gardener/evals/default-evals.json +1 -0
- package/skills/core/pdd-entropy-reduction/SKILL.md +360 -0
- package/skills/core/pdd-entropy-reduction/_meta.json +1 -0
- package/skills/core/pdd-entropy-reduction/evals/default-evals.json +1 -0
- package/skills/core/pdd-entropy-reduction/references/entropy-report-template.md +287 -0
- package/skills/core/pdd-entropy-reduction/references/golden-principles.md +573 -0
- package/skills/core/pdd-entropy-reduction/scripts/entropy_scan.py +712 -0
- package/skills/core/pdd-extract-features/SKILL.md +320 -0
- package/skills/core/pdd-extract-features/_meta.json +1 -0
- package/skills/core/pdd-extract-features/evals/default-evals.json +1 -0
- package/skills/core/pdd-generate-spec/SKILL.md +418 -0
- package/skills/core/pdd-generate-spec/_meta.json +1 -0
- package/skills/core/pdd-generate-spec/evals/default-evals.json +1 -0
- package/skills/core/pdd-implement-feature/SKILL.md +332 -0
- package/skills/core/pdd-implement-feature/_meta.json +1 -0
- package/skills/core/pdd-implement-feature/evals/default-evals.json +1 -0
- package/skills/core/pdd-main/SKILL.md +540 -0
- package/skills/core/pdd-main/_meta.json +1 -0
- package/skills/core/pdd-main/evals/default-evals.json +1 -0
- package/skills/core/pdd-main/evals/evals.json +215 -0
- package/skills/core/pdd-verify-feature/SKILL.md +474 -0
- package/skills/core/pdd-verify-feature/_meta.json +1 -0
- package/skills/core/pdd-verify-feature/evals/default-evals.json +1 -0
- package/skills/core/pdd-vm/evals/default-evals.json +1 -0
- package/skills/core/traffic-accident-assessor/LICENSE +29 -0
- package/skills/core/traffic-accident-assessor/SKILL.md +439 -0
- package/skills/core/traffic-accident-assessor/evals/evals.json +1 -0
- package/skills/core/traffic-accident-assessor/references/accident-types.md +369 -0
- package/skills/core/traffic-accident-assessor/references/liability-rules.md +287 -0
- package/skills/core/traffic-accident-assessor/references/traffic-laws.md +226 -0
- 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
- package/skills/core/traffic-accident-assessor/scripts/generate_official_statement.py +588 -0
- package/skills/core/traffic-accident-assessor/scripts/generate_report.py +495 -0
- package/skills/core/traffic-accident-assessor/scripts/generate_statement.py +528 -0
- package/skills/core/traffic-accident-assessor.zip +0 -0
- package/skills/entropy/expert-arch-enforcer/SKILL.md +292 -0
- package/skills/entropy/expert-arch-enforcer/_meta.json +1 -0
- package/skills/entropy/expert-arch-enforcer/evals/default-evals.json +1 -0
- package/skills/entropy/expert-auto-refactor/SKILL.md +327 -0
- package/skills/entropy/expert-auto-refactor/_meta.json +1 -0
- package/skills/entropy/expert-auto-refactor/evals/default-evals.json +1 -0
- package/skills/entropy/expert-code-quality/SKILL.md +468 -0
- package/skills/entropy/expert-code-quality/_meta.json +1 -0
- package/skills/entropy/expert-code-quality/evals/default-evals.json +1 -0
- package/skills/entropy/expert-code-quality/evals/evals.json +109 -0
- package/skills/entropy/expert-code-quality/references/code-smells.md +605 -0
- package/skills/entropy/expert-code-quality/references/design-patterns.md +1111 -0
- package/skills/entropy/expert-code-quality/references/refactoring-catalog.md +1281 -0
- package/skills/entropy/expert-code-quality/references/solid-principles.md +524 -0
- package/skills/entropy/expert-entropy-auditor/SKILL.md +276 -0
- package/skills/entropy/expert-entropy-auditor/_meta.json +1 -0
- package/skills/entropy/expert-entropy-auditor/evals/default-evals.json +1 -0
- package/skills/expert/expert-activiti/SKILL.md +497 -0
- package/skills/expert/expert-activiti/_meta.json +1 -0
- package/skills/expert/expert-mysql/SKILL.md +832 -0
- package/skills/expert/expert-mysql/_meta.json +1 -0
- package/skills/expert/expert-performance/SKILL.md +379 -0
- package/skills/expert/expert-performance/_meta.json +1 -0
- package/skills/expert/expert-performance/evals/default-evals.json +1 -0
- package/skills/expert/expert-ruoyi/SKILL.md +472 -0
- package/skills/expert/expert-ruoyi/_meta.json +1 -0
- package/skills/expert/expert-security/SKILL.md +1341 -0
- package/skills/expert/expert-security/_meta.json +1 -0
- package/skills/expert/expert-security/evals/default-evals.json +1 -0
- package/skills/expert/software-architect/SKILL.md +350 -0
- package/skills/expert/software-architect/_meta.json +1 -0
- package/skills/expert/software-engineer/SKILL.md +437 -0
- package/skills/expert/software-engineer/_meta.json +1 -0
- package/skills/expert/software-engineer/architecture.md +130 -0
- package/skills/expert/software-engineer/patterns.md +151 -0
- package/skills/expert/software-engineer/testing.md +135 -0
- package/skills/expert/system-architect/SKILL.md +628 -0
- package/skills/expert/system-architect/_meta.json +1 -0
- package/skills/expert/system-architect/assets/templates/ARCHITECTURE.md +25 -0
- package/skills/expert/system-architect/assets/templates/README.md +44 -0
- package/skills/expert/system-architect/references/js-ts-standards.md +18 -0
- package/skills/expert/system-architect/references/python-standards.md +19 -0
- package/skills/expert/system-architect/references/scaffolding.md +61 -0
- package/skills/expert/system-architect/references/security-checklist.md +21 -0
- package/skills/openspec/openspec-apply-change/SKILL.md +156 -0
- package/skills/openspec/openspec-apply-change/_meta.json +1 -0
- package/skills/openspec/openspec-archive-change/SKILL.md +114 -0
- package/skills/openspec/openspec-archive-change/_meta.json +1 -0
- package/skills/openspec/openspec-bulk-archive-change/SKILL.md +246 -0
- package/skills/openspec/openspec-bulk-archive-change/_meta.json +1 -0
- package/skills/openspec/openspec-continue-change/SKILL.md +118 -0
- package/skills/openspec/openspec-continue-change/_meta.json +1 -0
- package/skills/openspec/openspec-explore/SKILL.md +288 -0
- package/skills/openspec/openspec-explore/_meta.json +1 -0
- package/skills/openspec/openspec-ff-change/SKILL.md +101 -0
- package/skills/openspec/openspec-ff-change/_meta.json +1 -0
- package/skills/openspec/openspec-new-change/SKILL.md +74 -0
- package/skills/openspec/openspec-new-change/_meta.json +1 -0
- package/skills/openspec/openspec-onboard/SKILL.md +554 -0
- package/skills/openspec/openspec-onboard/_meta.json +1 -0
- package/skills/openspec/openspec-sync-specs/SKILL.md +138 -0
- package/skills/openspec/openspec-sync-specs/_meta.json +1 -0
- package/skills/openspec/openspec-verify-change/SKILL.md +168 -0
- package/skills/openspec/openspec-verify-change/_meta.json +1 -0
- package/skills/pr/pdd-multi-review/SKILL.md +534 -0
- package/skills/pr/pdd-multi-review/_meta.json +1 -0
- package/skills/pr/pdd-pr-batch/SKILL.md +303 -0
- package/skills/pr/pdd-pr-batch/_meta.json +1 -0
- package/skills/pr/pdd-pr-create/SKILL.md +344 -0
- package/skills/pr/pdd-pr-create/_meta.json +1 -0
- package/skills/pr/pdd-pr-merge/SKILL.md +286 -0
- package/skills/pr/pdd-pr-merge/_meta.json +1 -0
- package/skills/pr/pdd-pr-review/SKILL.md +217 -0
- package/skills/pr/pdd-pr-review/_meta.json +1 -0
- package/skills/pr/pdd-task-manager/SKILL.md +636 -0
- package/skills/pr/pdd-task-manager/_meta.json +1 -0
- package/skills/pr/pdd-template-engine/SKILL.md +306 -0
- package/skills/pr/pdd-template-engine/_meta.json +1 -0
- package/templates/behavior-shaping/iron-law-template.md +87 -0
- package/templates/behavior-shaping/rationalization-template.md +62 -0
- package/templates/behavior-shaping/red-flags-template.md +70 -0
- package/templates/bilingual-template.md +139 -0
- package/templates/config/default.yaml +47 -0
- package/templates/project/default/README.md +31 -0
- package/templates/project/frontend/README.md +46 -0
- package/templates/project/java/README.md +48 -0
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: openspec-verify-change
|
|
3
|
+
description: Verify implementation matches change artifacts. Use when the user wants to validate that implementation is complete, correct, and coherent before archiving.
|
|
4
|
+
license: MIT
|
|
5
|
+
compatibility: Requires openspec CLI.
|
|
6
|
+
metadata:
|
|
7
|
+
author: openspec
|
|
8
|
+
version: "1.0"
|
|
9
|
+
generatedBy: "1.2.0"
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
Verify that an implementation matches the change artifacts (specs, tasks, design).
|
|
13
|
+
|
|
14
|
+
**Input**: Optionally specify a change name. If omitted, check if it can be inferred from conversation context. If vague or ambiguous you MUST prompt for available changes.
|
|
15
|
+
|
|
16
|
+
**Steps**
|
|
17
|
+
|
|
18
|
+
1. **If no change name provided, prompt for selection**
|
|
19
|
+
|
|
20
|
+
Run `openspec list --json` to get available changes. Use the **AskUserQuestion tool** to let the user select.
|
|
21
|
+
|
|
22
|
+
Show changes that have implementation tasks (tasks artifact exists).
|
|
23
|
+
Include the schema used for each change if available.
|
|
24
|
+
Mark changes with incomplete tasks as "(In Progress)".
|
|
25
|
+
|
|
26
|
+
**IMPORTANT**: Do NOT guess or auto-select a change. Always let the user choose.
|
|
27
|
+
|
|
28
|
+
2. **Check status to understand the schema**
|
|
29
|
+
```bash
|
|
30
|
+
openspec status --change "<name>" --json
|
|
31
|
+
```
|
|
32
|
+
Parse the JSON to understand:
|
|
33
|
+
- `schemaName`: The workflow being used (e.g., "spec-driven")
|
|
34
|
+
- Which artifacts exist for this change
|
|
35
|
+
|
|
36
|
+
3. **Get the change directory and load artifacts**
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
openspec instructions apply --change "<name>" --json
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
This returns the change directory and context files. Read all available artifacts from `contextFiles`.
|
|
43
|
+
|
|
44
|
+
4. **Initialize verification report structure**
|
|
45
|
+
|
|
46
|
+
Create a report structure with three dimensions:
|
|
47
|
+
- **Completeness**: Track tasks and spec coverage
|
|
48
|
+
- **Correctness**: Track requirement implementation and scenario coverage
|
|
49
|
+
- **Coherence**: Track design adherence and pattern consistency
|
|
50
|
+
|
|
51
|
+
Each dimension can have CRITICAL, WARNING, or SUGGESTION issues.
|
|
52
|
+
|
|
53
|
+
5. **Verify Completeness**
|
|
54
|
+
|
|
55
|
+
**Task Completion**:
|
|
56
|
+
- If tasks.md exists in contextFiles, read it
|
|
57
|
+
- Parse checkboxes: `- [ ]` (incomplete) vs `- [x]` (complete)
|
|
58
|
+
- Count complete vs total tasks
|
|
59
|
+
- If incomplete tasks exist:
|
|
60
|
+
- Add CRITICAL issue for each incomplete task
|
|
61
|
+
- Recommendation: "Complete task: <description>" or "Mark as done if already implemented"
|
|
62
|
+
|
|
63
|
+
**Spec Coverage**:
|
|
64
|
+
- If delta specs exist in `openspec/changes/<name>/specs/`:
|
|
65
|
+
- Extract all requirements (marked with "### Requirement:")
|
|
66
|
+
- For each requirement:
|
|
67
|
+
- Search codebase for keywords related to the requirement
|
|
68
|
+
- Assess if implementation likely exists
|
|
69
|
+
- If requirements appear unimplemented:
|
|
70
|
+
- Add CRITICAL issue: "Requirement not found: <requirement name>"
|
|
71
|
+
- Recommendation: "Implement requirement X: <description>"
|
|
72
|
+
|
|
73
|
+
6. **Verify Correctness**
|
|
74
|
+
|
|
75
|
+
**Requirement Implementation Mapping**:
|
|
76
|
+
- For each requirement from delta specs:
|
|
77
|
+
- Search codebase for implementation evidence
|
|
78
|
+
- If found, note file paths and line ranges
|
|
79
|
+
- Assess if implementation matches requirement intent
|
|
80
|
+
- If divergence detected:
|
|
81
|
+
- Add WARNING: "Implementation may diverge from spec: <details>"
|
|
82
|
+
- Recommendation: "Review <file>:<lines> against requirement X"
|
|
83
|
+
|
|
84
|
+
**Scenario Coverage**:
|
|
85
|
+
- For each scenario in delta specs (marked with "#### Scenario:"):
|
|
86
|
+
- Check if conditions are handled in code
|
|
87
|
+
- Check if tests exist covering the scenario
|
|
88
|
+
- If scenario appears uncovered:
|
|
89
|
+
- Add WARNING: "Scenario not covered: <scenario name>"
|
|
90
|
+
- Recommendation: "Add test or implementation for scenario: <description>"
|
|
91
|
+
|
|
92
|
+
7. **Verify Coherence**
|
|
93
|
+
|
|
94
|
+
**Design Adherence**:
|
|
95
|
+
- If design.md exists in contextFiles:
|
|
96
|
+
- Extract key decisions (look for sections like "Decision:", "Approach:", "Architecture:")
|
|
97
|
+
- Verify implementation follows those decisions
|
|
98
|
+
- If contradiction detected:
|
|
99
|
+
- Add WARNING: "Design decision not followed: <decision>"
|
|
100
|
+
- Recommendation: "Update implementation or revise design.md to match reality"
|
|
101
|
+
- If no design.md: Skip design adherence check, note "No design.md to verify against"
|
|
102
|
+
|
|
103
|
+
**Code Pattern Consistency**:
|
|
104
|
+
- Review new code for consistency with project patterns
|
|
105
|
+
- Check file naming, directory structure, coding style
|
|
106
|
+
- If significant deviations found:
|
|
107
|
+
- Add SUGGESTION: "Code pattern deviation: <details>"
|
|
108
|
+
- Recommendation: "Consider following project pattern: <example>"
|
|
109
|
+
|
|
110
|
+
8. **Generate Verification Report**
|
|
111
|
+
|
|
112
|
+
**Summary Scorecard**:
|
|
113
|
+
```
|
|
114
|
+
## Verification Report: <change-name>
|
|
115
|
+
|
|
116
|
+
### Summary
|
|
117
|
+
| Dimension | Status |
|
|
118
|
+
|--------------|------------------|
|
|
119
|
+
| Completeness | X/Y tasks, N reqs|
|
|
120
|
+
| Correctness | M/N reqs covered |
|
|
121
|
+
| Coherence | Followed/Issues |
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
**Issues by Priority**:
|
|
125
|
+
|
|
126
|
+
1. **CRITICAL** (Must fix before archive):
|
|
127
|
+
- Incomplete tasks
|
|
128
|
+
- Missing requirement implementations
|
|
129
|
+
- Each with specific, actionable recommendation
|
|
130
|
+
|
|
131
|
+
2. **WARNING** (Should fix):
|
|
132
|
+
- Spec/design divergences
|
|
133
|
+
- Missing scenario coverage
|
|
134
|
+
- Each with specific recommendation
|
|
135
|
+
|
|
136
|
+
3. **SUGGESTION** (Nice to fix):
|
|
137
|
+
- Pattern inconsistencies
|
|
138
|
+
- Minor improvements
|
|
139
|
+
- Each with specific recommendation
|
|
140
|
+
|
|
141
|
+
**Final Assessment**:
|
|
142
|
+
- If CRITICAL issues: "X critical issue(s) found. Fix before archiving."
|
|
143
|
+
- If only warnings: "No critical issues. Y warning(s) to consider. Ready for archive (with noted improvements)."
|
|
144
|
+
- If all clear: "All checks passed. Ready for archive."
|
|
145
|
+
|
|
146
|
+
**Verification Heuristics**
|
|
147
|
+
|
|
148
|
+
- **Completeness**: Focus on objective checklist items (checkboxes, requirements list)
|
|
149
|
+
- **Correctness**: Use keyword search, file path analysis, reasonable inference - don't require perfect certainty
|
|
150
|
+
- **Coherence**: Look for glaring inconsistencies, don't nitpick style
|
|
151
|
+
- **False Positives**: When uncertain, prefer SUGGESTION over WARNING, WARNING over CRITICAL
|
|
152
|
+
- **Actionability**: Every issue must have a specific recommendation with file/line references where applicable
|
|
153
|
+
|
|
154
|
+
**Graceful Degradation**
|
|
155
|
+
|
|
156
|
+
- If only tasks.md exists: verify task completion only, skip spec/design checks
|
|
157
|
+
- If tasks + specs exist: verify completeness and correctness, skip design
|
|
158
|
+
- If full artifacts: verify all three dimensions
|
|
159
|
+
- Always note which checks were skipped and why
|
|
160
|
+
|
|
161
|
+
**Output Format**
|
|
162
|
+
|
|
163
|
+
Use clear markdown with:
|
|
164
|
+
- Table for summary scorecard
|
|
165
|
+
- Grouped lists for issues (CRITICAL/WARNING/SUGGESTION)
|
|
166
|
+
- Code references in format: `file.ts:123`
|
|
167
|
+
- Specific, actionable recommendations
|
|
168
|
+
- No vague suggestions like "consider reviewing"
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"name": "openspec-verify-change", "version": "1.0.0", "category": "openspec", "description": "Verify implementation matches OpenSpec change artifacts. Invoke when validating completeness before archiving.", "triggers": ["验证变更", "verify change", "验证实现"]}
|
|
@@ -0,0 +1,534 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: pdd-multi-review
|
|
3
|
+
description: |
|
|
4
|
+
PDD多轮审查技能,提供分层次代码审查能力。当功能点代码实现完成、用户请求代码审查review、检查代码、代码有问题吗、验收、质量检查、代码审核、代码质量验证等场景时自动触发。通过规则检查、AI审查、交叉验证三轮审查,弥补国产模型在复杂逻辑推理上的能力短板,将问题发现率从60%提升至90%+。即使用户只说"审查一下"、"检查代码"、"代码有问题吗"等简短表述,也应触发此Skill。
|
|
5
|
+
license: MIT
|
|
6
|
+
compatibility: 需要开发规格文档 (spec.md)
|
|
7
|
+
metadata:
|
|
8
|
+
author: "neuqik@hotmail.com"
|
|
9
|
+
version: "1.0"
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# PDD多轮审查技能
|
|
13
|
+
|
|
14
|
+
## 技能描述
|
|
15
|
+
|
|
16
|
+
PDD多轮审查技能提供分层次的代码审查能力,通过规则检查、AI审查和交叉验证三轮审查,弥补国产模型在复杂逻辑推理上的能力短板,确保代码质量和业务逻辑正确性。
|
|
17
|
+
|
|
18
|
+
## 触发条件
|
|
19
|
+
|
|
20
|
+
- 功能点代码实现完成后
|
|
21
|
+
- 用户请求"审查代码"、"review"等命令
|
|
22
|
+
- pdd-implement-feature 完成代码生成后自动触发
|
|
23
|
+
|
|
24
|
+
## 核心能力
|
|
25
|
+
|
|
26
|
+
### 1. 三轮审查机制
|
|
27
|
+
|
|
28
|
+
```yaml
|
|
29
|
+
审查流程:
|
|
30
|
+
第一轮: 规则检查 (Rule Check)
|
|
31
|
+
类型: 自动化静态分析
|
|
32
|
+
速度: 快速
|
|
33
|
+
覆盖: 代码风格、安全漏洞、常见错误模式
|
|
34
|
+
|
|
35
|
+
第二轮: AI审查 (AI Review)
|
|
36
|
+
类型: 智能分析
|
|
37
|
+
速度: 中等
|
|
38
|
+
覆盖: 业务逻辑、代码质量、最佳实践
|
|
39
|
+
|
|
40
|
+
第三轮: 交叉验证 (Cross Validation)
|
|
41
|
+
类型: 规格对照
|
|
42
|
+
速度: 较慢
|
|
43
|
+
覆盖: 接口完整性、数据模型一致性、业务规则正确性
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### 2. 审查清单标准化
|
|
47
|
+
|
|
48
|
+
```yaml
|
|
49
|
+
审查维度:
|
|
50
|
+
接口实现:
|
|
51
|
+
- 所有接口是否都已实现
|
|
52
|
+
- 接口参数是否与规格一致
|
|
53
|
+
- 返回值是否与规格一致
|
|
54
|
+
- 异常处理是否完整
|
|
55
|
+
|
|
56
|
+
数据模型:
|
|
57
|
+
- 实体字段是否与数据库表一致
|
|
58
|
+
- 字段类型是否正确
|
|
59
|
+
- 必填字段是否有验证
|
|
60
|
+
- 关联关系是否正确
|
|
61
|
+
|
|
62
|
+
业务逻辑:
|
|
63
|
+
- 业务规则是否正确实现
|
|
64
|
+
- 状态转换是否符合定义
|
|
65
|
+
- 边界条件是否处理
|
|
66
|
+
- 并发场景是否考虑
|
|
67
|
+
|
|
68
|
+
安全性:
|
|
69
|
+
- 是否有SQL注入风险
|
|
70
|
+
- 是否有XSS风险
|
|
71
|
+
- 权限控制是否完整
|
|
72
|
+
- 敏感数据是否加密
|
|
73
|
+
|
|
74
|
+
性能:
|
|
75
|
+
- 是否有N+1查询问题
|
|
76
|
+
- 是否有性能瓶颈
|
|
77
|
+
- 缓存使用是否合理
|
|
78
|
+
- 分页是否正确
|
|
79
|
+
|
|
80
|
+
代码质量:
|
|
81
|
+
- 代码是否清晰易读
|
|
82
|
+
- 命名是否规范
|
|
83
|
+
- 注释是否充分
|
|
84
|
+
- 是否有重复代码
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### 3. 问题分级标准
|
|
88
|
+
|
|
89
|
+
```yaml
|
|
90
|
+
问题级别:
|
|
91
|
+
Critical (严重):
|
|
92
|
+
定义: 阻塞功能正常运行的问题
|
|
93
|
+
示例:
|
|
94
|
+
- 接口实现缺失
|
|
95
|
+
- 业务逻辑错误
|
|
96
|
+
- 安全漏洞
|
|
97
|
+
- 数据丢失风险
|
|
98
|
+
处理: 必须立即修复,阻塞后续流程
|
|
99
|
+
|
|
100
|
+
Warning (警告):
|
|
101
|
+
定义: 影响代码质量或性能的问题
|
|
102
|
+
示例:
|
|
103
|
+
- 代码风格不一致
|
|
104
|
+
- 缺少异常处理
|
|
105
|
+
- 性能隐患
|
|
106
|
+
- 注释缺失
|
|
107
|
+
处理: 建议修复,不阻塞流程
|
|
108
|
+
|
|
109
|
+
Suggestion (建议):
|
|
110
|
+
定义: 改进建议
|
|
111
|
+
示例:
|
|
112
|
+
- 代码可读性改进
|
|
113
|
+
- 重构建议
|
|
114
|
+
- 最佳实践建议
|
|
115
|
+
处理: 可选修复,记录备查
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
### 4. 反馈循环机制
|
|
119
|
+
|
|
120
|
+
```yaml
|
|
121
|
+
反馈流程:
|
|
122
|
+
发现问题 → 记录问题 → 分配修复 → 验证修复 → 关闭问题
|
|
123
|
+
|
|
124
|
+
问题记录格式:
|
|
125
|
+
id: ISS-001
|
|
126
|
+
round: 2 # 审查轮次
|
|
127
|
+
level: Critical
|
|
128
|
+
category: 业务逻辑
|
|
129
|
+
location:
|
|
130
|
+
file: EquityTransferApplyServiceImpl.java
|
|
131
|
+
line: 45-50
|
|
132
|
+
description: 转让底价验证逻辑错误,应该大于等于评估价值
|
|
133
|
+
expected: 转让底价 >= 评估价值
|
|
134
|
+
actual: 转让底价 > 评估价值(缺少等于的情况)
|
|
135
|
+
suggestion: 修改为 >= 判断
|
|
136
|
+
status: open
|
|
137
|
+
assignee: AI
|
|
138
|
+
createdAt: 2026-03-31T11:00:00Z
|
|
139
|
+
history:
|
|
140
|
+
- action: created
|
|
141
|
+
timestamp: 2026-03-31T11:00:00Z
|
|
142
|
+
- action: assigned
|
|
143
|
+
timestamp: 2026-03-31T11:01:00Z
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
## 审查流程详解
|
|
147
|
+
|
|
148
|
+
### 第一轮:规则检查
|
|
149
|
+
|
|
150
|
+
```yaml
|
|
151
|
+
检查项目:
|
|
152
|
+
代码风格:
|
|
153
|
+
- 命名规范检查
|
|
154
|
+
- 代码格式检查
|
|
155
|
+
- 导入语句检查
|
|
156
|
+
- 注释规范检查
|
|
157
|
+
|
|
158
|
+
安全检查:
|
|
159
|
+
- SQL注入检查
|
|
160
|
+
- XSS检查
|
|
161
|
+
- 敏感信息泄露检查
|
|
162
|
+
- 权限注解检查
|
|
163
|
+
|
|
164
|
+
常见错误:
|
|
165
|
+
- 空指针检查
|
|
166
|
+
- 资源泄露检查
|
|
167
|
+
- 异常处理检查
|
|
168
|
+
- 并发安全检查
|
|
169
|
+
|
|
170
|
+
检查工具:
|
|
171
|
+
- Checkstyle (Java)
|
|
172
|
+
- ESLint (JavaScript)
|
|
173
|
+
- PMD (Java)
|
|
174
|
+
- SpotBugs (Java)
|
|
175
|
+
|
|
176
|
+
输出格式:
|
|
177
|
+
rule-check-report.md:
|
|
178
|
+
检查时间: 2026-03-31T11:00:00Z
|
|
179
|
+
检查范围: 15个文件
|
|
180
|
+
问题统计:
|
|
181
|
+
Critical: 0
|
|
182
|
+
Warning: 5
|
|
183
|
+
Suggestion: 10
|
|
184
|
+
问题列表:
|
|
185
|
+
- 文件: xxx.java
|
|
186
|
+
规则: naming-convention
|
|
187
|
+
级别: Warning
|
|
188
|
+
描述: 变量名不符合驼峰命名规范
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
### 第二轮:AI审查
|
|
192
|
+
|
|
193
|
+
```yaml
|
|
194
|
+
审查维度:
|
|
195
|
+
业务逻辑正确性:
|
|
196
|
+
- 需求理解是否正确
|
|
197
|
+
- 业务规则是否完整实现
|
|
198
|
+
- 边界条件是否处理
|
|
199
|
+
- 异常场景是否考虑
|
|
200
|
+
|
|
201
|
+
代码质量:
|
|
202
|
+
- 代码结构是否清晰
|
|
203
|
+
- 是否遵循设计模式
|
|
204
|
+
- 是否有代码重复
|
|
205
|
+
- 是否有过度设计
|
|
206
|
+
|
|
207
|
+
最佳实践:
|
|
208
|
+
- 是否遵循框架规范
|
|
209
|
+
- 是否使用推荐方式
|
|
210
|
+
- 是否避免反模式
|
|
211
|
+
|
|
212
|
+
审查方法:
|
|
213
|
+
- 逐文件审查
|
|
214
|
+
- 业务逻辑追踪
|
|
215
|
+
- 代码路径分析
|
|
216
|
+
- 依赖关系检查
|
|
217
|
+
|
|
218
|
+
输出格式:
|
|
219
|
+
ai-review-report.md:
|
|
220
|
+
审查时间: 2026-03-31T11:15:00Z
|
|
221
|
+
审查范围: 15个文件
|
|
222
|
+
问题统计:
|
|
223
|
+
Critical: 2
|
|
224
|
+
Warning: 8
|
|
225
|
+
Suggestion: 15
|
|
226
|
+
问题列表:
|
|
227
|
+
- id: ISS-001
|
|
228
|
+
类别: 业务逻辑
|
|
229
|
+
级别: Critical
|
|
230
|
+
文件: EquityTransferApplyServiceImpl.java
|
|
231
|
+
行号: 45-50
|
|
232
|
+
描述: 转让底价验证逻辑错误
|
|
233
|
+
建议: 修改为 >= 判断
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
### 第三轮:交叉验证
|
|
237
|
+
|
|
238
|
+
```yaml
|
|
239
|
+
验证项目:
|
|
240
|
+
接口完整性验证:
|
|
241
|
+
方法: 对照spec.md逐项检查
|
|
242
|
+
内容:
|
|
243
|
+
- 所有接口是否都已实现
|
|
244
|
+
- 接口参数是否与规格一致
|
|
245
|
+
- 返回值是否与规格一致
|
|
246
|
+
|
|
247
|
+
数据模型一致性验证:
|
|
248
|
+
方法: 对照数据库设计检查
|
|
249
|
+
内容:
|
|
250
|
+
- 实体字段是否与表结构一致
|
|
251
|
+
- 字段类型是否匹配
|
|
252
|
+
- 关联关系是否正确
|
|
253
|
+
|
|
254
|
+
业务规则正确性验证:
|
|
255
|
+
方法: 对照业务规则定义检查
|
|
256
|
+
内容:
|
|
257
|
+
- 验证规则是否完整
|
|
258
|
+
- 状态转换是否正确
|
|
259
|
+
- 计算逻辑是否正确
|
|
260
|
+
|
|
261
|
+
验证方法:
|
|
262
|
+
- 规格对照表
|
|
263
|
+
- 字段映射检查
|
|
264
|
+
- 接口映射检查
|
|
265
|
+
- 业务规则追踪
|
|
266
|
+
|
|
267
|
+
输出格式:
|
|
268
|
+
cross-validation-report.md:
|
|
269
|
+
验证时间: 2026-03-31T11:30:00Z
|
|
270
|
+
验证范围: spec.md vs 实现代码
|
|
271
|
+
验证结果:
|
|
272
|
+
接口完整性: 100% (10/10)
|
|
273
|
+
数据模型一致性: 95% (19/20)
|
|
274
|
+
业务规则正确性: 90% (9/10)
|
|
275
|
+
问题列表:
|
|
276
|
+
- id: ISS-002
|
|
277
|
+
类别: 数据模型
|
|
278
|
+
级别: Warning
|
|
279
|
+
描述: 实体类缺少remark字段
|
|
280
|
+
规格: 有remark字段
|
|
281
|
+
实际: 未实现
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
## 审查报告模板
|
|
285
|
+
|
|
286
|
+
```markdown
|
|
287
|
+
# 多轮审查报告
|
|
288
|
+
|
|
289
|
+
## 审查概要
|
|
290
|
+
|
|
291
|
+
| 项目 | 内容 |
|
|
292
|
+
|------|------|
|
|
293
|
+
| 功能点ID | FP-ZCCZ1-001 |
|
|
294
|
+
| 功能名称 | 国有产权转让申请 |
|
|
295
|
+
| 审查时间 | 2026-03-31 11:00:00 - 11:30:00 |
|
|
296
|
+
| 审查范围 | 15个文件 |
|
|
297
|
+
|
|
298
|
+
## 问题统计
|
|
299
|
+
|
|
300
|
+
| 轮次 | Critical | Warning | Suggestion | 合计 |
|
|
301
|
+
|------|----------|---------|------------|------|
|
|
302
|
+
| 第一轮:规则检查 | 0 | 5 | 10 | 15 |
|
|
303
|
+
| 第二轮:AI审查 | 2 | 8 | 15 | 25 |
|
|
304
|
+
| 第三轮:交叉验证 | 1 | 3 | 5 | 9 |
|
|
305
|
+
| **合计** | **3** | **16** | **30** | **49** |
|
|
306
|
+
|
|
307
|
+
## Critical问题详情
|
|
308
|
+
|
|
309
|
+
### ISS-001: 转让底价验证逻辑错误
|
|
310
|
+
|
|
311
|
+
| 属性 | 内容 |
|
|
312
|
+
|------|------|
|
|
313
|
+
| 来源 | 第二轮:AI审查 |
|
|
314
|
+
| 类别 | 业务逻辑 |
|
|
315
|
+
| 文件 | EquityTransferApplyServiceImpl.java |
|
|
316
|
+
| 行号 | 45-50 |
|
|
317
|
+
| 描述 | 转让底价验证逻辑错误,应该大于等于评估价值 |
|
|
318
|
+
| 预期 | 转让底价 >= 评估价值 |
|
|
319
|
+
| 实际 | 转让底价 > 评估价值(缺少等于的情况) |
|
|
320
|
+
| 建议 | 修改为 >= 判断 |
|
|
321
|
+
|
|
322
|
+
**代码片段**:
|
|
323
|
+
```java
|
|
324
|
+
// 当前代码
|
|
325
|
+
if (transferFloorPrice > evaluationValue) {
|
|
326
|
+
throw new BusinessException("转让底价不得低于评估价值");
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
// 建议修改
|
|
330
|
+
if (transferFloorPrice < evaluationValue) {
|
|
331
|
+
throw new BusinessException("转让底价不得低于评估价值");
|
|
332
|
+
}
|
|
333
|
+
```
|
|
334
|
+
|
|
335
|
+
### ISS-002: 缺少权限注解
|
|
336
|
+
|
|
337
|
+
| 属性 | 内容 |
|
|
338
|
+
|------|------|
|
|
339
|
+
| 来源 | 第一轮:规则检查 |
|
|
340
|
+
| 类别 | 安全性 |
|
|
341
|
+
| 文件 | EquityTransferApplyController.java |
|
|
342
|
+
| 行号 | 35 |
|
|
343
|
+
| 描述 | 删除接口缺少权限注解 |
|
|
344
|
+
| 建议 | 添加 @PreAuthorize("@ss.hasPermi('equity:transfer:remove')") |
|
|
345
|
+
|
|
346
|
+
### ISS-003: 接口返回值与规格不一致
|
|
347
|
+
|
|
348
|
+
| 属性 | 内容 |
|
|
349
|
+
|------|------|
|
|
350
|
+
| 来源 | 第三轮:交叉验证 |
|
|
351
|
+
| 类别 | 接口完整性 |
|
|
352
|
+
| 文件 | EquityTransferApplyController.java |
|
|
353
|
+
| 行号 | 50 |
|
|
354
|
+
| 描述 | 详情接口返回值缺少附件列表 |
|
|
355
|
+
| 规格 | 返回 { entity, attachments } |
|
|
356
|
+
| 实际 | 只返回 { entity } |
|
|
357
|
+
| 建议 | 添加附件列表查询并返回 |
|
|
358
|
+
|
|
359
|
+
## Warning问题列表
|
|
360
|
+
|
|
361
|
+
| ID | 来源 | 类别 | 文件 | 描述 |
|
|
362
|
+
|----|------|------|------|------|
|
|
363
|
+
| W-001 | 第一轮 | 代码风格 | Entity.java | 变量名不符合驼峰命名规范 |
|
|
364
|
+
| W-002 | 第二轮 | 代码质量 | ServiceImpl.java | 方法过长,建议拆分 |
|
|
365
|
+
| W-003 | 第三轮 | 数据模型 | Entity.java | 缺少remark字段 |
|
|
366
|
+
| ... | ... | ... | ... | ... |
|
|
367
|
+
|
|
368
|
+
## Suggestion问题列表
|
|
369
|
+
|
|
370
|
+
| ID | 来源 | 类别 | 文件 | 描述 |
|
|
371
|
+
|----|------|------|------|------|
|
|
372
|
+
| S-001 | 第一轮 | 代码风格 | Controller.java | 建议添加接口注释 |
|
|
373
|
+
| S-002 | 第二轮 | 最佳实践 | ServiceImpl.java | 建议使用Optional避免空指针 |
|
|
374
|
+
| ... | ... | ... | ... | ... |
|
|
375
|
+
|
|
376
|
+
## 验证结果
|
|
377
|
+
|
|
378
|
+
### 接口完整性验证
|
|
379
|
+
|
|
380
|
+
| 接口 | 规格 | 实现 | 状态 |
|
|
381
|
+
|------|------|------|------|
|
|
382
|
+
| POST /equity-transfer | 新增申请 | ✅ 已实现 | 通过 |
|
|
383
|
+
| PUT /equity-transfer | 修改申请 | ✅ 已实现 | 通过 |
|
|
384
|
+
| DELETE /equity-transfer/{id} | 删除申请 | ✅ 已实现 | 通过 |
|
|
385
|
+
| GET /equity-transfer/{id} | 查询详情 | ✅ 已实现 | ⚠️ 返回值不完整 |
|
|
386
|
+
| GET /equity-transfer/list | 查询列表 | ✅ 已实现 | 通过 |
|
|
387
|
+
|
|
388
|
+
### 数据模型一致性验证
|
|
389
|
+
|
|
390
|
+
| 字段 | 数据库 | 实体类 | 状态 |
|
|
391
|
+
|------|--------|--------|------|
|
|
392
|
+
| id | bigint | Long | 通过 |
|
|
393
|
+
| transfer_type | varchar | String | 通过 |
|
|
394
|
+
| transfer_reason | varchar | String | 通过 |
|
|
395
|
+
| remark | varchar | - | ⚠️ 缺失 |
|
|
396
|
+
|
|
397
|
+
### 业务规则正确性验证
|
|
398
|
+
|
|
399
|
+
| 规则ID | 规则描述 | 实现状态 | 验证结果 |
|
|
400
|
+
|--------|---------|---------|---------|
|
|
401
|
+
| BR-001 | 转让底价 >= 评估价值 | ✅ 已实现 | ❌ 逻辑错误 |
|
|
402
|
+
| BR-002 | 转让原因必填 | ✅ 已实现 | 通过 |
|
|
403
|
+
| BR-003 | 附件必传 | ✅ 已实现 | 通过 |
|
|
404
|
+
|
|
405
|
+
## 审查结论
|
|
406
|
+
|
|
407
|
+
| 结论 | 内容 |
|
|
408
|
+
|------|------|
|
|
409
|
+
| 是否通过 | ❌ 不通过 |
|
|
410
|
+
| 原因 | 存在3个Critical问题需要修复 |
|
|
411
|
+
| 下一步 | 修复Critical问题后重新审查 |
|
|
412
|
+
|
|
413
|
+
## 修复建议
|
|
414
|
+
|
|
415
|
+
1. **ISS-001**: 修改转让底价验证逻辑
|
|
416
|
+
2. **ISS-002**: 添加权限注解
|
|
417
|
+
3. **ISS-003**: 补充附件列表返回
|
|
418
|
+
```
|
|
419
|
+
|
|
420
|
+
## 反馈循环流程
|
|
421
|
+
|
|
422
|
+
```
|
|
423
|
+
审查完成
|
|
424
|
+
│
|
|
425
|
+
▼
|
|
426
|
+
┌─────────────────────────────────┐
|
|
427
|
+
│ 1. 问题分类与优先级排序 │
|
|
428
|
+
│ - Critical问题优先处理 │
|
|
429
|
+
│ - Warning问题次优先 │
|
|
430
|
+
│ - Suggestion记录备查 │
|
|
431
|
+
└─────────────────────────────────┘
|
|
432
|
+
│
|
|
433
|
+
▼
|
|
434
|
+
┌─────────────────────────────────┐
|
|
435
|
+
│ 2. 问题分配 │
|
|
436
|
+
│ - 自动修复:简单问题 │
|
|
437
|
+
│ - AI修复:复杂问题 │
|
|
438
|
+
│ - 人工修复:需要确认的问题 │
|
|
439
|
+
└─────────────────────────────────┘
|
|
440
|
+
│
|
|
441
|
+
▼
|
|
442
|
+
┌─────────────────────────────────┐
|
|
443
|
+
│ 3. 执行修复 │
|
|
444
|
+
│ - 记录修复过程 │
|
|
445
|
+
│ - 更新代码文件 │
|
|
446
|
+
│ - 标记问题状态 │
|
|
447
|
+
└─────────────────────────────────┘
|
|
448
|
+
│
|
|
449
|
+
▼
|
|
450
|
+
┌─────────────────────────────────┐
|
|
451
|
+
│ 4. 验证修复 │
|
|
452
|
+
│ - 重新运行相关检查 │
|
|
453
|
+
│ - 确认问题已解决 │
|
|
454
|
+
│ - 检查是否引入新问题 │
|
|
455
|
+
└─────────────────────────────────┘
|
|
456
|
+
│
|
|
457
|
+
├─ 所有问题已解决 ──────────────┐
|
|
458
|
+
│ │
|
|
459
|
+
▼ ▼
|
|
460
|
+
┌─────────────────────────────────┐
|
|
461
|
+
│ 5. 关闭问题 │
|
|
462
|
+
│ - 更新问题状态为已关闭 │
|
|
463
|
+
│ - 记录修复历史 │
|
|
464
|
+
│ - 生成最终报告 │
|
|
465
|
+
└─────────────────────────────────┘
|
|
466
|
+
```
|
|
467
|
+
|
|
468
|
+
## 问题修复记录模板
|
|
469
|
+
|
|
470
|
+
```yaml
|
|
471
|
+
问题修复记录:
|
|
472
|
+
问题ID: ISS-001
|
|
473
|
+
修复人: AI
|
|
474
|
+
修复时间: 2026-03-31T12:00:00Z
|
|
475
|
+
|
|
476
|
+
修复前代码: |
|
|
477
|
+
if (transferFloorPrice > evaluationValue) {
|
|
478
|
+
throw new BusinessException("转让底价不得低于评估价值");
|
|
479
|
+
}
|
|
480
|
+
|
|
481
|
+
修复后代码: |
|
|
482
|
+
if (transferFloorPrice < evaluationValue) {
|
|
483
|
+
throw new BusinessException("转让底价不得低于评估价值");
|
|
484
|
+
}
|
|
485
|
+
|
|
486
|
+
验证结果: 通过
|
|
487
|
+
验证人: AI
|
|
488
|
+
验证时间: 2026-03-31T12:05:00Z
|
|
489
|
+
|
|
490
|
+
备注: 修改判断条件为正确的逻辑
|
|
491
|
+
```
|
|
492
|
+
|
|
493
|
+
## 学习机制
|
|
494
|
+
|
|
495
|
+
```yaml
|
|
496
|
+
学习内容:
|
|
497
|
+
问题模式学习:
|
|
498
|
+
- 记录常见问题类型
|
|
499
|
+
- 建立问题模式库
|
|
500
|
+
- 优化审查规则
|
|
501
|
+
|
|
502
|
+
修复方案学习:
|
|
503
|
+
- 记录有效修复方案
|
|
504
|
+
- 建立修复知识库
|
|
505
|
+
- 提高自动修复率
|
|
506
|
+
|
|
507
|
+
规则优化:
|
|
508
|
+
- 根据问题统计优化规则
|
|
509
|
+
- 添加新的检查规则
|
|
510
|
+
- 调整问题级别
|
|
511
|
+
|
|
512
|
+
学习输出:
|
|
513
|
+
- common-issues.yaml: 常见问题库
|
|
514
|
+
- fix-patterns.yaml: 修复模式库
|
|
515
|
+
- review-rules.yaml: 审查规则库
|
|
516
|
+
```
|
|
517
|
+
|
|
518
|
+
## Guardrails
|
|
519
|
+
|
|
520
|
+
- Critical问题必须全部修复才能通过
|
|
521
|
+
- 每个问题必须有明确的修复方案
|
|
522
|
+
- 修复后必须重新验证
|
|
523
|
+
- 问题修复历史必须完整记录
|
|
524
|
+
- 审查报告必须保存到 docs/reviews/
|
|
525
|
+
|
|
526
|
+
## 与其他技能协作
|
|
527
|
+
|
|
528
|
+
| 协作技能 | 协作方式 | 传入数据 | 期望输出 |
|
|
529
|
+
|---------|---------|---------|---------|
|
|
530
|
+
| **pdd-implement-feature** | 被调用 | 代码文件 | 审查报告 |
|
|
531
|
+
| **expert-ruoyi** | 咨询 | 若依相关问题 | 解决方案 |
|
|
532
|
+
| **expert-activiti** | 咨询 | 工作流相关问题 | 解决方案 |
|
|
533
|
+
| **expert-code-quality** | 咨询 | 代码质量问题 | 重构建议 |
|
|
534
|
+
| **pdd-feedback-learner** | 调用 | 问题记录 | 学习结果 |
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"name": "pdd-multi-review", "version": "1.0.0", "category": "pr", "description": "Multi-dimensional code review orchestrating concurrent review agents for comprehensive quality validation. Invoke when needing thorough cross-cutting review coverage.", "triggers": ["多维度审查", "multi review", "全面审查"]}
|