@mison/ag-kit-cn 2.0.1

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 (237) hide show
  1. package/.agent/.shared/ui-ux-pro-max/data/charts.csv +26 -0
  2. package/.agent/.shared/ui-ux-pro-max/data/colors.csv +97 -0
  3. package/.agent/.shared/ui-ux-pro-max/data/icons.csv +101 -0
  4. package/.agent/.shared/ui-ux-pro-max/data/landing.csv +31 -0
  5. package/.agent/.shared/ui-ux-pro-max/data/products.csv +97 -0
  6. package/.agent/.shared/ui-ux-pro-max/data/prompts.csv +24 -0
  7. package/.agent/.shared/ui-ux-pro-max/data/react-performance.csv +45 -0
  8. package/.agent/.shared/ui-ux-pro-max/data/stacks/flutter.csv +53 -0
  9. package/.agent/.shared/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
  10. package/.agent/.shared/ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -0
  11. package/.agent/.shared/ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
  12. package/.agent/.shared/ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -0
  13. package/.agent/.shared/ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -0
  14. package/.agent/.shared/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
  15. package/.agent/.shared/ui-ux-pro-max/data/stacks/react.csv +54 -0
  16. package/.agent/.shared/ui-ux-pro-max/data/stacks/shadcn.csv +61 -0
  17. package/.agent/.shared/ui-ux-pro-max/data/stacks/svelte.csv +54 -0
  18. package/.agent/.shared/ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
  19. package/.agent/.shared/ui-ux-pro-max/data/stacks/vue.csv +50 -0
  20. package/.agent/.shared/ui-ux-pro-max/data/styles.csv +59 -0
  21. package/.agent/.shared/ui-ux-pro-max/data/typography.csv +58 -0
  22. package/.agent/.shared/ui-ux-pro-max/data/ui-reasoning.csv +101 -0
  23. package/.agent/.shared/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
  24. package/.agent/.shared/ui-ux-pro-max/data/web-interface.csv +31 -0
  25. package/.agent/.shared/ui-ux-pro-max/scripts/core.py +258 -0
  26. package/.agent/.shared/ui-ux-pro-max/scripts/design_system.py +1067 -0
  27. package/.agent/.shared/ui-ux-pro-max/scripts/search.py +106 -0
  28. package/.agent/ARCHITECTURE.md +285 -0
  29. package/.agent/agents/backend-specialist.md +268 -0
  30. package/.agent/agents/code-archaeologist.md +106 -0
  31. package/.agent/agents/database-architect.md +225 -0
  32. package/.agent/agents/debugger.md +225 -0
  33. package/.agent/agents/devops-engineer.md +242 -0
  34. package/.agent/agents/documentation-writer.md +104 -0
  35. package/.agent/agents/explorer-agent.md +73 -0
  36. package/.agent/agents/frontend-specialist.md +618 -0
  37. package/.agent/agents/game-developer.md +162 -0
  38. package/.agent/agents/mobile-developer.md +382 -0
  39. package/.agent/agents/orchestrator.md +438 -0
  40. package/.agent/agents/penetration-tester.md +188 -0
  41. package/.agent/agents/performance-optimizer.md +187 -0
  42. package/.agent/agents/product-manager.md +112 -0
  43. package/.agent/agents/product-owner.md +95 -0
  44. package/.agent/agents/project-planner.md +405 -0
  45. package/.agent/agents/qa-automation-engineer.md +103 -0
  46. package/.agent/agents/security-auditor.md +170 -0
  47. package/.agent/agents/seo-specialist.md +111 -0
  48. package/.agent/agents/test-engineer.md +158 -0
  49. package/.agent/mcp_config.json +12 -0
  50. package/.agent/rules/GEMINI.md +273 -0
  51. package/.agent/scripts/auto_preview.py +148 -0
  52. package/.agent/scripts/checklist.py +217 -0
  53. package/.agent/scripts/session_manager.py +120 -0
  54. package/.agent/scripts/verify_all.py +327 -0
  55. package/.agent/skills/api-patterns/SKILL.md +84 -0
  56. package/.agent/skills/api-patterns/api-style.md +42 -0
  57. package/.agent/skills/api-patterns/auth.md +24 -0
  58. package/.agent/skills/api-patterns/documentation.md +26 -0
  59. package/.agent/skills/api-patterns/graphql.md +41 -0
  60. package/.agent/skills/api-patterns/rate-limiting.md +31 -0
  61. package/.agent/skills/api-patterns/response.md +37 -0
  62. package/.agent/skills/api-patterns/rest.md +40 -0
  63. package/.agent/skills/api-patterns/scripts/api_validator.py +211 -0
  64. package/.agent/skills/api-patterns/security-testing.md +122 -0
  65. package/.agent/skills/api-patterns/trpc.md +41 -0
  66. package/.agent/skills/api-patterns/versioning.md +22 -0
  67. package/.agent/skills/app-builder/SKILL.md +75 -0
  68. package/.agent/skills/app-builder/agent-coordination.md +74 -0
  69. package/.agent/skills/app-builder/feature-building.md +53 -0
  70. package/.agent/skills/app-builder/project-detection.md +34 -0
  71. package/.agent/skills/app-builder/scaffolding.md +118 -0
  72. package/.agent/skills/app-builder/tech-stack.md +40 -0
  73. package/.agent/skills/app-builder/templates/SKILL.md +39 -0
  74. package/.agent/skills/app-builder/templates/astro-static/TEMPLATE.md +76 -0
  75. package/.agent/skills/app-builder/templates/chrome-extension/TEMPLATE.md +92 -0
  76. package/.agent/skills/app-builder/templates/cli-tool/TEMPLATE.md +88 -0
  77. package/.agent/skills/app-builder/templates/electron-desktop/TEMPLATE.md +88 -0
  78. package/.agent/skills/app-builder/templates/express-api/TEMPLATE.md +83 -0
  79. package/.agent/skills/app-builder/templates/flutter-app/TEMPLATE.md +90 -0
  80. package/.agent/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +90 -0
  81. package/.agent/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +122 -0
  82. package/.agent/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +122 -0
  83. package/.agent/skills/app-builder/templates/nextjs-static/TEMPLATE.md +169 -0
  84. package/.agent/skills/app-builder/templates/nuxt-app/TEMPLATE.md +134 -0
  85. package/.agent/skills/app-builder/templates/python-fastapi/TEMPLATE.md +83 -0
  86. package/.agent/skills/app-builder/templates/react-native-app/TEMPLATE.md +119 -0
  87. package/.agent/skills/architecture/SKILL.md +57 -0
  88. package/.agent/skills/architecture/context-discovery.md +43 -0
  89. package/.agent/skills/architecture/examples.md +94 -0
  90. package/.agent/skills/architecture/pattern-selection.md +68 -0
  91. package/.agent/skills/architecture/patterns-reference.md +50 -0
  92. package/.agent/skills/architecture/trade-off-analysis.md +77 -0
  93. package/.agent/skills/bash-linux/SKILL.md +201 -0
  94. package/.agent/skills/behavioral-modes/SKILL.md +264 -0
  95. package/.agent/skills/brainstorming/SKILL.md +164 -0
  96. package/.agent/skills/brainstorming/dynamic-questioning.md +359 -0
  97. package/.agent/skills/clean-code/SKILL.md +200 -0
  98. package/.agent/skills/code-review-checklist/SKILL.md +125 -0
  99. package/.agent/skills/database-design/SKILL.md +54 -0
  100. package/.agent/skills/database-design/database-selection.md +43 -0
  101. package/.agent/skills/database-design/indexing.md +39 -0
  102. package/.agent/skills/database-design/migrations.md +50 -0
  103. package/.agent/skills/database-design/optimization.md +36 -0
  104. package/.agent/skills/database-design/orm-selection.md +30 -0
  105. package/.agent/skills/database-design/schema-design.md +56 -0
  106. package/.agent/skills/database-design/scripts/schema_validator.py +172 -0
  107. package/.agent/skills/deployment-procedures/SKILL.md +241 -0
  108. package/.agent/skills/doc.md +177 -0
  109. package/.agent/skills/documentation-templates/SKILL.md +194 -0
  110. package/.agent/skills/frontend-design/SKILL.md +418 -0
  111. package/.agent/skills/frontend-design/animation-guide.md +331 -0
  112. package/.agent/skills/frontend-design/color-system.md +307 -0
  113. package/.agent/skills/frontend-design/decision-trees.md +418 -0
  114. package/.agent/skills/frontend-design/motion-graphics.md +306 -0
  115. package/.agent/skills/frontend-design/scripts/accessibility_checker.py +183 -0
  116. package/.agent/skills/frontend-design/scripts/ux_audit.py +727 -0
  117. package/.agent/skills/frontend-design/typography-system.md +345 -0
  118. package/.agent/skills/frontend-design/ux-psychology.md +1118 -0
  119. package/.agent/skills/frontend-design/visual-effects.md +383 -0
  120. package/.agent/skills/game-development/2d-games/SKILL.md +119 -0
  121. package/.agent/skills/game-development/3d-games/SKILL.md +135 -0
  122. package/.agent/skills/game-development/SKILL.md +167 -0
  123. package/.agent/skills/game-development/game-art/SKILL.md +185 -0
  124. package/.agent/skills/game-development/game-audio/SKILL.md +190 -0
  125. package/.agent/skills/game-development/game-design/SKILL.md +129 -0
  126. package/.agent/skills/game-development/mobile-games/SKILL.md +108 -0
  127. package/.agent/skills/game-development/multiplayer/SKILL.md +132 -0
  128. package/.agent/skills/game-development/pc-games/SKILL.md +144 -0
  129. package/.agent/skills/game-development/vr-ar/SKILL.md +123 -0
  130. package/.agent/skills/game-development/web-games/SKILL.md +150 -0
  131. package/.agent/skills/geo-fundamentals/SKILL.md +155 -0
  132. package/.agent/skills/geo-fundamentals/scripts/geo_checker.py +289 -0
  133. package/.agent/skills/i18n-localization/SKILL.md +154 -0
  134. package/.agent/skills/i18n-localization/scripts/i18n_checker.py +241 -0
  135. package/.agent/skills/intelligent-routing/SKILL.md +335 -0
  136. package/.agent/skills/lint-and-validate/SKILL.md +44 -0
  137. package/.agent/skills/lint-and-validate/scripts/lint_runner.py +184 -0
  138. package/.agent/skills/lint-and-validate/scripts/type_coverage.py +173 -0
  139. package/.agent/skills/mcp-builder/SKILL.md +176 -0
  140. package/.agent/skills/mobile-design/SKILL.md +394 -0
  141. package/.agent/skills/mobile-design/decision-trees.md +516 -0
  142. package/.agent/skills/mobile-design/mobile-backend.md +491 -0
  143. package/.agent/skills/mobile-design/mobile-color-system.md +420 -0
  144. package/.agent/skills/mobile-design/mobile-debugging.md +122 -0
  145. package/.agent/skills/mobile-design/mobile-design-thinking.md +355 -0
  146. package/.agent/skills/mobile-design/mobile-navigation.md +458 -0
  147. package/.agent/skills/mobile-design/mobile-performance.md +767 -0
  148. package/.agent/skills/mobile-design/mobile-testing.md +356 -0
  149. package/.agent/skills/mobile-design/mobile-typography.md +432 -0
  150. package/.agent/skills/mobile-design/platform-android.md +666 -0
  151. package/.agent/skills/mobile-design/platform-ios.md +561 -0
  152. package/.agent/skills/mobile-design/scripts/mobile_audit.py +670 -0
  153. package/.agent/skills/mobile-design/touch-psychology.md +537 -0
  154. package/.agent/skills/nextjs-react-expert/1-async-eliminating-waterfalls.md +311 -0
  155. package/.agent/skills/nextjs-react-expert/2-bundle-bundle-size-optimization.md +241 -0
  156. package/.agent/skills/nextjs-react-expert/3-server-server-side-performance.md +489 -0
  157. package/.agent/skills/nextjs-react-expert/4-client-client-side-data-fetching.md +263 -0
  158. package/.agent/skills/nextjs-react-expert/5-rerender-re-render-optimization.md +581 -0
  159. package/.agent/skills/nextjs-react-expert/6-rendering-rendering-performance.md +431 -0
  160. package/.agent/skills/nextjs-react-expert/7-js-javascript-performance.md +683 -0
  161. package/.agent/skills/nextjs-react-expert/8-advanced-advanced-patterns.md +149 -0
  162. package/.agent/skills/nextjs-react-expert/SKILL.md +286 -0
  163. package/.agent/skills/nextjs-react-expert/scripts/convert_rules.py +222 -0
  164. package/.agent/skills/nextjs-react-expert/scripts/react_performance_checker.py +252 -0
  165. package/.agent/skills/nodejs-best-practices/SKILL.md +333 -0
  166. package/.agent/skills/parallel-agents/SKILL.md +194 -0
  167. package/.agent/skills/performance-profiling/SKILL.md +149 -0
  168. package/.agent/skills/performance-profiling/scripts/lighthouse_audit.py +76 -0
  169. package/.agent/skills/plan-writing/SKILL.md +152 -0
  170. package/.agent/skills/powershell-windows/SKILL.md +166 -0
  171. package/.agent/skills/python-patterns/SKILL.md +441 -0
  172. package/.agent/skills/red-team-tactics/SKILL.md +203 -0
  173. package/.agent/skills/rust-pro/SKILL.md +190 -0
  174. package/.agent/skills/seo-fundamentals/SKILL.md +135 -0
  175. package/.agent/skills/seo-fundamentals/scripts/seo_checker.py +215 -0
  176. package/.agent/skills/server-management/SKILL.md +161 -0
  177. package/.agent/skills/systematic-debugging/SKILL.md +114 -0
  178. package/.agent/skills/tailwind-patterns/SKILL.md +269 -0
  179. package/.agent/skills/tdd-workflow/SKILL.md +149 -0
  180. package/.agent/skills/testing-patterns/SKILL.md +178 -0
  181. package/.agent/skills/testing-patterns/scripts/test_runner.py +219 -0
  182. package/.agent/skills/vulnerability-scanner/SKILL.md +276 -0
  183. package/.agent/skills/vulnerability-scanner/checklists.md +131 -0
  184. package/.agent/skills/vulnerability-scanner/scripts/security_scan.py +459 -0
  185. package/.agent/skills/web-design-guidelines/SKILL.md +57 -0
  186. package/.agent/skills/webapp-testing/SKILL.md +187 -0
  187. package/.agent/skills/webapp-testing/scripts/playwright_runner.py +173 -0
  188. package/.agent/workflows/brainstorm.md +113 -0
  189. package/.agent/workflows/create.md +59 -0
  190. package/.agent/workflows/debug.md +103 -0
  191. package/.agent/workflows/deploy.md +176 -0
  192. package/.agent/workflows/enhance.md +63 -0
  193. package/.agent/workflows/orchestrate.md +242 -0
  194. package/.agent/workflows/plan.md +89 -0
  195. package/.agent/workflows/preview.md +80 -0
  196. package/.agent/workflows/restore-localize-compat.md +525 -0
  197. package/.agent/workflows/status.md +86 -0
  198. package/.agent/workflows/test.md +144 -0
  199. package/.agent/workflows/ui-ux-pro-max.md +295 -0
  200. package/AGENT_FLOW.md +609 -0
  201. package/CHANGELOG.md +68 -0
  202. package/LICENSE +21 -0
  203. package/README.md +260 -0
  204. package/bin/adapters/base.js +63 -0
  205. package/bin/adapters/codex.js +391 -0
  206. package/bin/adapters/gemini.js +137 -0
  207. package/bin/ag-kit.js +1336 -0
  208. package/bin/core/builder.js +80 -0
  209. package/bin/core/generator.js +59 -0
  210. package/bin/core/resource-loader.js +64 -0
  211. package/bin/core/transformer.js +208 -0
  212. package/bin/interactive.js +65 -0
  213. package/bin/utils/atomic-writer.js +97 -0
  214. package/bin/utils/git-helper.js +68 -0
  215. package/bin/utils/managed-block.js +65 -0
  216. package/bin/utils/manifest.js +241 -0
  217. package/bin/utils.js +82 -0
  218. package/docs/codex-rules-template.md +36 -0
  219. package/docs/mapping-spec.md +68 -0
  220. package/docs/multi-target-adapter.md +80 -0
  221. package/docs/official/README.md +53 -0
  222. package/docs/official/antigravity/agent-modes-settings.md +64 -0
  223. package/docs/official/antigravity/rules-workflows.md +96 -0
  224. package/docs/official/antigravity/skills.md +147 -0
  225. package/docs/official/codex/agents-md.md +119 -0
  226. package/docs/official/codex/config-advanced.md +358 -0
  227. package/docs/official/codex/config-basic.md +141 -0
  228. package/docs/official/codex/config-reference.md +223 -0
  229. package/docs/official/codex/config-sample.md +216 -0
  230. package/docs/official/codex/mcp.md +107 -0
  231. package/docs/official/codex/rules.md +79 -0
  232. package/docs/official/codex/skills.md +114 -0
  233. package/docs/official/sources-index.md +32 -0
  234. package/docs/operations.md +145 -0
  235. package/docs/terminology-style-guide.md +69 -0
  236. package/package.json +51 -0
  237. package/scripts/postinstall-check.js +112 -0
@@ -0,0 +1,94 @@
1
+ # 架构示例
2
+
3
+ > 按项目类型给出现实世界的架构决策示例。
4
+
5
+ ---
6
+
7
+ ## 示例 1:MVP(最小可行产品)电商(单人开发)
8
+
9
+ ```yaml
10
+ 需求:
11
+ - 初期 <1000 用户
12
+ - 单人开发
13
+ - 快速上线(8 周)
14
+ - 预算敏感
15
+
16
+ 架构决策:
17
+ 应用结构: Monolith(单体,更适合单人)
18
+ 框架: Next.js(全栈、开发快)
19
+ 数据层: Prisma 直连(避免过度抽象)
20
+ 认证: JWT(JSON Web Token,比 OAuth(授权协议)更轻量)
21
+ 支付: Stripe(托管支付方案)
22
+ 数据库: PostgreSQL(订单场景需要 ACID)
23
+
24
+ 接受的权衡:
25
+ - Monolith → 无法独立扩缩(团队规模暂不支持)
26
+ - 不使用 Repository(仓储模式) → 可测性较弱(简单 CRUD 阶段可接受)
27
+ - JWT → 初期无社交登录(后续可补)
28
+
29
+ 后续迁移路径:
30
+ - 用户 > 10K → 拆分支付服务
31
+ - 团队 > 3 → 引入 Repository pattern(仓储模式)
32
+ - 需要社交登录 → 增加 OAuth(授权协议)
33
+ ```
34
+
35
+ ---
36
+
37
+ ## 示例 2:SaaS(软件即服务)产品(5-10 人团队)
38
+
39
+ ```yaml
40
+ 需求:
41
+ - 1K-100K 用户
42
+ - 5-10 名开发者
43
+ - 长期(12 个月以上)
44
+ - 多业务域(计费、用户、核心)
45
+
46
+ 架构决策:
47
+ 应用结构: Modular Monolith(模块化单体,适合团队规模)
48
+ 框架: NestJS(天然模块化)
49
+ 数据层: Repository pattern(仓储模式,利于测试与替换)
50
+ 领域模型: Partial DDD(部分领域驱动)
51
+ 认证: OAuth(授权协议) + JWT(JSON Web Token)
52
+ 缓存: Redis
53
+ 数据库: PostgreSQL
54
+
55
+ 接受的权衡:
56
+ - Modular Monolith → 模块间仍有耦合(微服务时机未到)
57
+ - Partial DDD → 不做完整聚合(缺少强领域专家)
58
+ - RabbitMQ(消息队列)后置 → 初期先同步调用(需求验证后再引入)
59
+
60
+ 迁移路径:
61
+ - 团队 > 10 → 考虑微服务
62
+ - 域冲突加剧 → 拆分有界上下文
63
+ - 读性能问题 → 引入 CQRS(命令查询职责分离)
64
+ ```
65
+
66
+ ---
67
+
68
+ ## 示例 3:企业级(100K+ 用户)
69
+
70
+ ```yaml
71
+ 需求:
72
+ - 100K+ 用户
73
+ - 10+ 开发者
74
+ - 多业务域
75
+ - 不同扩缩需求
76
+ - 7×24 可用性
77
+
78
+ 架构决策:
79
+ 应用结构: Microservices(微服务,独立扩缩)
80
+ API 网关: Kong/AWS API GW(网关)
81
+ 领域模型: Full DDD(完整领域驱动)
82
+ 一致性: Event-driven(事件驱动,接受最终一致性)
83
+ 消息总线: Kafka
84
+ 认证: OAuth(授权协议) + SAML(企业 SSO)
85
+ 数据库: Polyglot(按场景选数据库)
86
+ CQRS(命令查询职责分离): 选定服务
87
+
88
+ 运行要求:
89
+ - Service mesh(Istio/Linkerd)
90
+ - Distributed tracing(分布式追踪,Jaeger/Tempo)
91
+ - Centralized logging(集中日志,ELK/Loki)
92
+ - Circuit breakers(熔断器,Resilience4j)
93
+ - Kubernetes/Helm
94
+ ```
@@ -0,0 +1,68 @@
1
+ # 模式选择指南
2
+
3
+ > 选择架构模式的决策树。
4
+
5
+ ## 主决策树
6
+
7
+ ```
8
+ 开始:你的主要关注点是什么?
9
+
10
+ ┌─ 数据访问复杂度?
11
+ │ ├─ 高(复杂查询,需要测试)
12
+ │ │ → Repository Pattern(仓储模式)+ Unit of Work(工作单元)
13
+ │ │ 验证:数据源会频繁变化吗?
14
+ │ │ ├─ 是 → Repository(仓储模式)值得增加间接层
15
+ │ │ └─ 否 → 考虑更简单的 ORM(对象关系映射)直连访问
16
+ │ └─ 低(简单 CRUD(增删改查),单一数据库)
17
+ │ → ORM(对象关系映射)直连(Prisma, Drizzle)
18
+ │ 越简单 = 越好、越快
19
+
20
+ ├─ 业务规则复杂度?
21
+ │ ├─ 高(领域逻辑复杂,规则随上下文变化)
22
+ │ │ → Domain-Driven Design(领域驱动设计,DDD)
23
+ │ │ 验证:团队里有领域专家吗?
24
+ │ │ ├─ 是 → Full DDD(聚合、值对象)
25
+ │ │ └─ 否 → Partial DDD(富实体、清晰边界)
26
+ │ └─ 低(主要是 CRUD,简单校验)
27
+ │ → Transaction Script(事务脚本)模式
28
+ │ 越简单 = 越好、越快
29
+
30
+ ├─ 需要独立扩缩吗?
31
+ │ ├─ 是(不同组件扩缩方式不同)
32
+ │ │ → Microservices(微服务)值得承担复杂性
33
+ │ │ 要求(必须全部满足):
34
+ │ │ - 清晰的领域边界
35
+ │ │ - 团队 > 10 名开发者
36
+ │ │ - 各服务有不同的扩缩需求
37
+ │ │ 未全部满足 → Modular Monolith(模块化单体)
38
+ │ └─ 否(整体一起扩缩)
39
+ │ → Modular Monolith(模块化单体)
40
+ │ 以后在确有必要时再拆服务
41
+
42
+ └─ 实时性需求?
43
+ ├─ 高(即时更新,多用户同步)
44
+ │ → Event-Driven Architecture(事件驱动架构)
45
+ │ → Message Queue(消息队列)(RabbitMQ, Redis, Kafka)
46
+ │ 验证:你能处理最终一致性(eventual consistency)吗?
47
+ │ ├─ 是 → 事件驱动可行
48
+ │ └─ 否 → 同步 + 轮询
49
+ └─ 低(可接受最终一致性)
50
+ → 同步(REST/GraphQL)
51
+ 越简单 = 越好、越快
52
+ ```
53
+
54
+ ## 三个问题(选择任何模式前)
55
+
56
+ 1. **问题是否被解决**:该模式解决的具体问题是什么?
57
+ 2. **更简单的替代方案**:是否存在更简单的方案?
58
+ 3. **延迟复杂性**:能否在必要时再引入该模式?
59
+
60
+ ## 红旗(反模式)
61
+
62
+ | 模式 | 反模式 | 更简单的替代方案 |
63
+ | ---- | ------ | ---------------- |
64
+ | Microservices(微服务) | 过早拆分 | 从单体开始,后续再拆 |
65
+ | Clean/Hexagonal(整洁/六边形) | 过度抽象 | 先写具体实现,后引入接口 |
66
+ | Event Sourcing(事件溯源) | 过度设计 | 追加式审计日志 |
67
+ | CQRS(命令查询职责分离) | 不必要的复杂性 | 单一模型 |
68
+ | Repository(仓储模式) | 对简单 CRUD 的 YAGNI(你不会需要它) | ORM 直连 |
@@ -0,0 +1,50 @@
1
+ # 架构模式参考
2
+
3
+ > 常用模式快速参考及使用指南。
4
+
5
+ ## 数据访问模式
6
+
7
+ | 模式 | 适用场景 | 不适用场景 | 复杂度 |
8
+ | ---- | -------- | ---------- | ------ |
9
+ | **Active Record(活动记录)** | 简单 CRUD(增删改查),快速原型开发 | 复杂查询,多数据源 | 低 |
10
+ | **Repository(仓储模式)** | 需要测试,多数据源 | 简单 CRUD(增删改查),单一数据库 | 中 |
11
+ | **Unit of Work(工作单元)** | 复杂事务 | 简单操作 | 高 |
12
+ | **Data Mapper(数据映射)** | 复杂领域、性能要求高 | 简单 CRUD(增删改查),快速开发 | 高 |
13
+
14
+ ## 领域逻辑模式
15
+
16
+ | 模式 | 适用场景 | 不适用场景 | 复杂度 |
17
+ | ---- | -------- | ---------- | ------ |
18
+ | **Transaction Script(事务脚本)** | 简单 CRUD(增删改查),过程式逻辑 | 复杂业务规则 | 低 |
19
+ | **Table Module(表模块)** | 基于记录的逻辑 | 需要丰富领域行为 | 低 |
20
+ | **Domain Model(领域模型)** | 复杂业务逻辑 | 简单 CRUD(增删改查) | 中 |
21
+ | **DDD(完整领域驱动)** | 复杂领域,有领域专家 | 简单领域,无领域专家 | 高 |
22
+
23
+ ## 分布式系统模式
24
+
25
+ | 模式 | 适用场景 | 不适用场景 | 复杂度 |
26
+ | ---- | -------- | ---------- | ------ |
27
+ | **Modular Monolith(模块化单体)** | 小团队,边界不清晰 | 上下文清晰、扩缩需求不同 | 中 |
28
+ | **Microservices(微服务)** | 不同扩缩需求、大团队 | 小团队、简单领域 | 极高 |
29
+ | **Event-Driven(事件驱动)** | 实时性、松耦合 | 简单工作流、强一致性 | 高 |
30
+ | **CQRS(命令查询职责分离)** | 读写性能分化明显 | 简单 CRUD(增删改查)、同一模型 | 高 |
31
+ | **Saga(补偿事务)** | 分布式事务 | 单一数据库、简单 ACID(事务特性) | 高 |
32
+
33
+ ## API 模式
34
+
35
+ | 模式 | 适用场景 | 不适用场景 | 复杂度 |
36
+ | ---- | -------- | ---------- | ------ |
37
+ | **REST(表述性状态转移)** | 标准 CRUD(增删改查),资源导向 | 实时性、复杂查询 | 低 |
38
+ | **GraphQL(图查询语言)** | 灵活查询,多客户端 | 简单 CRUD(增删改查)、强缓存需求 | 中 |
39
+ | **gRPC(远程过程调用)** | 内部服务、高性能 | 公共 API、浏览器客户端 | 中 |
40
+ | **WebSocket(全双工通信)** | 实时更新 | 简单请求/响应 | 中 |
41
+
42
+ ---
43
+
44
+ ## 简单原则
45
+
46
+ **“从简单开始,只有在证明有必要时才增加复杂性。”**
47
+
48
+ - 你可以随时在以后添加模式。
49
+ - 移除复杂性远比增加复杂性难得多。
50
+ - 有疑问时,选择更简单的选项。
@@ -0,0 +1,77 @@
1
+ # 权衡分析与 ADR
2
+
3
+ > 为每一个架构决策记录权衡。
4
+
5
+ ## 决策框架
6
+
7
+ 对每一个架构组件,记录:
8
+
9
+ ```markdown
10
+ ## 架构决策记录(ADR)
11
+
12
+ ### 背景
13
+ - **问题**: [我们在解决什么问题?]
14
+ - **约束**: [团队规模、量级、时间线、预算]
15
+
16
+ ### 已考虑的选项
17
+
18
+ | 选项 | 优点 | 缺点 | 复杂度 | 何时有效 |
19
+ |------|------|------|--------|---------|
20
+ | 选项 A | 收益 1 | 成本 1 | 低 | [适用条件] |
21
+ | 选项 B | 收益 2 | 成本 2 | 高 | [适用条件] |
22
+
23
+ ### 决策
24
+ **选择**: [选项 B]
25
+
26
+ ### 理由
27
+ 1. [理由 1 - 与约束相关]
28
+ 2. [理由 2 - 与需求相关]
29
+
30
+ ### 接受的权衡(trade-offs)
31
+ - [我们放弃了什么]
32
+ - [为什么这是可以接受的]
33
+
34
+ ### 后果
35
+ - **正面**: [我们获得的收益]
36
+ - **负面**: [我们接受的成本/风险]
37
+ - **缓解**: [如何应对负面影响]
38
+
39
+ ### 重新审视触发点
40
+ - [何时需要重新考虑此决策]
41
+ ```
42
+
43
+ ## ADR 模板
44
+
45
+ ```markdown
46
+ # ADR-[XXX]: [决策标题]
47
+
48
+ ## 状态
49
+ Proposed(提议) | Accepted(已采纳) | Deprecated(已废弃) | Superseded by(被取代) [ADR-YYY]
50
+
51
+ ## 背景
52
+ [什么问题?什么约束?]
53
+
54
+ ## 决策
55
+ [我们选择了什么 - 具体描述]
56
+
57
+ ## 理由
58
+ [为什么 - 关联需求和约束]
59
+
60
+ ## 权衡
61
+ [我们放弃了什么 - 诚实记录]
62
+
63
+ ## 后果
64
+ - **正面**: [收益]
65
+ - **负面**: [成本]
66
+ - **缓解**: [如何应对]
67
+ ```
68
+
69
+ ## ADR 存储结构
70
+
71
+ ```
72
+ docs/
73
+ └── architecture/
74
+ ├── adr-001-use-nextjs.md
75
+ ├── adr-002-postgresql-over-mongodb.md
76
+ └── adr-003-adopt-repository-pattern.md
77
+ ```
@@ -0,0 +1,201 @@
1
+ ---
2
+ name: bash-linux
3
+ description: Bash/Linux terminal patterns(终端模式)。Critical commands, piping, error handling, scripting(核心命令/管道/错误处理/脚本编写)。Use when working on macOS or Linux systems(适用于 macOS 或 Linux 系统)。
4
+ allowed-tools: Read, Write, Edit, Glob, Grep, Bash
5
+ ---
6
+
7
+ # Bash Linux Patterns(Bash/Linux 实践模式)
8
+
9
+ > Essential patterns for Bash on Linux/macOS(适用于 Linux/macOS 的 Bash 核心模式)。
10
+
11
+ ---
12
+
13
+ ## 1. Operator Syntax(操作符语法)
14
+
15
+ ### Chaining Commands(链式命令)
16
+
17
+ | Operator(操作符) | Meaning(含义) | Example(示例) |
18
+ | ------ | ---- | ---- |
19
+ | `;` | Run sequentially(顺序执行) | `cmd1; cmd2` |
20
+ | `&&` | Run if previous succeeded(前一命令成功后执行) | `npm install && npm run dev` |
21
+ | `||` | Run if previous failed(前一命令失败后执行) | `npm test || echo "Tests failed"` |
22
+ | `|` | Pipe output(管道输出) | `ls | grep ".js"` |
23
+
24
+ ---
25
+
26
+ ## 2. File Operations(文件操作)
27
+
28
+ ### Essential Commands(核心命令)
29
+
30
+ | Task(任务) | Command(命令) |
31
+ | ---- | ---- |
32
+ | List all(列出所有) | `ls -la` |
33
+ | Find files(查找文件) | `find . -name "*.js" -type f` |
34
+ | File content(查看内容) | `cat file.txt` |
35
+ | First N lines(前 N 行) | `head -n 20 file.txt` |
36
+ | Last N lines(后 N 行) | `tail -n 20 file.txt` |
37
+ | Follow log(跟踪日志) | `tail -f log.txt` |
38
+ | Search in files(文件内搜索) | `grep -r "pattern" --include="*.js"` |
39
+ | File size(文件大小) | `du -sh *` |
40
+ | Disk usage(磁盘占用) | `df -h` |
41
+
42
+ ---
43
+
44
+ ## 3. Process Management(进程管理)
45
+
46
+ | Task(任务) | Command(命令) |
47
+ | ---- | ---- |
48
+ | List processes(列出进程) | `ps aux` |
49
+ | Find by name(按名查找) | `ps aux | grep node` |
50
+ | Kill by PID(按 PID 终止) | `kill -9 <PID>` |
51
+ | Find port user(查占用端口) | `lsof -i :3000` |
52
+ | Kill port(释放端口) | `kill -9 $(lsof -t -i :3000)` |
53
+ | Background(后台运行) | `npm run dev &` |
54
+ | Jobs(作业列表) | `jobs -l` |
55
+ | Bring to front(切回前台) | `fg %1` |
56
+
57
+ ---
58
+
59
+ ## 4. Text Processing(文本处理)
60
+
61
+ ### Core Tools(核心工具)
62
+
63
+ | Tool(工具) | Purpose(用途) | Example(示例) |
64
+ | ---- | ---- | ---- |
65
+ | `grep` | Search(搜索) | `grep -rn "TODO" src/` |
66
+ | `sed` | Replace(替换) | `sed -i 's/old/new/g' file.txt` |
67
+ | `awk` | Extract columns(列提取) | `awk '{print $1}' file.txt` |
68
+ | `cut` | Cut fields(字段切割) | `cut -d',' -f1 data.csv` |
69
+ | `sort` | Sort lines(排序) | `sort -u file.txt` |
70
+ | `uniq` | Unique lines(去重) | `sort file.txt | uniq -c` |
71
+ | `wc` | Count(计数) | `wc -l file.txt` |
72
+
73
+ ---
74
+
75
+ ## 5. Environment Variables(环境变量)
76
+
77
+ | Task(任务) | Command(命令) |
78
+ | ---- | ---- |
79
+ | View all(查看全部) | `env` or `printenv` |
80
+ | View one(查看单个) | `echo $PATH` |
81
+ | Set temporary(临时设置) | `export VAR="value"` |
82
+ | Set in script(命令内设置) | `VAR="value" command` |
83
+ | Add to PATH(追加 PATH) | `export PATH="$PATH:/new/path"` |
84
+
85
+ ---
86
+
87
+ ## 6. Network(网络操作)
88
+
89
+ | Task(任务) | Command(命令) |
90
+ | ---- | ---- |
91
+ | Download(下载) | `curl -O https://example.com/file` |
92
+ | API request(API 请求) | `curl -X GET https://api.example.com` |
93
+ | POST JSON(发送 JSON) | `curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL` |
94
+ | Check port(检查端口) | `nc -zv localhost 3000` |
95
+ | Network info(网络信息) | `ifconfig` or `ip addr` |
96
+
97
+ ---
98
+
99
+ ## 7. Script Template(脚本模板)
100
+
101
+ ```bash
102
+ #!/bin/bash
103
+ set -euo pipefail # Exit on error, undefined var, pipe fail(报错即退出、禁用未定义变量、管道错误传播)
104
+
105
+ # Colors (optional)(配色选项)
106
+ RED='\033[0;31m'
107
+ GREEN='\033[0;32m'
108
+ NC='\033[0m'
109
+
110
+ # Script directory(脚本所在目录)
111
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
112
+
113
+ # Functions(日志函数)
114
+ log_info() { echo -e "${GREEN}[INFO]${NC} $1"; }
115
+ log_error() { echo -e "${RED}[ERROR]${NC} $1" >&2; }
116
+
117
+ # Main(主逻辑)
118
+ main() {
119
+ log_info "Starting..."
120
+ # Your logic here
121
+ log_info "Done!"
122
+ }
123
+
124
+ main "$@"
125
+ ```
126
+
127
+ ---
128
+
129
+ ## 8. Common Patterns(通用模式)
130
+
131
+ ### Check if command exists(检查命令是否存在)
132
+
133
+ ```bash
134
+ if command -v node &> /dev/null; then
135
+ echo "Node is installed"
136
+ fi
137
+ ```
138
+
139
+ ### Default variable value(变量默认值)
140
+
141
+ ```bash
142
+ NAME=${1:-"default_value"}
143
+ ```
144
+
145
+ ### Read file line by line(逐行读取文件)
146
+
147
+ ```bash
148
+ while IFS= read -r line; do
149
+ echo "$line"
150
+ done < file.txt
151
+ ```
152
+
153
+ ### Loop over files(循环处理文件)
154
+
155
+ ```bash
156
+ for file in *.js; do
157
+ echo "Processing $file"
158
+ done
159
+ ```
160
+
161
+ ---
162
+
163
+ ## 9. Differences from PowerShell(与 PowerShell 的差异)
164
+
165
+ | Task(任务) | PowerShell | Bash |
166
+ | ---- | ---------- | ---- |
167
+ | List files(列出文件) | `Get-ChildItem` | `ls -la` |
168
+ | Find files(查找文件) | `Get-ChildItem -Recurse` | `find . -type f` |
169
+ | Environment(环境变量) | `$env:VAR` | `$VAR` |
170
+ | String concat(字符串拼接) | `"$a$b"` | `"$a$b"` (same) |
171
+ | Null check(空值检查) | `if ($x)` | `if [ -n "$x" ]` |
172
+ | Pipeline(管道) | Object-based(对象) | Text-based(文本) |
173
+
174
+ ---
175
+
176
+ ## 10. Error Handling(错误处理)
177
+
178
+ ### Set options(设置选项)
179
+
180
+ ```bash
181
+ set -e # Exit on error(遇错退出)
182
+ set -u # Exit on undefined variable(未定义变量即退出)
183
+ set -o pipefail # Exit on pipe failure(管道失败即退出)
184
+ set -x # Debug: print commands(调试模式)
185
+ ```
186
+
187
+ ### Trap for cleanup(资源清理)
188
+
189
+ ```bash
190
+ cleanup() {
191
+ echo "Cleaning up..."
192
+ rm -f /tmp/tempfile
193
+ }
194
+ trap cleanup EXIT
195
+ ```
196
+
197
+ ---
198
+
199
+ > **Remember:** Bash is text-based. Use `&&` for success chains, `set -e` for safety, and quote your variables!(Bash 基于文本处理,使用 `&&` 做成功链式调用,使用 `set -e` 保证安全,并始终对变量加引号。)
200
+
201
+ ---