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,363 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
"""
|
|
3
|
+
公文智能提示系统
|
|
4
|
+
根据公文类型和上下文提供智能提示
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from typing import Dict, List, Optional
|
|
8
|
+
from enum import Enum
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class DocumentType(Enum):
|
|
12
|
+
"""公文类型枚举"""
|
|
13
|
+
NOTICE = "通知"
|
|
14
|
+
REPORT = "报告"
|
|
15
|
+
REQUEST = "请示"
|
|
16
|
+
LETTER = "函"
|
|
17
|
+
CIRCULAR = "通报"
|
|
18
|
+
MINUTES = "纪要"
|
|
19
|
+
DECISION = "决定"
|
|
20
|
+
OPINION = "意见"
|
|
21
|
+
REPLY = "批复"
|
|
22
|
+
ORDER = "命令(令)"
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class SmartPromptSystem:
|
|
26
|
+
"""智能提示系统"""
|
|
27
|
+
|
|
28
|
+
def __init__(self):
|
|
29
|
+
self.opening_prompts = self._init_opening_prompts()
|
|
30
|
+
self.ending_prompts = self._init_ending_prompts()
|
|
31
|
+
self.structure_hints = self._init_structure_hints()
|
|
32
|
+
self.language_templates = self._init_language_templates()
|
|
33
|
+
|
|
34
|
+
def _init_opening_prompts(self) -> Dict[str, List[str]]:
|
|
35
|
+
"""初始化开头语提示"""
|
|
36
|
+
return {
|
|
37
|
+
"通知": [
|
|
38
|
+
"为{subject},现{action}如下:",
|
|
39
|
+
"根据{basis},决定{action}。",
|
|
40
|
+
"为了{purpose},现将{content}通知如下:",
|
|
41
|
+
"经{authority}研究决定,现就{subject}通知如下:"
|
|
42
|
+
],
|
|
43
|
+
"报告": [
|
|
44
|
+
"现将{subject}报告如下:",
|
|
45
|
+
"关于{subject}情况报告如下:",
|
|
46
|
+
"根据{requirement},现将{content}报告如下:",
|
|
47
|
+
"按照{instruction},现就{subject}报告如下:"
|
|
48
|
+
],
|
|
49
|
+
"请示": [
|
|
50
|
+
"关于{subject}的请示",
|
|
51
|
+
"现就{subject}请示如下:",
|
|
52
|
+
"为{purpose},拟{action},现请示如下:"
|
|
53
|
+
],
|
|
54
|
+
"函": [
|
|
55
|
+
"关于{subject}的函",
|
|
56
|
+
"现就{subject}函告如下:",
|
|
57
|
+
"为{purpose},商请{action},现函告如下:"
|
|
58
|
+
],
|
|
59
|
+
"通报": [
|
|
60
|
+
"现将{subject}通报如下:",
|
|
61
|
+
"关于{subject}情况的通报",
|
|
62
|
+
"为{purpose},现将{content}通报如下:"
|
|
63
|
+
],
|
|
64
|
+
"纪要": [
|
|
65
|
+
"{meeting_name}纪要",
|
|
66
|
+
"{date},{organizer}召开{meeting_name},现将会议主要情况纪要如下:"
|
|
67
|
+
],
|
|
68
|
+
"决定": [
|
|
69
|
+
"为{purpose},决定{action}。",
|
|
70
|
+
"经{authority}研究,决定{action}。"
|
|
71
|
+
],
|
|
72
|
+
"意见": [
|
|
73
|
+
"为{purpose},现提出如下意见:",
|
|
74
|
+
"关于{subject}的意见",
|
|
75
|
+
"根据{basis},现就{subject}提出如下意见:"
|
|
76
|
+
],
|
|
77
|
+
"批复": [
|
|
78
|
+
"你{unit}《关于{subject}的请示》收悉。现批复如下:",
|
|
79
|
+
"关于{subject}的批复"
|
|
80
|
+
],
|
|
81
|
+
"命令(令)": [
|
|
82
|
+
"为{purpose},现发布命令如下:",
|
|
83
|
+
"根据{authority},现发布{order_type}:"
|
|
84
|
+
]
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
def _init_ending_prompts(self) -> Dict[str, List[str]]:
|
|
88
|
+
"""初始化结尾语提示"""
|
|
89
|
+
return {
|
|
90
|
+
"通知": [
|
|
91
|
+
"特此通知。",
|
|
92
|
+
"请认真贯彻执行。",
|
|
93
|
+
"请遵照执行。",
|
|
94
|
+
"以上通知,请认真贯彻落实。"
|
|
95
|
+
],
|
|
96
|
+
"报告": [
|
|
97
|
+
"特此报告。",
|
|
98
|
+
"以上报告,请审阅。",
|
|
99
|
+
"以上报告如有不妥,请指正。",
|
|
100
|
+
"专此报告。"
|
|
101
|
+
],
|
|
102
|
+
"请示": [
|
|
103
|
+
"妥否,请批示。",
|
|
104
|
+
"以上请示,请予批复。",
|
|
105
|
+
"当否,请批示。",
|
|
106
|
+
"以上请示如无不妥,请批复。"
|
|
107
|
+
],
|
|
108
|
+
"函": [
|
|
109
|
+
"请予研究函复。",
|
|
110
|
+
"特此函告。",
|
|
111
|
+
"盼复。",
|
|
112
|
+
"请予支持为盼。",
|
|
113
|
+
"特此函达。"
|
|
114
|
+
],
|
|
115
|
+
"通报": [
|
|
116
|
+
"特此通报。",
|
|
117
|
+
"望各单位引以为戒。",
|
|
118
|
+
"希各单位认真学习借鉴。"
|
|
119
|
+
],
|
|
120
|
+
"纪要": [
|
|
121
|
+
"(纪要一般不写结尾语)"
|
|
122
|
+
],
|
|
123
|
+
"决定": [
|
|
124
|
+
"(决定一般不写结尾语)",
|
|
125
|
+
"本决定自发布之日起施行。"
|
|
126
|
+
],
|
|
127
|
+
"意见": [
|
|
128
|
+
"以上意见,请结合实际贯彻执行。",
|
|
129
|
+
"以上意见如无不妥,请批转各地执行。"
|
|
130
|
+
],
|
|
131
|
+
"批复": [
|
|
132
|
+
"此复。",
|
|
133
|
+
"特此批复。"
|
|
134
|
+
],
|
|
135
|
+
"命令(令)": [
|
|
136
|
+
"(命令一般不写结尾语)",
|
|
137
|
+
"此令。"
|
|
138
|
+
]
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
def _init_structure_hints(self) -> Dict[str, List[str]]:
|
|
142
|
+
"""初始化结构提示"""
|
|
143
|
+
return {
|
|
144
|
+
"通知": [
|
|
145
|
+
"一、{背景和目的}",
|
|
146
|
+
"二、{主要内容}",
|
|
147
|
+
"三、{具体要求}",
|
|
148
|
+
"四、{执行时间}"
|
|
149
|
+
],
|
|
150
|
+
"报告": [
|
|
151
|
+
"一、{工作背景}",
|
|
152
|
+
"二、{主要做法}",
|
|
153
|
+
"三、{取得成效}",
|
|
154
|
+
"四、{存在问题}",
|
|
155
|
+
"五、{下一步打算}"
|
|
156
|
+
],
|
|
157
|
+
"请示": [
|
|
158
|
+
"一、{请示事由}",
|
|
159
|
+
"二、{请示事项}",
|
|
160
|
+
"三、{请示理由}",
|
|
161
|
+
"四、{建议方案}"
|
|
162
|
+
],
|
|
163
|
+
"函": [
|
|
164
|
+
"一、{发函事由}",
|
|
165
|
+
"二、{主要内容}",
|
|
166
|
+
"三、{请求事项}"
|
|
167
|
+
],
|
|
168
|
+
"通报": [
|
|
169
|
+
"一、{通报事由}",
|
|
170
|
+
"二、{基本情况}",
|
|
171
|
+
"三、{经验教训}",
|
|
172
|
+
"四、{工作要求}"
|
|
173
|
+
],
|
|
174
|
+
"纪要": [
|
|
175
|
+
"会议时间:{time}",
|
|
176
|
+
"会议地点:{location}",
|
|
177
|
+
"参会人员:{participants}",
|
|
178
|
+
"会议议题:{agenda}",
|
|
179
|
+
"会议内容:{content}",
|
|
180
|
+
"会议决定:{decisions}"
|
|
181
|
+
],
|
|
182
|
+
"决定": [
|
|
183
|
+
"一、{决定事由}",
|
|
184
|
+
"二、{决定事项}",
|
|
185
|
+
"三、{执行要求}"
|
|
186
|
+
],
|
|
187
|
+
"意见": [
|
|
188
|
+
"一、{指导思想}",
|
|
189
|
+
"二、{基本原则}",
|
|
190
|
+
"三、{主要目标}",
|
|
191
|
+
"四、{重点任务}",
|
|
192
|
+
"五、{保障措施}"
|
|
193
|
+
],
|
|
194
|
+
"批复": [
|
|
195
|
+
"一、{批复依据}",
|
|
196
|
+
"二、{批复意见}",
|
|
197
|
+
"三、{执行要求}"
|
|
198
|
+
],
|
|
199
|
+
"命令(令)": [
|
|
200
|
+
"一、{命令事由}",
|
|
201
|
+
"二、{命令事项}",
|
|
202
|
+
"三、{执行要求}"
|
|
203
|
+
]
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
def _init_language_templates(self) -> Dict[str, Dict[str, str]]:
|
|
207
|
+
"""初始化语言模板"""
|
|
208
|
+
return {
|
|
209
|
+
"通知": {
|
|
210
|
+
"subject": "事由",
|
|
211
|
+
"action": "行动",
|
|
212
|
+
"basis": "依据",
|
|
213
|
+
"purpose": "目的",
|
|
214
|
+
"content": "内容",
|
|
215
|
+
"authority": "权威机关"
|
|
216
|
+
},
|
|
217
|
+
"报告": {
|
|
218
|
+
"subject": "报告事项",
|
|
219
|
+
"requirement": "要求",
|
|
220
|
+
"instruction": "指示",
|
|
221
|
+
"content": "内容"
|
|
222
|
+
},
|
|
223
|
+
"请示": {
|
|
224
|
+
"subject": "请示事项",
|
|
225
|
+
"purpose": "目的",
|
|
226
|
+
"action": "行动"
|
|
227
|
+
},
|
|
228
|
+
"函": {
|
|
229
|
+
"subject": "函告事项",
|
|
230
|
+
"purpose": "目的",
|
|
231
|
+
"action": "行动"
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
def get_opening_prompt(self, doc_type: str, context: Optional[Dict] = None) -> List[str]:
|
|
236
|
+
"""获取开头语提示"""
|
|
237
|
+
prompts = self.opening_prompts.get(doc_type, [])
|
|
238
|
+
|
|
239
|
+
if context:
|
|
240
|
+
filled_prompts = []
|
|
241
|
+
for prompt in prompts:
|
|
242
|
+
try:
|
|
243
|
+
filled_prompt = prompt.format(**context)
|
|
244
|
+
filled_prompts.append(filled_prompt)
|
|
245
|
+
except KeyError:
|
|
246
|
+
filled_prompts.append(prompt)
|
|
247
|
+
return filled_prompts
|
|
248
|
+
|
|
249
|
+
return prompts
|
|
250
|
+
|
|
251
|
+
def get_ending_prompt(self, doc_type: str) -> List[str]:
|
|
252
|
+
"""获取结尾语提示"""
|
|
253
|
+
return self.ending_prompts.get(doc_type, [])
|
|
254
|
+
|
|
255
|
+
def get_structure_hint(self, doc_type: str) -> List[str]:
|
|
256
|
+
"""获取结构提示"""
|
|
257
|
+
return self.structure_hints.get(doc_type, [])
|
|
258
|
+
|
|
259
|
+
def get_language_template(self, doc_type: str) -> Dict[str, str]:
|
|
260
|
+
"""获取语言模板"""
|
|
261
|
+
return self.language_templates.get(doc_type, {})
|
|
262
|
+
|
|
263
|
+
def suggest_title(self, doc_type: str, issuer: str, subject: str) -> str:
|
|
264
|
+
"""建议标题"""
|
|
265
|
+
return f"{issuer}关于{subject}的{doc_type}"
|
|
266
|
+
|
|
267
|
+
def suggest_doc_number(self, issuer_abbr: str, year: int, seq: int) -> str:
|
|
268
|
+
"""建议发文字号"""
|
|
269
|
+
return f"{issuer_abbr}〔{year}〕{seq}号"
|
|
270
|
+
|
|
271
|
+
def get_contextual_hint(self, doc_type: str, field: str) -> str:
|
|
272
|
+
"""获取上下文提示"""
|
|
273
|
+
hints = {
|
|
274
|
+
"issuer": "发文机关是公文的制发机关,应使用全称或规范化简称",
|
|
275
|
+
"recipient": "主送机关是公文的主要受理机关,应当使用全称、规范化简称或同类型机关统称",
|
|
276
|
+
"title": "标题由发文机关名称、事由和文种组成,应当准确简要地概括公文的主要内容",
|
|
277
|
+
"doc_number": "发文字号由发文机关代字、年份和发文顺序号组成,年份用六角括号〔〕括入",
|
|
278
|
+
"date": "成文日期署会议通过或者发文机关负责人签发的日期,用阿拉伯数字将年、月、日标全",
|
|
279
|
+
"body": "正文是公文的主体,用来表述公文的内容,应当条理清楚、文字简练、用词准确"
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
return hints.get(field, "")
|
|
283
|
+
|
|
284
|
+
def generate_sample_content(self, doc_type: str) -> str:
|
|
285
|
+
"""生成示例内容"""
|
|
286
|
+
samples = {
|
|
287
|
+
"通知": """
|
|
288
|
+
为加强安全管理,防范安全事故发生,现就开展2026年度安全检查工作通知如下:
|
|
289
|
+
|
|
290
|
+
一、检查时间
|
|
291
|
+
2026年3月15日至2026年4月15日。
|
|
292
|
+
|
|
293
|
+
二、检查范围
|
|
294
|
+
公司各部门、各下属单位。
|
|
295
|
+
|
|
296
|
+
三、检查内容
|
|
297
|
+
(一)安全生产责任制落实情况;
|
|
298
|
+
(二)安全管理制度执行情况;
|
|
299
|
+
(三)安全隐患排查整改情况;
|
|
300
|
+
(四)安全教育培训开展情况。
|
|
301
|
+
|
|
302
|
+
四、工作要求
|
|
303
|
+
(一)高度重视,精心组织;
|
|
304
|
+
(二)认真检查,不留死角;
|
|
305
|
+
(三)发现问题,及时整改;
|
|
306
|
+
(四)总结经验,完善制度。
|
|
307
|
+
|
|
308
|
+
请各部门、各单位按照本通知要求,认真组织开展安全检查工作,确保安全生产。
|
|
309
|
+
|
|
310
|
+
特此通知。
|
|
311
|
+
""",
|
|
312
|
+
"报告": """
|
|
313
|
+
现将2025年度工作情况报告如下:
|
|
314
|
+
|
|
315
|
+
一、主要工作完成情况
|
|
316
|
+
(一)业务发展稳步推进;
|
|
317
|
+
(二)重点项目顺利实施;
|
|
318
|
+
(三)管理水平持续提升;
|
|
319
|
+
(四)队伍建设不断加强。
|
|
320
|
+
|
|
321
|
+
二、存在的问题和不足
|
|
322
|
+
(一)业务创新能力有待提高;
|
|
323
|
+
(二)人才队伍建设需要加强;
|
|
324
|
+
(三)内部管理机制有待完善。
|
|
325
|
+
|
|
326
|
+
三、2026年度工作计划
|
|
327
|
+
(一)加快业务发展;
|
|
328
|
+
(二)推进重点项目;
|
|
329
|
+
(三)加强队伍建设;
|
|
330
|
+
(四)完善管理机制。
|
|
331
|
+
|
|
332
|
+
以上报告,请审阅。
|
|
333
|
+
""",
|
|
334
|
+
"请示": """
|
|
335
|
+
关于购置办公设备的请示
|
|
336
|
+
|
|
337
|
+
因公司业务发展需要,现有办公设备已不能满足工作需求,拟购置一批办公设备。现请示如下:
|
|
338
|
+
|
|
339
|
+
一、购置原因
|
|
340
|
+
公司现有办公设备使用年限较长,性能下降,影响工作效率。
|
|
341
|
+
|
|
342
|
+
二、购置清单
|
|
343
|
+
(一)台式电脑10台;
|
|
344
|
+
(二)笔记本电脑5台;
|
|
345
|
+
(三)打印机3台;
|
|
346
|
+
(四)复印机1台。
|
|
347
|
+
|
|
348
|
+
三、预算金额
|
|
349
|
+
预计总费用约15万元。
|
|
350
|
+
|
|
351
|
+
四、资金来源
|
|
352
|
+
拟从公司年度预算中列支。
|
|
353
|
+
|
|
354
|
+
妥否,请批示。
|
|
355
|
+
"""
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
return samples.get(doc_type, "暂无示例内容")
|
|
359
|
+
|
|
360
|
+
|
|
361
|
+
def create_smart_prompt_system():
|
|
362
|
+
"""创建智能提示系统实例"""
|
|
363
|
+
return SmartPromptSystem()
|
|
@@ -0,0 +1,305 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: pdd-ba
|
|
3
|
+
description: "PDD框架下的业务分析Skill,运用专业方法论进行需求推演和建模。当用户需要业务流程分析、需求建模或PRD审核时自动触发。支持中文触发:业务分析、需求分析、需求建模、5W1H分析。"
|
|
4
|
+
license: MIT
|
|
5
|
+
compatibility: 需要PRD文档或业务需求描述
|
|
6
|
+
metadata:
|
|
7
|
+
author: "neuqik@hotmail.com"
|
|
8
|
+
version: "2.0"
|
|
9
|
+
parent: pdd-main
|
|
10
|
+
triggers:
|
|
11
|
+
- "/analyze" | "/audit" | "/doc"
|
|
12
|
+
- "分析业务流程" | "需求建模" | "PRD审核"
|
|
13
|
+
- "业务分析" | "5W1H" | "MECE"
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# PDD-Business Analysis / 业务分析技能
|
|
17
|
+
|
|
18
|
+
## Core Concept / 核心概念
|
|
19
|
+
|
|
20
|
+
### 🇨🇳
|
|
21
|
+
运用专业方法论进行需求分析和业务建模,输出结构化的业务分析结果,为后续功能点提取和开发规格生成提供基础。
|
|
22
|
+
|
|
23
|
+
**输入**: PRD文档/业务需求描述/流程说明 | **输出**: 业务分析报告/用例图/流程图/状态图/CRUD矩阵 | **不负责**: 代码实现/测试编写/架构设计
|
|
24
|
+
|
|
25
|
+
### 🇺🇸
|
|
26
|
+
Applies professional methodology for requirement analysis and business modeling, outputting structured business analysis results as the foundation for subsequent feature extraction and development spec generation.
|
|
27
|
+
|
|
28
|
+
**Input**: PRD documents / Business requirement descriptions / Process specifications | **Output**: Business analysis report / Use case diagrams / Flowcharts / State diagrams / CRUD matrix | **NOT responsible for**: Code implementation / Test writing / Architecture design
|
|
29
|
+
|
|
30
|
+
## 方法论工具箱 / Methodology Toolbox
|
|
31
|
+
|
|
32
|
+
### 🇨🇳
|
|
33
|
+
### 5W1H 分析法
|
|
34
|
+
|
|
35
|
+
| 维度 | 问题 | 分析要点 |
|
|
36
|
+
|------|------|---------|
|
|
37
|
+
| **Why** | 为什么做? | 业务背景、目标、价值 |
|
|
38
|
+
| **What** | 做什么? | 功能范围、业务内容 |
|
|
39
|
+
| **Who** | 谁来做? | 角色划分、职责边界 |
|
|
40
|
+
| **When** | 何时做? | 时间要求、里程碑 |
|
|
41
|
+
| **Where** | 在哪做? | 使用场景、环境 |
|
|
42
|
+
| **How** | 怎么做? | 实现方式、流程 |
|
|
43
|
+
|
|
44
|
+
### MECE 原则
|
|
45
|
+
|
|
46
|
+
确保业务分析无遗漏、无重叠: 相互独立(各分析项不交叉重叠) | 完全穷尽(覆盖所有业务场景)
|
|
47
|
+
|
|
48
|
+
**检验清单**: 子类别是否相互独立? | 所有类别是否覆盖完整? | 是否有遗漏的业务场景? | 是否有重叠的功能定义?
|
|
49
|
+
|
|
50
|
+
### CRUD 矩阵
|
|
51
|
+
|
|
52
|
+
分析实体与操作的对应关系(实体 × Create/Read/Update/Delete + 列表/导出)
|
|
53
|
+
|
|
54
|
+
### 🇺🇸
|
|
55
|
+
### 5W1H Analysis Method
|
|
56
|
+
|
|
57
|
+
| Dimension | Question | Analysis Points |
|
|
58
|
+
|-----------|----------|----------------|
|
|
59
|
+
| **Why** | Why do it? | Business background, goals, value |
|
|
60
|
+
| **What** | What to do? | Feature scope, business content |
|
|
61
|
+
| **Who** | Who does it? | Role division, responsibility boundaries |
|
|
62
|
+
| **When** | When to do? | Time requirements, milestones |
|
|
63
|
+
| **Where** | Where to do? | Usage scenarios, environment |
|
|
64
|
+
| **How** | How to do? | Implementation approach, process |
|
|
65
|
+
|
|
66
|
+
### MECE Principle
|
|
67
|
+
|
|
68
|
+
Ensure business analysis is complete and non-overlapping: Mutually Exclusive (analysis items don't overlap) | Collectively Exhaustive (covers all business scenarios)
|
|
69
|
+
|
|
70
|
+
**Checklist**: Are sub-categories mutually exclusive? | Are all categories fully covered? | Any missing business scenarios? | Any overlapping feature definitions?
|
|
71
|
+
|
|
72
|
+
### CRUD Matrix
|
|
73
|
+
|
|
74
|
+
Analyze entity-operation mapping (entity × Create/Read/Update/Delete + List/Export)
|
|
75
|
+
|
|
76
|
+
## 分析流程 / Analysis Flow
|
|
77
|
+
|
|
78
|
+
### 🇨🇳
|
|
79
|
+
### Step 1: 需求收集
|
|
80
|
+
PRD文档原文 | 业务流程描述 | 业务规则文档 | 现有系统截图/文档 | 竞品分析资料 → 输出:原始需求清单
|
|
81
|
+
|
|
82
|
+
### Step 2: 5W1H 分析
|
|
83
|
+
|
|
84
|
+
对每个需求进行六维分析:
|
|
85
|
+
- **Why**: 业务背景/核心价值/成功标准
|
|
86
|
+
- **What**: 功能描述/范围边界/不做事项
|
|
87
|
+
- **Who**: 发起角色/参与角色/审批角色/受益角色
|
|
88
|
+
- **When**: 开始时间/结束时间/周期特性(实时/周期/事件)
|
|
89
|
+
- **Where**: 使用场景/使用环境/接入方式
|
|
90
|
+
- **How**: 实现方式/关键流程/技术约束
|
|
91
|
+
|
|
92
|
+
### Step 3: 业务建模
|
|
93
|
+
|
|
94
|
+
**a. 用例图(Use Case Diagram)**: 参与者+用例+关系
|
|
95
|
+
|
|
96
|
+
**用例模板**:
|
|
97
|
+
```markdown
|
|
98
|
+
### UC-[编号]: [用例名称]
|
|
99
|
+
**参与者**: [主要参与者]
|
|
100
|
+
**前置条件**: [进入系统前的状态]
|
|
101
|
+
**基本流程**: 1.[步骤1] → 2.[步骤2] → 3.[步骤3]
|
|
102
|
+
**扩展流程**: [条件A]:[扩展1] | [条件B]:[扩展2]
|
|
103
|
+
**异常流程**: [异常1]:[处理方式]
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
**b. 流程图(Process Flow)**: 开始→判断条件→分支处理→循环→结束
|
|
107
|
+
|
|
108
|
+
**c. 状态图(State Diagram)**:
|
|
109
|
+
|
|
110
|
+
**状态定义模板**:
|
|
111
|
+
```markdown
|
|
112
|
+
### 实体状态机
|
|
113
|
+
**实体**: [实体名称]
|
|
114
|
+
| 状态 | 代码 | 含义 | 可转入 |
|
|
115
|
+
|------|------|------|--------|
|
|
116
|
+
| 草稿 | DRAFT | 初始状态 | SUBMITTED |
|
|
117
|
+
| 已提交 | SUBMITTED | 已提交待审核 | APPROVED,REJECTED |
|
|
118
|
+
| 已审批 | APPROVED | 审批通过 | ARCHIVED |
|
|
119
|
+
| 已拒绝 | REJECTED | 审批拒绝 | DRAFT |
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
### Step 4: CRUD 矩阵生成
|
|
123
|
+
实体 × 创建/读取/更新/删除/列表/导出 的完整操作矩阵
|
|
124
|
+
|
|
125
|
+
### Step 5: 业务规则提取
|
|
126
|
+
|
|
127
|
+
| 规则ID | 规则描述 | 约束类型 | 优先级 |
|
|
128
|
+
|--------|---------|---------|--------|
|
|
129
|
+
| BR-001 | [规则描述] | 硬性/软性规则 | P0/P1/P2 |
|
|
130
|
+
|
|
131
|
+
### 🇺🇸
|
|
132
|
+
### Step 1: Requirement Gathering
|
|
133
|
+
PRD document text | Business process descriptions | Business rule documents | Existing system screenshots/docs | Competitive analysis materials → Output: Raw requirement list
|
|
134
|
+
|
|
135
|
+
### Step 2: 5W1H Analysis
|
|
136
|
+
|
|
137
|
+
Six-dimensional analysis for each requirement:
|
|
138
|
+
- **Why**: Business background / Core value / Success criteria
|
|
139
|
+
- **What**: Feature description / Scope boundaries / Out of scope items
|
|
140
|
+
- **Who**: Initiating role / Participating roles / Approval roles / Beneficiary roles
|
|
141
|
+
- **When**: Start time / End time / Periodicity (real-time/cyclical/event)
|
|
142
|
+
- **Where**: Usage scenarios / Usage environment / Access method
|
|
143
|
+
- **How**: Implementation approach / Key processes / Technical constraints
|
|
144
|
+
|
|
145
|
+
### Step 3: Business Modeling
|
|
146
|
+
|
|
147
|
+
**a. Use Case Diagram**: Actors + Use cases + Relationships
|
|
148
|
+
|
|
149
|
+
**Use Case Template**:
|
|
150
|
+
```markdown
|
|
151
|
+
### UC-[ID]: [Use Case Name]
|
|
152
|
+
**Actors**: [Primary actor]
|
|
153
|
+
**Preconditions**: [State before entering system]
|
|
154
|
+
**Basic Flow**: 1.[Step 1] → 2.[Step 2] → 3.[Step 3]
|
|
155
|
+
**Alternative Flows**: [Condition A]:[Alt 1] | [Condition B]:[Alt 2]
|
|
156
|
+
**Exception Flows**: [Exception 1]:[Handling]
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
**b. Process Flow**: Start → Decision → Branch processing → Loop → End
|
|
160
|
+
|
|
161
|
+
**c. State Diagram**:
|
|
162
|
+
|
|
163
|
+
**State Definition Template**:
|
|
164
|
+
```markdown
|
|
165
|
+
### Entity State Machine
|
|
166
|
+
**Entity**: [Entity Name]
|
|
167
|
+
| State | Code | Meaning | Transitions To |
|
|
168
|
+
|-------|------|---------|---------------|
|
|
169
|
+
| Draft | DRAFT | Initial state | SUBMITTED |
|
|
170
|
+
| Submitted | SUBMITTED | Pending review | APPROVED, REJECTED |
|
|
171
|
+
| Approved | APPROVED | Review passed | ARCHIVED |
|
|
172
|
+
| Rejected | REJECTED | Review rejected | DRAFT |
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
### Step 4: CRUD Matrix Generation
|
|
176
|
+
Complete operation matrix: Entity × Create/Read/Update/Delete/List/Export
|
|
177
|
+
|
|
178
|
+
### Step 5: Business Rule Extraction
|
|
179
|
+
|
|
180
|
+
| Rule ID | Rule Description | Constraint Type | Priority |
|
|
181
|
+
|---------|-----------------|-----------------|----------|
|
|
182
|
+
| BR-001 | [Rule description] | Hard/Soft rule | P0/P1/P2 |
|
|
183
|
+
|
|
184
|
+
## 输出规范 / Output Specification
|
|
185
|
+
|
|
186
|
+
### 🇨🇳
|
|
187
|
+
### 业务分析报告结构
|
|
188
|
+
1. **概述**: 文档信息(模块编号/名称/日期/版本) | 业务背景 | 目标与价值
|
|
189
|
+
2. **5W1H分析**: 详见Step 2
|
|
190
|
+
3. **用例分析**: 详见Step 3.a
|
|
191
|
+
4. **流程分析**: 详见Step 3.b
|
|
192
|
+
5. **状态分析**: 详见Step 3.c
|
|
193
|
+
6. **CRUD矩阵**: 详见Step 4
|
|
194
|
+
7. **业务规则**: 详见Step 5
|
|
195
|
+
8. **风险与假设**: 风险(ID/描述/影响/概率/应对) | 假设(ID/描述/验证方式)
|
|
196
|
+
9. **附录**: 术语表 | 参考文档
|
|
197
|
+
|
|
198
|
+
### 🇺🇸
|
|
199
|
+
### Business Analysis Report Structure
|
|
200
|
+
1. **Overview**: Document info (module number/name/date/version) | Business background | Goals & value
|
|
201
|
+
2. **5W1H Analysis**: See Step 2
|
|
202
|
+
3. **Use Case Analysis**: See Step 3.a
|
|
203
|
+
4. **Process Analysis**: See Step 3.b
|
|
204
|
+
5. **State Analysis**: See Step 3.c
|
|
205
|
+
6. **CRUD Matrix**: See Step 4
|
|
206
|
+
7. **Business Rules**: See Step 5
|
|
207
|
+
8. **Risks & Assumptions**: Risks (ID/description/impact/probability/mitigation) | Assumptions (ID/description/verification method)
|
|
208
|
+
9. **Appendix**: Glossary | Reference documents
|
|
209
|
+
|
|
210
|
+
## Guardrails / 安全护栏
|
|
211
|
+
|
|
212
|
+
### 🇨🇳
|
|
213
|
+
**必须遵守**: 每个需求必须有明确的5W1H分析 | 每个业务实体必须有状态定义 | CRUD矩阵必须覆盖所有业务操作 | 业务规则必须标注优先级
|
|
214
|
+
|
|
215
|
+
**避免事项**: ❌ 遗漏关键业务流程 | ❌ 状态定义不完整或不互斥 | ❌ 业务规则与实际业务不符 | ❌ 用例与流程描述不一致
|
|
216
|
+
|
|
217
|
+
### 🇺🇸
|
|
218
|
+
**MUST comply**: Every requirement MUST have complete 5W1H analysis | Every business entity MUST have state definitions | CRUD matrix MUST cover all business operations | Business rules MUST be marked with priority
|
|
219
|
+
|
|
220
|
+
**Avoid**: ❌ Missing critical business flows | ❌ Incomplete or non-exclusive state definitions | ❌ Business rules not matching actual business | ❌ Inconsistency between use cases and process descriptions
|
|
221
|
+
|
|
222
|
+
## 与其他技能协作 / Skill Collaboration
|
|
223
|
+
|
|
224
|
+
### 🇨🇳
|
|
225
|
+
| 协作技能 | 协作方式 | 传入数据 | 期望输出 |
|
|
226
|
+
|---------|---------|---------|---------|
|
|
227
|
+
| **pdd-main** | 流程调度 | 分析请求 | 业务分析报告 |
|
|
228
|
+
| **pdd-extract-features** | Sequential | 分析报告 | 功能点矩阵 |
|
|
229
|
+
| **pdd-generate-spec** | Sequential | 分析报告 | 开发规格 |
|
|
230
|
+
|
|
231
|
+
### 🇺🇸
|
|
232
|
+
| Collaborating Skill | Collaboration Mode | Input Data | Expected Output |
|
|
233
|
+
|--------------------|-------------------|------------|-----------------|
|
|
234
|
+
| **pdd-main** | Workflow scheduling | Analysis request | Business analysis report |
|
|
235
|
+
| **pdd-extract-features** | Sequential | Analysis report | Feature matrix |
|
|
236
|
+
| **pdd-generate-spec** | Sequential | Analysis report | Development spec |
|
|
237
|
+
|
|
238
|
+
---
|
|
239
|
+
|
|
240
|
+
## Iron Law / 核心铁律
|
|
241
|
+
|
|
242
|
+
### 🇨🇳
|
|
243
|
+
1. **方法论驱动分析**: 必须使用5W1H、MECE、CRUD等标准方法论进行分析,不得凭直觉或经验随意输出分析结果。
|
|
244
|
+
2. **不越界做技术决策**: 业务分析的产出是业务层面的描述(用例、流程、规则),不涉及具体技术实现方案、数据库设计或接口定义。
|
|
245
|
+
3. **完整性优先于速度**: 每个需求必须完成全部六个维度的5W1H分析,不得因为"看起来简单"而跳过某些维度。
|
|
246
|
+
4. **可追溯性保障**: 分析报告中的每个结论都必须能追溯到PRD文档原文或用户提供的业务资料,不得编造不存在业务规则。
|
|
247
|
+
5. **模型一致性**: 用例图、流程图、状态图之间必须保持一致,同一实体在不同图中的行为描述不得矛盾。
|
|
248
|
+
|
|
249
|
+
**违规示例**: ❌ 在业务分析中直接设计数据库表结构 | ❌ 因为"登录功能很简单"而跳过其5W1H分析 | ❌ 编造PRD中未提及的业务规则 | ❌ 用例图中显示的操作在流程图中没有对应步骤 | ❌ 使用非标准术语而不在术语表中定义
|
|
250
|
+
|
|
251
|
+
**合规示例**: ✅ 对每个需求执行完整的5W1H分析并记录到报告中 | ✅ 输出用例图和流程图时保持参与者与操作的一致性 | ✅ 所有业务规则都标注来源(如"源自PRD第3章第2节") | ✅ 在术语表中明确定义所有专业词汇 | ✅ 使用MECE原则检验功能点分类是否完整且互斥
|
|
252
|
+
|
|
253
|
+
### 🇺🇸
|
|
254
|
+
1. **Methodology-Driven Analysis**: MUST use standard methodologies (5W1H, MECE, CRUD) for analysis. NEVER output results based on intuition or experience alone.
|
|
255
|
+
2. **No Technical Decision Overreach**: Business analysis outputs are business-level descriptions (use cases, processes, rules). Must NOT involve specific technical implementations, database designs, or API definitions.
|
|
256
|
+
3. **Completeness Over Speed**: Every requirement MUST complete all six dimensions of 5W1H analysis. NEVER skip dimensions because something "looks simple".
|
|
257
|
+
4. **Traceability Guarantee**: Every conclusion in the analysis report MUST be traceable to PRD document text or user-provided business materials. NEVER fabricate non-existent business rules.
|
|
258
|
+
5. **Model Consistency**: Use case diagrams, flowcharts, and state diagrams MUST remain consistent. The same entity's behavior must not contradict across different diagrams.
|
|
259
|
+
|
|
260
|
+
**Violation Examples**: ❌ Designing database table structures directly in business analysis | ❌ Skipping 5W1H analysis because "login is simple" | ❌ Fabricating business rules not mentioned in PRD | ❌ Operations in use case diagram have no corresponding steps in flowchart | ❌ Using non-standard terms without defining them in glossary
|
|
261
|
+
|
|
262
|
+
**Compliance Examples**: ✅ Execute complete 5W1H analysis for each requirement and record in report | ✅ Maintain consistency between actors and operations when outputting use case and process diagrams | ✅ Cite sources for all business rules (e.g., "from PRD Ch.3 Sec.2") | ✅ Define all technical terms clearly in glossary | ✅ Use MECE principle to verify feature classification is complete and mutually exclusive
|
|
263
|
+
|
|
264
|
+
---
|
|
265
|
+
|
|
266
|
+
## Rationalization Table / 合理化防御表
|
|
267
|
+
|
|
268
|
+
| # | Trap / 陷阱 | Question / 请问自己 | Action / 应该怎么做 |
|
|
269
|
+
|---|-------------|------------------|------------------|
|
|
270
|
+
| 1 | "这个需求很明显,不用写那么详细"<br>"This requirement is obvious, no need for detail" | 明显的需求也可能有隐含的业务规则和边界条件 | 至少完成最小化的5W1H分析模板,确保覆盖关键维度 |
|
|
271
|
+
| 2 | "PRD已经写得很清楚了,我总结一下就行"<br>"PRD is clear enough, I'll just summarize" | 总结会丢失细节,后续技能需要完整的分析结果作为输入 | 按照标准模板逐项填写,而非概括性总结 |
|
|
272
|
+
| 3 | "这个流程图画起来太费时间"<br>"Flowcharts take too much time" | 流程图是后续功能点提取的关键输入,缺失会导致遗漏 | 使用mermaid语法快速生成,确保至少覆盖主流程和异常分支 |
|
|
273
|
+
| 4 | "状态定义差不多就行"<br>"State definitions are good enough" | 不完整的状态定义会导致状态机实现缺陷 | 确保每个状态都有明确的转入/转出条件和触发事件 |
|
|
274
|
+
| 5 | "用户没提这个规则,但我认为应该有"<br>"User didn't mention this rule, but I think it should exist" | 编造业务规则会导致实现与实际需求不符 | 将推断标记为"假设"并请用户确认,不得直接作为确定规则 |
|
|
275
|
+
|
|
276
|
+
**常见陷阱 / Common Traps**:
|
|
277
|
+
1. **"表面分析"陷阱**: 只描述"做什么"而不深究"为什么"和"怎么做" → 强制完成5W1H全部分析,特别是Why和How维度
|
|
278
|
+
2. **"技术前置"陷阱**: 过早引入技术实现细节 → 始终保持业务视角,技术决策留给后续技能
|
|
279
|
+
3. **"模型脱节"陷阱**: 用例、流程、状态图各自独立绘制未进行交叉验证 → 在输出前强制执行模型一致性检查清单
|
|
280
|
+
4. **"术语泛滥"陷阱**: 大量使用专业术语但不提供定义 → 强制维护术语表,首次出现时必须定义
|
|
281
|
+
|
|
282
|
+
---
|
|
283
|
+
|
|
284
|
+
## Red Flags / 红旗警告
|
|
285
|
+
|
|
286
|
+
### Layer 1: Input Guards / 输入防护
|
|
287
|
+
- **INPUT-BA-001**: PRD文档为空或内容少于100字 → 🔴 CRITICAL → 终止并提示用户提供有效的PRD文档 / Terminate and prompt user to provide valid PRD document
|
|
288
|
+
- **INPUT-BA-002**: PRD文档格式无法解析(非文本/Markdown) → 🔴 CRITICAL → 提示支持的文档格式 / Prompt for supported document formats
|
|
289
|
+
- **INPUT-BA-003**: 用户只提供了需求标题而无详细描述 → 🟡 WARN → 尝试通过对话收集更多信息,基于有限信息进行分析但标注不确定性 / Try to gather more info via conversation, analyze with limited data but mark uncertainty
|
|
290
|
+
|
|
291
|
+
### Layer 2: Execution Guards / 执行防护
|
|
292
|
+
- **EXEC-BA-001**: 跳过5W1H任一维度的分析 → 🔴 CRITICAL → 补充完整后再继续 / Complete missing dimensions before continuing
|
|
293
|
+
- **EXEC-BA-002**: 业务规则未标注优先级(P0/P1/P2) → 🟡 WARN → 补充优先级标注,默认设为P1 / Add priority labels, default to P1
|
|
294
|
+
- **EXEC-BA-003**: CRUD矩阵未覆盖所有已识别的实体 → 🔴 CRITICAL → 补充遗漏实体的CRUD分析 / Add CRUD analysis for missing entities
|
|
295
|
+
- **EXEC-BA-004**: 状态机的状态转换缺少触发事件或条件 → 🟡 WARN → 补充转换条件说明 / Add transition condition descriptions
|
|
296
|
+
|
|
297
|
+
### Layer 3: Output Guards / 输出防护
|
|
298
|
+
- **OUTPUT-BA-001**: 业务分析报告缺少风险与假设章节 → 🔴 CRITICAL → 补充风险识别和假设声明 / Add risk identification and assumption statements
|
|
299
|
+
- **OUTPUT-BA-002**: 报告中的结论无法追溯到源文档 → 🟡 WARN → 补充引用来源或标记为推断 / Add citation sources or mark as inference
|
|
300
|
+
- **OUTPUT-BA-003**: 术语表中有未定义的术语 → 🟡 WARN → 补充术语定义或替换为通俗表达 / Define terms or replace with plain language
|
|
301
|
+
|
|
302
|
+
**Trigger Handling / 触发处理流程:**
|
|
303
|
+
🔴 CRITICAL → 立即停止,报告问题详情,等待指示 | Stop immediately & report details, wait for instructions
|
|
304
|
+
🟡 WARN → 记录警告到分析日志,尝试自动修复,在最终报告中标注 | Log warning, attempt auto-fix, annotate in final report
|
|
305
|
+
🔵 INFO → 记录信息,正常继续 | Log info, continue normally
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"name": "pdd-ba", "version": "1.0.0", "category": "core", "description": "PDD framework business analysis Skill using professional methodology for requirement elicitation and modeling. Invoke when users input /analyze, /audit, /doc commands, or need business process analysis, requirement modeling, PRD review, stakeholder analysis, or 5W1H analysis. 支持中文触发:业务分析、需求分析、需求建模、5W1H分析。", "triggers": ["业务分析", "需求分析", "/analyze", "/audit", "需求建模", "5W1H分析", "business analysis", "requirement modeling", "5W1H analysis", "PRD review"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[{"name": "SKILL.md-exists", "description": "技能文件存在且格式正确", "type": "structure", "expect": {"exists": true, "hasDescription": true}, "checks": {"file_exists": "SKILL.md"}}, {"name": "_meta.json-valid", "description": "元数据文件格式正确", "type": "structure", "expect": {"exists": true, "hasName": true, "hasVersion": true}, "checks": {"file_exists": "_meta.json"}}, {"name": "has-behavior-shaping", "description": "包含完整的行为塑造章节", "type": "quality", "expect": {"complete": true}, "contains": ["Iron Law", "Rationalization", "Red Flags"]}, {"name": "analysis-methods-defined", "description": "定义了业务分析方法论", "type": "content", "contains": ["分析", "方法论", "需求", "stakeholder"]}, {"name": "output-format-specified", "description": "明确了输出文档格式", "type": "content", "contains": ["输出", "格式", "模板", "template"]}]
|