@topmindspace/tms-skills 0.1.0 → 0.1.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 (102) hide show
  1. package/CHANGELOG.md +76 -0
  2. package/README.md +9 -3
  3. package/bin/tms-skills.js +200 -160
  4. package/package.json +12 -9
  5. package/top-ppt-html/README.md +162 -254
  6. package/top-ppt-html/SKILL.md +126 -111
  7. package/top-ppt-html/assets/examples/2026-09-09-architecture-graphite-dark.html +3926 -3926
  8. package/top-ppt-html/assets/examples/2026-09-09-architecture-graphite-dark.model.json +167 -167
  9. package/top-ppt-html/assets/examples/2026-09-09-presentation-business-blue.html +4325 -4325
  10. package/top-ppt-html/assets/examples/2026-09-09-presentation-business-blue.model.json +320 -320
  11. package/top-ppt-html/assets/examples/2026-09-09-research-mckinsey.html +5527 -5527
  12. package/top-ppt-html/assets/examples/2026-09-09-research-mckinsey.model.json +913 -913
  13. package/top-ppt-html/assets/pptx-export.js +1944 -1944
  14. package/top-ppt-html/assets/style-gallery.html +589 -589
  15. package/top-ppt-html/assets/templates/architecture.html +3728 -3728
  16. package/top-ppt-html/assets/templates/engine.css +840 -840
  17. package/top-ppt-html/assets/templates/presentation.html +3738 -3738
  18. package/top-ppt-html/assets/templates/research.html +4017 -4017
  19. package/top-ppt-html/assets/templates/ui.js +520 -520
  20. package/top-ppt-html/assets/theme-overview-architecture.png +0 -0
  21. package/top-ppt-html/assets/theme-overview-research.png +0 -0
  22. package/top-ppt-html/assets/theme-overview.png +0 -0
  23. package/top-ppt-html/evals/prompts.csv +15 -15
  24. package/top-ppt-html/evals/rubric.schema.json +25 -25
  25. package/top-ppt-html/evals/run_evals.py +220 -220
  26. package/top-ppt-html/evals/trace.example.json +16 -16
  27. package/top-ppt-html/package-lock.json +186 -0
  28. package/top-ppt-html/package.json +11 -11
  29. package/top-ppt-html/references/charts-basic.md +624 -624
  30. package/top-ppt-html/references/charts-discipline.md +110 -108
  31. package/top-ppt-html/references/charts-extended.md +482 -482
  32. package/top-ppt-html/references/charts.md +37 -28
  33. package/top-ppt-html/references/components-atoms.md +624 -624
  34. package/top-ppt-html/references/components.md +30 -30
  35. package/top-ppt-html/references/content-rules.md +510 -490
  36. package/top-ppt-html/references/default-surface.md +61 -0
  37. package/top-ppt-html/references/design-system.md +478 -478
  38. package/top-ppt-html/references/failure-modes.md +227 -214
  39. package/top-ppt-html/references/high-fidelity.md +127 -127
  40. package/top-ppt-html/references/icons.md +176 -397
  41. package/top-ppt-html/references/infographics-stats.md +308 -308
  42. package/top-ppt-html/references/infographics-structure.md +226 -226
  43. package/top-ppt-html/references/infographics.md +43 -43
  44. package/top-ppt-html/references/layout-grammar.md +325 -315
  45. package/top-ppt-html/references/layouts-architecture.md +108 -108
  46. package/top-ppt-html/references/layouts-combo.md +600 -600
  47. package/top-ppt-html/references/layouts-research.md +160 -160
  48. package/top-ppt-html/references/modes.md +259 -254
  49. package/top-ppt-html/references/outline-design.md +275 -275
  50. package/top-ppt-html/references/playbook.md +284 -266
  51. package/top-ppt-html/references/pptx-export.md +227 -209
  52. package/top-ppt-html/references/presentation-craft.md +69 -0
  53. package/top-ppt-html/references/styles.md +370 -370
  54. package/top-ppt-html/references/tech-design.md +138 -138
  55. package/top-ppt-html/scripts/audit_css.py +109 -109
  56. package/top-ppt-html/scripts/audit_docs.py +176 -176
  57. package/top-ppt-html/scripts/audit_skill.py +231 -220
  58. package/top-ppt-html/scripts/audit_styles.py +351 -351
  59. package/top-ppt-html/scripts/build_examples.py +55 -2276
  60. package/top-ppt-html/scripts/build_pptx.js +2386 -2380
  61. package/top-ppt-html/scripts/capture_theme_overview.js +79 -78
  62. package/top-ppt-html/scripts/checks_html.py +166 -127
  63. package/top-ppt-html/scripts/cross_verify.py +298 -294
  64. package/top-ppt-html/scripts/env_probe.py +158 -158
  65. package/top-ppt-html/scripts/extract_model.py +210 -210
  66. package/top-ppt-html/scripts/extract_snippet.py +374 -374
  67. package/top-ppt-html/scripts/gen_channel_a.js +214 -214
  68. package/top-ppt-html/scripts/layout-constants.json +111 -18
  69. package/top-ppt-html/scripts/lib_layout_regions.js +410 -412
  70. package/top-ppt-html/scripts/measure_height.py +178 -178
  71. package/top-ppt-html/scripts/negative_tests.py +433 -307
  72. package/top-ppt-html/scripts/package_skill.py +294 -291
  73. package/top-ppt-html/scripts/prepare_images.py +341 -341
  74. package/top-ppt-html/scripts/probe_image_export.py +187 -188
  75. package/top-ppt-html/scripts/quality_gate.py +309 -301
  76. package/top-ppt-html/scripts/recommend_layout.py +384 -0
  77. package/top-ppt-html/scripts/regression.py +308 -308
  78. package/top-ppt-html/scripts/render_compare.py +275 -275
  79. package/top-ppt-html/scripts/render_from_model.py +698 -698
  80. package/top-ppt-html/scripts/scaffold_report.py +1054 -1054
  81. package/top-ppt-html/scripts/section-file-map.json +104 -104
  82. package/top-ppt-html/scripts/smoke_pptx.sh +30 -0
  83. package/top-ppt-html/scripts/sync_runtime.py +659 -662
  84. package/top-ppt-html/scripts/validate_pptx.py +1579 -1510
  85. package/top-ppt-html/scripts/validate_report.py +1755 -1456
  86. package/top-ppt-html/assets/examples/2026-09-09-architecture-spectrum.html +0 -3926
  87. package/top-ppt-html/assets/examples/2026-09-09-architecture-spectrum.model.json +0 -168
  88. package/top-ppt-html/assets/examples/2026-09-09-presentation-apple-mono.html +0 -4325
  89. package/top-ppt-html/assets/examples/2026-09-09-presentation-apple-mono.model.json +0 -321
  90. package/top-ppt-html/assets/examples/2026-09-09-presentation-brand-red.html +0 -4325
  91. package/top-ppt-html/assets/examples/2026-09-09-presentation-brand-red.model.json +0 -321
  92. package/top-ppt-html/assets/examples/2026-09-09-research-deep-teal.html +0 -5527
  93. package/top-ppt-html/assets/examples/2026-09-09-research-deep-teal.model.json +0 -914
  94. package/top-ppt-html/assets/examples/2026-09-09-research-indigo-violet.html +0 -5527
  95. package/top-ppt-html/assets/examples/2026-09-09-research-indigo-violet.model.json +0 -914
  96. package/top-ppt-html/assets/examples/2026-09-09-research-warm-sand.html +0 -5527
  97. package/top-ppt-html/assets/examples/2026-09-09-research-warm-sand.model.json +0 -914
  98. package/top-ppt-html/assets/theme-overview-presentation.png +0 -0
  99. package/top-ppt-html/references/design-system-engine.md +0 -235
  100. package/top-ppt-html/references/industry-benchmark.md +0 -105
  101. package/top-ppt-html/references/reform-plan.md +0 -252
  102. package/top-ppt-html/scripts/layout_slots.json +0 -830
@@ -1,397 +1,176 @@
1
- # 图标库(内联 SVG · currentColor · 随主题变色)
2
-
3
- 全部 24×24、描边风格(stroke 1.8,圆角线帽),用 `currentColor`,自动继承所在元素颜色。
4
-
5
- > **PPTX 通道**:内联 SVG 图标不跨通道导出。PPTX 侧卡片头用 **accent 小方块路标**(与 HTML `.card__ico` 的 accent 底同语义);要点列表用 accent 实心方块标记(已有)。**不要在模型里期待图标 ID 进 PPT**——路标语义靠 accent 色块 + 标题对齐完成。若某页必须视觉区分类型,用标题前缀(如「数据 ·」「风险 ·」)而不是图标。
6
-
7
- ## 使用准则(克制而合理 · 先读再用)
8
-
9
- **图标是信息的路标,不是装饰。** 该用的地方用好,不该用的地方一个都别放。
10
-
11
- ### 哪里用(四个正当位置)
12
-
13
- | 位置 | 做法 | 效果 |
14
- |------|------|------|
15
- | **卡片头** `.card__ico` | 每张要点卡一个小图标 | 卡片类型一眼可辨,最推荐 |
16
- | **关键列表** `.ul--ico` | 每行行首一个小图标(见 `components.md` 第 7 节) | 清单可扫读,适合 3–5 条的关键列表 |
17
- | **指标卡** `.metric__ico` | 指标卡右上角小图标 | 指标类别区分(规模/效率/质量) |
18
- | **提示条** `.note__ico` | 把 `i` 字母换成真图标 | 结论/警告/信息三类提示 |
19
-
20
- ### 哪里不用
21
-
22
- - **Agenda 大纲**——大编号已是路标,再加图标是噪音
23
- - **表格单元格**——表格靠文字对齐取胜,图标破坏栅格
24
- - **图表内部**——数据系列用色不用图标
25
- - **正文行内**——打断阅读流(引用标记除外)
26
-
27
- ### 密度与一致性
28
-
29
- - **每屏 3–8 个图标**;一屏全是图标 = 新噪音;连续两三屏零图标 = 单调,给要点卡补一个。
30
- - **克制 ≠ 不用**:全文零图标的报告会"没有路标",可扫读性差——长报告(≥6 页)至少要点卡(`.card__ico`)或关键列表(`.ul--ico`)有一处图标(校验器 WARN 提醒)。**目标:够用即止,不多不少。**
31
- - **research 模式例外**:图标密度减半(每屏 2–4 个)——咨询版式以 Exhibit 图表与论证结构为视觉主角,图标更克制;`.exhibit` 图表框内不放图标。
32
- - **architecture 模式例外**:主图内不放图标(节点短标签已足够);图标只允许出现在图例区旁(≤2 个)。
33
- - **一套报告只用描边风**(本库全部是),stroke-width 统一 1.8,不混用填充风。
34
- - **尺寸**:`.card__ico` 内 18px;`.ul--ico` 内 17px;`.metric__ico` 20px;行内特殊场景 `width:1em`。
35
- - **对齐**:图标与标题垂直居中(组件类已处理);自定义时 `display:grid;place-items:center`。
36
-
37
- ### 颜色
38
-
39
- - 不改 `stroke="currentColor"`——颜色由容器决定(`.card__ico` 自动是 accent 底 + accent 图标)。
40
- - 深色收尾章里容器是半透明亮底,图标容器加 `color:var(--text-inv)`。
41
- - spectrum 风格也不给图标单独上色——**彩色只属于数据系列**。
42
-
43
- ---
44
-
45
- ## 数据与图表
46
-
47
- **数据库**
48
- ```html
49
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><ellipse cx="12" cy="5" rx="9" ry="3"/><path d="M3 5v14c0 1.66 4.03 3 9 3s9-1.34 9-3V5"/><path d="M3 12c0 1.66 4.03 3 9 3s9-1.34 9-3"/></svg>
50
- ```
51
-
52
- **柱状图**
53
- ```html
54
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M3 3v18h18"/><rect x="7" y="12" width="3" height="6" rx="1"/><rect x="12" y="8" width="3" height="10" rx="1"/><rect x="17" y="4" width="3" height="14" rx="1"/></svg>
55
- ```
56
-
57
- **趋势/折线**
58
- ```html
59
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M3 3v18h18"/><path d="M7 14l4-4 3 3 5-6"/><path d="M15 7h4v4"/></svg>
60
- ```
61
-
62
- **环形/占比**
63
- ```html
64
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M21.2 15.9A10 10 0 1 1 8 2.8"/><path d="M22 12A10 10 0 0 0 12 2v10z"/></svg>
65
- ```
66
-
67
- **表格/网格**
68
- ```html
69
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2"/><path d="M3 9h18M3 15h18M9 3v18M15 3v18"/></svg>
70
- ```
71
-
72
- **仪表盘/效率**
73
- ```html
74
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M12 15l3.5-5.5"/><path d="M20.2 15a8.5 8.5 0 1 0-16.4 0"/></svg>
75
- ```
76
-
77
- **漏斗/转化**
78
- ```html
79
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M4 4h16l-6 8v6l-4 2v-8L4 4z"/></svg>
80
- ```
81
-
82
- ---
83
-
84
- ## 增长与经营
85
-
86
- **增长/上升**
87
- ```html
88
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M22 7l-8.5 8.5-5-5L2 17"/><path d="M16 7h6v6"/></svg>
89
- ```
90
-
91
- **下降/回落**
92
- ```html
93
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M22 17l-8.5-8.5-5 5L2 7"/><path d="M16 17h6v-6"/></svg>
94
- ```
95
-
96
- **成本/财务**
97
- ```html
98
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><circle cx="8" cy="8" r="6"/><path d="M18.09 10.37A6 6 0 1 1 10.34 18"/><path d="M7 6h1v4"/><path d="m16.71 13.88.7.71-2.82 2.82"/></svg>
99
- ```
100
-
101
- **目标/靶心**
102
- ```html
103
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><circle cx="12" cy="12" r="6"/><circle cx="12" cy="12" r="2"/></svg>
104
- ```
105
-
106
- **奖章/成果**
107
- ```html
108
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="8" r="6"/><path d="M15.5 13 17 22l-5-3-5 3 1.5-9"/></svg>
109
- ```
110
-
111
- **旗帜/里程碑**
112
- ```html
113
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M4 15s1-1 4-1 5 2 8 2 4-1 4-1V3s-1 1-4 1-5-2-8-2-4 1-4 1z"/><path d="M4 22v-7"/></svg>
114
- ```
115
-
116
- **火箭/启动**
117
- ```html
118
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09z"/><path d="M12 15l-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z"/><path d="M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0"/><path d="M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5"/></svg>
119
- ```
120
-
121
- ---
122
-
123
- ## 治理与安全
124
-
125
- **盾牌/安全**
126
- ```html
127
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/><path d="M9 12l2 2 4-4"/></svg>
128
- ```
129
-
130
- **锁/权限**
131
- ```html
132
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="11" width="18" height="10" rx="2"/><path d="M7 11V7a5 5 0 0 1 10 0v4"/></svg>
133
- ```
134
-
135
- **钥匙/密钥**
136
- ```html
137
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><circle cx="7.5" cy="15.5" r="5.5"/><path d="m21 2-9.6 9.6"/><path d="m15.5 7.5 3 3L22 7l-3-3"/></svg>
138
- ```
139
-
140
- **齿轮/引擎**
141
- ```html
142
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="3"/><path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 1 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 1 1-4 0v-.09a1.65 1.65 0 0 0-1-1.51 1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 1 1-2.83-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 1 1 0-4h.09a1.65 1.65 0 0 0 1.51-1 1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 1 1 2.83-2.83l.06.06a1.65 1.65 0 0 0 1.82.33h.01a1.65 1.65 0 0 0 1-1.51V3a2 2 0 1 1 4 0v.09a1.65 1.65 0 0 0 1 1.51h.01a1.65 1.65 0 0 0 1.82-.33l.06.06a2 2 0 1 1 2.83 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82v.01a1.65 1.65 0 0 0 1.51 1H21a2 2 0 1 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z"/></svg>
143
- ```
144
-
145
- **天平/合规**
146
- ```html
147
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M12 3v18"/><path d="M5 21h14"/><path d="M7 7l-4 7a4.5 4.5 0 0 0 8 0L7 7z"/><path d="M17 7l-4 7a4.5 4.5 0 0 0 8 0l-4-7z"/><path d="M5 7h14"/></svg>
148
- ```
149
-
150
- **链接/血缘**
151
- ```html
152
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"/><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"/></svg>
153
- ```
154
-
155
- **检查/对勾**
156
- ```html
157
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><path d="M8 12.5l2.5 2.5L16 9.5"/></svg>
158
- ```
159
-
160
- **警告**
161
- ```html
162
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M10.3 3.9 1.8 18a2 2 0 0 0 1.7 3h17a2 2 0 0 0 1.7-3L13.7 3.9a2 2 0 0 0-3.4 0z"/><path d="M12 9v4M12 17h.01"/></svg>
163
- ```
164
-
165
- **信息**
166
- ```html
167
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><path d="M12 16v-4M12 8h.01"/></svg>
168
- ```
169
-
170
- **眼睛/可视**
171
- ```html
172
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M1 12s4-7 11-7 11 7 11 7-4 7-11 7-11-7-11-7z"/><circle cx="12" cy="12" r="3"/></svg>
173
- ```
174
-
175
- ---
176
-
177
- ## 组织与流程
178
-
179
- **用户/团队**
180
- ```html
181
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M17 21v-2a4 4 0 0 0-4-4H7a4 4 0 0 0-4 4v2"/><circle cx="10" cy="7" r="4"/><path d="M23 21v-2a4 4 0 0 0-3-3.87M16 3.13a4 4 0 0 1 0 7.75"/></svg>
182
- ```
183
-
184
- **单人/角色**
185
- ```html
186
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"/><circle cx="12" cy="7" r="4"/></svg>
187
- ```
188
-
189
- **架构/层级**
190
- ```html
191
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="2" width="6" height="6" rx="1"/><rect x="2" y="16" width="6" height="6" rx="1"/><rect x="16" y="16" width="6" height="6" rx="1"/><path d="M12 8v4M5 16v-2a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v2"/></svg>
192
- ```
193
-
194
- **图层/架构**
195
- ```html
196
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2 2 7l10 5 10-5-10-5z"/><path d="M2 17l10 5 10-5"/><path d="M2 12l10 5 10-5"/></svg>
197
- ```
198
-
199
- **网络/节点**
200
- ```html
201
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><circle cx="18" cy="5" r="3"/><circle cx="6" cy="12" r="3"/><circle cx="18" cy="19" r="3"/><path d="M8.6 10.6 15.4 6.4M8.6 13.4l6.8 4.2"/></svg>
202
- ```
203
-
204
- **分支/流程**
205
- ```html
206
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><circle cx="6" cy="6" r="3"/><circle cx="6" cy="18" r="3"/><circle cx="18" cy="8" r="3"/><path d="M6 9v6M18 11a9 9 0 0 1-9 4"/></svg>
207
- ```
208
-
209
- **循环/飞轮**
210
- ```html
211
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M21 12a9 9 0 1 1-2.64-6.36"/><path d="M21 3v6h-6"/></svg>
212
- ```
213
-
214
- **刷新/迭代**
215
- ```html
216
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M3 12a9 9 0 0 1 15-6.7L21 8"/><path d="M21 3v5h-5"/><path d="M21 12a9 9 0 0 1-15 6.7L3 16"/><path d="M3 21v-5h5"/></svg>
217
- ```
218
-
219
- **拼图/集成**
220
- ```html
221
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M14 7V4a2 2 0 0 0-4 0v3H7a2 2 0 0 0-2 2v3h3a2 2 0 1 1 0 4H5v3a2 2 0 0 0 2 2h3v-3a2 2 0 1 1 4 0v3h3a2 2 0 0 0 2-2v-3h3a2 2 0 0 0 0-4h-3V9a2 2 0 0 0-2-2h-3z"/></svg>
222
- ```
223
-
224
- ---
225
-
226
- ## 时间与效率
227
-
228
- **时钟/时间**
229
- ```html
230
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><path d="M12 6v6l4 2"/></svg>
231
- ```
232
-
233
- **日历/计划**
234
- ```html
235
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="4" width="18" height="18" rx="2"/><path d="M16 2v4M8 2v4M3 10h18"/></svg>
236
- ```
237
-
238
- **闪电/高效**
239
- ```html
240
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M13 2 3 14h7l-1 8 10-12h-7l1-8z"/></svg>
241
- ```
242
-
243
- **罗盘/方向**
244
- ```html
245
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><polygon points="16.24 7.76 14.12 14.12 7.76 16.24 9.88 9.88 16.24 7.76"/></svg>
246
- ```
247
-
248
- ---
249
-
250
- ## 文档与工具
251
-
252
- **文档/报告**
253
- ```html
254
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8l-6-6z"/><path d="M14 2v6h6M16 13H8M16 17H8M10 9H8"/></svg>
255
- ```
256
-
257
- **文件夹/资产**
258
- ```html
259
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2z"/></svg>
260
- ```
261
-
262
- **搜索/洞察**
263
- ```html
264
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8"/><path d="m21 21-4.3-4.3"/></svg>
265
- ```
266
-
267
- **扳手/工具**
268
- ```html
269
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z"/></svg>
270
- ```
271
-
272
- **灯泡/洞察**
273
- ```html
274
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M9 18h6M10 22h4"/><path d="M12 2a7 7 0 0 0-4 12.7c.6.5 1 1.2 1 2V17h6v-.3c0-.8.4-1.5 1-2A7 7 0 0 0 12 2z"/></svg>
275
- ```
276
-
277
- **书签/收藏**
278
- ```html
279
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M19 21l-7-5-7 5V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z"/></svg>
280
- ```
281
-
282
- **编辑/撰写**
283
- ```html
284
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M17 3a2.85 2.83 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5L17 3z"/></svg>
285
- ```
286
-
287
- ---
288
-
289
- ## 平台与智能
290
-
291
- **云/平台**
292
- ```html
293
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M18 10h-1.26A8 8 0 1 0 9 20h9a5 5 0 0 0 0-10z"/></svg>
294
- ```
295
-
296
- **芯片/AI**
297
- ```html
298
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><rect x="4" y="4" width="16" height="16" rx="2"/><rect x="9" y="9" width="6" height="6"/><path d="M9 1v3M15 1v3M9 20v3M15 20v3M1 9h3M1 15h3M20 9h3M20 15h3"/></svg>
299
- ```
300
-
301
- **机器人/Agent**
302
- ```html
303
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><rect x="4" y="8" width="16" height="12" rx="2"/><path d="M12 8V4M8 4h8"/><circle cx="9" cy="14" r="1"/><circle cx="15" cy="14" r="1"/><path d="M9 18h6"/></svg>
304
- ```
305
-
306
- **筛选/过滤**
307
- ```html
308
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M22 3H2l8 9.46V19l4 2v-8.54L22 3z"/></svg>
309
- ```
310
-
311
- **加号/新增**
312
- ```html
313
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><path d="M12 8v8M8 12h8"/></svg>
314
- ```
315
-
316
- **消息/协同**
317
- ```html
318
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/></svg>
319
- ```
320
-
321
- ---
322
-
323
- ## 图表语义 / 布局 / 待核实
324
-
325
- **待核实/待确认**(`.flagbar` / `.tbd-legend` 专用,与"警告"区分:警告=风险,此=待补)
326
- ```html
327
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"/><path d="M12 17h.01"/></svg>
328
- ```
329
-
330
- **流向 / 桑基**
331
- ```html
332
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M4 6h5c4 0 4 12 8 12h3"/><path d="M4 18h5c4 0 4-12 8-12h3"/><path d="M17 3l3 3-3 3M17 15l3 3-3 3"/></svg>
333
- ```
334
-
335
- **斜率 / 升降对比**
336
- ```html
337
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M4 19V5M20 19V5"/><path d="M6 15 18 8"/><path d="M6 11 18 16"/></svg>
338
- ```
339
-
340
- **哑铃 / 前后对比**
341
- ```html
342
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M4 12h16"/><circle cx="6" cy="12" r="2.4"/><circle cx="18" cy="12" r="2.4"/></svg>
343
- ```
344
-
345
- **分布 / 点图**
346
- ```html
347
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M3 12h18"/><circle cx="7" cy="8" r="1.6"/><circle cx="12" cy="12" r="1.6"/><circle cx="16" cy="7" r="1.6"/><circle cx="19" cy="15" r="1.6"/></svg>
348
- ```
349
-
350
- **目标线 / 子弹图**
351
- ```html
352
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="8" width="18" height="8" rx="2"/><path d="M16 5v14"/></svg>
353
- ```
354
-
355
- **图片 / 素材图**(也是**配图占位** `.media__ph` 的标准图标——占位块统一用这一个)
356
- ```html
357
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="4" width="18" height="16" rx="2"/><circle cx="8.5" cy="9.5" r="1.6"/><path d="m4 17 5-5 4 4 3-3 4 4"/></svg>
358
- ```
359
- > 占位块内**不要**给 svg 加 `class="f-*"`:`.media__ph svg` 已用 `stroke:var(--accent); fill:none` 随风格/主题自动取色(写成 `fill` 实心会在深色主题下发灰)。
360
-
361
- **拼贴 / 布局**
362
- ```html
363
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="8" height="10" rx="1.5"/><rect x="13" y="3" width="8" height="5" rx="1.5"/><rect x="13" y="10" width="8" height="11" rx="1.5"/><rect x="3" y="15" width="8" height="6" rx="1.5"/></svg>
364
- ```
365
-
366
- **清单 / 条目**
367
- ```html
368
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M9 6h11M9 12h11M9 18h11"/><path d="M4 6h.01M4 12h.01M4 18h.01"/></svg>
369
- ```
370
-
371
- **构成 / 马赛克**
372
- ```html
373
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="4" width="10" height="16" rx="1.5"/><rect x="13" y="4" width="8" height="9" rx="1.5"/><rect x="13" y="13" width="8" height="7" rx="1.5"/></svg>
374
- ```
375
-
376
- ---
377
-
378
- ## 速查:按语义选图标
379
-
380
- | 语义 | 图标 |
381
- |------|------|
382
- | 规模/底座 | 数据库、云、文件夹 |
383
- | 效率/性能 | 仪表盘、闪电、时钟 |
384
- | 增长/成果 | 增长、奖章、火箭、旗帜 |
385
- | 风险/问题 | 警告、下降 |
386
- | 治理/安全 | 盾牌、锁、钥匙、天平 |
387
- | 口径/规则 | 文档、天平、书签 |
388
- | 组织/分工 | 用户、单人、架构 |
389
- | 流程/血缘 | 分支、链接、循环、刷新、流向 |
390
- | 计划/路线 | 日历、罗盘、旗帜 |
391
- | 智能/Agent | 芯片、机器人 |
392
- | 洞察/分析 | 搜索、灯泡、眼睛 |
393
- | 建设/工具 | 扳手、齿轮、拼图 |
394
- | 图表语义 | 柱状图、趋势、环形、表格、分布、斜率、哑铃、构成 |
395
- | 布局/图片 | 拼贴、图片、全幅 |
396
- | 待核实/待补 | 待核实(问号圈) |
397
- | 清单/条目 | 清单 |
1
+ # 图标库(语义选型 · 克制取用)
2
+
3
+ > **何时读**:需要卡片头 / 列表行首 / 指标角标 / 提示条图标时。
4
+ > **取码**:本节「高频取码」或 `python scripts/extract_snippet.py --task icons`。
5
+ > **完整 SVG 枚举**(60+):`docs/archive/refs/icons-catalog.md`(生成默认**不**预读;仅当高频未覆盖语义时按名查阅)。
6
+
7
+ 全部 24×24、描边(stroke 1.8,圆角线帽),`currentColor` 随主题变色。
8
+
9
+ > **PPTX 通道**:内联 SVG 不跨通道导出。PPTX 侧卡片头用 **accent 小方块路标**;要点列表用 accent 实心方块。**不要在模型里期待图标 ID 进 PPT**。若须区分类型,用标题前缀(「数据 ·」「风险 ·」)。
10
+
11
+ ## 使用准则(先读再用)
12
+
13
+ **图标是信息路标,不是装饰。**
14
+
15
+ ### 哪里用(四个正当位置)
16
+
17
+ | 位置 | 做法 | 效果 |
18
+ |------|------|------|
19
+ | **卡片头** `.card__ico` | 每张要点卡一个小图标 | 类型一眼可辨(最推荐) |
20
+ | **关键列表** `.ul--ico` | 行首小图标(`components.md` §7) | 3–5 条可扫读 |
21
+ | **指标卡** `.metric__ico` | 右上角小图标 | 规模/效率/质量区分 |
22
+ | **提示条** `.note__ico` | 真图标替代字母 `i` | 结论/警告/信息 |
23
+
24
+ ### 禁区(哪里不用)
25
+
26
+ - **Agenda 大纲**——大编号已是路标
27
+ - **表格单元格**——破坏栅格对齐
28
+ - **图表内部**——系列用色,不用图标
29
+ - **正文行内**——打断阅读(引用标记除外)
30
+ - **装饰性堆砌**——一屏图标墙、与文案无关的插图风图标
31
+
32
+ ### 尺寸档(唯一合法)
33
+
34
+ | 场景 | 尺寸 |
35
+ |------|------|
36
+ | 列表行首 `.ul--ico` | **16–18px**(默认 17) |
37
+ | 卡片头 `.card__ico` | **20–24px**(默认 18–20 视主题) |
38
+ | 指标角标 `.metric__ico` | **16–20px** |
39
+ | 行内特例 | `width:1em` |
40
+
41
+ 光学中心对文字 x-height;图文距 `--sp-2`(8px)。同屏同尺寸。校验:`LAYOUT_ICON_SIZE`(∉ {16,18,20,24} → WARN)。
42
+
43
+ ### 密度与一致性
44
+
45
+ - 每屏 **3–8** 个;research 减半(2–4);architecture 主图内 0,图例旁 ≤2
46
+ - 长报告(≥6 页)至少一处 `.card__ico` 或 `.ul--ico`(否则 WARN)
47
+ - 全篇统一描边风 stroke 1.8;不改 `stroke="currentColor"`;彩色只属于数据系列
48
+
49
+ ## 速查:按语义选图标
50
+
51
+ | 语义 | 选用(高频名) |
52
+ |------|----------------|
53
+ | 规模/底座 | 数据库、云/平台、文件夹/资产 |
54
+ | 效率/性能 | 仪表盘/效率、闪电/高效、时钟/时间 |
55
+ | 增长/成果 | 增长/上升、奖章/成果、旗帜/里程碑 |
56
+ | 风险/问题 | 警告、下降/回落 |
57
+ | 治理/安全 | 盾牌/安全、锁/权限 |
58
+ | 口径/规则 | 文档/报告、检查/对勾 |
59
+ | 组织/分工 | 用户/团队、架构/层级 |
60
+ | 流程/血缘 | 分支/流程、循环/飞轮 |
61
+ | 计划/路线 | 日历/计划、罗盘/方向 |
62
+ | 智能/Agent | 芯片/AI、机器人/Agent |
63
+ | 洞察/分析 | 搜索/洞察、灯泡/洞察 |
64
+ | 建设/工具 | 扳手/工具 |
65
+ | 图表语义 | 柱状图、趋势/折线、环形/占比、表格/网格 |
66
+ | 布局 | 拼贴 / 布局 |
67
+ | 清单/条目 | 清单/条目 |
68
+ | 待核实 | 信息(或归档目录「待核实」) |
69
+
70
+ 选型顺序:**语义表 → 高频取码 →**(未覆盖时)归档目录按名复制。
71
+
72
+ ## 高频取码(压缩 SVG · 20)
73
+
74
+ **数据库**
75
+ ```html
76
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><ellipse cx="12" cy="5" rx="9" ry="3"/><path d="M3 5v14c0 1.66 4.03 3 9 3s9-1.34 9-3V5"/><path d="M3 12c0 1.66 4.03 3 9 3s9-1.34 9-3"/></svg>
77
+ ```
78
+
79
+ **柱状图**
80
+ ```html
81
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M3 3v18h18"/><rect x="7" y="12" width="3" height="6" rx="1"/><rect x="12" y="8" width="3" height="10" rx="1"/><rect x="17" y="4" width="3" height="14" rx="1"/></svg>
82
+ ```
83
+
84
+ **趋势/折线**
85
+ ```html
86
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M3 3v18h18"/><path d="M7 14l4-4 3 3 5-6"/><path d="M15 7h4v4"/></svg>
87
+ ```
88
+
89
+ **环形/占比**
90
+ ```html
91
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M21.2 15.9A10 10 0 1 1 8 2.8"/><path d="M22 12A10 10 0 0 0 12 2v10z"/></svg>
92
+ ```
93
+
94
+ **表格/网格**
95
+ ```html
96
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2"/><path d="M3 9h18M3 15h18M9 3v18M15 3v18"/></svg>
97
+ ```
98
+
99
+ **仪表盘/效率**
100
+ ```html
101
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M12 15l3.5-5.5"/><path d="M20.2 15a8.5 8.5 0 1 0-16.4 0"/></svg>
102
+ ```
103
+
104
+ **增长/上升**
105
+ ```html
106
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M22 7l-8.5 8.5-5-5L2 17"/><path d="M16 7h6v6"/></svg>
107
+ ```
108
+
109
+ **下降/回落**
110
+ ```html
111
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M22 17l-8.5-8.5-5 5L2 7"/><path d="M16 17h6v-6"/></svg>
112
+ ```
113
+
114
+ **奖章/成果**
115
+ ```html
116
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="8" r="6"/><path d="M15.5 13 17 22l-5-3-5 3 1.5-9"/></svg>
117
+ ```
118
+
119
+ **盾牌/安全**
120
+ ```html
121
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/><path d="M9 12l2 2 4-4"/></svg>
122
+ ```
123
+
124
+ **锁/权限**
125
+ ```html
126
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="11" width="18" height="10" rx="2"/><path d="M7 11V7a5 5 0 0 1 10 0v4"/></svg>
127
+ ```
128
+
129
+ **检查/对勾**
130
+ ```html
131
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><path d="M8 12.5l2.5 2.5L16 9.5"/></svg>
132
+ ```
133
+
134
+ **警告**
135
+ ```html
136
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M10.3 3.9 1.8 18a2 2 0 0 0 1.7 3h17a2 2 0 0 0 1.7-3L13.7 3.9a2 2 0 0 0-3.4 0z"/><path d="M12 9v4M12 17h.01"/></svg>
137
+ ```
138
+
139
+ **用户/团队**
140
+ ```html
141
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M17 21v-2a4 4 0 0 0-4-4H7a4 4 0 0 0-4 4v2"/><circle cx="10" cy="7" r="4"/><path d="M23 21v-2a4 4 0 0 0-3-3.87M16 3.13a4 4 0 0 1 0 7.75"/></svg>
142
+ ```
143
+
144
+ **架构/层级**
145
+ ```html
146
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="2" width="6" height="6" rx="1"/><rect x="2" y="16" width="6" height="6" rx="1"/><rect x="16" y="16" width="6" height="6" rx="1"/><path d="M12 8v4M5 16v-2a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v2"/></svg>
147
+ ```
148
+
149
+ **分支/流程**
150
+ ```html
151
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><circle cx="6" cy="6" r="3"/><circle cx="6" cy="18" r="3"/><circle cx="18" cy="8" r="3"/><path d="M6 9v6M18 11a9 9 0 0 1-9 4"/></svg>
152
+ ```
153
+
154
+ **日历/计划**
155
+ ```html
156
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="4" width="18" height="18" rx="2"/><path d="M16 2v4M8 2v4M3 10h18"/></svg>
157
+ ```
158
+
159
+ **闪电/高效**
160
+ ```html
161
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M13 2 3 14h7l-1 8 10-12h-7l1-8z"/></svg>
162
+ ```
163
+
164
+ **文档/报告**
165
+ ```html
166
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8l-6-6z"/><path d="M14 2v6h6M16 13H8M16 17H8M10 9H8"/></svg>
167
+ ```
168
+
169
+ **搜索/洞察**
170
+ ```html
171
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8"/><path d="m21 21-4.3-4.3"/></svg>
172
+ ```
173
+
174
+ ---
175
+
176
+ > 包内 `icons.md` 保持 REQUIRED(语义 + 禁区 + 尺寸 + 高频码)。完整枚举见 `docs/archive/refs/icons-catalog.md`;默认生成**不**预读归档。