@taloswork/ose-shared 0.1.3 → 0.1.4

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 (135) hide show
  1. package/package.json +3 -3
  2. package/skills/document/SKILL.md +54 -47
  3. package/skills/document/assets/fonts/ChakraPetch-600.woff2 +0 -0
  4. package/skills/document/assets/fonts/DMSerifDisplay-400.woff2 +0 -0
  5. package/skills/document/assets/fonts/Lexend-500.woff2 +0 -0
  6. package/skills/document/assets/fonts/Nunito-700.woff2 +0 -0
  7. package/skills/document/assets/fonts/PlayfairDisplay-600.woff2 +0 -0
  8. package/skills/document/assets/fonts/Quicksand-600.woff2 +0 -0
  9. package/skills/document/assets/fonts/SpaceGrotesk-500.woff2 +0 -0
  10. package/skills/document/assets/fonts/Syne-700.woff2 +0 -0
  11. package/skills/document/assets/fonts/ZillaSlab-600.woff2 +0 -0
  12. package/skills/document/assets/fonts/fonts.json +314 -216
  13. package/skills/document/bin/html2pptx.cjs +7 -5
  14. package/skills/document/catalog.json +37 -19
  15. package/skills/document/layouts/README.md +1 -0
  16. package/skills/document/layouts/big-stat.tpl +1 -1
  17. package/skills/document/layouts/quote-aside.tpl +11 -0
  18. package/skills/document/layouts/slots.json +1 -1
  19. package/skills/document/motion/README.md +19 -1
  20. package/skills/document/motion/anthropic.json +29 -0
  21. package/skills/document/motion/apple.json +41 -0
  22. package/skills/document/motion/bistro-warm.json +16 -0
  23. package/skills/document/motion/black-gold.json +29 -0
  24. package/skills/document/motion/board-brief.json +14 -0
  25. package/skills/document/motion/bold-clash.json +16 -0
  26. package/skills/document/motion/branding.json +22 -0
  27. package/skills/document/motion/campus-teal.json +22 -0
  28. package/skills/document/motion/cinereel.json +23 -0
  29. package/skills/document/motion/clinic-care.json +22 -0
  30. package/skills/document/motion/cool.json +41 -0
  31. package/skills/document/motion/dark-glass.json +22 -0
  32. package/skills/document/motion/gov-brief.json +14 -0
  33. package/skills/document/motion/grid-tech.json +16 -0
  34. package/skills/document/motion/hand-drawn.json +23 -0
  35. package/skills/document/motion/ivory-gold.json +22 -0
  36. package/skills/document/motion/legal-slate.json +15 -0
  37. package/skills/document/motion/magazine-ink.json +29 -0
  38. package/skills/document/motion/mckinsey.json +28 -0
  39. package/skills/document/motion/memphis.json +16 -0
  40. package/skills/document/motion/mono.json +21 -0
  41. package/skills/document/motion/neon-cyber.json +42 -0
  42. package/skills/document/motion/olive-gold.json +22 -0
  43. package/skills/document/motion/organic-earth.json +15 -0
  44. package/skills/document/motion/pastel-saas.json +15 -0
  45. package/skills/document/motion/portfolio-noir.json +21 -0
  46. package/skills/document/motion/press-room.json +14 -0
  47. package/skills/document/motion/retro-press.json +15 -0
  48. package/skills/document/motion/sport-arena.json +16 -0
  49. package/skills/document/motion/swiss-grid.json +34 -0
  50. package/skills/document/motion/wedding-blush.json +15 -0
  51. package/skills/document/packs/README.md +20 -1
  52. package/skills/document/packs/board-brief/backdrop.html +4 -0
  53. package/skills/document/packs/board-brief/layouts/cover.tpl +12 -0
  54. package/skills/document/packs/board-brief/layouts/toc-agenda.tpl +20 -0
  55. package/skills/document/packs/board-brief/pack.css +27 -0
  56. package/skills/document/packs/press-room/backdrop.html +4 -0
  57. package/skills/document/packs/press-room/layouts/cover.tpl +12 -0
  58. package/skills/document/packs/press-room/layouts/section.tpl +13 -0
  59. package/skills/document/packs/press-room/pack.css +27 -0
  60. package/skills/document/styles/README.md +32 -4
  61. package/skills/document/styles/_samples/_groups/biz-premium.webp +0 -0
  62. package/skills/document/styles/_samples/_groups/creative.webp +0 -0
  63. package/skills/document/styles/_samples/_groups/editorial.webp +0 -0
  64. package/skills/document/styles/_samples/_groups/minimal.webp +0 -0
  65. package/skills/document/styles/_samples/_groups/natural.webp +0 -0
  66. package/skills/document/styles/_samples/_groups/tech-future.webp +0 -0
  67. package/skills/document/styles/_samples/anthropic.webp +0 -0
  68. package/skills/document/styles/_samples/apple.webp +0 -0
  69. package/skills/document/styles/_samples/bistro-warm.webp +0 -0
  70. package/skills/document/styles/_samples/black-gold.webp +0 -0
  71. package/skills/document/styles/_samples/board-brief.webp +0 -0
  72. package/skills/document/styles/_samples/bold-clash.webp +0 -0
  73. package/skills/document/styles/_samples/campus-teal.webp +0 -0
  74. package/skills/document/styles/_samples/cinereel.webp +0 -0
  75. package/skills/document/styles/_samples/clinic-care.webp +0 -0
  76. package/skills/document/styles/_samples/cool.webp +0 -0
  77. package/skills/document/styles/_samples/dark-glass.webp +0 -0
  78. package/skills/document/styles/_samples/gov-brief.webp +0 -0
  79. package/skills/document/styles/_samples/grid-tech.webp +0 -0
  80. package/skills/document/styles/_samples/hand-drawn.webp +0 -0
  81. package/skills/document/styles/_samples/ivory-gold.webp +0 -0
  82. package/skills/document/styles/_samples/legal-slate.webp +0 -0
  83. package/skills/document/styles/_samples/magazine-ink.webp +0 -0
  84. package/skills/document/styles/_samples/memphis.webp +0 -0
  85. package/skills/document/styles/_samples/mono.webp +0 -0
  86. package/skills/document/styles/_samples/neon-cyber.webp +0 -0
  87. package/skills/document/styles/_samples/olive-gold.webp +0 -0
  88. package/skills/document/styles/_samples/organic-earth.webp +0 -0
  89. package/skills/document/styles/_samples/pastel-saas.webp +0 -0
  90. package/skills/document/styles/_samples/portfolio-noir.webp +0 -0
  91. package/skills/document/styles/_samples/press-room.webp +0 -0
  92. package/skills/document/styles/_samples/retro-press.webp +0 -0
  93. package/skills/document/styles/_samples/sport-arena.webp +0 -0
  94. package/skills/document/styles/_samples/wedding-blush.webp +0 -0
  95. package/skills/document/styles/anthropic/skin.css +1 -1
  96. package/skills/document/styles/bistro-warm/backdrop.html +4 -0
  97. package/skills/document/styles/bistro-warm/skin.css +27 -0
  98. package/skills/document/styles/black-gold/skin.css +1 -1
  99. package/skills/document/styles/bold-clash/backdrop.html +4 -0
  100. package/skills/document/styles/bold-clash/skin.css +27 -0
  101. package/skills/document/styles/branding/skin.css +1 -1
  102. package/skills/document/styles/campus-teal/backdrop.html +3 -0
  103. package/skills/document/styles/campus-teal/skin.css +27 -0
  104. package/skills/document/styles/cinereel/skin.css +2 -2
  105. package/skills/document/styles/clinic-care/backdrop.html +4 -0
  106. package/skills/document/styles/clinic-care/skin.css +27 -0
  107. package/skills/document/styles/dark-glass/backdrop.html +4 -0
  108. package/skills/document/styles/dark-glass/skin.css +27 -0
  109. package/skills/document/styles/gov-brief/backdrop.html +4 -0
  110. package/skills/document/styles/gov-brief/skin.css +27 -0
  111. package/skills/document/styles/grid-tech/backdrop.html +37 -0
  112. package/skills/document/styles/grid-tech/skin.css +27 -0
  113. package/skills/document/styles/hand-drawn/skin.css +2 -2
  114. package/skills/document/styles/ivory-gold/skin.css +2 -2
  115. package/skills/document/styles/legal-slate/backdrop.html +6 -0
  116. package/skills/document/styles/legal-slate/skin.css +27 -0
  117. package/skills/document/styles/magazine-ink/skin.css +1 -1
  118. package/skills/document/styles/memphis/backdrop.html +5 -0
  119. package/skills/document/styles/memphis/skin.css +27 -0
  120. package/skills/document/styles/mono/skin.css +1 -1
  121. package/skills/document/styles/neon-cyber/backdrop.html +4 -0
  122. package/skills/document/styles/neon-cyber/skin.css +27 -0
  123. package/skills/document/styles/olive-gold/skin.css +1 -1
  124. package/skills/document/styles/organic-earth/backdrop.html +4 -0
  125. package/skills/document/styles/organic-earth/skin.css +27 -0
  126. package/skills/document/styles/pastel-saas/backdrop.html +4 -0
  127. package/skills/document/styles/pastel-saas/skin.css +27 -0
  128. package/skills/document/styles/portfolio-noir/backdrop.html +4 -0
  129. package/skills/document/styles/portfolio-noir/skin.css +27 -0
  130. package/skills/document/styles/retro-press/backdrop.html +6 -0
  131. package/skills/document/styles/retro-press/skin.css +27 -0
  132. package/skills/document/styles/sport-arena/backdrop.html +4 -0
  133. package/skills/document/styles/sport-arena/skin.css +27 -0
  134. package/skills/document/styles/wedding-blush/backdrop.html +6 -0
  135. package/skills/document/styles/wedding-blush/skin.css +27 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@taloswork/ose-shared",
3
- "version": "0.1.3",
3
+ "version": "0.1.4",
4
4
  "description": "Talos cross-OSE shared library — skills + MCP servers auto-loaded into every OSE (P93 2026-07-27).",
5
5
  "type": "module",
6
6
  "files": [
@@ -10,6 +10,6 @@
10
10
  "publishConfig": {
11
11
  "access": "public"
12
12
  },
13
- "_talosPublishHash": "sha256-RfTV3yagoQYs34T0xBwaQJ1l6PXSqIzzesBbFROxxaA",
14
- "_talosPublishedAt": "2026-09-03T06:44:08.968Z"
13
+ "_talosPublishHash": "sha256-7or_mcdSHbKlZLnkDnnjf-71hdL7A895HrWVqUGALOo",
14
+ "_talosPublishedAt": "2026-09-03T17:22:12.823Z"
15
15
  }
@@ -40,53 +40,60 @@ script only when:
40
40
  document files via these scripts — never hand-write a python / ReportLab /
41
41
  LibreOffice script for document output.
42
42
  **Any deck/presentation(路演/汇报/评审/宣讲/pitch/roadshow/介绍 PPT)**:
43
- **CLARIFY FIRST — HARD GATE (applies to EVERY deck).** Before authoring
44
- anything, UNLESS the user already gave them or said "你决定/you decide", you
45
- MUST ask — in **ONE AskUserQuestion call with these FOUR questions** — and wait
46
- for answers (the tool allows up to 4 questions per call — use all four; do NOT
47
- split into a second call and do NOT drop the style question):
48
- **(1) content source** (提供材料 / 联网调研 / 自由创作); **(2) scenario** (pitch /
49
- 内审 / 销售 / 讲座 / 发布会 / 培训 / 大会 — sets tone, density, required sections);
50
- **(3) style — pick ONE 风格。两级选择,名单一律读 `catalog.json`,本文件不列族名。**
51
- 第一级(放在这次四问里):展示 `catalog.json` 的 **`groups`** 作为 image-card 选项,
52
- `{ label: group.name_cn, description: <该 group 的 scenarios 前两项,用 " · " 连接>,
53
- imagePath: <skill 目录下 group.sample 的绝对路径> }`。大类顺序按 Q2 的场景答案匹配
54
- `group.scenarios`,最贴合的排前面。**外加一张卡放在最后**:
55
- `{ label: "使用我的模板文件", description: "复用现成 PPT 的版式/风格", filePick: "file" }`
56
- (无 imagePath,渲染成文件夹卡)。选中它 → 走 `pptx-tokenize`/`pptx-theme` 复用路径
57
- (rewrite.md B2),不进下面的第二级。
58
-
59
- 第二级(四问返回后**单独发一次单问题调用**):把所选 group 下的 `entries` 展示为
60
- image-card,`{ label: entry.name_cn, description: entry.oneliner(**逐字照抄,不得改写、
61
- 不得加"风"/"首选"之类的尾巴**), imagePath: <entry.sample 的绝对路径> }`。
62
- **该 group 只有一个 entry 时跳过第二级,直接用它。** 用户在别处已经点名族 id 的,
63
- 两级全跳过。
64
-
65
- 样图都是**预渲染**的 WebP,随 skill 一起分发 —— 直接把路径传过去,**不要在提问时渲染任何东西**。
66
-
67
- 选中的 `entry.id` 即 `--style` 的取值:`html2pptx deck.html out.pptx --style <id>`。
68
- entry 是 skin 还是 pack 由 `catalog.json` 决定,渲染命令**完全相同**,不需要分情况处理。
69
- **(4) slide count.**
70
- **Keep the call LEAN — it streams in full before the panel becomes interactive,
71
- so every extra token is dead wait.** Questions (1)(2)(4) pass options as **bare
72
- label strings** (e.g. `["提供材料","联网调研","自由创作"]`) — NO per-option
73
- `description`/`detail` objects; each question stem is ONE short sentence. The ONLY
74
- descriptions in the whole call are Q3's group descriptions (第二级的族 one-liner 在
75
- 单独那次调用里,不算进这次的四问). Skip any chat
76
- preamble before the tool (or keep it to a single short line) — the questions speak
77
- for themselves.
78
- Every question carries an implicit "其他/自定义" free-text escape (the panel adds
79
- it). If they respond with a question/correction instead of a pick, answer it,
80
- then re-ask. Do NOT drop the style question or waive the gate by judging the deck
81
- "small/quick" — only an explicit user spec or "你决定" skips it.
82
-
83
- **Pick the skin** (in this order): a remembered deck-skin preference → user named
84
- a style → 按 Q2 的场景去匹配 `catalog.json` 里 group/entry 的 `scenarios`(要 clean/
85
- formal/light 的就再按 `entry.mode === "light"` 收窄)→ 仍并列时取最贴合那个 group 的
86
- 第一个 entry。**本文件不写死任何族 id** —— 名单只有 `catalog.json` 一份,写在这里的
87
- 默认族会在下一次增删族时静默过期,而没有任何闸门抓得住。`styles/README.md` 是同一份
88
- 名单的人读版,用来理解各族的气质,不作为选择依据。Never unstyled. After the user
89
- confirms, save the preference to memory.
43
+ **CLARIFY FIRST — HARD GATE (applies to EVERY deck).** Before authoring, collect
44
+ three brief fields: **(1) content source** (提供材料 / 联网调研 / 自由创作);
45
+ **(2) scenario** (pitch / 内审 / 销售 / 讲座 / 发布会 / 培训 / 大会 — sets tone,
46
+ density, required sections); **(3) slide count.** Ask only for fields the user did
47
+ not already supply, in **ONE AskUserQuestion call with at most THREE questions**, and
48
+ wait for the answers. If all three are already known, do not ask them again.
49
+
50
+ **STYLE PICKER — ONE RESULT PER IMAGE, SCENARIO-RANKED.** After the scenario is
51
+ known, read the skill directory's **current `catalog.json` from disk immediately
52
+ before building the picker**. Never reuse a catalog listing from earlier conversation
53
+ context and never infer pack availability by scanning `packs/`. If the current catalog
54
+ cannot be read or parsed, stop and report that exact error instead of presenting stale
55
+ options.
56
+
57
+ Unless the user already named an entry id/name, supplied a template file, or explicitly
58
+ said **"无需展示模板,直接替我选定风格"**, send one single-question image-card picker:
59
+
60
+ - Rank **entries**, not groups, against the confirmed scenario and the user's requested
61
+ tone. Show at most 8 recommended entries. A scenario-matching `kind === "pack"` ranks
62
+ before matching skins; include at least one matching pack whenever one exists.
63
+ - Every image card maps to exactly one final entry and uses
64
+ `{ label: entry.kind === "pack" ? "PACK · " + entry.name_cn : entry.name_cn,
65
+ description: entry.oneliner, imagePath: <skill目录下entry.sample的绝对路径> }`.
66
+ Copy `entry.oneliner` verbatim. Never use `group.sample` in this default picker.
67
+ - Append `{ label: "查看全部风格", description: "一次查看全部模板" }`, then
68
+ `{ label: "使用我的模板文件", description: "复用现成 PPT 的版式/风格",
69
+ filePick: "file" }` as the final option.
70
+
71
+ **"按场景推荐/你推荐" means rank the cards and still ask.** It does NOT waive the
72
+ picker. Only the explicit no-picker wording above authorizes automatic selection.
73
+ Do not waive this gate because the deck is small or quick.
74
+
75
+ If the user chooses **查看全部风格**, immediately show **every current
76
+ `catalog.entries` item in one single-question image-card picker** using the same label,
77
+ description, and imagePath rule above. Preserve catalog order, keep `PACK ·` visible,
78
+ and append the custom-template file card. Do not ask for a group, paginate, or return to
79
+ any category/second-level picker; the browse-all action must expose final selectable
80
+ templates directly.
81
+
82
+ Samples are pre-rendered WebP files shipped with the skill: pass their absolute paths
83
+ directly and do not render anything during the question. The selected `entry.id` is the
84
+ `--style` value: `html2pptx deck.html out.pptx --style <id>`. Skin and pack use the same
85
+ render command; `catalog.json` resolves their different asset directories.
86
+
87
+ **Keep both calls LEAN.** The content/scenario/count questions use bare label strings,
88
+ no per-option descriptions; every question stem is one short sentence. Skip chat
89
+ preambles or keep one short line. Every question has the panel's implicit custom-text
90
+ escape. If the user responds with a correction or question, handle it and re-ask.
91
+
92
+ **Automatic choice, only when explicitly authorized:** rank by a remembered preference,
93
+ an exact user-named style, scenario match, a matching pack before a matching skin, then
94
+ `entry.mode` when the user asked for clean/formal/light/dark. Never hardcode a family id:
95
+ `catalog.json` is the only roster; `styles/README.md` is explanatory only. Never render
96
+ unstyled. After the user confirms, save the preference to memory.
90
97
 
91
98
  **Custom style (user picked 其他/自定义 on Q3)** — clarify which route, **prefer B
92
99
  (derive a bespoke look)**: