pdd-skills 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (261) hide show
  1. package/README.md +1478 -0
  2. package/bin/pdd.js +354 -0
  3. package/config/bpmn-rules.yaml +166 -0
  4. package/config/checkstyle.xml +105 -0
  5. package/config/eslint.config.js +48 -0
  6. package/config/pmd.xml +91 -0
  7. package/config/prd-rules.yaml +113 -0
  8. package/config/ruff.toml +45 -0
  9. package/config/sqlfluff.cfg +82 -0
  10. package/hooks/hook-executor.js +332 -0
  11. package/index.js +43 -0
  12. package/lib/api-routes.js +750 -0
  13. package/lib/api-server.js +408 -0
  14. package/lib/cache/cache-config.js +209 -0
  15. package/lib/cache/system-cache.js +852 -0
  16. package/lib/config-manager.js +373 -0
  17. package/lib/generate.js +528 -0
  18. package/lib/grpc/grpc-routes.js +1134 -0
  19. package/lib/grpc/grpc-server.js +912 -0
  20. package/lib/grpc/proto-definitions.js +1033 -0
  21. package/lib/init.js +172 -0
  22. package/lib/iteration/auto-fixer.js +1025 -0
  23. package/lib/iteration/auto-reviewer.js +923 -0
  24. package/lib/iteration/controller.js +577 -0
  25. package/lib/list.js +130 -0
  26. package/lib/mcp-server.js +548 -0
  27. package/lib/openclaw/api-integration.js +535 -0
  28. package/lib/openclaw/cli-integration.js +567 -0
  29. package/lib/openclaw/data-sync.js +845 -0
  30. package/lib/openclaw/openclaw-adapter.js +783 -0
  31. package/lib/plugin/example-plugins/code-stats/index.js +332 -0
  32. package/lib/plugin/example-plugins/code-stats/plugin.json +1 -0
  33. package/lib/plugin/example-plugins/custom-linter/index.js +472 -0
  34. package/lib/plugin/example-plugins/custom-linter/plugin.json +1 -0
  35. package/lib/plugin/example-plugins/hello-world/index.js +86 -0
  36. package/lib/plugin/example-plugins/hello-world/plugin.json +1 -0
  37. package/lib/plugin/plugin-manager.js +655 -0
  38. package/lib/plugin/plugin-sdk.js +565 -0
  39. package/lib/plugin/sandbox.js +627 -0
  40. package/lib/quality/rules/maintainability.js +418 -0
  41. package/lib/quality/rules/performance.js +498 -0
  42. package/lib/quality/rules/readability.js +441 -0
  43. package/lib/quality/rules/robustness.js +504 -0
  44. package/lib/quality/rules/security.js +444 -0
  45. package/lib/quality/scorer.js +576 -0
  46. package/lib/report.js +669 -0
  47. package/lib/sdk-base.js +301 -0
  48. package/lib/sdk-js.js +446 -0
  49. package/lib/sdk-python/README.md +546 -0
  50. package/lib/sdk-python/examples/basic_usage.py +450 -0
  51. package/lib/sdk-python/pdd_sdk/__init__.py +180 -0
  52. package/lib/sdk-python/pdd_sdk/client.py +1170 -0
  53. package/lib/sdk-python/pdd_sdk/events.py +423 -0
  54. package/lib/sdk-python/pdd_sdk/exceptions.py +158 -0
  55. package/lib/sdk-python/pdd_sdk/models.py +518 -0
  56. package/lib/sdk-python/pdd_sdk/utils.py +759 -0
  57. package/lib/token/budget-alert.js +367 -0
  58. package/lib/token/budget-manager.js +485 -0
  59. package/lib/update.js +54 -0
  60. package/lib/utils/logger.js +88 -0
  61. package/lib/verify.js +741 -0
  62. package/lib/version.js +52 -0
  63. package/lib/vm/README.md +102 -0
  64. package/lib/vm/dashboard/api-routes.js +669 -0
  65. package/lib/vm/dashboard/server.js +391 -0
  66. package/lib/vm/dashboard/sse.js +358 -0
  67. package/lib/vm/dashboard/static/css/dashboard.css +1378 -0
  68. package/lib/vm/dashboard/static/index.html +118 -0
  69. package/lib/vm/dashboard/static/js/app.js +949 -0
  70. package/lib/vm/dashboard/static/js/charts.js +913 -0
  71. package/lib/vm/dashboard/static/js/kanban-view.js +1053 -0
  72. package/lib/vm/dashboard/static/js/pipeline-view.js +463 -0
  73. package/lib/vm/dashboard/static/js/quality-view.js +598 -0
  74. package/lib/vm/dashboard/static/js/system-view.js +1021 -0
  75. package/lib/vm/data-provider.js +1191 -0
  76. package/lib/vm/event-bus.js +402 -0
  77. package/lib/vm/hooks/extract-hook.js +307 -0
  78. package/lib/vm/hooks/generate-hook.js +374 -0
  79. package/lib/vm/hooks/hook-interface.js +458 -0
  80. package/lib/vm/hooks/report-hook.js +331 -0
  81. package/lib/vm/hooks/verify-hook.js +454 -0
  82. package/lib/vm/models.js +1003 -0
  83. package/lib/vm/reconciler.js +855 -0
  84. package/lib/vm/scanner.js +988 -0
  85. package/lib/vm/state-schema.js +955 -0
  86. package/lib/vm/state-store.js +733 -0
  87. package/lib/vm/tui/components/card.js +339 -0
  88. package/lib/vm/tui/components/progress-bar.js +368 -0
  89. package/lib/vm/tui/components/sparkline.js +327 -0
  90. package/lib/vm/tui/components/status-light.js +294 -0
  91. package/lib/vm/tui/components/table.js +370 -0
  92. package/lib/vm/tui/input.js +335 -0
  93. package/lib/vm/tui/renderer.js +548 -0
  94. package/lib/vm/tui/screens/kanban-screen.js +397 -0
  95. package/lib/vm/tui/screens/overview-screen.js +357 -0
  96. package/lib/vm/tui/screens/quality-screen.js +336 -0
  97. package/lib/vm/tui/screens/system-screen.js +379 -0
  98. package/lib/vm/tui/tui.js +805 -0
  99. package/package.json +1 -0
  100. package/scripts/cso-analyzer.js +198 -0
  101. package/scripts/eval-runner.js +359 -0
  102. package/scripts/i18n-checker.js +109 -0
  103. package/scripts/linter/activiti-linter.js +272 -0
  104. package/scripts/linter/prd-linter.js +162 -0
  105. package/scripts/linter/report-generator.js +207 -0
  106. package/scripts/linter/run-linters.js +285 -0
  107. package/scripts/linter/sql-linter.js +166 -0
  108. package/scripts/token-analyzer.js +162 -0
  109. package/scripts/vm-test.js +180 -0
  110. package/skills/core/official-doc-writer/LICENSE +21 -0
  111. package/skills/core/official-doc-writer/README.md +232 -0
  112. package/skills/core/official-doc-writer/SKILL.md +475 -0
  113. package/skills/core/official-doc-writer/_meta.json +1 -0
  114. package/skills/core/official-doc-writer/document_generator.py +580 -0
  115. package/skills/core/official-doc-writer/evals/default-evals.json +1 -0
  116. package/skills/core/official-doc-writer/examples.md +150 -0
  117. package/skills/core/official-doc-writer/fonts/FONTS_LIST.md +45 -0
  118. package/skills/core/official-doc-writer/fonts/README.md +141 -0
  119. package/skills/core/official-doc-writer/fonts/SIMFANG.TTF +0 -0
  120. package/skills/core/official-doc-writer/fonts/SIMHEI.TTF +0 -0
  121. package/skills/core/official-doc-writer/fonts/SIMKAI.TTF +0 -0
  122. package/skills/core/official-doc-writer/fonts/SIMSUN.TTC +0 -0
  123. package/skills/core/official-doc-writer/fonts//346/226/271/346/255/243/345/260/217/346/240/207/345/256/213GBK.TTF +0 -0
  124. package/skills/core/official-doc-writer/references/GBT_9704-2012_/345/205/232/346/224/277/346/234/272/345/205/263/345/205/254/346/226/207/346/240/274/345/274/217.md +422 -0
  125. package/skills/core/official-doc-writer/scripts/__pycache__/generate_official_doc.cpython-313.pyc +0 -0
  126. package/skills/core/official-doc-writer/scripts/dialog_manager.py +564 -0
  127. package/skills/core/official-doc-writer/scripts/generate_official_doc.py +252 -0
  128. package/skills/core/official-doc-writer/scripts/install_fonts.py +390 -0
  129. package/skills/core/official-doc-writer/scripts/smart_prompts.py +363 -0
  130. package/skills/core/pdd-ba/SKILL.md +305 -0
  131. package/skills/core/pdd-ba/_meta.json +1 -0
  132. package/skills/core/pdd-ba/evals/default-evals.json +1 -0
  133. package/skills/core/pdd-code-reviewer/SKILL.md +378 -0
  134. package/skills/core/pdd-code-reviewer/_meta.json +1 -0
  135. package/skills/core/pdd-code-reviewer/evals/default-evals.json +1 -0
  136. package/skills/core/pdd-doc-change/SKILL.md +350 -0
  137. package/skills/core/pdd-doc-change/_meta.json +1 -0
  138. package/skills/core/pdd-doc-change/evals/default-evals.json +1 -0
  139. package/skills/core/pdd-doc-gardener/SKILL.md +248 -0
  140. package/skills/core/pdd-doc-gardener/_meta.json +1 -0
  141. package/skills/core/pdd-doc-gardener/evals/default-evals.json +1 -0
  142. package/skills/core/pdd-entropy-reduction/SKILL.md +360 -0
  143. package/skills/core/pdd-entropy-reduction/_meta.json +1 -0
  144. package/skills/core/pdd-entropy-reduction/evals/default-evals.json +1 -0
  145. package/skills/core/pdd-entropy-reduction/references/entropy-report-template.md +287 -0
  146. package/skills/core/pdd-entropy-reduction/references/golden-principles.md +573 -0
  147. package/skills/core/pdd-entropy-reduction/scripts/entropy_scan.py +712 -0
  148. package/skills/core/pdd-extract-features/SKILL.md +320 -0
  149. package/skills/core/pdd-extract-features/_meta.json +1 -0
  150. package/skills/core/pdd-extract-features/evals/default-evals.json +1 -0
  151. package/skills/core/pdd-generate-spec/SKILL.md +418 -0
  152. package/skills/core/pdd-generate-spec/_meta.json +1 -0
  153. package/skills/core/pdd-generate-spec/evals/default-evals.json +1 -0
  154. package/skills/core/pdd-implement-feature/SKILL.md +332 -0
  155. package/skills/core/pdd-implement-feature/_meta.json +1 -0
  156. package/skills/core/pdd-implement-feature/evals/default-evals.json +1 -0
  157. package/skills/core/pdd-main/SKILL.md +540 -0
  158. package/skills/core/pdd-main/_meta.json +1 -0
  159. package/skills/core/pdd-main/evals/default-evals.json +1 -0
  160. package/skills/core/pdd-main/evals/evals.json +215 -0
  161. package/skills/core/pdd-verify-feature/SKILL.md +474 -0
  162. package/skills/core/pdd-verify-feature/_meta.json +1 -0
  163. package/skills/core/pdd-verify-feature/evals/default-evals.json +1 -0
  164. package/skills/core/pdd-vm/evals/default-evals.json +1 -0
  165. package/skills/core/traffic-accident-assessor/LICENSE +29 -0
  166. package/skills/core/traffic-accident-assessor/SKILL.md +439 -0
  167. package/skills/core/traffic-accident-assessor/evals/evals.json +1 -0
  168. package/skills/core/traffic-accident-assessor/references/accident-types.md +369 -0
  169. package/skills/core/traffic-accident-assessor/references/liability-rules.md +287 -0
  170. package/skills/core/traffic-accident-assessor/references/traffic-laws.md +226 -0
  171. package/skills/core/traffic-accident-assessor/references//351/253/230/345/260/224/345/244/253/350/257/264/346/230/216/344/271/246.pdf +32576 -106
  172. package/skills/core/traffic-accident-assessor/scripts/generate_official_statement.py +588 -0
  173. package/skills/core/traffic-accident-assessor/scripts/generate_report.py +495 -0
  174. package/skills/core/traffic-accident-assessor/scripts/generate_statement.py +528 -0
  175. package/skills/core/traffic-accident-assessor.zip +0 -0
  176. package/skills/entropy/expert-arch-enforcer/SKILL.md +292 -0
  177. package/skills/entropy/expert-arch-enforcer/_meta.json +1 -0
  178. package/skills/entropy/expert-arch-enforcer/evals/default-evals.json +1 -0
  179. package/skills/entropy/expert-auto-refactor/SKILL.md +327 -0
  180. package/skills/entropy/expert-auto-refactor/_meta.json +1 -0
  181. package/skills/entropy/expert-auto-refactor/evals/default-evals.json +1 -0
  182. package/skills/entropy/expert-code-quality/SKILL.md +468 -0
  183. package/skills/entropy/expert-code-quality/_meta.json +1 -0
  184. package/skills/entropy/expert-code-quality/evals/default-evals.json +1 -0
  185. package/skills/entropy/expert-code-quality/evals/evals.json +109 -0
  186. package/skills/entropy/expert-code-quality/references/code-smells.md +605 -0
  187. package/skills/entropy/expert-code-quality/references/design-patterns.md +1111 -0
  188. package/skills/entropy/expert-code-quality/references/refactoring-catalog.md +1281 -0
  189. package/skills/entropy/expert-code-quality/references/solid-principles.md +524 -0
  190. package/skills/entropy/expert-entropy-auditor/SKILL.md +276 -0
  191. package/skills/entropy/expert-entropy-auditor/_meta.json +1 -0
  192. package/skills/entropy/expert-entropy-auditor/evals/default-evals.json +1 -0
  193. package/skills/expert/expert-activiti/SKILL.md +497 -0
  194. package/skills/expert/expert-activiti/_meta.json +1 -0
  195. package/skills/expert/expert-mysql/SKILL.md +832 -0
  196. package/skills/expert/expert-mysql/_meta.json +1 -0
  197. package/skills/expert/expert-performance/SKILL.md +379 -0
  198. package/skills/expert/expert-performance/_meta.json +1 -0
  199. package/skills/expert/expert-performance/evals/default-evals.json +1 -0
  200. package/skills/expert/expert-ruoyi/SKILL.md +472 -0
  201. package/skills/expert/expert-ruoyi/_meta.json +1 -0
  202. package/skills/expert/expert-security/SKILL.md +1341 -0
  203. package/skills/expert/expert-security/_meta.json +1 -0
  204. package/skills/expert/expert-security/evals/default-evals.json +1 -0
  205. package/skills/expert/software-architect/SKILL.md +350 -0
  206. package/skills/expert/software-architect/_meta.json +1 -0
  207. package/skills/expert/software-engineer/SKILL.md +437 -0
  208. package/skills/expert/software-engineer/_meta.json +1 -0
  209. package/skills/expert/software-engineer/architecture.md +130 -0
  210. package/skills/expert/software-engineer/patterns.md +151 -0
  211. package/skills/expert/software-engineer/testing.md +135 -0
  212. package/skills/expert/system-architect/SKILL.md +628 -0
  213. package/skills/expert/system-architect/_meta.json +1 -0
  214. package/skills/expert/system-architect/assets/templates/ARCHITECTURE.md +25 -0
  215. package/skills/expert/system-architect/assets/templates/README.md +44 -0
  216. package/skills/expert/system-architect/references/js-ts-standards.md +18 -0
  217. package/skills/expert/system-architect/references/python-standards.md +19 -0
  218. package/skills/expert/system-architect/references/scaffolding.md +61 -0
  219. package/skills/expert/system-architect/references/security-checklist.md +21 -0
  220. package/skills/openspec/openspec-apply-change/SKILL.md +156 -0
  221. package/skills/openspec/openspec-apply-change/_meta.json +1 -0
  222. package/skills/openspec/openspec-archive-change/SKILL.md +114 -0
  223. package/skills/openspec/openspec-archive-change/_meta.json +1 -0
  224. package/skills/openspec/openspec-bulk-archive-change/SKILL.md +246 -0
  225. package/skills/openspec/openspec-bulk-archive-change/_meta.json +1 -0
  226. package/skills/openspec/openspec-continue-change/SKILL.md +118 -0
  227. package/skills/openspec/openspec-continue-change/_meta.json +1 -0
  228. package/skills/openspec/openspec-explore/SKILL.md +288 -0
  229. package/skills/openspec/openspec-explore/_meta.json +1 -0
  230. package/skills/openspec/openspec-ff-change/SKILL.md +101 -0
  231. package/skills/openspec/openspec-ff-change/_meta.json +1 -0
  232. package/skills/openspec/openspec-new-change/SKILL.md +74 -0
  233. package/skills/openspec/openspec-new-change/_meta.json +1 -0
  234. package/skills/openspec/openspec-onboard/SKILL.md +554 -0
  235. package/skills/openspec/openspec-onboard/_meta.json +1 -0
  236. package/skills/openspec/openspec-sync-specs/SKILL.md +138 -0
  237. package/skills/openspec/openspec-sync-specs/_meta.json +1 -0
  238. package/skills/openspec/openspec-verify-change/SKILL.md +168 -0
  239. package/skills/openspec/openspec-verify-change/_meta.json +1 -0
  240. package/skills/pr/pdd-multi-review/SKILL.md +534 -0
  241. package/skills/pr/pdd-multi-review/_meta.json +1 -0
  242. package/skills/pr/pdd-pr-batch/SKILL.md +303 -0
  243. package/skills/pr/pdd-pr-batch/_meta.json +1 -0
  244. package/skills/pr/pdd-pr-create/SKILL.md +344 -0
  245. package/skills/pr/pdd-pr-create/_meta.json +1 -0
  246. package/skills/pr/pdd-pr-merge/SKILL.md +286 -0
  247. package/skills/pr/pdd-pr-merge/_meta.json +1 -0
  248. package/skills/pr/pdd-pr-review/SKILL.md +217 -0
  249. package/skills/pr/pdd-pr-review/_meta.json +1 -0
  250. package/skills/pr/pdd-task-manager/SKILL.md +636 -0
  251. package/skills/pr/pdd-task-manager/_meta.json +1 -0
  252. package/skills/pr/pdd-template-engine/SKILL.md +306 -0
  253. package/skills/pr/pdd-template-engine/_meta.json +1 -0
  254. package/templates/behavior-shaping/iron-law-template.md +87 -0
  255. package/templates/behavior-shaping/rationalization-template.md +62 -0
  256. package/templates/behavior-shaping/red-flags-template.md +70 -0
  257. package/templates/bilingual-template.md +139 -0
  258. package/templates/config/default.yaml +47 -0
  259. package/templates/project/default/README.md +31 -0
  260. package/templates/project/frontend/README.md +46 -0
  261. package/templates/project/java/README.md +48 -0
@@ -0,0 +1 @@
1
+ {"name": "expert-security", "version": "1.0.0", "category": "expert", "description": "Security expert providing code vulnerability scanning, OWASP Top 10 compliance checking, and secure coding recommendations. Covers SQL injection, XSS, CSRF, authentication bypass, authorization flaws, and data protection. Invoke when security audit, vulnerability scan, penetration testing prep, or secure coding guidance needed. 支持中文触发:安全审计、漏洞扫描、安全编码、OWASP、渗透测试、代码安全。", "triggers": ["安全审计", "漏洞扫描", "安全编码", "OWASP检查", "渗透测试", "代码安全", "security audit", "vulnerability scan", "secure coding", "penetration test"]}
@@ -0,0 +1 @@
1
+ {"skill": "expert-security", "version": "1.0.0", "tests": [{"id": "SEC-001", "type": "structure", "name": "SKILL.md-exists", "check": "file_exists", "path": "SKILL.md"}, {"id": "SEC-002", "type": "structure", "name": "_meta.json-valid", "check": "file_exists", "path": "_meta.json"}, {"id": "SEC-003", "type": "quality", "name": "has-behavior-shaping", "check": "contains", "target": "SKILL.md", "contains": ["Iron Law", "Rationalization Table", "Red Flags"]}, {"id": "SEC-004", "type": "content", "name": "domain-sql-injection", "check": "contains", "target": "SKILL.md", "contains": ["SQL注入", "SQL injection", "PreparedStatement", "参数化查询"]}, {"id": "SEC-005", "type": "content", "name": "domain-xss-protection", "check": "contains", "target": "SKILL.md", "contains": ["XSS", "cross-site scripting", "转义", "escape"]}]}
@@ -0,0 +1,350 @@
1
+ ---
2
+ name: software-architect
3
+ description: "Software Architect designing scalable systems with maintainable patterns. Use when evaluating architectural trade-offs."
4
+ license: "MIT"
5
+ author: "neuqik@hotmail.com"
6
+ version: "2.0"
7
+ ---
8
+
9
+ # Software Architect
10
+
11
+ ## Overview
12
+
13
+ This skill focuses on:
14
+ - High-level system design and architectural patterns
15
+ - System boundaries and interfaces
16
+ - Data architecture decisions
17
+ - Scalability and reliability design
18
+ - Trade-off analysis and decision documentation
19
+
20
+ **Note**: This is a detailed architecture design skill, focusing on module boundaries and design decisions. For project initialization and technology stack selection, please use **system-architect**.
21
+
22
+ ## Directory Structure
23
+
24
+ ```
25
+ software-architect/
26
+ ├── SKILL.md # Skill definition file
27
+ └── LICENSE # MIT License
28
+ ```
29
+
30
+ ## Trigger Conditions
31
+
32
+ **Automatic Trigger:**
33
+ - Designing system architecture or module boundaries
34
+ - Evaluating architectural trade-offs (microservices vs monolith, SQL vs NoSQL)
35
+ - Discussing system-level scalability, reliability, or performance
36
+ - Making high-level technical decisions affecting multiple components
37
+ - Planning system evolution or migration strategies
38
+
39
+ **Manual Trigger:**
40
+ - User inputs commands like `/software-architect`, `/architecture`, `/design`, etc.
41
+
42
+ ---
43
+
44
+ ## Core Capabilities
45
+
46
+ ### 1. Design Principles
47
+
48
+ - **Simple until proven otherwise** — Complexity is a cost, not a feature
49
+ - **Separate what changes from what stays the same** — Draw boundaries at seams of change
50
+ - **Design for the next 10x, not 100x** — Over-engineering wastes resources
51
+ - **Make decisions reversible when possible** — Delay irreversible decisions until necessary
52
+ - **Constraints clarify design** — Embrace limits, don't fight them early
53
+
54
+ ---
55
+
56
+ ### 2. System Boundaries
57
+
58
+ - Define clear interfaces between components — Contracts enable independent evolution
59
+ - Draw boundaries where teams split — Conway's Law is real, design with it
60
+ - Data ownership at boundaries — Single source of truth for each entity
61
+ - Async communication for loose coupling — Sync calls create distributed monoliths
62
+ - Fail independently — One component's failure shouldn't cascade
63
+
64
+ ---
65
+
66
+ ### 3. Trade-off Analysis
67
+
68
+ - Every decision has costs — Articulate what you're giving up
69
+ - Consistency vs Availability vs Partition Tolerance — Pick two (CAP Theorem)
70
+ - Performance vs Maintainability — Optimize hot paths, keep the rest readable
71
+ - Build vs Buy — Build what differentiates, buy what's commodity
72
+ - Document "why not" for rejected alternatives — Future you needs context
73
+
74
+ ---
75
+
76
+ ### 4. Scalability
77
+
78
+ - Stateless services scale horizontally — State makes scaling hard
79
+ - Cache aggressively, invalidate carefully — Caching solves problems and creates them
80
+ - Databases are usually the bottleneck — Read replicas, sharding, or denormalize
81
+ - Queue what can be async — Users don't need to wait for everything
82
+ - Scale for expected load, provision for 3x peaks — Buffers prevent outages
83
+
84
+ ---
85
+
86
+ ### 5. Data Architecture
87
+
88
+ - Schema design constrains everything — Get it right early, migrations are expensive
89
+ - Normalize for writes, denormalize for reads — Optimize for access patterns
90
+ - Event sourcing when audit trail matters — Rebuild state from events
91
+ - CQRS when read/write patterns differ significantly — Separate models for each
92
+ - Data gravity is real — Move processing to data, not the other way around
93
+
94
+ ---
95
+
96
+ ### 6. Reliability
97
+
98
+ - Design for failure — Everything fails eventually, handle it gracefully
99
+ - Timeouts on all external calls — Hung connections cascade into outages
100
+ - Circuit breakers prevent cascading failures — Fail fast, recover gradually
101
+ - Idempotency enables retries — Duplicate messages shouldn't break state
102
+ - Graceful degradation beats total failure — Partial functionality beats error pages
103
+
104
+ ---
105
+
106
+ ### 7. Security
107
+
108
+ - Defense in depth — Multiple layers, no single point of failure
109
+ - Least privilege — Minimum permissions for each component
110
+ - Encrypt in transit and at rest — Assume network and disk are hostile
111
+ - Validate at boundaries — Don't trust input from outside your system
112
+ - Secrets management from day one — Retrofitting is painful
113
+
114
+ ---
115
+
116
+ ### 8. Evolution
117
+
118
+ - Design for replacement, not immortality — Components will be rewritten
119
+ - Incremental migration over big bang — Strangler fig pattern works
120
+ - APIs backward compatible — Breaking changes break trust
121
+ - Feature flags decouple deploy from release — Dark launch, gradual rollout
122
+ - Monitor before and after changes — Data beats intuition
123
+
124
+ ---
125
+
126
+ ### 9. Architecture Decision Records (ADR)
127
+
128
+ When making significant architectural decisions, use this template to document:
129
+
130
+ ```markdown
131
+ # ADR-[NUMBER]: [Decision Title]
132
+
133
+ ## Status
134
+ [Proposed | Accepted | Deprecated | Superseded]
135
+
136
+ ## Context
137
+ [Why this decision is needed — What problem are we solving?]
138
+
139
+ ## Decision
140
+ [What was decided — The actual decision]
141
+
142
+ ## Consequences
143
+ [What are the results — Positive and negative]
144
+
145
+ ## Alternatives Considered
146
+ [What other options were evaluated and why they were rejected]
147
+ ```
148
+
149
+ #### ADR Example
150
+
151
+ ```markdown
152
+ # ADR-001: Use PostgreSQL as Primary Database
153
+
154
+ ## Status
155
+ Accepted
156
+
157
+ ## Context
158
+ Need a reliable, ACID-compliant database for financial transactions.
159
+ System requires complex queries with joins and aggregations. Team has PostgreSQL expertise.
160
+
161
+ ## Decision
162
+ Use PostgreSQL as the primary database for the asset management system.
163
+
164
+ ## Consequences
165
+ **Positive:**
166
+ - ACID compliance ensures data integrity
167
+ - Strong ecosystem and community support
168
+ - Advanced features (JSONB, full-text search, window functions)
169
+ - Team productivity (familiar technology)
170
+
171
+ **Negative:**
172
+ - Vertical scaling limits (may need read replicas)
173
+ - Less flexible for unstructured data than NoSQL
174
+
175
+ ## Alternatives Considered
176
+ 1. **MySQL**: Fewer features, weaker JSON support
177
+ 2. **MongoDB**: No ACID transactions, not suitable for financial data
178
+ 3. **CockroachDB**: Too new, higher operational complexity
179
+ ```
180
+
181
+ ---
182
+
183
+ ### 10. Common Architectural Patterns
184
+
185
+ #### 10.1 Microservices vs Monolith
186
+
187
+ **Choose Monolith when:**
188
+ - Team size < 20 engineers
189
+ - Domain boundaries unclear
190
+ - Time to market is critical
191
+ - Operational complexity is a concern
192
+
193
+ **Choose Microservices when:**
194
+ - Multiple teams with clear ownership
195
+ - Different scalability needs per domain
196
+ - Independent deployment is critical
197
+ - Technology diversity is needed
198
+
199
+ #### 10.2 Event-Driven Architecture
200
+
201
+ **Use when:**
202
+ - Loose coupling between services needed
203
+ - Audit trail is important
204
+ - System needs to react to changes
205
+ - High throughput with eventual consistency
206
+
207
+ **Structure:**
208
+ ```
209
+ Service A → Event Bus → Service B
210
+ → Service C
211
+ → Service D
212
+ ```
213
+
214
+ #### 10.3 CQRS (Command Query Responsibility Segregation)
215
+
216
+ **Use when:**
217
+ - Read and write patterns differ significantly
218
+ - Need to optimize read models
219
+ - Write operations have complex business logic
220
+ - Read and write scalability needs differ
221
+
222
+ **Structure:**
223
+ ```
224
+ Write Model (Command) → Event Store → Read Model (Query)
225
+ ```
226
+
227
+ #### 10.4 Hexagonal Architecture
228
+
229
+ **Structure:**
230
+ ```
231
+ ┌─────────────────────────────────────┐
232
+ │ Ports │
233
+ │ ┌─────────────────────────────────┐ │
234
+ │ │ │ │
235
+ │ │ Core │ │
236
+ │ │ Business Logic / Domain │ │
237
+ │ │ │ │
238
+ │ └─────────────────────────────────┘ │
239
+ │ Adapters │
240
+ └─────────────────────────────────────┘
241
+ ```
242
+
243
+ ---
244
+
245
+ ### 11. Anti-patterns
246
+
247
+ 1. **Distributed Monolith**: Services tightly coupled via sync HTTP calls
248
+ 2. **Golden Hammer**: Using the same technology for every problem
249
+ 3. **Big Ball of Mud**: No clear boundaries or structure
250
+ 4. **Cargo Cult**: Copying architectures without understanding why
251
+ 5. **Premature Optimization**: Optimizing before measuring
252
+
253
+ ---
254
+
255
+ ### 12. Decision Framework
256
+
257
+ When facing architectural decisions, follow this process:
258
+
259
+ 1. **Understand the Problem** - What are we solving?
260
+ 2. **Identify Constraints** - Time, budget, team skills, compliance
261
+ 3. **Generate Options** - At least 3 alternatives
262
+ 4. **Evaluate Trade-offs** - Use criteria above
263
+ 5. **Make Decision** - Document with ADR
264
+ 6. **Validate** - Prototype if necessary
265
+ 7. **Iterate** - Be ready to change if wrong
266
+
267
+ ---
268
+
269
+ ### 13. Collaboration Table
270
+
271
+ #### 13.1 Collaboration with Other Skills
272
+
273
+ | Collaborating Skill | Collaboration Mode | Description |
274
+ |---------|---------|------|
275
+ | **system-architect** | Consult | Get project context before detailed design |
276
+ | **software-engineer** | Delegate | Delegate code implementation after architectural decisions |
277
+ | **expert-code-quality** | Reference | Code quality check after architecture review |
278
+ | **pdd-generate-spec** | Sequence | Generate detailed specs after architecture design |
279
+ | **pdd-code-reviewer** | Reference | Get architecture-level code review |
280
+ | **expert-mysql** | Consult | Consult before data architecture decisions |
281
+
282
+ #### 13.2 Collaboration Process
283
+
284
+ ```
285
+ System Architecture Requirements
286
+
287
+ Invoke software-architect
288
+
289
+ High-level Design + ADR Documentation
290
+
291
+ (If project initialization needed) → Invoke system-architect
292
+
293
+ (If detailed specs needed) → Invoke pdd-generate-spec
294
+
295
+ (If code implementation needed) → Invoke software-engineer
296
+
297
+ (If code quality check needed) → Invoke expert-code-quality
298
+
299
+ Architecture Design Complete
300
+ ```
301
+
302
+ ---
303
+
304
+ ### 14. Documentation Best Practices
305
+
306
+ - Document decisions, not just structure — ADRs capture reasoning
307
+ - Multi-level zoomable diagrams — C4 Model: Context, Container, Component
308
+ - Documentation close to code — Separate wikis go stale
309
+ - Update docs when architecture changes — Wrong docs are worse than none
310
+ - Document operational aspects — Runbooks, SLOs, failure modes
311
+
312
+ ---
313
+
314
+ ### 15. Communication Skills
315
+
316
+ - Translate technical decisions to business impact — Stakeholders need context
317
+ - Present options with trade-offs — Don't just recommend, explain
318
+ - Listen to operators — They know what breaks
319
+ - Involve security early — Bolted-on security is weak security
320
+ - Decisions need buy-in — Imposed architecture breeds resentment
321
+
322
+ ---
323
+
324
+ ### 16. Guardrails
325
+
326
+ - Architectural decisions must include trade-off analysis and alternatives
327
+ - Major decisions must be documented using ADR template
328
+ - Pattern selection must consider context, no blind recommendations
329
+ - Design must consider testability and deployability
330
+ - Decisions must be driven by clear problems or requirements
331
+
332
+ ---
333
+
334
+ ## Version History
335
+
336
+ ### v2.0 (2026-03-21)
337
+ - Unified to English descriptions
338
+ - Added collaboration table, clarifying relationships with other skills
339
+ - Enhanced ADR template and examples
340
+ - Standardized output format
341
+ - Added hexagonal architecture pattern
342
+
343
+ ### v1.0 (Initial Version)
344
+ - Basic design principles
345
+ - Trade-off analysis framework
346
+ - Architecture decision record template
347
+
348
+ ---
349
+
350
+ > **Remember**: Good architecture is about making the right trade-offs and keeping things simple where appropriate. Choose reversible decisions, delay irreversible ones.
@@ -0,0 +1 @@
1
+ {"name": "software-architect", "version": "1.0.0", "category": "expert", "description": "Software Architect specializing in technology stack selection, system architecture design, and large-scale codebase refactoring. Call this Skill when selecting appropriate technologies, designing scalable systems, evaluating trade-offs between approaches, or planning major architectural changes. 支持中文触发:软件架构、技术栈选择、架构方案、微服务架构、分布式设计、重构方案。", "triggers": ["软件架构", "技术栈选择", "架构方案", "微服务架构", "分布式设计"]}