@topmindspace/tms-skills 0.1.1 → 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 (54) hide show
  1. package/CHANGELOG.md +61 -0
  2. package/package.json +1 -1
  3. package/top-ppt-html/README.md +38 -130
  4. package/top-ppt-html/SKILL.md +34 -19
  5. package/top-ppt-html/assets/theme-overview-architecture.png +0 -0
  6. package/top-ppt-html/assets/theme-overview-research.png +0 -0
  7. package/top-ppt-html/assets/theme-overview.png +0 -0
  8. package/top-ppt-html/package.json +1 -1
  9. package/top-ppt-html/references/charts-discipline.md +3 -1
  10. package/top-ppt-html/references/charts.md +24 -15
  11. package/top-ppt-html/references/content-rules.md +54 -34
  12. package/top-ppt-html/references/default-surface.md +61 -0
  13. package/top-ppt-html/references/design-system.md +2 -2
  14. package/top-ppt-html/references/failure-modes.md +14 -1
  15. package/top-ppt-html/references/icons.md +56 -277
  16. package/top-ppt-html/references/layout-grammar.md +16 -6
  17. package/top-ppt-html/references/modes.md +16 -11
  18. package/top-ppt-html/references/playbook.md +31 -13
  19. package/top-ppt-html/references/pptx-export.md +20 -2
  20. package/top-ppt-html/references/presentation-craft.md +69 -0
  21. package/top-ppt-html/references/tech-design.md +5 -5
  22. package/top-ppt-html/scripts/audit_skill.py +13 -2
  23. package/top-ppt-html/scripts/build_examples.py +39 -2260
  24. package/top-ppt-html/scripts/build_pptx.js +6 -0
  25. package/top-ppt-html/scripts/checks_html.py +39 -0
  26. package/top-ppt-html/scripts/cross_verify.py +5 -1
  27. package/top-ppt-html/scripts/extract_snippet.py +2 -2
  28. package/top-ppt-html/scripts/layout-constants.json +111 -18
  29. package/top-ppt-html/scripts/lib_layout_regions.js +7 -9
  30. package/top-ppt-html/scripts/negative_tests.py +127 -1
  31. package/top-ppt-html/scripts/package_skill.py +13 -10
  32. package/top-ppt-html/scripts/quality_gate.py +11 -3
  33. package/top-ppt-html/scripts/recommend_layout.py +384 -0
  34. package/top-ppt-html/scripts/regression.py +1 -1
  35. package/top-ppt-html/scripts/smoke_pptx.sh +30 -0
  36. package/top-ppt-html/scripts/sync_runtime.py +22 -25
  37. package/top-ppt-html/scripts/validate_pptx.py +69 -0
  38. package/top-ppt-html/scripts/validate_report.py +309 -10
  39. package/top-ppt-html/assets/examples/2026-09-09-architecture-spectrum.html +0 -3926
  40. package/top-ppt-html/assets/examples/2026-09-09-architecture-spectrum.model.json +0 -168
  41. package/top-ppt-html/assets/examples/2026-09-09-presentation-apple-mono.html +0 -4325
  42. package/top-ppt-html/assets/examples/2026-09-09-presentation-apple-mono.model.json +0 -321
  43. package/top-ppt-html/assets/examples/2026-09-09-presentation-brand-red.html +0 -4325
  44. package/top-ppt-html/assets/examples/2026-09-09-presentation-brand-red.model.json +0 -321
  45. package/top-ppt-html/assets/examples/2026-09-09-research-deep-teal.html +0 -5527
  46. package/top-ppt-html/assets/examples/2026-09-09-research-deep-teal.model.json +0 -914
  47. package/top-ppt-html/assets/examples/2026-09-09-research-indigo-violet.html +0 -5527
  48. package/top-ppt-html/assets/examples/2026-09-09-research-indigo-violet.model.json +0 -914
  49. package/top-ppt-html/assets/examples/2026-09-09-research-warm-sand.html +0 -5527
  50. package/top-ppt-html/assets/examples/2026-09-09-research-warm-sand.model.json +0 -914
  51. package/top-ppt-html/references/design-system-engine.md +0 -235
  52. package/top-ppt-html/references/industry-benchmark.md +0 -105
  53. package/top-ppt-html/references/reform-plan.md +0 -252
  54. package/top-ppt-html/scripts/layout_slots.json +0 -830
@@ -2,7 +2,7 @@
2
2
 
3
3
  > **何时读**:写正文、调密度、去 AI 味、处理引用与待核实标注时。**何时不读**:定模式/选版式阶段(用 `playbook.md`)。
4
4
  > **取节**:`python scripts/extract_snippet.py --task content-rules`(密度/字数/去AI味打包)。整读 30KB 视为浪费。
5
- > **目录**:一 文字 · 一-b 图标 · 一-c 彩色 · 二 去AI味 · 三 数据化 · 四 密度 · 四-b 复杂布局 · 四-c 内容过多 · 四-d 丰富度分级 · 四-e 细节保全 · 四-f 表格字号与内边距 · 五 引用 · 五-b 待核实 · 六 章节骨架 · 七 交付自查 · 八 research 规则
5
+ > **目录**:一 文字 · 一-b 图标 · 一-c 彩色 · 二 去AI味 · 三 数据化 · 四 密度 · 四-b 复杂布局 · 四-c 溢出处置(禁截断) · 四-d 丰富度分级 · 四-e 细节保全 · 四-f 表格字号与内边距 · 五 引用 · 五-b 待核实 · 六 章节骨架 · 六-b Mode A 主张标题 · 七 交付自查 · 八 research 规则
6
6
 
7
7
  ## 核心判断标准(v8:先保全,后呈现)
8
8
 
@@ -18,15 +18,17 @@
18
18
 
19
19
  ---
20
20
 
21
- ## 一、文字:短、断、可念
21
+ ## 一、文字:短、断、可念(结构优先 · 禁为疏朗而删)
22
22
 
23
- | 位置 | 上限 |
23
+ > **反截断**:下列是**结构引导**,不是「超字数就删掉」的硬砍刀。长文先列表化 / 拆卡 / 拆页,**禁止**静默截断或丢掉 so-what / 证据。详规见 `presentation-craft.md`「长文与信息承载」。
24
+
25
+ | 位置 | 结构引导(非删除许可证) |
24
26
  |------|------|
25
- | 章节导语(lead) | ≤ 2 行,≤ 60 字 |
26
- | 卡片内正文 | **禁止超过 3 行纯段落**,超过一律转列表 |
27
- | 单句长度 | ≤ 40 字,超过必须断句 |
28
- | 单个列表项 | ≤ 2 行,≤ 45 字 |
29
- | 一屏核心主张 | 只能有 **1 个** |
27
+ | 章节导语(lead) | 宜 ≤2 行;超长 → 拆成导语 + 列表,或挪到下一页主张页 |
28
+ | 卡片内正文 | 纯段落宜短;**超过约 3 行 → 转列表 / 拆成多卡**,勿压行删义 |
29
+ | 单句长度 | 宜断句(约 40 字换气);超长 → 断句或分条,勿删判断 |
30
+ | 单个列表项 | 宜 1–2 行可读;证据句可略长——放不下就**加行/拆项/拆页**,勿截断加省略号充数 |
31
+ | 一屏核心主张 | 只能有 **1 个**;证据可用次要卡/列表/跟进页承载 |
30
32
 
31
33
  句式:主动句;数字前置;结论前置;把长定语拆成并列。
32
34
 
@@ -150,26 +152,28 @@ DGIG: 数据 = 能自我增强的生产资料
150
152
 
151
153
  **目标:充实但不拥挤,留白但不空旷。**
152
154
 
153
- ### 密度基准
155
+ ### 密度基准(建议量 · 超限先改结构)
154
156
 
155
- | 元素 | 建议量 |
157
+ | 元素 | 结构建议 |
156
158
  |------|--------|
157
- | 每屏并列单元(卡片/图/表) | ≤ 8 个(research ≤12) |
158
- | 单卡片列表项 | ≤ 4 条(research ≤5) |
159
- | 单卡片正文行数 | ≤ 3 行 |
159
+ | 每屏并列单元(卡片/图/表) | 演示宜 ≤8(research ≤12);更多 → **拆屏或改表**,勿删条目凑数 |
160
+ | 单卡片列表项 | 宜 3–5 条;更多 → 拆卡 / 两组 / 跟进页,**勿截断条目文字** |
161
+ | 单卡片正文 | 纯段落宜短;长论证 → 列表化或多卡,不靠删句疏朗 |
160
162
  | 指标卡一屏 | 4–6 个 |
161
- | 表格一屏行数 | ≤ 8 行(research 密表 ≤16) |
162
- | 单个列表项 | ≤ 2 行 |
163
+ | 表格一屏行数 | ≤8 行(research 密表 ≤16);超限 → Top N + 附录全表 |
164
+ | 单个列表项 | 宜可读完整;投影场景避免墙式长句,但**完整证据优先于字数帽** |
163
165
 
164
166
  ### 空间利用
165
167
 
166
- - **避免大面积空白**:卡片内容太少时,减少卡高或改 2 列为 3 列;不要为凑满栅格留半空卡。
167
- - **避免塞爆**:并列单元超 8 个就分两屏;列表超 4 条就拆成两组或提炼。
168
+ - **避免大面积空白**:卡片内容太少时,减少卡高或改 2 列为 3 列;不要为凑满栅格留半空卡(半空与塞爆**同样不合格**)。
169
+ - **避免塞爆**:并列单元超上限 → 分两屏 / 改密表;列表过长 → 拆组或跟进页——**提炼≠删除决策必需信息**。
170
+ - **Mode A 密度许可**:主张清楚时,卡片/列表页允许偏密;一主张可带充分证据卡,证据装不下就加页,不砍 so-what。
168
171
  - **留白节奏**:章节上下留白一致(`clamp(56px,8.5vh,116px)`),栅格间距一致(`clamp(16px,1.6vw,28px)`),卡片内边距一致(`clamp(20px,2vw,30px)`)。
169
- - **对齐**:同类元素左对齐同一轴线;数字列右对齐或 `tabular-nums`;标题与正文左缘对齐。
172
+ - **对齐**:同类元素左对齐同一轴线(共享左缘/顶边);数字列右对齐或 `tabular-nums`;标题与正文左缘对齐;列节奏跨页稳定。
170
173
 
171
174
  **✗ 塞爆(一屏 10 卡 × 每卡 6 条,投影不可读)** → 拆两屏各 5 卡,或 10 卡压成一张 `table`(research 密表 ≤16 行)。
172
175
  **✗ 半空卡(2 条内容占 4 条的卡高)** → 减卡高或改 2 列为 3 列,不留"凑数卡"。
176
+ **✗ 为疏朗而截断**(条目末「…」、证据消失、so-what 被砍)→ 按 §四-c 重排/拆页,禁止静默丢内容。
173
177
 
174
178
  ### 一页好报告的观感
175
179
 
@@ -220,7 +224,7 @@ DGIG: 数据 = 能自我增强的生产资料
220
224
  - 金字塔:层级递进 3–5 层,自上而下逐层加宽,强调层 ≤1。
221
225
 
222
226
  9. **拼贴页(`.g-bento`,`components.md` §46b)/ 交错图文页(`.stagger`)/ 键值对照(`.kv`)/ 素材图片族(`.media*`,`components.md` §11c)**
223
- - 拼贴:一屏 4–7 个**不等大**单元(主卡跨 2 列/2 行),适合经营快照 / 能力矩阵;单格内容 ≤3 行。
227
+ - 拼贴:一屏 4–7 个**不等大**单元(主卡跨 2 列/2 行),适合经营快照 / 能力矩阵;单格宜短(约 3 行);更长 → 拆格或跟进页,勿截断。
224
228
  - 交错图文:3–4 组「图 ↔ 文」交替,一组只说一件事;比左右分栏更有节奏,但**组数 ≤4**(多了变流水账)。
225
229
  - 键值对照:≤6 组,适合口径/参数/对照项的轻量表达,比表格省空间。
226
230
  - 素材图片(`components.md` §11c):**六版式**按内容选——单张实拍/横幅用 `full`(3:1)|图文互证用 `half`(左图右注,注解 3–4 条)|章节情绪页用 `bleed`(21:9)|多张并列互证用 `grid`(2/3/4/6 张,4:3)|前后/方案对照用 `compare`(恰好 2 张 + A/B 角标)|客户生态用 `wall`(Logo 墙)。
@@ -237,18 +241,20 @@ DGIG: 数据 = 能自我增强的生产资料
237
241
 
238
242
  ---
239
243
 
240
- ## 四-c、内容过多怎么办(先升级承载形态,最后才精简)
244
+ ## 四-c、内容过多怎么办(溢出铁律 · 禁止静默截断)
245
+
246
+ > **用户硬原则**:Lots of text **must NOT** be deliberately compressed or deleted just to look like a sparse demo deck. 优先合理卡片、列表、分节、换形态、多页分解。
241
247
 
242
- 一页放不下时,按顺序处理(高度预算表见 `design-system.md` §1c:1080p 内容预算 ≈830px,768p ≈570px):
248
+ 一页放不下时,按**此顺序**处理(高度预算见 `design-system.md` §1c;常量 `containers.overflowRule`):
243
249
 
244
- 1. **升级承载形态**:文字列举 → 列表 → 密表 → 图(矩阵→散点、清单→密表)。**同一份信息换更省空间的形态,而不是丢掉它。**
245
- 2. **换组合版式**:单件页改**组合页**(主件 + 从件 + 注释层,见 `components.md` §46c 与 `references/playbook.md` §四)——把两张单件页的内容合进一页的主从结构。
246
- 3. **分区**:一页分上下/左右区,各区独立收敛(`rows-2/3`、`g-3`、`g-aside`、`g-hero-full`)。
247
- 4. **拆页**:仍不行就拆两页(01a/01b)。**拆页必须保持信息完整**——续表 / 附录 / `note` 交代,否则拆页 = 信息损失。**宁拆勿挤、勿溢出页边界。**
248
- 5. **精简(最后手段)**:只删**决策非必需**的信息;口径列 / 时间列 / 维度**不许砍**。
250
+ 1. **重构承载**:段落 → 列表 / 卡片 / 表 / 图 / 组合版式。**同一份信息换形态,不丢掉。**
251
+ 2. **拆页 / 分章**:追加页、01a/01b、多部分章节;推荐序列 **议程 → 主张 → 证据卡 → 明细列表**(`recommend_layout` 高容量意图会建议多页)。拆页须信息完整(续表 / 附录 / `note` 交代)。
252
+ 3. **换布局形态**:V1–V4、多列、卡栅格、`g-side` / `g-bento` / `rows-2/3`;单件改组合页(主件+从件+注释层,`playbook` §四)。
253
+ 4. **有限 `fontShrink`**:仅在 1–3 步之后;最多 4 档;floor presentation/arch 10pt、research 9pt。
254
+ 5. **禁止**:静默截断(省略号充数)/ 砍 so-what / 砍证据与口径列 / 为「看起来疏」删决策必需信息。**精简只允许删决策非必需项,且永不作为第一步。**
249
255
 
250
- **禁止**:① **无限**缩字号 / 缩图表硬塞(允许按 `containers.fontShrink` 有限下探:最多 4 档、模式 floor presentation/arch 10pt / research 9pt);② 让内容超出页面被裁;③ **把"精简"当第一手段**(这是"内容变简单、细节丢失"的根因)。
251
- **说明**:第 2 步是 v8 新增——组合版式让"更多内容"落在**版式结构**上,而不是落在"删掉"或"缩小字号"上。
256
+ **禁止**:① **无限**缩字号硬塞;② 内容越出页面或归属容器被裁;③ 把"精简/压缩"当第一手段;④ **溢出却不拆页**(校验 `LAYOUT_QA_OVERFLOW_NO_SPLIT`)。
257
+ **单页字数预算**(`checkBudgets.char`)是预警与结构提示,**不是**「字多→删字」许可证;字多而结构合理(卡/列表)的 Mode A 页允许偏密。
252
258
 
253
259
  > 反向情况——内容明显不足一屏且接近满屏观感更好时(Hero/Agenda/收尾章/大指标页),给该页加 `band--fit` 垂直居中,避免"上半页挤、下半页空"。
254
260
 
@@ -401,25 +407,39 @@ DGIG: 数据 = 能自我增强的生产资料
401
407
 
402
408
  ```
403
409
  [eyebrow 小标] 0X · 关键词
404
- [主标题] 一句主张(≤ 20 字)
410
+ [主标题] 一句主张/行动句(≤ 20 字;禁纯话题标签)
405
411
  [导语] ≤ 2 行,说明本章回答什么问题
406
412
  [主体] 图 / 表 / 列表
407
413
  ```
408
414
 
409
415
  结尾章:**下一步 3 条**(列表)+ 参考资料。
410
416
 
417
+
418
+ ## 六-b、Mode A 主张 / 行动标题(action title)
419
+
420
+ > 仅 `data-mode="presentation"`。与 research「结论句 ≥12 字」同向,但演示可更短口语——**仍须是主张,不是话题**。
421
+
422
+ - ✗ 话题标签:「现状分析」「市场格局」「风险与挑战」「项目概述」「总结」
423
+ - ✓ 主张/行动句:「试点卡在治理——规模化分水岭已现」「Q3 增速转正,渠道贡献六成」「先守利润,再谈扩张」
424
+ - 一页标题 = 一页最重要的那个判断;写不出主张 → 先想清楚再排版。
425
+ - 校验:`validate_report` 对纯话题标题 **WARN**(硬 FAIL 过脆);正式交付宜清零。
426
+
427
+
411
428
  ---
412
429
 
413
430
  ## 七、交付前自查(内容侧)
414
431
 
415
- - [ ] 卡片里出现 4 行以上连续文字 → 转列表
416
- - [ ] 一句话超过 40 字 → 断句
432
+ - [ ] 卡片里出现大段连续文字 → **转列表 / 拆卡**(勿删义凑疏朗)
433
+ - [ ] 一句话过长难念 → 断句或分条(勿截断加「…」)
417
434
  - [ ] 外部数字没有 `[n]` → 补标记
418
435
  - [ ] 占比数据只用文字 → 改环形图/条
419
- - [ ] 同一屏 3 个以上主张 → 拆屏
436
+ - [ ] 同一屏 3 个以上主张 → 拆屏(证据可留作次要卡或跟进页)
437
+ - [ ] Mode A 标题是话题词(「现状分析」等)→ 改主张/行动句
420
438
  - [ ] 出现"赋能/彰显/格局/不仅…而且/大幅提升" → 替换
421
439
  - [ ] 结尾是"未来可期"式空话 → 换具体下一步
422
- - [ ] 有半空卡片或塞爆的一屏 → 调整密度
440
+ - [ ] 半空卡 **或** 塞爆一屏 → 调结构(两者都不合格);禁止靠删证据「变空」
441
+ - [ ] 条目/结论被静默截断或 so-what 失踪 → 按 §四-c 重排/拆页,恢复实质
442
+ - [ ] 页高溢出却未拆页/未换形态 → FAIL 级缺陷,先结构后字号
423
443
  - [ ] 图表小于尺寸下限(环形 <140px / 柱折线 <200px 高)→ 放大或减图
424
444
  - [ ] 接近满屏的页(Hero/Agenda/收尾)没加 `band--fit` → 补上垂直居中
425
445
  - [ ] 图表 svg 没有 `data-chart` 类型标记 → 补上(校验脚本要用)
@@ -429,7 +449,7 @@ DGIG: 数据 = 能自我增强的生产资料
429
449
  - [ ] 一屏图标 >8 个 → 减到只保留路标性图标
430
450
  - [ ] 内容约六七成屏的页悬空居中 → 改 `band--top`;长结构页(参考资料/附录)→ 加 `band--flow`
431
451
  - [ ] 混排栅格(图+卡/图+文)没写对齐 → 加 `a-start` 或 `a-c`
432
- - [ ] 某页内容超一屏(校验器「页高溢出估算」FAIL)→ 按四-c 顺序:列表化/精炼 → 换组合/拆页 → 最后才有限缩字号(`fontShrink`)
452
+ - [ ] 某页内容超一屏(「页高溢出估算」FAIL)→ 按四-c:**重构→拆页→换形态→有限 fontShrink**;禁静默截断
433
453
  - [ ] 图表 `data-chart` 类型未在 `layout-constants.json` `charts.types` 登记 → 补登记并配 `minSize`
434
454
  - [ ] 热力矩阵/达成对比用了第二色相(红绿)→ 改回强调色明度阶梯(`--1/--2/--3` + 中性)
435
455
  - [ ] **无法核实/待确认的数字与判断没用 `.tbd` 标色** → 标出来,并加 `.tbd-legend` 或 `.flagbar` 说明
@@ -0,0 +1,61 @@
1
+ # 默认生成面(L1.5 · Mode A 主读 · ≤6KB)
2
+
3
+ > **Mode A / Fast 演示的首要读面**(正式场合 · 大气演讲)。完整决策见 `playbook.md`;工艺清单见 `presentation-craft.md`;代码用 `extract_snippet.py`。
4
+ > Mode B/C 能力保留——**需要时**再读 modes / layouts-*;勿把密排/架构默认反向污染 A。
5
+
6
+ ## A 默认三件套
7
+
8
+ 1. **12 默认页型**(下表)
9
+ 2. **8 核心图**(核图池;advanced 按需)
10
+ 3. **V1–V4** 演讲构图(≈ P1–P4)
11
+
12
+ **骨架分层(A)**:**主力** P1–P4 + P6/P10;**扩展** P5;**次级** P7–P9、P11–P12(意图命中再用,勿默认轮换)。
13
+ **图表**:**核图 8** 为默认池;`charts-extended.md` / advanced **仅意图命中才读/才用**(禁为凑多样性硬上)。
14
+ **按需**:Mode B Exhibit/密表 · Mode C 全幅架构——意图命中再读 modes / layouts-*。
15
+
16
+ ## 12 默认页型
17
+
18
+ | 意图 | pageType | A 主力 skel | 备注 |
19
+ |------|----------|-------------|------|
20
+ | 封面 | cover | **P1** | |
21
+ | 议程 | agenda | **P2** | |
22
+ | 大数/KPI | kpi | **P3** | V3 |
23
+ | 要点 | points | **P4** | |
24
+ | 卡片 | cards | P5 | 扩展(非默认轮换) |
25
+ | 指标带 | metrics | **P2** | |
26
+ | 对比 | comparison | **P4** | V4 |
27
+ | 表 | table / halftable | **P4** / P1 | A 少用次级 P8;密表意图才 P8 |
28
+ | 图证 | exhibit / bar | **P1** / P2 | A 演讲图文;P8 为 B 证据次级 |
29
+ | 双栏论述 | twocol | **P6** | 主力 |
30
+ | 结构/泳道 | diagram / lane | **P10** | 全幅结构次级 P9;一主两从次级 P11 |
31
+ | 收尾 | closing | **P1** | |
32
+
33
+ 选型:`recommend_layout.py --mode A|B|C`;矩阵见 playbook §三/§四。演示优先 V1–V4 对应页。
34
+
35
+ ## 8 核心图
36
+
37
+ `bar` · `hbar` · `line` · `donut` · `progress` · `area` · `stack` · `dualline`
38
+
39
+ 极偏占比 → **禁 donut/pie**,改 KPI/进度/对比条(V3)。简单图禁全幅。
40
+ **多样性**:先拉开核图 8;advanced 用了也计入 `minTypes`(不罚),但**只在内容需要时选**,绝不为凑下限垫冷门图。默认**不**预读 `charts-extended.md`。
41
+
42
+ ## V1–V4(演示默认)
43
+
44
+ | V | 结构 | 何时 |
45
+ |---|------|------|
46
+ | V1 | 主视觉 + 右注解 | 默认图文 |
47
+ | V2 | 上图下带 | 总览→分解 |
48
+ | V3 | 大数 + 佐证 | 极偏/单点结论 |
49
+ | V4 | 双图对照 | 前后/方案 |
50
+
51
+ ## 命令链(模型单写 · Mode A 含 layout-qa)
52
+
53
+ ```
54
+ scaffold_report → 只填 REPORT_MODEL → render_from_model --inplace
55
+ → validate_report --strict # presentation 自动 --layout-qa
56
+ → quality_gate --deliver →(可选)pptx
57
+ ```
58
+
59
+ ## 长文与密度(Mode A)
60
+
61
+ 一屏一主张;证据用卡/列表或跟进页。**禁止**为稀疏 demo 感删实质。溢出顺序:重构 → 拆页 → 换 V/栅格 → 有限 fontShrink。详见 `presentation-craft.md`「长文与信息承载」。
@@ -2,12 +2,12 @@
2
2
 
3
3
  > **生成报告时读本文件**:设计哲学、CRAP/MD3、页面高度模型、PPTX 比例尺、12 列网格、语义字阶、
4
4
  > 结构 token、排版类、布局工具、**SVG 主题语义类**(图表配色必读)。
5
- > **组件 CSS 实现目录**(顶栏/卡片/列表/表格/页脚/动效等)在 `design-system-engine.md`——
5
+ > **组件 CSS 实现目录**(顶栏/卡片/列表/表格/页脚/动效等)在 `docs/archive/refs/design-system-engine.md`——
6
6
  > 生成时用 `components-atoms.md` 的组件写法即可,**勿整读 engine 文件**。
7
7
 
8
8
  本文件提供**设计哲学、Token、栅格、语义字阶、SVG 语义类**——全部风格复用。
9
9
  **颜色 / 字体 / 圆角 / 阴影的实际值不在此文件**,由 `references/styles.md` 中你所选的那套风格通过 `data-style` 覆盖块注入。
10
- **组件 CSS 类实现目录**(顶栏/卡片/列表/表格/页脚/动效)在 `design-system-engine.md`——生成时用 `components-atoms.md` 写法即可。
10
+ **组件 CSS 类实现目录**(顶栏/卡片/列表/表格/页脚/动效)在 `docs/archive/refs/design-system-engine.md`——生成时用 `components-atoms.md` 写法即可。
11
11
 
12
12
  配合方式(三模式独立模板):
13
13
  1. 从 `assets/templates/{presentation|research|architecture}.html` 复制对应模式模板起步(模板自带模式密度层与专属组件)。
@@ -117,7 +117,7 @@
117
117
  - **识别**:正文或模型里出现 `<a class="cite">` 字面量;整页只有标题;0.5% vs 99.5% 还用 donut;简单 2 类图占满整页。
118
118
  - **错误码**:`HTML_TAG_IN_TEXT` / `TITLE_ONLY_PAGE` / `UNDERFILL_PAGE` / `CHART_SKEW_INVALID` / `CHART_OVERSIZE` / `TEXT_INCOMPLETE`
119
119
  - **根因**:双写未净化(标签进模型);过空页只 WARN;图表面积与信息复杂度脱钩;极偏数据误用占比图。
120
- - **修复**:① 模型字段纯文本,引用写 `[n]`;② 空页补证据与承载或并页;③ 极偏改 V3(KPI/进度/对比条);④ 简单图缩到 18–28% 高并配注解带(V1–V4)。详见 `reform-plan.md` 与 `playbook.md` §三-b。
120
+ - **修复**:① 模型字段纯文本,引用写 `[n]`;② 空页补证据与承载或并页;③ 极偏改 V3(KPI/进度/对比条);④ 简单图缩到 18–28% 高并配注解带(V1–V4)。详见 `layout-constants.qualityGates` 与 `playbook.md` §三-b。
121
121
 
122
122
  ### F16 已登记图表静默降级 `chart_fallback_forgery`
123
123
 
@@ -212,3 +212,16 @@
212
212
  - so-what 连续 3 页空缺或套话(→ F15);引用 0 条且内容含外部数字(→ §五 引用纪律,补 `[n]` 或标 `.tbd`)。
213
213
 
214
214
  > 自查后重跑 `quality_gate.py`;rubric 启发式只覆盖可静态判定的部分,最终以 LLM 按 `evals/rubric.schema.json` 复评或人眼对照为准。
215
+
216
+ ## F18 · 长文截断 / 溢出未拆页 / 半空卡(v9.1)
217
+
218
+ | 信号 | 错误码 | 修复 |
219
+ |------|--------|------|
220
+ | 列表/卡/结论以「…」砍义 | `LAYOUT_QA_TRUNCATION` | 恢复完整表述;改列表化/拆卡/拆页,禁止省略号充数 |
221
+ | 页高溢出且无续页/换形态信号 | `LAYOUT_QA_OVERFLOW_NO_SPLIT` | 按 overflowRule:重构→拆页→换形态→fontShrink |
222
+ | 同页多卡过半正文过短 | `LAYOUT_QA_HALF_EMPTY` | 减卡高/改列数,或合并卡;勿留凑数半空卡 |
223
+ | 图卡混排无对齐类 | `LAYOUT_QA_ALIGN_RHYTHM` | 加 `a-start` / `a-c`;共享左缘顶边 |
224
+ | PPTX 页脚 y 跨页漂移 | `CHROME_DRIFT` | 锁死 chrome 槽位几何(pageTypes) |
225
+
226
+ 反模式:为稀疏 demo 感删证据 / so-what。原则见 `presentation-craft.md`「长文与信息承载」。
227
+