@topmindspace/tms-skills 0.1.18 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +66 -0
- package/README.en.md +6 -3
- package/README.md +6 -3
- package/package.json +5 -2
- package/top-ppt-html/README.en.md +2 -2
- package/top-ppt-html/README.md +1 -1
- package/top-ppt-html/SKILL.md +4 -4
- package/top-ppt-html/assets/examples/2026-09-09-architecture-graphite-dark.html +24 -12
- package/top-ppt-html/assets/examples/2026-09-09-presentation-business-blue.html +24 -12
- package/top-ppt-html/assets/examples/2026-09-09-research-mckinsey.html +24 -12
- package/top-ppt-html/assets/examples/2026-09-26-topmind-tms-skills-showcase.html +94 -165
- package/top-ppt-html/assets/examples/2026-09-26-topmind-tms-skills-showcase.model.json +32 -38
- package/top-ppt-html/assets/pptx-export.js +3 -2
- package/top-ppt-html/assets/style-gallery.html +2 -1
- package/top-ppt-html/assets/templates/architecture.html +38 -15
- package/top-ppt-html/assets/templates/engine.css +20 -9
- package/top-ppt-html/assets/templates/presentation.html +38 -17
- package/top-ppt-html/assets/templates/research.html +44 -23
- package/top-ppt-html/package-lock.json +2 -2
- package/top-ppt-html/package.json +1 -1
- package/top-ppt-html/references/components-atoms.md +1 -1
- package/top-ppt-html/references/content-rules.md +17 -11
- package/top-ppt-html/references/failure-modes.md +6 -4
- package/top-ppt-html/references/high-fidelity.md +14 -1
- package/top-ppt-html/references/icons.md +2 -2
- package/top-ppt-html/references/layout-grammar.md +3 -1
- package/top-ppt-html/references/layouts-research.md +1 -1
- package/top-ppt-html/references/pptx-export.md +2 -2
- package/top-ppt-html/references/tech-design.md +2 -0
- package/top-ppt-html/scripts/build_icon_assets.js +92 -0
- package/top-ppt-html/scripts/build_pptx.js +125 -29
- package/top-ppt-html/scripts/extract_model.py +21 -1
- package/top-ppt-html/scripts/icon_lib.js +53 -0
- package/top-ppt-html/scripts/icon_raster.js +86 -0
- package/top-ppt-html/scripts/layout-constants.json +4 -1
- package/top-ppt-html/scripts/lib_layout_regions.js +3 -1
- package/top-ppt-html/scripts/model-schema.json +7 -3
- package/top-ppt-html/scripts/package_skill.py +1 -0
- package/top-ppt-html/scripts/render_from_model.py +125 -24
- package/top-ppt-html/scripts/scaffold_report.py +47 -24
- package/top-ppt-html/scripts/sync_runtime.py +2 -1
- package/top-ppt-html/scripts/validate_pptx.py +14 -3
- package/top-ppt-html/scripts/validate_report.py +1 -1
- package/topmind-cover/README.md +40 -0
- package/topmind-cover/SKILL.md +66 -0
- package/topmind-cover/package-lock.json +16 -0
- package/topmind-cover/package.json +16 -0
- package/topmind-cover/references/cover-styles.md +40 -0
- package/topmind-cover/scripts/audit_css.py +39 -0
- package/topmind-cover/scripts/audit_docs.py +58 -0
- package/topmind-cover/scripts/audit_skill.py +60 -0
- package/topmind-cover/scripts/audit_styles.py +54 -0
- package/topmind-cover/scripts/crop-cover.py +69 -0
- package/topmind-cover/scripts/negative_tests.py +71 -0
- package/topmind-cover/scripts/package_skill.py +188 -0
- package/topmind-wechat-post/README.md +49 -0
- package/topmind-wechat-post/SKILL.md +208 -0
- package/topmind-wechat-post/assets/themes/amber-review.json +35 -0
- package/topmind-wechat-post/assets/themes/graphite.json +35 -0
- package/topmind-wechat-post/assets/themes/minimal-ink.json +35 -0
- package/topmind-wechat-post/assets/themes/newsprint.json +35 -0
- package/topmind-wechat-post/assets/themes/tech-blue.json +35 -0
- package/topmind-wechat-post/package-lock.json +16 -0
- package/topmind-wechat-post/package.json +16 -0
- package/topmind-wechat-post/references/design.md +50 -0
- package/topmind-wechat-post/references/element-spec.md +162 -0
- package/topmind-wechat-post/references/known-pits.md +86 -0
- package/topmind-wechat-post/references/theme-map.md +139 -0
- package/topmind-wechat-post/references/typography-rules.md +62 -0
- package/topmind-wechat-post/references/wechat-constraints.md +106 -0
- package/topmind-wechat-post/references/workflow.md +102 -0
- package/topmind-wechat-post/references/writing-quality.md +129 -0
- package/topmind-wechat-post/scripts/audit_css.py +39 -0
- package/topmind-wechat-post/scripts/audit_docs.py +58 -0
- package/topmind-wechat-post/scripts/audit_skill.py +60 -0
- package/topmind-wechat-post/scripts/audit_styles.py +54 -0
- package/topmind-wechat-post/scripts/lint-wechat.py +446 -0
- package/topmind-wechat-post/scripts/md2wechat.py +1602 -0
- package/topmind-wechat-post/scripts/negative_tests.py +65 -0
- package/topmind-wechat-post/scripts/new-article.py +183 -0
- package/topmind-wechat-post/scripts/package_skill.py +188 -0
- package/topmind-wechat-post/scripts/push-to-topstream.py +226 -0
- package/topmind-wechat-post/scripts/scan_ai_flavor.py +464 -0
- package/topmind-wechat-post/scripts/sync-mapping.py +220 -0
- package/topmind-wechat-post/scripts/sync-status.py +187 -0
- package/topmind-x-article/README.md +40 -0
- package/topmind-x-article/SKILL.md +62 -0
- package/topmind-x-article/package-lock.json +16 -0
- package/topmind-x-article/package.json +16 -0
- package/topmind-x-article/references/publish-checklist.md +24 -0
- package/topmind-x-article/references/x-format.md +24 -0
- package/topmind-x-article/scripts/audit_css.py +39 -0
- package/topmind-x-article/scripts/audit_docs.py +58 -0
- package/topmind-x-article/scripts/audit_skill.py +60 -0
- package/topmind-x-article/scripts/audit_styles.py +54 -0
- package/topmind-x-article/scripts/md2x.py +121 -0
- package/topmind-x-article/scripts/negative_tests.py +74 -0
- package/topmind-x-article/scripts/package_skill.py +188 -0
|
@@ -330,7 +330,13 @@ border-color:color-mix(in srgb,var(--accent-on) 20%,transparent);color:var(--acc
|
|
|
330
330
|
rows-2 / rows-3:等高行分区(纵向节奏,替代等高卡片堆叠) */
|
|
331
331
|
.g-211{grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr)}
|
|
332
332
|
.g-121{grid-template-columns:minmax(0,1fr) minmax(0,2fr) minmax(0,1fr)}
|
|
333
|
-
.g-quad{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(
|
|
333
|
+
.g-quad{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(min-content,1fr);align-items:stretch}
|
|
334
|
+
.g-half{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);align-items:stretch}
|
|
335
|
+
@media (max-width:1180px){.g-half{grid-template-columns:1fr}}
|
|
336
|
+
.g-2--equal,.g-3--equal,.g-4--equal{grid-auto-rows:minmax(min-content,1fr);align-items:stretch}
|
|
337
|
+
.grid.g-2>.card,.grid.g-3>.card,.grid.g-4>.card,
|
|
338
|
+
.grid.g-quad>.card,.grid.g-half>.card,.grid.g-2--equal>.card,
|
|
339
|
+
.grid.g-3--equal>.card,.grid.g-4--equal>.card{align-self:stretch}
|
|
334
340
|
.g-aside{grid-template-columns:minmax(0,1fr) minmax(200px,.36fr);align-items:start}
|
|
335
341
|
.g-aside__side{position:sticky;top:calc(var(--bar-h) + 16px)}
|
|
336
342
|
.g-mosaic{grid-template-columns:repeat(3,minmax(0,1fr));
|
|
@@ -346,7 +352,7 @@ grid-template-areas:"main main main" "s1 s2 s3"}
|
|
|
346
352
|
.kv--2col{grid-template-columns:auto minmax(0,1fr) auto minmax(0,1fr)}
|
|
347
353
|
/* ── 拼贴栅格 g-bento(Bento / 马赛克):4 列基准 + 跨列/跨行工具类 ──
|
|
348
354
|
.sp-2/.sp-3/.sp-4 跨列(span),.rw-2 跨行;窄屏自动降列并收敛 span。 */
|
|
349
|
-
.g-bento{grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:minmax(
|
|
355
|
+
.g-bento{grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:minmax(min-content,1fr)}
|
|
350
356
|
.sp-2{grid-column:span 2}.sp-3{grid-column:span 3}.sp-4{grid-column:span 4}
|
|
351
357
|
.rw-2{grid-row:span 2}
|
|
352
358
|
@media (max-width:1180px){.g-bento{grid-template-columns:repeat(2,minmax(0,1fr))}
|
|
@@ -381,19 +387,21 @@ background:color-mix(in srgb,var(--bg) 86%,transparent);
|
|
|
381
387
|
backdrop-filter:saturate(160%) blur(14px);-webkit-backdrop-filter:saturate(160%) blur(14px);
|
|
382
388
|
border-bottom:1px solid var(--border-soft);
|
|
383
389
|
transition:height var(--dur-medium) var(--ease-standard)}
|
|
384
|
-
.bar__in{height:100%;display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4)}
|
|
385
|
-
.brand{display:flex;align-items:center;gap:var(--sp-3);min-width:0}
|
|
390
|
+
.bar__in{height:100%;display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);overflow:hidden}
|
|
391
|
+
.brand{display:flex;align-items:center;gap:var(--sp-3);min-width:0;flex:1 1 auto;overflow:hidden}
|
|
386
392
|
.brand__mark{width:34px;height:34px;flex:none;border-radius:10px;background:var(--accent);
|
|
387
393
|
color:var(--accent-on);display:grid;place-items:center;font-size:13px;font-weight:700}
|
|
394
|
+
.brand__txt{min-width:0;overflow:hidden;flex:1 1 auto}
|
|
388
395
|
.brand__title{font-size:var(--fs-sm);font-weight:600;color:var(--text);white-space:nowrap;
|
|
389
|
-
overflow:hidden;text-overflow:ellipsis}
|
|
396
|
+
overflow:hidden;text-overflow:ellipsis;max-width:100%}
|
|
390
397
|
.brand__sub{font-size:var(--fs-xs);color:var(--text-3);white-space:nowrap;overflow:hidden;
|
|
391
|
-
text-overflow:ellipsis}
|
|
392
|
-
.nav{display:flex;align-items:center;gap:var(--sp-1)}
|
|
398
|
+
text-overflow:ellipsis;max-width:100%}
|
|
399
|
+
.nav{display:flex;align-items:center;gap:var(--sp-1);flex:0 1 auto;min-width:0;overflow:hidden}
|
|
393
400
|
.nav a{padding:8px 14px;border-radius:var(--r-full);color:var(--text-2);text-decoration:none;
|
|
394
401
|
font-size:var(--fs-sm);font-weight:500;white-space:nowrap;transition:background-color var(--dur-short),color var(--dur-short)}
|
|
395
402
|
.nav a:hover{background:var(--surface-2);color:var(--text)}
|
|
396
403
|
@media (max-width:1180px){.nav{display:none}}
|
|
404
|
+
@media (max-width:1360px){.brand__sub{display:none}}
|
|
397
405
|
.iconbtn{width:40px;height:40px;flex:none;display:grid;place-items:center;
|
|
398
406
|
border:1px solid var(--border);border-radius:var(--r-full);background:transparent;
|
|
399
407
|
color:var(--text-2);cursor:pointer;transition:background-color var(--dur-short),color var(--dur-short)}
|
|
@@ -448,12 +456,15 @@ transition:background-color var(--dur-short),box-shadow var(--dur-short),transfo
|
|
|
448
456
|
.btn--ghost{background:transparent;color:var(--text);border-color:var(--border)}
|
|
449
457
|
.btn--onDark{background:var(--surface);color:var(--text)}
|
|
450
458
|
.card{background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--r-lg);
|
|
451
|
-
padding:clamp(20px,2vw,30px);transition:border-color var(--dur-short),box-shadow var(--dur-short),background-color var(--dur-medium)
|
|
459
|
+
padding:clamp(20px,2vw,30px);transition:border-color var(--dur-short),box-shadow var(--dur-short),background-color var(--dur-medium);
|
|
460
|
+
display:flex;flex-direction:column;min-width:0}
|
|
452
461
|
.card:hover{border-color:var(--border);box-shadow:var(--shadow-1)}
|
|
453
462
|
.card--flat{background:var(--surface-1);border-color:transparent}
|
|
454
463
|
.card--flat:hover{background:var(--surface-2)}
|
|
455
464
|
.card--accent{background:var(--accent-soft);border-color:transparent}
|
|
456
|
-
.card__hd{display:flex;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-3)}
|
|
465
|
+
.card__hd{display:flex;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-3);flex:none}
|
|
466
|
+
.card>.ul,.card>.t-body,.card>.t-sm{flex:1 1 auto}
|
|
467
|
+
.card>.so-what,.card>.tbd-legend,.card>.flagbar{flex:none;margin-top:auto}
|
|
457
468
|
.card__ico{width:34px;height:34px;flex:none;border-radius:10px;background:var(--accent-soft);
|
|
458
469
|
color:var(--accent-text);display:grid;place-items:center;font-size:15px;font-weight:600}
|
|
459
470
|
.card__ico svg{width:18px;height:18px}
|
|
@@ -901,7 +912,6 @@ background:var(--surface-2);border-radius:6px;padding:2px 7px;color:var(--text)}
|
|
|
901
912
|
<nav class="nav">
|
|
902
913
|
<a href="#s1">章节一</a>
|
|
903
914
|
<a href="#s2">章节二</a>
|
|
904
|
-
<a href="#refs">参考资料</a>
|
|
905
915
|
</nav>
|
|
906
916
|
<div class="toolsbar">
|
|
907
917
|
<div class="seld" id="styleSel">
|
|
@@ -959,7 +969,7 @@ background:var(--surface-2);border-radius:6px;padding:2px 7px;color:var(--text)}
|
|
|
959
969
|
<section class="band band--fit" id="cover">
|
|
960
970
|
<div class="wrap">
|
|
961
971
|
<div class="shead rv">
|
|
962
|
-
<div class="t-eyebrow">产品介绍 · 2026-09-26 · v0.1.
|
|
972
|
+
<div class="t-eyebrow">产品介绍 · 2026-09-26 · v0.1.19</div>
|
|
963
973
|
<h1 class="t-display shead__title">TopMind × tms-skills</h1>
|
|
964
974
|
<p class="t-lead shead__desc">HTML + PPT 双交付 · 为正式商务演示而生</p>
|
|
965
975
|
</div>
|
|
@@ -970,22 +980,22 @@ background:var(--surface-2);border-radius:6px;padding:2px 7px;color:var(--text)}
|
|
|
970
980
|
<div class="wrap">
|
|
971
981
|
<div class="shead rv"><div class="t-eyebrow">目录</div>
|
|
972
982
|
<h2 class="t-h1 shead__title">报告大纲</h2></div>
|
|
973
|
-
<ol class="agenda
|
|
983
|
+
<ol class="agenda rv"> <li class="agenda__i"><a class="agenda__a" href="#s1"><span class="agenda__n">01</span><span><span class="agenda__t">为什么是我们</span><div class="agenda__d">01 · 为什么是我们</div></span></a></li> <li class="agenda__i"><a class="agenda__a" href="#s2"><span class="agenda__n">02</span><span><span class="agenda__t">tms-skills</span><div class="agenda__d">02 · tms-skills</div></span></a></li> <li class="agenda__i"><a class="agenda__a" href="#s3"><span class="agenda__n">03</span><span><span class="agenda__t">top-ppt-html</span><div class="agenda__d">03 · top-ppt-html</div></span></a></li> <li class="agenda__i"><a class="agenda__a" href="#s4"><span class="agenda__n">04</span><span><span class="agenda__t">三模式</span><div class="agenda__d">04 · 三模式</div></span></a></li> <li class="agenda__i"><a class="agenda__a" href="#s5"><span class="agenda__n">05</span><span><span class="agenda__t">图表工艺</span><div class="agenda__d">05 · 图表工艺</div></span></a></li> <li class="agenda__i"><a class="agenda__a" href="#s7"><span class="agenda__n">06</span><span><span class="agenda__t">风格主题</span><div class="agenda__d">06 · 风格主题</div></span></a></li> <li class="agenda__i"><a class="agenda__a" href="#s8"><span class="agenda__n">07</span><span><span class="agenda__t">质量门禁</span><div class="agenda__d">07 · 质量门禁</div></span></a></li> <li class="agenda__i"><a class="agenda__a" href="#s11"><span class="agenda__n">08</span><span><span class="agenda__t">Header 工具栏</span><div class="agenda__d">08 · Header 工具栏</div></span></a></li> <li class="agenda__i"><a class="agenda__a" href="#s12"><span class="agenda__n">09</span><span><span class="agenda__t">Fast Mode</span><div class="agenda__d">09 · Fast Mode</div></span></a></li></ol>
|
|
974
984
|
</div>
|
|
975
985
|
</section>
|
|
976
986
|
|
|
977
|
-
<section class="band" id="s1" data-skel="
|
|
987
|
+
<section class="band" id="s1" data-skel="P5" data-page-type="cards">
|
|
978
988
|
<div class="wrap">
|
|
979
989
|
<div class="shead rv">
|
|
980
990
|
<div class="t-eyebrow">01 · 为什么是我们</div>
|
|
981
991
|
<h2 class="t-h1 shead__title">市面 PPT 技能很多,为何还要 top-ppt-html</h2>
|
|
982
992
|
</div>
|
|
983
|
-
<div class="grid g-3 rv
|
|
984
|
-
<div class="card"><div class="card__hd"><div class="card__ico"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><
|
|
993
|
+
<div class="grid g-3--equal rv">
|
|
994
|
+
<div class="card"><div class="card__hd"><div class="card__ico" data-icon="增长"><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></div><h3 class="t-h3">正式商务演示</h3></div>
|
|
985
995
|
<ul class="ul"><li><strong>不是花哨 gadget。</strong>为演示报告与上台汇报而生——直观、大气、可编辑</li><li><strong>一屏一主张。</strong>标题即行动句,少装饰堆砌</li></ul></div>
|
|
986
|
-
<div class="card"><div class="card__hd"><div class="card__ico"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><
|
|
996
|
+
<div class="card"><div class="card__hd"><div class="card__ico" data-icon="下降"><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></div><h3 class="t-h3">HTML + PPT 双交付</h3></div>
|
|
987
997
|
<ul class="ul"><li><strong>HTML 日常上台。</strong>单文件可翻页,等同幻灯片</li><li><strong>PPTX 按需导出。</strong>版式保真、可继续编辑</li></ul></div>
|
|
988
|
-
<div class="card"><div class="card__hd"><div class="card__ico"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="
|
|
998
|
+
<div class="card"><div class="card__hd"><div class="card__ico" data-icon="数据"><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></div><h3 class="t-h3">MD3 式克制</h3></div>
|
|
989
999
|
<ul class="ul"><li><strong>密度合适。</strong>文字/图形/形状/颜色克制</li><li><strong>无 AI chrome。</strong>结论条 tonal 满铺,禁左侧装饰轨</li></ul></div>
|
|
990
1000
|
</div>
|
|
991
1001
|
<div class="sowhat rv"><span class="sowhat__v">产出即上台:同源模型保证 HTML 与 PPTX 一致,图表带数据可核对。</span></div>
|
|
@@ -998,16 +1008,16 @@ background:var(--surface-2);border-radius:6px;padding:2px 7px;color:var(--text)}
|
|
|
998
1008
|
<div class="t-eyebrow">02 · tms-skills</div>
|
|
999
1009
|
<h2 class="t-h1 shead__title">tms-skills:整仓可安装的智能体技能</h2>
|
|
1000
1010
|
</div>
|
|
1001
|
-
<div class="grid g-3 rv
|
|
1002
|
-
<div class="card"><div class="card__hd"><div class="card__ico"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="
|
|
1011
|
+
<div class="grid g-3--equal rv">
|
|
1012
|
+
<div class="card"><div class="card__hd"><div class="card__ico" data-icon="增长"><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></div><h3 class="t-h3">Monorepo</h3></div>
|
|
1003
1013
|
<ul class="ul"><li><strong>一仓多技能。</strong>根目录技能包 + 统一安装器</li><li><strong>同 tag 发版。</strong>安装器与技能整仓对齐</li></ul></div>
|
|
1004
|
-
<div class="card"><div class="card__hd"><div class="card__ico"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="
|
|
1014
|
+
<div class="card"><div class="card__hd"><div class="card__ico" data-icon="下降"><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></div><h3 class="t-h3">双通道安装</h3></div>
|
|
1005
1015
|
<ul class="ul"><li><strong>npm 钉版本。</strong>npx @topmindspace/tms-skills</li><li><strong>GitHub 跟 HEAD。</strong>日常可 clone / 直装</li></ul></div>
|
|
1006
|
-
<div class="card"><div class="card__hd"><div class="card__ico"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><
|
|
1016
|
+
<div class="card"><div class="card__hd"><div class="card__ico" data-icon="数据"><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></div><h3 class="t-h3">当前主技能</h3></div>
|
|
1007
1017
|
<ul class="ul"><li><strong>top-ppt-html。</strong>正式场合演示文稿</li><li><strong>HTML + PPTX。</strong>同源模型 · 双交付</li></ul></div>
|
|
1008
1018
|
</div>
|
|
1009
|
-
<div class="
|
|
1010
|
-
|
|
1019
|
+
<div class="sowhat rv"><span class="sowhat__v">安装器与技能同仓同 tag——装一次,版本线对齐。</span></div>
|
|
1020
|
+
<div class="footnote">包名 @topmindspace/tms-skills · 当前线 0.1.19(latest)</div>
|
|
1011
1021
|
</div>
|
|
1012
1022
|
</section>
|
|
1013
1023
|
|
|
@@ -1018,23 +1028,12 @@ background:var(--surface-2);border-radius:6px;padding:2px 7px;color:var(--text)}
|
|
|
1018
1028
|
<h2 class="t-h1 shead__title">双交付:HTML 即演示,PPTX 可继续编</h2>
|
|
1019
1029
|
</div>
|
|
1020
1030
|
<div class="grid g-side rv a-start">
|
|
1021
|
-
<div class="stack gap-4"><ul class="ul
|
|
1031
|
+
<div class="stack gap-4"><ul class="ul"><li><strong>日常 HTML 上台。</strong>单文件可翻页,等同幻灯片;亮暗与九风格顶栏即切</li><li><strong>需要时再出 PPT。</strong>版式保真可编辑 PPTX;图表数据可标注、可核对</li><li><strong>克制的商务面。</strong>参考 MD3:合适信息密度,少装饰、一屏一主张</li></ul></div>
|
|
1022
1032
|
<div class="fig"><div class="fig__cap">工艺关注点(产品强调 · 示意权重)</div>
|
|
1023
1033
|
<svg class="chart" data-chart="bar" viewBox="0 0 560 220">
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
<text data-anim="fade" x="120.0" y="50.0" text-anchor="middle" class="f-txt2" font-size="12" font-weight="600">32</text>
|
|
1028
|
-
<rect data-anim="grow" x="211.9" y="72.0" width="56.1" height="98.0" rx="6" class="f-s3"><title>排版 28</title></rect>
|
|
1029
|
-
<text data-anim="fade" x="240.0" y="192" text-anchor="middle" class="f-txt3" font-size="11">排版</text>
|
|
1030
|
-
<text data-anim="fade" x="240.0" y="64.0" text-anchor="middle" class="f-txt2" font-size="12" font-weight="600">28</text>
|
|
1031
|
-
<rect data-anim="grow" x="331.9" y="107.0" width="56.1" height="63.0" rx="6" class="f-acc"><title>色彩 18</title></rect>
|
|
1032
|
-
<text data-anim="fade" x="360.0" y="192" text-anchor="middle" class="f-txt3" font-size="11">色彩</text>
|
|
1033
|
-
<text data-anim="fade" x="360.0" y="99.0" text-anchor="middle" class="f-txt2" font-size="12" font-weight="600">18</text>
|
|
1034
|
-
<rect data-anim="grow" x="451.9" y="93.0" width="56.1" height="77.0" rx="6" class="f-acc"><title>内容 22</title></rect>
|
|
1035
|
-
<text data-anim="fade" x="480.0" y="192" text-anchor="middle" class="f-txt3" font-size="11">内容</text>
|
|
1036
|
-
<text data-anim="fade" x="480.0" y="85.0" text-anchor="middle" class="f-txt2" font-size="12" font-weight="600">22</text>
|
|
1037
|
-
</svg>
|
|
1034
|
+
<!-- 数据以 REPORT_MODEL.chart 为准;复杂图形用 extract_snippet --chart bar -->
|
|
1035
|
+
<text x="280" y="110" text-anchor="middle" class="f-txt3" font-size="12">bar · 见模型数据</text>
|
|
1036
|
+
</svg>
|
|
1038
1037
|
</div>
|
|
1039
1038
|
</div>
|
|
1040
1039
|
<div class="sowhat rv"><span class="sowhat__v">工艺在结构与密度,不在 gadget——正式场合演讲/汇报才是主场。</span></div>
|
|
@@ -1047,16 +1046,16 @@ background:var(--surface-2);border-radius:6px;padding:2px 7px;color:var(--text)}
|
|
|
1047
1046
|
<div class="t-eyebrow">04 · 三模式</div>
|
|
1048
1047
|
<h2 class="t-h1 shead__title">模式先定后写:A 演示 · B 研究 · C 架构</h2>
|
|
1049
1048
|
</div>
|
|
1050
|
-
<div class="grid g-3 rv
|
|
1051
|
-
<div class="card"><div class="card__hd"><div class="card__ico"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><
|
|
1049
|
+
<div class="grid g-3--equal rv">
|
|
1050
|
+
<div class="card"><div class="card__hd"><div class="card__ico" data-icon="增长"><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></div><h3 class="t-h3">A · 演示</h3></div>
|
|
1052
1051
|
<ul class="ul"><li><strong>每屏一主张。</strong>标题即行动句,非话题标签</li><li><strong>大气留白。</strong>证据充分但不堆咨询 dump</li></ul></div>
|
|
1053
|
-
<div class="card"><div class="card__hd"><div class="card__ico"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="
|
|
1052
|
+
<div class="card"><div class="card__hd"><div class="card__ico" data-icon="下降"><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></div><h3 class="t-h3">B · 研究</h3></div>
|
|
1054
1053
|
<ul class="ul"><li><strong>咨询密排。</strong>Exhibit · 来源 · 结论条</li><li><strong>结论可核对。</strong>数字与口径双向对齐</li></ul></div>
|
|
1055
|
-
<div class="card"><div class="card__hd"><div class="card__ico"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><
|
|
1054
|
+
<div class="card"><div class="card__hd"><div class="card__ico" data-icon="数据"><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></div><h3 class="t-h3">C · 架构</h3></div>
|
|
1056
1055
|
<ul class="ul"><li><strong>图为王。</strong>拓扑 / 泳道 / 分层</li><li><strong>少字多结构。</strong>一图说清关系</li></ul></div>
|
|
1057
1056
|
</div>
|
|
1058
|
-
<div class="footnote">意图线索:路演/汇报/演讲 → A;调研/对标 → B;拓扑/方案图 → C</div>
|
|
1059
1057
|
<div class="sowhat rv"><span class="sowhat__v">先定模式再写页——A/B/C 契约决定密度、图表与结论条用法。</span></div>
|
|
1058
|
+
<div class="footnote">意图线索:路演/汇报/演讲 → A;调研/对标 → B;拓扑/方案图 → C</div>
|
|
1060
1059
|
</div>
|
|
1061
1060
|
</section>
|
|
1062
1061
|
|
|
@@ -1069,15 +1068,9 @@ background:var(--surface-2);border-radius:6px;padding:2px 7px;color:var(--text)}
|
|
|
1069
1068
|
<div class="grid g-side rv a-start">
|
|
1070
1069
|
<div class="fig" style="text-align:center"><div class="fig__cap">构成占比</div>
|
|
1071
1070
|
<svg class="chart" data-chart="donut" viewBox="0 0 560 220">
|
|
1072
|
-
|
|
1073
|
-
<
|
|
1074
|
-
|
|
1075
|
-
<circle data-sweep data-circ="339.3" data-p="0.3500" cx="70" cy="70" r="54" class="f-none s-txt2" stroke-width="15" stroke-dasharray="118.8 220.5" stroke-linecap="butt" transform="rotate(54.0 70 70)"><title>保真 PPTX 35%</title></circle>
|
|
1076
|
-
<circle data-sweep data-circ="339.3" data-p="0.2500" cx="70" cy="70" r="54" class="f-none s-txt3" stroke-width="15" stroke-dasharray="84.8 254.5" stroke-linecap="butt" transform="rotate(180.0 70 70)"><title>质检交付说明 25%</title></circle>
|
|
1077
|
-
<text x="70" y="68" text-anchor="middle" class="f-txt" font-size="22" font-weight="600" data-count="40" data-suffix="%">40%</text>
|
|
1078
|
-
<text x="70" y="88" text-anchor="middle" class="f-txt3" font-size="11">同源模型</text>
|
|
1079
|
-
</g>
|
|
1080
|
-
</svg>
|
|
1071
|
+
<!-- 数据以 REPORT_MODEL.chart 为准;复杂图形用 extract_snippet --chart donut -->
|
|
1072
|
+
<text x="280" y="110" text-anchor="middle" class="f-txt3" font-size="12">donut · 见模型数据</text>
|
|
1073
|
+
</svg>
|
|
1081
1074
|
</div>
|
|
1082
1075
|
<div class="stack gap-4"><h3 class="t-h3">构成明细</h3>
|
|
1083
1076
|
<ul class="ul"> <li><strong>可翻页 HTML。</strong>40(40%)</li> <li><strong>保真 PPTX。</strong>35(35%)</li> <li><strong>质检交付说明。</strong>25(25%)</li></ul>
|
|
@@ -1096,21 +1089,9 @@ background:var(--surface-2);border-radius:6px;padding:2px 7px;color:var(--text)}
|
|
|
1096
1089
|
<div class="grid g-side rv a-start">
|
|
1097
1090
|
<div class="fig"><div class="fig__cap">0.1.x 能力累进:定位与样张随版本加厚</div>
|
|
1098
1091
|
<svg class="chart" data-chart="line" viewBox="0 0 560 220">
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
<path data-draw d="M60.0,100.0 L175.0,80.0 L290.0,70.0 L405.0,60.0 L520.0,50.0" class="f-none s-acc" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"/>
|
|
1103
|
-
<circle cx="60.0" cy="100.0" r="4" class="f-acc"><title>0.1.7 · 8项</title></circle>
|
|
1104
|
-
<text x="60.0" y="200" text-anchor="middle" class="f-txt3" font-size="11">0.1.7</text>
|
|
1105
|
-
<circle cx="175.0" cy="80.0" r="4" class="f-acc"><title>0.1.8 · 10项</title></circle>
|
|
1106
|
-
<text x="175.0" y="200" text-anchor="middle" class="f-txt3" font-size="11">0.1.8</text>
|
|
1107
|
-
<circle cx="290.0" cy="70.0" r="4" class="f-acc"><title>0.1.9 · 11项</title></circle>
|
|
1108
|
-
<text x="290.0" y="200" text-anchor="middle" class="f-txt3" font-size="11">0.1.9</text>
|
|
1109
|
-
<circle cx="405.0" cy="60.0" r="4" class="f-acc"><title>0.1.10 · 12项</title></circle>
|
|
1110
|
-
<text x="405.0" y="200" text-anchor="middle" class="f-txt3" font-size="11">0.1.10</text>
|
|
1111
|
-
<circle cx="520.0" cy="50.0" r="4" class="f-acc"><title>0.1.11 · 13项</title></circle>
|
|
1112
|
-
<text x="520.0" y="200" text-anchor="middle" class="f-txt3" font-size="11">0.1.11</text>
|
|
1113
|
-
</svg>
|
|
1092
|
+
<!-- 数据以 REPORT_MODEL.chart 为准;复杂图形用 extract_snippet --chart line -->
|
|
1093
|
+
<text x="280" y="110" text-anchor="middle" class="f-txt3" font-size="12">line · 见模型数据</text>
|
|
1094
|
+
</svg>
|
|
1114
1095
|
</div>
|
|
1115
1096
|
<div class="stack gap-4"><h3 class="t-h3">怎么读这张图</h3>
|
|
1116
1097
|
<ul class="ul"><li><strong>真实版本线。</strong>对应 CHANGELOG 已合并能力,非虚构增速</li><li><strong>本版强化。</strong>差异化定位 · 双交付叙事 · README 总览精简</li></ul>
|
|
@@ -1143,9 +1124,9 @@ background:var(--surface-2);border-radius:6px;padding:2px 7px;color:var(--text)}
|
|
|
1143
1124
|
<h2 class="t-h1 shead__title">散装出稿止步,strict 0/0 才算交付</h2>
|
|
1144
1125
|
</div>
|
|
1145
1126
|
<div class="grid g-half g-2 rv a-start">
|
|
1146
|
-
<div class="card"><
|
|
1127
|
+
<div class="card"><h3 class="t-h3">散装路径 · 风险</h3>
|
|
1147
1128
|
<ul class="ul"><li><strong>手改 HTML。</strong>模型与正文双写,一改就漂</li><li><strong>无严格校验。</strong>截断、同型图、半空卡易漏</li><li><strong>口头交付。</strong>缺七要素,验收靠感觉</li></ul></div>
|
|
1148
|
-
<div class="card" style="background:var(--accent-soft);border-color:transparent"><
|
|
1129
|
+
<div class="card" style="background:var(--accent-soft);border-color:transparent"><h3 class="t-h3" style="color:var(--accent)">门禁路径 · 目标</h3>
|
|
1149
1130
|
<ul class="ul"><li><strong>模型单写。</strong>render 回填,禁手改正文</li><li><strong>HTML + PPTX。</strong>validate --strict 双侧 0/0</li><li><strong>七要素说明。</strong>quality_gate --deliver</li></ul></div>
|
|
1150
1131
|
</div>
|
|
1151
1132
|
<div class="sowhat rv"><span class="sowhat__v">反截断、图表多样性、runtime SHA——门禁是交付的一部分。</span></div>
|
|
@@ -1161,33 +1142,12 @@ background:var(--surface-2);border-radius:6px;padding:2px 7px;color:var(--text)}
|
|
|
1161
1142
|
<div class="grid g-side rv a-start">
|
|
1162
1143
|
<div class="fig"><div class="fig__cap">从想法到上台:工艺链路如何把主张垫实</div>
|
|
1163
1144
|
<svg class="chart" data-chart="waterfall" viewBox="0 0 560 220">
|
|
1164
|
-
|
|
1165
|
-
|
|
1166
|
-
|
|
1167
|
-
<text x="90.8" y="206" text-anchor="middle" class="f-txt3" font-size="11">意图</text>
|
|
1168
|
-
<rect data-anim="grow" x="150.0" y="135.9" width="44.9" height="23.2" rx="5" class="f-acc"/>
|
|
1169
|
-
<text x="172.5" y="127.9" text-anchor="middle" class="f-acc" font-size="12" font-weight="600">+15pt</text>
|
|
1170
|
-
<text x="172.5" y="206" text-anchor="middle" class="f-txt3" font-size="11">模式</text>
|
|
1171
|
-
<line x1="131.7" y1="159.1" x2="150.0" y2="159.1" class="s-bds" stroke-width="1" stroke-dasharray="3 3"/>
|
|
1172
|
-
<rect data-anim="grow" x="231.7" y="97.2" width="44.9" height="38.6" rx="5" class="f-acc"/>
|
|
1173
|
-
<text x="254.2" y="89.2" text-anchor="middle" class="f-acc" font-size="12" font-weight="600">+25pt</text>
|
|
1174
|
-
<text x="254.2" y="206" text-anchor="middle" class="f-txt3" font-size="11">模型</text>
|
|
1175
|
-
<line x1="213.3" y1="135.9" x2="231.7" y2="135.9" class="s-bds" stroke-width="1" stroke-dasharray="3 3"/>
|
|
1176
|
-
<rect data-anim="grow" x="313.4" y="74.1" width="44.9" height="23.2" rx="5" class="f-acc"/>
|
|
1177
|
-
<text x="335.8" y="66.1" text-anchor="middle" class="f-acc" font-size="12" font-weight="600">+15pt</text>
|
|
1178
|
-
<text x="335.8" y="206" text-anchor="middle" class="f-txt3" font-size="11">图表</text>
|
|
1179
|
-
<line x1="295.0" y1="97.2" x2="313.4" y2="97.2" class="s-bds" stroke-width="1" stroke-dasharray="3 3"/>
|
|
1180
|
-
<rect data-anim="grow" x="395.0" y="50.9" width="44.9" height="23.2" rx="5" class="f-acc"/>
|
|
1181
|
-
<text x="417.5" y="42.9" text-anchor="middle" class="f-acc" font-size="12" font-weight="600">+15pt</text>
|
|
1182
|
-
<text x="417.5" y="206" text-anchor="middle" class="f-txt3" font-size="11">门禁</text>
|
|
1183
|
-
<line x1="376.7" y1="74.1" x2="395.0" y2="74.1" class="s-bds" stroke-width="1" stroke-dasharray="3 3"/>
|
|
1184
|
-
<rect data-anim="grow" x="476.7" y="50.9" width="44.9" height="139.1" rx="5" class="f-acc"/>
|
|
1185
|
-
<text x="499.2" y="42.9" text-anchor="middle" class="f-txt2" font-size="12" font-weight="600">90pt</text>
|
|
1186
|
-
<text x="499.2" y="206" text-anchor="middle" class="f-txt3" font-size="11">上台</text>
|
|
1187
|
-
</svg>
|
|
1145
|
+
<!-- 数据以 REPORT_MODEL.chart 为准;复杂图形用 extract_snippet --chart waterfall -->
|
|
1146
|
+
<text x="280" y="110" text-anchor="middle" class="f-txt3" font-size="12">waterfall · 见模型数据</text>
|
|
1147
|
+
</svg>
|
|
1188
1148
|
</div>
|
|
1189
1149
|
<div class="stack gap-4"><h3 class="t-h3">怎么读这张图</h3>
|
|
1190
|
-
<ul class="ul
|
|
1150
|
+
<ul class="ul"><li><strong>意图定模式。</strong>路演→A · 调研→B · 拓扑→C</li><li><strong>门禁收口。</strong>strict 0/0 前不算交付</li></ul>
|
|
1191
1151
|
</div>
|
|
1192
1152
|
</div>
|
|
1193
1153
|
<div class="sowhat rv"><span class="sowhat__v">上台交付 = 模式契约 + 模型单写 + 多样图表 + 门禁收口。</span></div>
|
|
@@ -1201,30 +1161,12 @@ background:var(--surface-2);border-radius:6px;padding:2px 7px;color:var(--text)}
|
|
|
1201
1161
|
<h2 class="t-h1 shead__title">核图优先:排名对比用横向条,一眼分出轻重</h2>
|
|
1202
1162
|
</div>
|
|
1203
1163
|
<div class="grid g-side rv a-start">
|
|
1204
|
-
<div class="stack gap-4"><ul class="ul
|
|
1164
|
+
<div class="stack gap-4"><ul class="ul"><li><strong>产品已交付能力。</strong>五项均为当前线真实能力,不是预测</li><li><strong>图表选型。</strong>谁大谁小 → hbar;趋势 → line;占比 → donut</li></ul></div>
|
|
1205
1165
|
<div class="fig"><div class="fig__cap">能力就绪(当前发布线)</div>
|
|
1206
1166
|
<svg class="chart" data-chart="hbar" viewBox="0 0 560 220">
|
|
1207
|
-
|
|
1208
|
-
|
|
1209
|
-
|
|
1210
|
-
<text x="482" y="32.0" class="f-txt" font-size="12" font-weight="600">100%</text>
|
|
1211
|
-
<text x="0" y="66.0" class="f-txt2" font-size="12">三模式契约</text>
|
|
1212
|
-
<rect x="130" y="56.0" width="340" height="15" rx="7.5" class="f-s2"/>
|
|
1213
|
-
<rect data-anim="grow" x="130" y="56.0" width="340.0" height="15" rx="7.5" class="f-acc"><title>三模式契约 100%</title></rect>
|
|
1214
|
-
<text x="482" y="68.0" class="f-txt" font-size="12" font-weight="600">100%</text>
|
|
1215
|
-
<text x="0" y="102.0" class="f-txt2" font-size="12">九风格皮肤</text>
|
|
1216
|
-
<rect x="130" y="92.0" width="340" height="15" rx="7.5" class="f-s2"/>
|
|
1217
|
-
<rect data-anim="grow" x="130" y="92.0" width="340.0" height="15" rx="7.5" class="f-acc"><title>九风格皮肤 100%</title></rect>
|
|
1218
|
-
<text x="482" y="104.0" class="f-txt" font-size="12" font-weight="600">100%</text>
|
|
1219
|
-
<text x="0" y="138.0" class="f-txt2" font-size="12">双通道交付</text>
|
|
1220
|
-
<rect x="130" y="128.0" width="340" height="15" rx="7.5" class="f-s2"/>
|
|
1221
|
-
<rect data-anim="grow" x="130" y="128.0" width="340.0" height="15" rx="7.5" class="f-acc"><title>双通道交付 100%</title></rect>
|
|
1222
|
-
<text x="482" y="140.0" class="f-txt" font-size="12" font-weight="600">100%</text>
|
|
1223
|
-
<text x="0" y="174.0" class="f-txt2" font-size="12">Fast Mode</text>
|
|
1224
|
-
<rect x="130" y="164.0" width="340" height="15" rx="7.5" class="f-s2"/>
|
|
1225
|
-
<rect data-anim="grow" x="130" y="164.0" width="340.0" height="15" rx="7.5" class="f-acc"><title>Fast Mode 100%</title></rect>
|
|
1226
|
-
<text x="482" y="176.0" class="f-txt" font-size="12" font-weight="600">100%</text>
|
|
1227
|
-
</svg>
|
|
1167
|
+
<!-- 数据以 REPORT_MODEL.chart 为准;复杂图形用 extract_snippet --chart hbar -->
|
|
1168
|
+
<text x="280" y="110" text-anchor="middle" class="f-txt3" font-size="12">hbar · 见模型数据</text>
|
|
1169
|
+
</svg>
|
|
1228
1170
|
</div>
|
|
1229
1171
|
</div>
|
|
1230
1172
|
<div class="sowhat rv"><span class="sowhat__v">说服力来自可核对的能力清单与图表多样性,而非单张柱图凑数。</span></div>
|
|
@@ -1268,14 +1210,6 @@ background:var(--surface-2);border-radius:6px;padding:2px 7px;color:var(--text)}
|
|
|
1268
1210
|
</div>
|
|
1269
1211
|
</div>
|
|
1270
1212
|
</section>
|
|
1271
|
-
|
|
1272
|
-
<section class="band band--flow" id="refs">
|
|
1273
|
-
<div class="wrap">
|
|
1274
|
-
<div class="shead rv"><div class="t-eyebrow">附录</div>
|
|
1275
|
-
<h2 class="t-h1 shead__title">参考资料</h2></div>
|
|
1276
|
-
<ol class="refs"><li>(无外部引用)</li></ol>
|
|
1277
|
-
</div>
|
|
1278
|
-
</section>
|
|
1279
1213
|
<!-- __TOPPPT_CONTENT_END__ -->
|
|
1280
1214
|
|
|
1281
1215
|
<!-- ══ 页码指示(翻页导航) ══ -->
|
|
@@ -1889,66 +1823,51 @@ window.REPORT_MODEL = {
|
|
|
1889
1823
|
"theme": "light",
|
|
1890
1824
|
"title": "TopMind × tms-skills",
|
|
1891
1825
|
"subtitle": "HTML + PPT 双交付 · 为正式商务演示而生",
|
|
1892
|
-
"meta": "产品介绍 · 2026-09-26 · v0.1.
|
|
1826
|
+
"meta": "产品介绍 · 2026-09-26 · v0.1.19",
|
|
1893
1827
|
"agenda": [
|
|
1894
1828
|
[
|
|
1895
1829
|
"01",
|
|
1896
|
-
"
|
|
1830
|
+
"为什么是我们",
|
|
1897
1831
|
"01 · 为什么是我们"
|
|
1898
1832
|
],
|
|
1899
1833
|
[
|
|
1900
1834
|
"02",
|
|
1901
|
-
"tms-skills
|
|
1835
|
+
"tms-skills",
|
|
1902
1836
|
"02 · tms-skills"
|
|
1903
1837
|
],
|
|
1904
1838
|
[
|
|
1905
1839
|
"03",
|
|
1906
|
-
"
|
|
1840
|
+
"top-ppt-html",
|
|
1907
1841
|
"03 · top-ppt-html"
|
|
1908
1842
|
],
|
|
1909
1843
|
[
|
|
1910
1844
|
"04",
|
|
1911
|
-
"
|
|
1845
|
+
"三模式",
|
|
1912
1846
|
"04 · 三模式"
|
|
1913
1847
|
],
|
|
1914
1848
|
[
|
|
1915
1849
|
"05",
|
|
1916
|
-
"
|
|
1850
|
+
"图表工艺",
|
|
1917
1851
|
"05 · 图表工艺"
|
|
1918
1852
|
],
|
|
1919
1853
|
[
|
|
1920
1854
|
"06",
|
|
1921
|
-
"
|
|
1922
|
-
"05 · 图表工艺"
|
|
1923
|
-
],
|
|
1924
|
-
[
|
|
1925
|
-
"07",
|
|
1926
|
-
"九风格开场即可见,亮暗主题一键贯穿",
|
|
1855
|
+
"风格主题",
|
|
1927
1856
|
"06 · 风格主题"
|
|
1928
1857
|
],
|
|
1929
1858
|
[
|
|
1930
|
-
"
|
|
1931
|
-
"
|
|
1932
|
-
"07 · 质量门禁"
|
|
1933
|
-
],
|
|
1934
|
-
[
|
|
1935
|
-
"09",
|
|
1936
|
-
"从想法到上台:工艺链路如何把主张垫实",
|
|
1859
|
+
"07",
|
|
1860
|
+
"质量门禁",
|
|
1937
1861
|
"07 · 质量门禁"
|
|
1938
1862
|
],
|
|
1939
1863
|
[
|
|
1940
|
-
"
|
|
1941
|
-
"
|
|
1942
|
-
"05 · 图表工艺"
|
|
1943
|
-
],
|
|
1944
|
-
[
|
|
1945
|
-
"11",
|
|
1946
|
-
"打开 HTML 即演示:顶栏快捷操作一览",
|
|
1864
|
+
"08",
|
|
1865
|
+
"Header 工具栏",
|
|
1947
1866
|
"08 · Header 工具栏"
|
|
1948
1867
|
],
|
|
1949
1868
|
[
|
|
1950
|
-
"
|
|
1951
|
-
"Fast Mode
|
|
1869
|
+
"09",
|
|
1870
|
+
"Fast Mode",
|
|
1952
1871
|
"09 · Fast Mode"
|
|
1953
1872
|
]
|
|
1954
1873
|
],
|
|
@@ -1971,7 +1890,8 @@ window.REPORT_MODEL = {
|
|
|
1971
1890
|
"一屏一主张",
|
|
1972
1891
|
"标题即行动句,少装饰堆砌"
|
|
1973
1892
|
]
|
|
1974
|
-
]
|
|
1893
|
+
],
|
|
1894
|
+
"icon": "增长"
|
|
1975
1895
|
},
|
|
1976
1896
|
{
|
|
1977
1897
|
"title": "HTML + PPT 双交付",
|
|
@@ -1984,7 +1904,8 @@ window.REPORT_MODEL = {
|
|
|
1984
1904
|
"PPTX 按需导出",
|
|
1985
1905
|
"版式保真、可继续编辑"
|
|
1986
1906
|
]
|
|
1987
|
-
]
|
|
1907
|
+
],
|
|
1908
|
+
"icon": "下降"
|
|
1988
1909
|
},
|
|
1989
1910
|
{
|
|
1990
1911
|
"title": "MD3 式克制",
|
|
@@ -1997,7 +1918,8 @@ window.REPORT_MODEL = {
|
|
|
1997
1918
|
"无 AI chrome",
|
|
1998
1919
|
"结论条 tonal 满铺,禁左侧装饰轨"
|
|
1999
1920
|
]
|
|
2000
|
-
]
|
|
1921
|
+
],
|
|
1922
|
+
"icon": "数据"
|
|
2001
1923
|
}
|
|
2002
1924
|
],
|
|
2003
1925
|
"soWhat": "产出即上台:同源模型保证 HTML 与 PPTX 一致,图表带数据可核对。"
|
|
@@ -2020,7 +1942,8 @@ window.REPORT_MODEL = {
|
|
|
2020
1942
|
"同 tag 发版",
|
|
2021
1943
|
"安装器与技能整仓对齐"
|
|
2022
1944
|
]
|
|
2023
|
-
]
|
|
1945
|
+
],
|
|
1946
|
+
"icon": "增长"
|
|
2024
1947
|
},
|
|
2025
1948
|
{
|
|
2026
1949
|
"title": "双通道安装",
|
|
@@ -2033,7 +1956,8 @@ window.REPORT_MODEL = {
|
|
|
2033
1956
|
"GitHub 跟 HEAD",
|
|
2034
1957
|
"日常可 clone / 直装"
|
|
2035
1958
|
]
|
|
2036
|
-
]
|
|
1959
|
+
],
|
|
1960
|
+
"icon": "下降"
|
|
2037
1961
|
},
|
|
2038
1962
|
{
|
|
2039
1963
|
"title": "当前主技能",
|
|
@@ -2046,10 +1970,11 @@ window.REPORT_MODEL = {
|
|
|
2046
1970
|
"HTML + PPTX",
|
|
2047
1971
|
"同源模型 · 双交付"
|
|
2048
1972
|
]
|
|
2049
|
-
]
|
|
1973
|
+
],
|
|
1974
|
+
"icon": "数据"
|
|
2050
1975
|
}
|
|
2051
1976
|
],
|
|
2052
|
-
"footnote": "包名 @topmindspace/tms-skills · 当前线 0.1.
|
|
1977
|
+
"footnote": "包名 @topmindspace/tms-skills · 当前线 0.1.19(latest)",
|
|
2053
1978
|
"soWhat": "安装器与技能同仓同 tag——装一次,版本线对齐。"
|
|
2054
1979
|
},
|
|
2055
1980
|
{
|
|
@@ -2112,7 +2037,8 @@ window.REPORT_MODEL = {
|
|
|
2112
2037
|
"大气留白",
|
|
2113
2038
|
"证据充分但不堆咨询 dump"
|
|
2114
2039
|
]
|
|
2115
|
-
]
|
|
2040
|
+
],
|
|
2041
|
+
"icon": "增长"
|
|
2116
2042
|
},
|
|
2117
2043
|
{
|
|
2118
2044
|
"title": "B · 研究",
|
|
@@ -2125,7 +2051,8 @@ window.REPORT_MODEL = {
|
|
|
2125
2051
|
"结论可核对",
|
|
2126
2052
|
"数字与口径双向对齐"
|
|
2127
2053
|
]
|
|
2128
|
-
]
|
|
2054
|
+
],
|
|
2055
|
+
"icon": "下降"
|
|
2129
2056
|
},
|
|
2130
2057
|
{
|
|
2131
2058
|
"title": "C · 架构",
|
|
@@ -2138,7 +2065,8 @@ window.REPORT_MODEL = {
|
|
|
2138
2065
|
"少字多结构",
|
|
2139
2066
|
"一图说清关系"
|
|
2140
2067
|
]
|
|
2141
|
-
]
|
|
2068
|
+
],
|
|
2069
|
+
"icon": "数据"
|
|
2142
2070
|
}
|
|
2143
2071
|
],
|
|
2144
2072
|
"footnote": "意图线索:路演/汇报/演讲 → A;调研/对标 → B;拓扑/方案图 → C",
|
|
@@ -2444,7 +2372,7 @@ window.REPORT_MODEL = {
|
|
|
2444
2372
|
|
|
2445
2373
|
/* __TOPPPT_RUNTIME_START__ */
|
|
2446
2374
|
/* ══ PPTX 导出运行时(assets/pptx-export.js 的内联副本 · 由 scripts/sync_runtime.py 注入,禁止手改) ══ */
|
|
2447
|
-
/* __TOPPPT_RUNTIME_SHA__:
|
|
2375
|
+
/* __TOPPPT_RUNTIME_SHA__:af6e25f25fd2e116 */
|
|
2448
2376
|
/* ═══════════════════════════════════════════════════════════════════════════
|
|
2449
2377
|
* TopPPT HTML· 浏览器端 PPTX 预览运行时
|
|
2450
2378
|
* 零依赖、随报告单文件分发;OOXML 序列化器(仅供预览,页面不导出文件)。
|
|
@@ -2568,7 +2496,8 @@ function regionOf(pageType, slotId, opts) {
|
|
|
2568
2496
|
if (type === 'bar' && slot === 'primary') {
|
|
2569
2497
|
var by = P.chartY || 2.95;
|
|
2570
2498
|
var bb = opts.bottom != null ? opts.bottom : bottomDefault;
|
|
2571
|
-
|
|
2499
|
+
/* chartX/chartW 历史误用已纠正:与 donut/table/hbar/exhibit 同口径,图表盒对齐版心 (MX, CW) */
|
|
2500
|
+
return { x: MX, y: by, w: CW, h: Math.max(1.2, bb - by) };
|
|
2572
2501
|
}
|
|
2573
2502
|
if (type === 'bar' && slot === 'hbar') {
|
|
2574
2503
|
var y0 = P.hbarY0 || 2.6;
|
|
@@ -2680,7 +2609,7 @@ function regionOf(pageType, slotId, opts) {
|
|
|
2680
2609
|
/* __TOPPPT_SCHEMA_START__ */
|
|
2681
2610
|
/* ── 由 scripts/sync_runtime.py 从 scripts/model-schema.json 注入 · 禁止手改 ── */
|
|
2682
2611
|
/* DSL schema 单源:浏览器端 validateModel 与 scripts/extract_model.py 消费同一份定义 */
|
|
2683
|
-
var MODEL_SCHEMA = {"version":"0.1","modes":["presentation","research","architecture"],"model":{"required":["title","sections:array","closing.title","closing.points:array"],"optional":["mode","style","theme","subtitle","meta","agenda:array"],"agendaMin":{"presentation":3,"research":3,"architecture":0},"sectionsMin":1,"sectionsRecommended":3,"agendaComfortMax":
|
|
2612
|
+
var MODEL_SCHEMA = {"version":"0.1","modes":["presentation","research","architecture"],"model":{"required":["title","sections:array","closing.title","closing.points:array"],"optional":["mode","style","theme","subtitle","meta","agenda:array"],"agendaMin":{"presentation":3,"research":3,"architecture":0},"agendaMax":7,"agendaMaxWithRefs":8,"agendaHint":"agenda 条目 = 章(篇/section),3–7 条;每章可含多页(sections[] 按页建模)。禁止把逐页标题当大纲。sections[].eyebrow 的 `NN ·` 前缀 = 章键,须与某条 agenda 对应;跳转锚点 = 该章第一页。含「参考资料」条目时 +1 仍 ≤8。","sectionsMin":1,"sectionsRecommended":3,"agendaComfortMax":8},"commonSectionFields":["eyebrow","title","lead","soWhat","footnote","flags","image","exhibitNo","layoutPreset"],"mutualExclusionHint":"verdict 与 soWhat 互斥:二者共用 annotation 结论条槽位,同页双填必叠印。comparison 页填 verdict 时不要再填 soWhat(渲染器已自动二选一,但模型侧应只给一个)。","flagsHint":"flags = 待核实/待二次修改条目字符串数组(如 '2027 增速 xx%(口径未定)');渲染为 accent 强调色标注行,提示用户核对。","imageHint":"image = 素材图片/配图占位对象。三选一必填:src(用户图,data: 内联或相对路径,零外链铁律禁 http(s))|items(多图版式:grid/compare/wall,元素 {src?, alt?, caption?, placeholder?})|placeholder:true(无图时出配图占位,原生形状渲染、pictures 不增)。其余可选:layout(full/half/bleed/grid/compare/wall,见 layout-constants.json imageSpec.layouts)、fit(cover 默认 / contain)、caption、alt、hint、ratio。","imageLayoutHint":"layout 与 HTML 版式对应:full=版心全宽图|half=左图右注(points 为右栏注解)|bleed=通栏出血|grid=多图网格(items 2/3/4/6 张)|compare=双图 A/B 对比(items 2 张)|wall=Logo 墙(items 3–12 张小图)。占位符标签文本由双引擎按 imageSpec 拼同一串,保证 A/B 通道逐页文本一致。","chartTypes":["bar","hbar","stack","stackline","line","dualline","area","donut","multidonut","pie","radar","scatter","bubble","waterfall","gauge","pareto","funnel","gantt","vsbar","progress","sparkline","slope","dumbbell","lollipop","dotplot","bulletchart","waffle","radialbar","rose","candlestick"],"chartTypesHint":"chart.type 可取值 = 本表(30 类:16 原生 + 14 形状还原)。其余 6 类复杂信息图(sankey/treemap/boxplot/network/marimekko/streamgraph)是**专属页型**而非 chart.type——它们要按列/段/节点等结构化载荷表达,故走 sections[].type。不变量:charts.registry.types == chartTypes ∪ 上述 6 类页型(sync_runtime.py 校验)。","chartDataTable":{"enum":["notes","inline","appendix","off"],"default":"notes","rule":"非原生图表(registry.pptx=shape)的 dataTable 不得为 off;缺失时按 registry 默认值补齐。"},"pageTypes":{"points":{"label":"要点列表页","modes":["presentation","research","architecture"],"required":["points:array"],"optional":["metrics:array"]},"metrics":{"label":"指标带页(4–6 个核心数字)","modes":["presentation","research"],"required":["metrics:array"]},"kpi":{"label":"大数指标页(hero 大数字 + 支撑指标行)","modes":["presentation","research"],"required":["hero:array"],"optional":["metrics:array"]},"table":{"label":"对比表页","modes":["presentation","research","architecture"],"required":["table.head:array","table.rows:array"],"optional":["table.colW:array"]},"timeline":{"label":"时间线 / 路线页","modes":["presentation","research"],"required":["phases:array"]},"steps":{"label":"步骤条页(N 步横排 + 箭头,可分组)","modes":["presentation","research","architecture"],"required":["steps:array"],"optional":["groups:array","note"]},"bar":{"label":"图表页(chart.type 见 chartTypes;native 通道走原生数据图表,shape 通道走高保真形状还原 + 数据表)","modes":["presentation","research"],"required":["chart.labels:array","chart.values:array"],"optional":["chart.type","chart.series:array","chart.points:array","chart.max","chart.unit","chart.colors:array","chart.start:array","chart.target:array","chart.dataTable","note"]},"donut":{"label":"环形图页(原生 pie 楔形 + 图例)","modes":["presentation","research"],"required":["chart.labels:array","chart.values:array"],"optional":["chart.unit","chart.centerLabel","chart.colors:array","chart.dataTable","note"]},"heatmap":{"label":"热力矩阵页(行 × 列 + 强度色阶)","modes":["presentation","research"],"required":["rowHeads:array","colHeads:array","cells:array"],"optional":["unit","scaleLabel:array","note"]},"bullet":{"label":"达成对比页(实际 vs 目标条)","modes":["presentation","research"],"required":["items:array"],"optional":["unit","max","note"]},"pyramid":{"label":"金字塔页(层级递进,顶层最窄)","modes":["presentation","research","architecture"],"required":["levels:array"],"optional":["note"]},"image":{"label":"素材图片页(full/half/bleed/grid/compare/wall,效果与位置锁定;支持配图占位)","modes":["presentation","research","architecture"],"required":["anyof:image.src:str|image.items:array|image.placeholder"],"optional":["image.caption","image.alt","image.layout","image.fit","image.ratio","image.hint","points:array","note"]},"cards":{"label":"卡片网格页(cards 元素须为 {title, points:[[k,v]…], icon?},不接受元组)","modes":["presentation","research"],"required":["cards:array"],"optional":["columns"],"cardItemHint":"cards[] 元素:{title:str, points:[[k,v]…]|[{t,d}…]|[str…], icon?:str}。icon = 语义图标名(icon_lib.js 键:增长/下降/数据/图表/趋势/占比/表格/效率/成果/安全/权限/检查/风险/团队/流程/计划/智能/洞察/工具/清单),HTML 与 PPTX 同名真导出;缺省按标题语义自动挑选。"},"split":{"label":"双区组合页(left / right 各可为 要点|图表|表格|图片:type = points(默认)| table | image | 图表类型名;图表/表格字段直接挂在对应侧)","modes":["presentation","research"],"required":["anyof:left.points:array|left.type:str"],"optional":["left.cap","left.image","left.labels:array","left.values:array","left.series:array","left.points:array","left.max","left.unit","left.colors:array","left.dataTable","left.head:array","left.rows:array","left.colW:array","right.type","right.cap","right.image","right.labels:array","right.values:array","right.series:array","right.points:array","right.max","right.unit","right.colors:array","right.dataTable","right.head:array","right.rows:array","right.colW:array"]},"comparison":{"label":"对比页(左右双栏 + 可选结论条)","modes":["presentation","research"],"required":["left.title","left.points:array","right.title","right.points:array"],"optional":["verdict"]},"quote":{"label":"引用 / 金句页(深色全幅)","modes":["presentation","research"],"required":["quote","author"],"optional":["context"]},"diagram":{"label":"分层架构页(architecture 模式走全幅几何)","modes":["presentation","research","architecture"],"required":["layers:array"],"optional":["legend:array"]},"exhibit":{"label":"Exhibit 编号图表页(research R2)","modes":["research"],"required":["chart.labels:array","chart.values:array"],"optional":["exhibitNo","chart.type","chart.series:array","chart.points:array","chart.max","chart.unit","chart.colors:array","chart.dataTable","note"]},"twocol":{"label":"双栏论证页(research R1)","modes":["research"],"required":["paragraphs:array"]},"threecol":{"label":"三栏证据页(research R6)","modes":["research"],"required":["paragraphs:array"]},"halftable":{"label":"半表半图页(research R7)","modes":["research"],"required":["table.head:array","table.rows:array","chart.labels:array","chart.values:array"],"optional":["table.colW:array","chart.type","chart.series:array","chart.points:array","chart.max","chart.unit","chart.colors:array","chart.dataTable","note"]},"matrix":{"label":"矩阵图页(research R8)","modes":["research"],"required":["rowHeads:array","colHeads:array","cells:array"]},"lane":{"label":"泳道页(architecture A2)","modes":["architecture"],"required":["lanes:array"]},"sankey":{"label":"桑基图页(节点-流带,流向与流量)","modes":["research","architecture"],"required":["flows:array"],"optional":["unit","chart.dataTable","note"]},"treemap":{"label":"树图页(面积编码的层级构成)","modes":["research","architecture"],"required":["items:array"],"optional":["unit","chart.dataTable","note"]},"boxplot":{"label":"箱线图页(分布对比:min/q1/median/q3/max)","modes":["research","architecture"],"required":["groups:array"],"optional":["unit","chart.dataTable","note"]},"network":{"label":"关系网络页(节点-边拓扑)","modes":["research","architecture"],"required":["nodes:array","edges:array"],"optional":["chart.dataTable","note"]},"marimekko":{"label":"马赛克图页(列宽 × 列高双重编码)","modes":["research","architecture"],"required":["cols:array","cells:array"],"optional":["unit","chart.dataTable","note"]},"streamgraph":{"label":"流带图页(时间上的构成演变)","modes":["research","architecture"],"required":["series:array"],"optional":["labels:array","chart.dataTable","note"]}}};
|
|
2684
2613
|
/* __TOPPPT_SCHEMA_END__ */
|
|
2685
2614
|
|
|
2686
2615
|
var _mode = 'presentation'; /* 当前模式(slidesOf 里按 model.mode 设置) */
|