sumulige-claude 1.5.1 → 1.5.2

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 (219) hide show
  1. package/.claude/hooks/hook-registry.json +0 -15
  2. package/.claude/rules/coding-style.md +18 -7
  3. package/.claude/rules/hooks.md +15 -4
  4. package/.claude/rules/performance.md +15 -5
  5. package/.claude/rules/security.md +140 -4
  6. package/.claude/rules/testing.md +138 -9
  7. package/.claude/rules/web-design-standard.md +16 -5
  8. package/.claude/skills/algorithmic-art/metadata.yaml +28 -0
  9. package/.claude/skills/api-tester/SKILL.md +61 -0
  10. package/.claude/skills/api-tester/examples/basic.md +3 -0
  11. package/.claude/skills/api-tester/metadata.yaml +30 -0
  12. package/.claude/skills/api-tester/templates/default.md +3 -0
  13. package/.claude/skills/brand-guidelines/metadata.yaml +26 -0
  14. package/.claude/skills/canvas-design/metadata.yaml +27 -0
  15. package/.claude/skills/code-reviewer-123/SKILL.md +61 -0
  16. package/.claude/skills/code-reviewer-123/examples/basic.md +3 -0
  17. package/.claude/skills/code-reviewer-123/metadata.yaml +30 -0
  18. package/.claude/skills/code-reviewer-123/templates/default.md +3 -0
  19. package/.claude/skills/doc-coauthoring/metadata.yaml +27 -0
  20. package/.claude/skills/docx/metadata.yaml +30 -0
  21. package/.claude/skills/frontend-design/metadata.yaml +28 -0
  22. package/.claude/skills/internal-comms/metadata.yaml +28 -0
  23. package/.claude/skills/mcp-builder/metadata.yaml +26 -0
  24. package/.claude/skills/my-skill/SKILL.md +61 -0
  25. package/.claude/skills/my-skill/examples/basic.md +3 -0
  26. package/.claude/skills/my-skill/metadata.yaml +30 -0
  27. package/.claude/skills/my-skill/templates/default.md +3 -0
  28. package/.claude/skills/pdf/metadata.yaml +29 -0
  29. package/.claude/skills/pptx/metadata.yaml +29 -0
  30. package/.claude/skills/react-best-practices/metadata.yaml +26 -0
  31. package/.claude/skills/react-node-practices/SKILL.md +409 -0
  32. package/.claude/skills/react-node-practices/metadata.yaml +56 -0
  33. package/.claude/skills/skill-creator/metadata.yaml +25 -0
  34. package/.claude/skills/slack-gif-creator/metadata.yaml +28 -0
  35. package/.claude/skills/test-skill-name/SKILL.md +61 -0
  36. package/.claude/skills/test-skill-name/examples/basic.md +3 -0
  37. package/.claude/skills/test-skill-name/metadata.yaml +30 -0
  38. package/.claude/skills/test-skill-name/templates/default.md +3 -0
  39. package/.claude/skills/test-workflow/metadata.yaml +32 -0
  40. package/.claude/skills/theme-factory/metadata.yaml +26 -0
  41. package/.claude/skills/threejs-fundamentals/metadata.yaml +27 -0
  42. package/.claude/skills/web-artifacts-builder/metadata.yaml +30 -0
  43. package/.claude/skills/web-design-guidelines/metadata.yaml +26 -0
  44. package/.claude/skills/webapp-testing/metadata.yaml +26 -0
  45. package/.claude/skills/xlsx/metadata.yaml +29 -0
  46. package/LICENSE +21 -0
  47. package/cli.js +1 -1
  48. package/package.json +25 -3
  49. package/.claude/.kickoff-hint.txt +0 -52
  50. package/.claude/.sumulige-claude-version +0 -1
  51. package/.claude/.version +0 -1
  52. package/.claude/AGENTS.md +0 -42
  53. package/.claude/ANCHORS.md +0 -40
  54. package/.claude/CLAUDE.md +0 -138
  55. package/.claude/MEMORY.md +0 -69
  56. package/.claude/PROJECT_LOG.md +0 -101
  57. package/.claude/THINKING_CHAIN_GUIDE.md +0 -287
  58. package/.claude/USAGE.md +0 -175
  59. package/.claude/boris-optimizations.md +0 -167
  60. package/.claude/handoffs/INDEX.md +0 -21
  61. package/.claude/handoffs/LATEST.md +0 -76
  62. package/.claude/handoffs/handoff_2026-01-22T13-07-04-757Z.md +0 -76
  63. package/.claude/quality-gate.json +0 -82
  64. package/.claude/rag/skill-index.json +0 -135
  65. package/.claude/settings.json +0 -99
  66. package/.claude/settings.local.json +0 -175
  67. package/.claude/templates/PROJECT_KICKOFF.md +0 -89
  68. package/.claude/templates/PROJECT_PROPOSAL.md +0 -227
  69. package/.claude/templates/TASK_PLAN.md +0 -121
  70. package/.claude/templates/hooks/README.md +0 -302
  71. package/.claude/templates/hooks/hook.sh.template +0 -94
  72. package/.claude/templates/hooks/user-prompt-submit.cjs.template +0 -116
  73. package/.claude/templates/hooks/user-response-submit.cjs.template +0 -94
  74. package/.claude/templates/hooks/validate.js +0 -173
  75. package/.claude/templates/tasks/develop.md +0 -69
  76. package/.claude/templates/tasks/research.md +0 -64
  77. package/.claude/templates/tasks/test.md +0 -96
  78. package/.claude/thinking-routes/.last-sync +0 -1
  79. package/.claude/thinking-routes/QUICKREF.md +0 -98
  80. package/.claude/workflow/document-scanner.js +0 -426
  81. package/.claude/workflow/knowledge-engine.js +0 -941
  82. package/.claude/workflow/notebooklm/browser.js +0 -1028
  83. package/.claude/workflow/phases/phase1-research.js +0 -578
  84. package/.claude/workflow/phases/phase1-research.ts +0 -465
  85. package/.claude/workflow/phases/phase2-approve.js +0 -722
  86. package/.claude/workflow/phases/phase3-plan.js +0 -1200
  87. package/.claude/workflow/phases/phase4-develop.js +0 -894
  88. package/.claude/workflow/search-cache.js +0 -230
  89. package/.claude/workflow/templates/approval.md +0 -315
  90. package/.claude/workflow/templates/development.md +0 -377
  91. package/.claude/workflow/templates/planning.md +0 -328
  92. package/.claude/workflow/templates/research.md +0 -250
  93. package/.claude/workflow/types.js +0 -37
  94. package/.claude/workflow/web-search.js +0 -278
  95. package/.claude-plugin/marketplace.json +0 -71
  96. package/.github/workflows/sync-skills.yml +0 -74
  97. package/.versionrc +0 -25
  98. package/AGENTS.md +0 -580
  99. package/CHANGELOG.md +0 -481
  100. package/CLAUDE-template.md +0 -114
  101. package/DEV_TOOLS_GUIDE.md +0 -190
  102. package/PROJECT_STRUCTURE.md +0 -266
  103. package/Q&A.md +0 -325
  104. package/config/defaults.json +0 -34
  105. package/config/official-skills.json +0 -183
  106. package/config/quality-gate.json +0 -67
  107. package/config/skill-categories.json +0 -40
  108. package/config/version-manifest.json +0 -85
  109. package/demos/power-3d-scatter.html +0 -683
  110. package/development/cache/web-search/search_1193d605f8eb364651fc2f2041b58a31.json +0 -36
  111. package/development/cache/web-search/search_3798bf06960edc125f744a1abb5b72c5.json +0 -36
  112. package/development/cache/web-search/search_37c7d4843a53f0d83f1122a6f908a2a3.json +0 -36
  113. package/development/cache/web-search/search_44166fa0153709ee168485a22aa0ab40.json +0 -36
  114. package/development/cache/web-search/search_4deaebb1f77e86a8ca066dc5a49c59fd.json +0 -36
  115. package/development/cache/web-search/search_94da91789466070a7f545612e73c7372.json +0 -36
  116. package/development/cache/web-search/search_dd5de8491b8b803a3cb01339cd210fb0.json +0 -36
  117. package/development/knowledge-base/.index.clean.json +0 -1
  118. package/development/knowledge-base/.index.json +0 -486
  119. package/development/knowledge-base/test-best-practices.md +0 -29
  120. package/development/projects/proj_mkh1pazz_ixmt1/phase1/feasibility-report.md +0 -160
  121. package/development/projects/proj_mkh4jvnb_z7rwf/phase1/feasibility-report.md +0 -160
  122. package/development/projects/proj_mkh4jxkd_ewz5a/phase1/feasibility-report.md +0 -160
  123. package/development/projects/proj_mkh4k84n_ni73k/phase1/feasibility-report.md +0 -160
  124. package/development/projects/proj_mkh4wfyd_u9w88/phase1/feasibility-report.md +0 -160
  125. package/development/projects/proj_mkh4wsbo_iahvf/development/projects/proj_mkh4xbpg_4na5w/phase1/feasibility-report.md +0 -160
  126. package/development/projects/proj_mkh4wsbo_iahvf/phase1/feasibility-report.md +0 -160
  127. package/development/projects/proj_mkh4xulg_1ka8x/phase1/feasibility-report.md +0 -160
  128. package/development/projects/proj_mkh4xwhj_gch8j/phase1/feasibility-report.md +0 -160
  129. package/development/projects/proj_mkh4y2qk_9lm8z/phase1/feasibility-report.md +0 -160
  130. package/development/projects/proj_mkh4y2qk_9lm8z/phase2/requirements.md +0 -226
  131. package/development/projects/proj_mkh4y2qk_9lm8z/phase3/PRD.md +0 -345
  132. package/development/projects/proj_mkh4y2qk_9lm8z/phase3/TASK_PLAN.md +0 -284
  133. package/development/projects/proj_mkh4y2qk_9lm8z/phase3/prototype/README.md +0 -14
  134. package/development/projects/proj_mkh4y2qk_9lm8z/phase4/DEVELOPMENT_LOG.md +0 -35
  135. package/development/projects/proj_mkh4y2qk_9lm8z/phase4/TASKS.md +0 -34
  136. package/development/projects/proj_mkh4y2qk_9lm8z/phase4/source/.env.example +0 -5
  137. package/development/projects/proj_mkh4y2qk_9lm8z/phase4/source/README.md +0 -60
  138. package/development/projects/proj_mkh4y2qk_9lm8z/phase4/source/package.json +0 -25
  139. package/development/projects/proj_mkh4y2qk_9lm8z/phase4/source/src/index.js +0 -70
  140. package/development/projects/proj_mkh4y2qk_9lm8z/phase4/source/src/routes/index.js +0 -48
  141. package/development/projects/proj_mkh4y2qk_9lm8z/phase4/source/tests/health.test.js +0 -20
  142. package/development/projects/proj_mkh4y2qk_9lm8z/phase4/source/tests/jest.config.js +0 -21
  143. package/development/projects/proj_mkh7veqg_3lypc/phase1/feasibility-report.md +0 -160
  144. package/development/projects/proj_mkh7veqg_3lypc/phase2/requirements.md +0 -226
  145. package/development/projects/proj_mkh7veqg_3lypc/phase3/PRD.md +0 -345
  146. package/development/projects/proj_mkh7veqg_3lypc/phase3/TASK_PLAN.md +0 -284
  147. package/development/projects/proj_mkh7veqg_3lypc/phase3/prototype/README.md +0 -14
  148. package/development/projects/proj_mkh8k8fo_rmqn5/phase1/feasibility-report.md +0 -160
  149. package/development/projects/proj_mkh8xyhy_1vshq/phase1/feasibility-report.md +0 -178
  150. package/development/projects/proj_mkh8zddd_dhamf/phase1/feasibility-report.md +0 -377
  151. package/development/projects/proj_mkh8zddd_dhamf/phase2/requirements.md +0 -442
  152. package/development/projects/proj_mkh8zddd_dhamf/phase3/api-design.md +0 -800
  153. package/development/projects/proj_mkh8zddd_dhamf/phase3/architecture.md +0 -625
  154. package/development/projects/proj_mkh8zddd_dhamf/phase3/data-model.md +0 -830
  155. package/development/projects/proj_mkh8zddd_dhamf/phase3/risks.md +0 -957
  156. package/development/projects/proj_mkh8zddd_dhamf/phase3/wbs.md +0 -381
  157. package/development/todos/.state.json +0 -19
  158. package/development/todos/INDEX.md +0 -63
  159. package/development/todos/active/_README.md +0 -49
  160. package/development/todos/archived/_README.md +0 -11
  161. package/development/todos/backlog/_README.md +0 -11
  162. package/development/todos/backlog/mcp-integration.md +0 -35
  163. package/development/todos/completed/_README.md +0 -11
  164. package/development/todos/completed/boris-optimizations.md +0 -39
  165. package/development/todos/completed/develop/local-knowledge-index.md +0 -85
  166. package/development/todos/completed/develop/todo-system.md +0 -47
  167. package/development/todos/completed/develop/web-search-integration.md +0 -83
  168. package/development/todos/completed/test/phase1-e2e-test.md +0 -103
  169. package/docs/DEVELOPMENT.md +0 -461
  170. package/docs/MARKETPLACE.md +0 -352
  171. package/docs/RELEASE.md +0 -93
  172. package/jest.config.js +0 -63
  173. package/lib/commands.js +0 -3588
  174. package/lib/config-manager.js +0 -441
  175. package/lib/config-schema.js +0 -408
  176. package/lib/config-validator.js +0 -330
  177. package/lib/config.js +0 -122
  178. package/lib/errors.js +0 -305
  179. package/lib/incremental-sync.js +0 -274
  180. package/lib/marketplace.js +0 -487
  181. package/lib/migrations.js +0 -154
  182. package/lib/permission-audit.js +0 -255
  183. package/lib/quality-gate.js +0 -431
  184. package/lib/quality-rules.js +0 -373
  185. package/lib/utils.js +0 -150
  186. package/lib/version-check.js +0 -169
  187. package/lib/version-manifest.js +0 -171
  188. package/project-paradigm.md +0 -313
  189. package/prompts/how-to-find.md +0 -163
  190. package/prompts/linus-architect.md +0 -71
  191. package/prompts/software-architect.md +0 -173
  192. package/prompts/web-designer.md +0 -249
  193. package/scripts/fix-hooks.mjs +0 -97
  194. package/scripts/sync-external.mjs +0 -298
  195. package/scripts/sync-to-home.sh +0 -108
  196. package/scripts/update-registry.mjs +0 -325
  197. package/sources.yaml +0 -83
  198. package/tests/README.md +0 -263
  199. package/tests/commands.test.js +0 -1086
  200. package/tests/config-manager.test.js +0 -677
  201. package/tests/config-schema.test.js +0 -425
  202. package/tests/config-validator.test.js +0 -436
  203. package/tests/config.test.js +0 -100
  204. package/tests/errors.test.js +0 -477
  205. package/tests/manual/phase1-e2e.sh +0 -389
  206. package/tests/manual/phase2-test-cases.md +0 -311
  207. package/tests/manual/phase3-test-cases.md +0 -309
  208. package/tests/manual/phase4-test-cases.md +0 -414
  209. package/tests/manual/test-cases.md +0 -417
  210. package/tests/marketplace.test.js +0 -420
  211. package/tests/migrations.test.js +0 -187
  212. package/tests/quality-gate.test.js +0 -679
  213. package/tests/quality-rules.test.js +0 -619
  214. package/tests/sync-external.test.js +0 -214
  215. package/tests/update-registry.test.js +0 -251
  216. package/tests/utils.test.js +0 -171
  217. package/tests/version-check.test.js +0 -75
  218. package/tests/web-search.test.js +0 -392
  219. package/thinkinglens-silent.md +0 -138
@@ -1,173 +0,0 @@
1
- # 软件架构师
2
-
3
- > 基于 12 支柱架构知识体系 + Linus 代码哲学
4
-
5
- ## 决策框架
6
-
7
- ```
8
- 问题 → 识别相关支柱 → 权衡分析 → 最简方案 → 验证不破坏
9
- ```
10
-
11
- ## 12 支柱(按决策顺序)
12
-
13
- ### Tier 1: 必须先定(影响全局)
14
-
15
- | # | 支柱 | 核心问题 | 关键决策 |
16
- |---|------|----------|----------|
17
- | 1 | **基础** | 边界在哪? | 耦合/内聚、模块化、抽象层次 |
18
- | 2 | **需求** | 真正要什么? | 性能/可用性/安全/成本 权衡 |
19
- | 3 | **领域** | 业务本质? | DDD、限界上下文、聚合 |
20
-
21
- ### Tier 2: 架构选型(决定骨架)
22
-
23
- | # | 支柱 | 核心问题 | 选项 |
24
- |---|------|----------|------|
25
- | 4 | **风格** | 整体还是拆分? | 单体→模块化单体→微服务→Serverless |
26
- | 5 | **数据** | 如何存储? | SQL/NoSQL、ACID/BASE、缓存策略 |
27
- | 6 | **集成** | 如何通信? | 同步/异步、REST/gRPC/消息队列 |
28
-
29
- ### Tier 3: 基础设施(决定运行环境)
30
-
31
- | # | 支柱 | 核心问题 | 选项 |
32
- |---|------|----------|------|
33
- | 7 | **云/基础设施** | 在哪运行? | 公有云/私有云/混合、K8s/Serverless |
34
- | 8 | **安全** | 如何保护? | 认证/授权、加密、合规 |
35
-
36
- ### Tier 4: 交付与运维(决定生命周期)
37
-
38
- | # | 支柱 | 核心问题 | 选项 |
39
- |---|------|----------|------|
40
- | 9 | **交付** | 如何发布? | CI/CD、蓝绿/金丝雀、测试策略 |
41
- | 10 | **可观测** | 如何监控? | 日志/指标/追踪、告警、混沌工程 |
42
- | 11 | **组织** | 团队如何协作? | Conway 定律、DevOps 文化 |
43
- | 12 | **学习** | 如何成长? | 技术雷达、RFC、复盘 |
44
-
45
- ## 决策模板
46
-
47
- ```
48
- 【问题】一句话描述
49
-
50
- 【相关支柱】
51
- - 主要:#X (原因)
52
- - 次要:#Y, #Z
53
-
54
- 【权衡分析】
55
- | 方案 | 优势 | 劣势 | 影响的支柱 |
56
- |------|------|------|-----------|
57
-
58
- 【推荐】
59
- 方案 X,因为 [最简 + 最少破坏]
60
-
61
- 【风险】
62
- - [最大风险及缓解措施]
63
- ```
64
-
65
- ## 反模式检查清单
66
-
67
- 在做架构决策前,检查是否踩坑:
68
-
69
- | 反模式 | 信号 | 正确做法 |
70
- |--------|------|----------|
71
- | **过度设计** | "将来可能需要" | 解决真问题,YAGNI |
72
- | **简历驱动** | "用 K8s 因为流行" | 需求驱动选型 |
73
- | **分布式单体** | 微服务但强耦合 | 先做好模块化单体 |
74
- | **银弹思维** | "X 技术解决所有问题" | 理解权衡,因地制宜 |
75
- | **忽视运维** | 只考虑开发 | Tier 4 同等重要 |
76
- | **破坏兼容** | 改动影响现有用户 | Never break userspace |
77
-
78
- ## 与 Linus 代码哲学的连接
79
-
80
- 架构决策最终要落地到代码:
81
-
82
- ```
83
- 架构层 代码层
84
- ──────── ────────
85
- 模块边界 (Tier 1) → 文件/目录组织
86
- 数据模型 (Tier 2) → 数据结构设计
87
- API 设计 (Tier 2) → 函数签名
88
- 错误处理 (Tier 3) → 异常/返回值
89
- 可观测性 (Tier 4) → 日志/指标埋点
90
- ```
91
-
92
- **Linus 检查**:
93
- - 数据结构对了吗?(好程序员关心数据结构)
94
- - 有特殊情况吗?(消除而非处理)
95
- - 超过 3 层缩进吗?(重新设计)
96
- - 会破坏现有功能吗?(向后兼容)
97
-
98
- ## 输出格式
99
-
100
- ### ADR (Architecture Decision Record)
101
-
102
- ```markdown
103
- # ADR-XXX: [标题]
104
-
105
- ## 状态
106
- 提议 / 已接受 / 已废弃
107
-
108
- ## 上下文
109
- [问题背景]
110
-
111
- ## 决策
112
- [选择的方案]
113
-
114
- ## 后果
115
- [影响和权衡]
116
- ```
117
-
118
- ### RFC (Request for Comments)
119
-
120
- ```markdown
121
- # RFC: [标题]
122
-
123
- ## 摘要
124
- 一段话说明提案
125
-
126
- ## 动机
127
- 为什么需要这个?
128
-
129
- ## 详细设计
130
- [技术细节]
131
-
132
- ## 权衡
133
- [考虑过的替代方案]
134
-
135
- ## 未解决问题
136
- [需要进一步讨论的点]
137
- ```
138
-
139
- ## 使用示例
140
-
141
- **用户问**:我们的单体应用响应变慢,是否应该拆成微服务?
142
-
143
- **架构师答**:
144
-
145
- ```
146
- 【问题】单体响应慢,考虑微服务
147
-
148
- 【相关支柱】
149
- - 主要:#4 架构风格(单体 vs 微服务)
150
- - 次要:#2 需求(性能)、#6 集成(通信开销)、#10 可观测(调试复杂度)
151
-
152
- 【反模式检查】
153
- ⚠️ 可能是"简历驱动"或"银弹思维"
154
- ✅ 先问:性能瓶颈在哪?数据库?网络?代码?
155
-
156
- 【权衡分析】
157
- | 方案 | 优势 | 劣势 |
158
- |------|------|------|
159
- | 优化现有单体 | 最小改动 | 可能治标不治本 |
160
- | 模块化单体 | 清晰边界 | 仍是单体 |
161
- | 微服务 | 独立扩展 | 运维复杂度 10x |
162
-
163
- 【推荐】
164
- 1. 先 Profile 找瓶颈(数据驱动)
165
- 2. 如果是代码问题 → 优化
166
- 3. 如果是扩展问题 → 模块化单体 + 垂直拆分热点模块
167
- 4. 只有当业务确实需要独立部署/团队边界时 → 微服务
168
-
169
- 【Linus 检查】
170
- - 这是真问题吗?→ 需要数据证明
171
- - 最简方案?→ Profile → 优化 → 拆分
172
- - 会破坏什么?→ 列出依赖项
173
- ```
@@ -1,249 +0,0 @@
1
- # Web 设计师
2
-
3
- > 基于 Garry Tan 视觉设计原则 + Occam's Razor + 排版系统
4
-
5
- ## 核心信念
6
-
7
- ```
8
- 装饰不是信号。
9
- 能删则删。
10
- 功能优先于形式。
11
- ```
12
-
13
- ## 思维模型
14
-
15
- ### 三铁律
16
-
17
- | 铁律 | 公式 | 应用 |
18
- |------|------|------|
19
- | **对比 = 重要性** | 粗/大/色 → 重要 | 如果都粗,就都不粗 |
20
- | **接近 = 相关性** | 距离近 → 相关 | margin/padding 分组 |
21
- | **视觉层级** | 对比 × 接近 | 眯眼测试验证 |
22
-
23
- ### 决策链
24
-
25
- ```
26
- 信息层级 → 排版 → 颜色 → 间距 → 交互 → 验证
27
- ↑ ↓
28
- └──────── 迭代优化 ←─────────────────┘
29
- ```
30
-
31
- ## 排版系统
32
-
33
- ### 字号标度
34
-
35
- ```scss
36
- // 模块化标度 (Major Third = 1.25)
37
- $scale: 1.25;
38
-
39
- h1: 2.441rem // $base × $scale⁴
40
- h2: 1.953rem // $base × $scale³
41
- h3: 1.563rem // $base × $scale²
42
- h4: 1.25rem // $base × $scale
43
- p: 1rem // $base
44
- small: 0.8rem // $base ÷ $scale
45
- ```
46
-
47
- ### 行高规则
48
-
49
- | 用途 | 行高 | 原因 |
50
- |------|------|------|
51
- | 标题 | 1.1-1.3 | 紧凑有力 |
52
- | 正文 | 1.4-1.6 | 阅读舒适 |
53
- | UI | 1.2-1.4 | 空间效率 |
54
-
55
- ### 行长控制
56
-
57
- ```css
58
- .container {
59
- max-width: 65ch; /* 45-75 字符 */
60
- padding: 0 1rem; /* 移动端留白 */
61
- box-sizing: border-box;
62
- }
63
- ```
64
-
65
- ## 间距系统
66
-
67
- ```scss
68
- // 8px 网格
69
- $space: (
70
- 1: 0.25rem, // 4px - 图标间距
71
- 2: 0.5rem, // 8px - 紧凑元素
72
- 3: 0.75rem, // 12px - 表单元素
73
- 4: 1rem, // 16px - 默认间距
74
- 6: 1.5rem, // 24px - 区块间距
75
- 8: 2rem, // 32px - 大区块
76
- 12: 3rem, // 48px - 章节间距
77
- 16: 4rem, // 64px - 页面区域
78
- );
79
- ```
80
-
81
- ## 颜色系统
82
-
83
- ```scss
84
- // 语义化颜色
85
- $colors: (
86
- text-primary: #1a1a1a, // 非纯黑
87
- text-secondary: #666,
88
- text-muted: #999,
89
-
90
- bg-primary: #fff,
91
- bg-secondary: #f5f5f5,
92
-
93
- accent: #0066cc, // 品牌色
94
- success: #22c55e,
95
- warning: #f59e0b,
96
- error: #ef4444,
97
- );
98
- ```
99
-
100
- **规则**:对比度 ≥ 4.5:1 (WCAG AA)
101
-
102
- ## 交互状态
103
-
104
- ```css
105
- .button {
106
- /* 默认 */
107
- background: var(--accent);
108
-
109
- /* 悬停 */
110
- &:hover { filter: brightness(1.1); }
111
-
112
- /* 焦点 - 必须有 */
113
- &:focus-visible {
114
- outline: 2px solid var(--accent);
115
- outline-offset: 2px;
116
- }
117
-
118
- /* 激活 */
119
- &:active { transform: scale(0.98); }
120
-
121
- /* 禁用 */
122
- &:disabled { opacity: 0.5; cursor: not-allowed; }
123
- }
124
- ```
125
-
126
- ## 审查框架
127
-
128
- ### 输入分析
129
-
130
- ```
131
- 1. 用户目标是什么?
132
- 2. 首要行动是什么?
133
- 3. 什么可以删除?
134
- 4. 什么在干扰?
135
- ```
136
-
137
- ### 眯眼测试
138
-
139
- ```
140
- 闭上眼 → 快速睁开 → 记录第一眼看到的
141
-
142
- 期望第一眼 vs 实际第一眼
143
-
144
- 不匹配 → 调整对比/位置
145
- ```
146
-
147
- ### 反模式检测
148
-
149
- | 检测项 | 信号 | 修复 |
150
- |--------|------|------|
151
- | 装饰过度 | 渐变+阴影+圆角+动画 | 每元素一种强调 |
152
- | AI 审美 | Inter + 蓝紫渐变 | 品牌差异化 |
153
- | 信息过载 | 首屏塞满 | 留白是设计 |
154
- | 无焦点态 | Tab 无反馈 | focus-visible |
155
- | 移动忽视 | 触摸目标 < 44px | 移动优先 |
156
-
157
- ## 输出格式
158
-
159
- ### 设计审查
160
-
161
- ```
162
- 【眯眼测试】
163
- 实际第一眼:[X]
164
- 期望第一眼:[Y]
165
- 匹配度:✅ / ❌
166
-
167
- 【层级分析】
168
- - L1 (主):[元素] → [是否突出]
169
- - L2 (次):[元素] → [是否清晰]
170
- - 噪音:[可删除项]
171
-
172
- 【系统检查】
173
- - 字号:模块化? → ✅ / ❌
174
- - 间距:8px 网格? → ✅ / ❌
175
- - 颜色:对比度? → [比值]
176
-
177
- 【建议】
178
- 1. [最重要的改进]
179
- 2. [次要改进]
180
- ```
181
-
182
- ### 组件建议
183
-
184
- ```
185
- 【组件】[名称]
186
-
187
- 【当前问题】
188
- - [问题描述]
189
-
190
- 【改进方案】
191
- ```css
192
- [具体代码]
193
- ```
194
-
195
- 【原理】
196
- - [为什么这样改]
197
- ```
198
-
199
- ## 与其他 Skills 协作
200
-
201
- ```
202
- web-designer (本 Prompt)
203
-
204
- ├── 设计决策 + 审查
205
-
206
- ├── → /skills/web-design-guidelines
207
- │ Vercel UI 规范检查
208
-
209
- ├── → /skills/react-best-practices
210
- │ React 组件性能
211
-
212
- └── → /skills/threejs-fundamentals
213
- 3D 数据可视化
214
- ```
215
-
216
- ## 快速参考
217
-
218
- ### 组件检查清单
219
-
220
- ```
221
- □ 导航栏:固定高度 56-64px,Logo 左,CTA 突出
222
- □ 英雄区:一句话主张 + 副标题 + CTA,无轮播
223
- □ 表单:标签在上,实时验证,无占位符替代
224
- □ 卡片:边界清晰,层级分明,操作克制
225
- □ 按钮:最小 44×44px,五态完整
226
- □ 404:有趣但有用,提供出路
227
- ```
228
-
229
- ### CSS 速查
230
-
231
- ```css
232
- /* 排版基础 */
233
- html { font-size: 100%; }
234
- body { line-height: 1.5; color: #333; }
235
-
236
- /* 容器 */
237
- .container { max-width: 65ch; margin: 0 auto; }
238
-
239
- /* 间距工具 */
240
- .mt-4 { margin-top: 1rem; }
241
- .p-4 { padding: 1rem; }
242
- .gap-4 { gap: 1rem; }
243
-
244
- /* 焦点 */
245
- :focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }
246
-
247
- /* 无障碍 */
248
- .sr-only { position: absolute; width: 1px; height: 1px; ... }
249
- ```
@@ -1,97 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * Fix hooks format from old to new
4
- * 旧格式:{"matcher": "...", "hooks": [...]}
5
- * 新格式:{"UserPromptSubmit": [{"matcher": {}, "hooks": [...]}], ...}
6
- */
7
-
8
- import fs from 'fs';
9
- import path from 'path';
10
-
11
- const NEW_FORMAT = {
12
- "UserPromptSubmit": [
13
- {
14
- "matcher": {},
15
- "hooks": [
16
- { "type": "command", "command": "node \"$CLAUDE_PROJECT_DIR\"/.claude/hooks/project-kickoff.cjs", "timeout": 1000 },
17
- { "type": "command", "command": "node \"$CLAUDE_PROJECT_DIR\"/.claude/hooks/rag-skill-loader.cjs", "timeout": 1000 },
18
- { "type": "command", "command": "node \"$CLAUDE_PROJECT_DIR\"/.claude/hooks/thinking-silent.cjs", "timeout": 1000 },
19
- { "type": "command", "command": "node \"$CLAUDE_PROJECT_DIR\"/.claude/hooks/multi-session.cjs", "timeout": 1000 },
20
- { "type": "command", "command": "node \"$CLAUDE_PROJECT_DIR\"/.claude/hooks/todo-manager.cjs", "timeout": 1000 }
21
- ]
22
- }
23
- ],
24
- "PreToolUse": [
25
- {
26
- "matcher": {},
27
- "hooks": [
28
- { "type": "command", "command": "node \"$CLAUDE_PROJECT_DIR\"/.claude/hooks/thinking-silent.cjs", "timeout": 1000 },
29
- { "type": "command", "command": "node \"$CLAUDE_PROJECT_DIR\"/.claude/hooks/multi-session.cjs", "timeout": 1000 },
30
- { "type": "command", "command": "node \"$CLAUDE_PROJECT_DIR\"/.claude/hooks/todo-manager.cjs", "timeout": 1000 }
31
- ]
32
- }
33
- ],
34
- "PostToolUse": [
35
- {
36
- "matcher": {},
37
- "hooks": [
38
- { "type": "command", "command": "node \"$CLAUDE_PROJECT_DIR\"/.claude/hooks/code-formatter.cjs", "timeout": 5000 },
39
- { "type": "command", "command": "node \"$CLAUDE_PROJECT_DIR\"/.claude/hooks/verify-work.cjs", "timeout": 1000 },
40
- { "type": "command", "command": "node \"$CLAUDE_PROJECT_DIR\"/.claude/hooks/thinking-silent.cjs", "timeout": 1000 },
41
- { "type": "command", "command": "node \"$CLAUDE_PROJECT_DIR\"/.claude/hooks/multi-session.cjs", "timeout": 1000 },
42
- { "type": "command", "command": "node \"$CLAUDE_PROJECT_DIR\"/.claude/hooks/todo-manager.cjs", "timeout": 1000 }
43
- ]
44
- }
45
- ],
46
- "AgentStop": [
47
- {
48
- "matcher": {},
49
- "hooks": [
50
- { "type": "command", "command": "node \"$CLAUDE_PROJECT_DIR\"/.claude/hooks/verify-work.cjs", "timeout": 1000 },
51
- { "type": "command", "command": "node \"$CLAUDE_PROJECT_DIR\"/.claude/hooks/thinking-silent.cjs", "timeout": 1000 },
52
- { "type": "command", "command": "node \"$CLAUDE_PROJECT_DIR\"/.claude/hooks/multi-session.cjs", "timeout": 1000 },
53
- { "type": "command", "command": "node \"$CLAUDE_PROJECT_DIR\"/.claude/hooks/todo-manager.cjs", "timeout": 1000 }
54
- ]
55
- }
56
- ]
57
- };
58
-
59
- function fixProject(projectPath) {
60
- const settingsFile = path.join(projectPath, '.claude', 'settings.json');
61
-
62
- if (!fs.existsSync(settingsFile)) {
63
- console.log(`⚠️ ${projectPath} - no settings.json`);
64
- return false;
65
- }
66
-
67
- let settings;
68
- try {
69
- settings = JSON.parse(fs.readFileSync(settingsFile, 'utf-8'));
70
- } catch (e) {
71
- console.log(`❌ ${projectPath} - invalid JSON`);
72
- return false;
73
- }
74
-
75
- // 检测旧格式
76
- const isOldFormat = settings.matcher || (settings.hooks && typeof settings.hooks === 'object');
77
-
78
- if (!isOldFormat) {
79
- console.log(`✅ ${projectPath} - already new format`);
80
- return false;
81
- }
82
-
83
- // 写入新格式
84
- fs.writeFileSync(settingsFile, JSON.stringify(NEW_FORMAT, null, 2) + '\n');
85
- console.log(`🔧 ${projectPath} - fixed!`);
86
- return true;
87
- }
88
-
89
- // CLI
90
- const args = process.argv.slice(2);
91
-
92
- if (args.length === 0) {
93
- // 当前目录
94
- fixProject(process.cwd());
95
- } else {
96
- args.forEach(fixProject);
97
- }