skill-forge-hub 0.5.3 → 1.0.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.
Files changed (36) hide show
  1. package/CHANGELOG.md +48 -0
  2. package/README.md +5 -4
  3. package/annual-report/SKILL.md +4 -3
  4. package/annual-report/resources/disk-and-html.md +1 -1
  5. package/annual-report/resources/reference.html +30 -17
  6. package/annual-report/user-config.md +1 -1
  7. package/article-to-html/SKILL.md +1 -39
  8. package/article-to-html/resources/usage-guide.md +41 -0
  9. package/cli.js +40 -7
  10. package/daily-report/SKILL.md +4 -3
  11. package/daily-report/resources/disk-and-html.md +1 -1
  12. package/daily-report/resources/reference.html +36 -17
  13. package/daily-report/user-config.md +1 -1
  14. package/deck-stage/SKILL.md +24 -4
  15. package/deck-stage/resources/cover-template.html +3 -2
  16. package/deck-stage/resources/data-schema.md +1 -1
  17. package/deck-stage/resources/pptx-builder.js +1 -1
  18. package/deck-stage/resources/usage-guide.md +2 -2
  19. package/deck-stage/user-config.md +2 -2
  20. package/magic-deck/SKILL.md +8 -3
  21. package/magic-deck/resources/deck-spec.md +15 -8
  22. package/magic-deck/resources/reference.html +18 -10
  23. package/magic-deck/resources/usage-guide.md +2 -2
  24. package/magic-deck/user-config.md +2 -2
  25. package/package.json +1 -1
  26. package/prompt-pouch/SKILL.md +20 -12
  27. package/prompt-pouch/resources/data-format.md +2 -1
  28. package/prompt-pouch/resources/reference.html +292 -30
  29. package/prompt-pouch/resources/usage-guide.md +11 -4
  30. package/prompt-pouch/user-config.md +1 -1
  31. package/spec-doc2spec/SKILL.md +1 -0
  32. package/spec-spec2doc/SKILL.md +1 -0
  33. package/weekly-report/SKILL.md +4 -3
  34. package/weekly-report/resources/disk-and-html.md +1 -1
  35. package/weekly-report/resources/reference.html +37 -18
  36. package/weekly-report/user-config.md +1 -1
@@ -5,7 +5,7 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
6
  <title>今日日报 - 20261106</title>
7
7
  <style>
8
- /* ═══ 四主题令牌:12 核心契约(与 magic-deck 一致)+ 报告扩展(发光/氛围/语义色);html[data-theme] 运行时切换,THEME 生成时定默认 ═══ */
8
+ /* ═══ 五主题令牌:12 核心契约(与 magic-deck 一致)+ 报告扩展(发光/氛围/语义色);html[data-theme] 运行时切换,THEME 生成时定默认 ═══ */
9
9
  :root, [data-theme="tech"]{
10
10
  --bg:#0a1929; --bg2:#071525; --panel:rgba(11,30,55,.9); --panel-solid:#0b1e37;
11
11
  --card-shadow:0 1px 0 rgba(255,255,255,.05) inset, 0 12px 32px rgba(1,6,16,.5), 0 0 24px rgba(14,165,233,.15);
@@ -28,16 +28,27 @@
28
28
  --heat:rgba(37,99,235,.55);
29
29
  --green:#0d9488; --orange:#ea580c; --rose:#e11d48;
30
30
  }
31
- [data-theme="mono"]{
32
- --bg:#f2f2f4; --bg2:#e4e4e8; --panel:rgba(255,255,255,.98); --panel-solid:#ffffff;
33
- --card-shadow:0 1px 2px rgba(0,0,0,.06), 0 10px 28px rgba(0,0,0,.1);
34
- --text:#16181d; --muted:#6b7280; --accent:#111111; --accent2:#4b5563;
35
- --border:rgba(17,17,17,.14); --glow:rgba(17,17,17,.08); --glow-soft:rgba(17,17,17,.1);
36
- --title-grad:linear-gradient(90deg,#111,#333 60%,#666);
37
- --tag-bg:rgba(17,17,17,.06);
38
- --scan:rgba(17,17,17,.1); --scan-dim:rgba(17,17,17,.04);
39
- --heat:rgba(17,17,17,.55);
40
- --green:#0f766e; --orange:#c2410c; --rose:#be123c;
31
+ [data-theme="mono"]{ /* IDEA 黑亮:JetBrains New UI Dark 官方(编辑区 #1e1f22 + 面板 #2b2d30 + 描边 #3c3f41) */
32
+ --bg:#1e1f22; --bg2:#2b2d30; --panel:rgba(43,45,48,.95); --panel-solid:#2b2d30;
33
+ --card-shadow:0 1px 0 rgba(255,255,255,.06) inset, 0 12px 32px rgba(0,0,0,.5), 0 0 24px rgba(53,116,240,.16);
34
+ --text:#dfe1e5; --muted:#9aa0a6; --accent:#3574f0; --accent2:#5e9aff;
35
+ --border:rgba(53,116,240,.26); --glow:rgba(53,116,240,.3); --glow-soft:rgba(53,116,240,.13);
36
+ --title-grad:linear-gradient(90deg,#dfe1e5,#5e9aff 50%,#3574f0);
37
+ --tag-bg:rgba(53,116,240,.13);
38
+ --scan:rgba(94,154,255,.22); --scan-dim:rgba(94,154,255,.05);
39
+ --heat:rgba(53,116,240,.55);
40
+ --green:#4da36b; --orange:#d09645; --rose:#d85f73;
41
+ }
42
+ [data-theme="light"]{ /* IDEA 白亮:IntelliJ Light 官方(白编辑区 + 浅灰面板 #f2f2f2 + IDEA 蓝 #2675bf) */
43
+ --bg:#ffffff; --bg2:#f2f2f2; --panel:rgba(255,255,255,.98); --panel-solid:#ffffff;
44
+ --card-shadow:0 1px 2px rgba(30,31,34,.06), 0 10px 28px rgba(30,31,34,.12);
45
+ --text:#1e1f22; --muted:#6e7781; --accent:#2675bf; --accent2:#4a9be0;
46
+ --border:rgba(38,117,191,.18); --glow:rgba(38,117,191,.2); --glow-soft:rgba(38,117,191,.1);
47
+ --title-grad:linear-gradient(90deg,#1e5f9f,#2675bf 55%,#4a9be0);
48
+ --tag-bg:rgba(38,117,191,.08);
49
+ --scan:rgba(38,117,191,.12); --scan-dim:rgba(38,117,191,.04);
50
+ --heat:rgba(38,117,191,.55);
51
+ --green:#2f8a5b; --orange:#d97706; --rose:#d6336c;
41
52
  }
42
53
  [data-theme="warm"]{
43
54
  --bg:#f7ebd9; --bg2:#efe0c8; --panel:rgba(255,250,243,.97); --panel-solid:#fffaf3;
@@ -51,7 +62,13 @@
51
62
  --green:#0d9488; --orange:#c2410c; --rose:#be123c;
52
63
  }
53
64
  /* 浅色主题下星点氛围自然退隐 */
54
- [data-theme="biz"] .stars, [data-theme="mono"] .stars, [data-theme="warm"] .stars{ opacity:.28; }
65
+ [data-theme="biz"] .stars, [data-theme="light"] .stars, [data-theme="warm"] .stars{ opacity:.28; }
66
+ /* mono 黑亮下科技氛围退隐:纯正 #1e1f22 编辑区观感(网格/星点/扫描线/移动光带全退,与 JetBrains New UI Dark 一致) */
67
+ [data-theme="mono"] .grid-pattern,
68
+ [data-theme="mono"] .stars,
69
+ [data-theme="mono"] .scanlines,
70
+ [data-theme="mono"] .scanband{ display:none; }
71
+ [data-theme="mono"] body::before{ display:none; } /* 噪点层同退 */
55
72
 
56
73
  *{margin:0;padding:0;box-sizing:border-box;}
57
74
  html,body{background:var(--bg);}
@@ -352,7 +369,7 @@ li:hover .idx{ transform:scale(1.18) rotate(-4deg); font-size:14px; }
352
369
  text-align:center; font-size:10px; color:var(--muted); letter-spacing:1.5px;
353
370
  padding:6px 0 2px; position:relative; z-index:1;
354
371
  }
355
- /* 主题换肤坞:右下角四色点随点随换,记忆上次选择;打印与截图模式隐藏 */
372
+ /* 主题换肤坞:右下角五色点随点随换,记忆上次选择;打印与截图模式隐藏 */
356
373
  .theme-dock{
357
374
  position:fixed; right:18px; bottom:18px; z-index:1001;
358
375
  display:flex; gap:8px; padding:8px 10px; border-radius:999px;
@@ -368,7 +385,8 @@ li:hover .idx{ transform:scale(1.18) rotate(-4deg); font-size:14px; }
368
385
  .theme-dock .th-dot.on{ border-color:var(--text); }
369
386
  .theme-dock .th-dot[data-theme="tech"]{ background:#0ea5e9; }
370
387
  .theme-dock .th-dot[data-theme="biz"]{ background:#2563eb; }
371
- .theme-dock .th-dot[data-theme="mono"]{ background:#111; }
388
+ .theme-dock .th-dot[data-theme="mono"]{ background:#1e1f22; }
389
+ .theme-dock .th-dot[data-theme="light"]{ background:#ffffff; }
372
390
  .theme-dock .th-dot[data-theme="warm"]{ background:#d97706; }
373
391
  @media print{ .theme-dock{ display:none; } }
374
392
  </style>
@@ -529,7 +547,8 @@ li:hover .idx{ transform:scale(1.18) rotate(-4deg); font-size:14px; }
529
547
  <div class="theme-dock" id="themeDock">
530
548
  <button class="th-dot" type="button" data-theme="tech" title="深蓝科技"></button>
531
549
  <button class="th-dot" type="button" data-theme="biz" title="浅色商务"></button>
532
- <button class="th-dot" type="button" data-theme="mono" title="极简黑白"></button>
550
+ <button class="th-dot" type="button" data-theme="mono" title="IDEA 黑亮"></button>
551
+ <button class="th-dot" type="button" data-theme="light" title="IDEA 白亮"></button>
533
552
  <button class="th-dot" type="button" data-theme="warm" title="温暖渐变"></button>
534
553
  </div>
535
554
  </div>
@@ -610,7 +629,7 @@ var TXT = "今日日报 - 20261106\n\n生成时间:2026-11-06 17:30:39\n\nTL;D
610
629
  p.style.animationDuration = c[6] + 's';
611
630
  p.style.setProperty('--dx', c[7] + 'px');
612
631
  p.style.setProperty('--dy', c[8] + 'px');
613
- if (c[1] >= 5.5) p.className = 'cp cp-deep'; // 深色带配色由 .cp-deep 类承接(四主题令牌驱动,勿内联写死)
632
+ if (c[1] >= 5.5) p.className = 'cp cp-deep'; // 深色带配色由 .cp-deep 类承接(五主题令牌驱动,勿内联写死)
614
633
  comet.appendChild(p);
615
634
  }
616
635
  });
@@ -686,7 +705,7 @@ function sheen(track, src){
686
705
 
687
706
  /* 主题换肤:四套配色随点随换;记忆上次选择(localStorage,失败静默);?shot 截图模式隐藏坞 */
688
707
  (function(){
689
- var THEMES = ['tech','biz','mono','warm'];
708
+ var THEMES = ['tech','biz','mono','light','warm'];
690
709
  var dock = document.getElementById('themeDock');
691
710
  if (!dock) return;
692
711
  if (location.search.indexOf('shot=') !== -1){ dock.style.display = 'none'; }
@@ -16,7 +16,7 @@ DIR: auto # 落盘根目录:auto = 按当前系统自动
16
16
  DIR_MAC: /Users/luzhaosheng/MyWork/智慧食堂/reports # macOS 落盘根目录(自动按目标日期建子目录;目录不存在时回退用户主目录下 reports)
17
17
  DIR_WIN: d:\Workspace_QCoder\reports # Windows 落盘根目录(自动按目标日期建子目录;目录/盘符不存在时回退用户主目录下 reports)
18
18
  OPEN_HTML: true # 落盘后是否自动用浏览器打开 html(FORMATS 不含 html 时忽略)
19
- THEME: tech # html 页面主题:tech 深蓝科技(默认)/ biz 浅色商务 / mono 极简黑白 / warm 温暖渐变;生成时写 <html data-theme="THEME值"> 定默认,页面右下角换肤坞四色点随点随换(浏览器本地记忆,?shot 截图模式自动隐藏,打印隐藏)
19
+ THEME: tech # html 页面主题:tech 深蓝科技(默认)/ biz 浅色商务 / mono IDEA 黑亮 / light IDEA 白亮 / warm 温暖渐变;生成时写 <html data-theme="THEME值"> 定默认,页面右下角换肤坞五色点随点随换(浏览器本地记忆,?shot 截图模式自动隐藏,打印隐藏)
20
20
  TEMPLATE: default # 报告模板:default = 内置三段式(任务进度/明日计划/风险阻塞点);custom = 使用下方「📝 自定义模板」节;口头临时指定模板仅当次生效
21
21
  ROLE: 全栈开发工程师(企业内技术开发) # 用户默认职业角色与主要工作内容(两者并存:职业名 + 括号内工作内容,生成内容/术语/量化指标/节奏条/风险话术全部按此画像走);用户随口描述职业时(如「我搞装修的,天天跑工地」)→ AI 提炼为规范表述(装修项目经理(负责工地现场管理、施工进度与质量巡检))更新此处;说「以 XX 的身份写」→ 当次临时换角色不改配置;说「以后默认用 XX 角色 / 我的职业是 XX / 我的主要工作是 XX」→ 永久更新此处
22
22
  CONFIRM: never # 落盘前确认:never = 直接生成落盘不确认(默认);text = 纯文字整理模式先出效果确认后再落盘;always = 任何方式生成都先确认;临时说「先看看效果」当次先确认、说「不用确认」当次跳过
@@ -4,10 +4,10 @@ description: >
4
4
  登台 deck-stage:把日报/周报/年报(md/HTML/口述大纲)或散装素材(目录/文件/随手文字)转成专业 .pptx 演示文稿。
5
5
  三问交互——先问素材(指定目录/指定文件/贴文字/口述主题)、再报页结构大纲表确认、后选成片方式(一键成片/逐页确认)。
6
6
  混合模式——常规页原生生成(文本/数据卡/时间线/柱图/饼图/折线,全部可编辑),封面与结尾页用 HTML 截图贴图(视觉保真)。
7
- 视觉与报告深蓝面板体系同源:tech 深蓝科技(默认)/biz 浅色商务/mono 极简黑白/warm 温暖渐变四主题,
7
+ 视觉与报告深蓝面板体系同源:tech 深蓝科技(默认)/biz 浅色商务/mono IDEA 黑亮/light IDEA 白亮/warm 温暖渐变五主题,
8
8
  五段节色(蓝/绿/紫/玫红/橙)。每页可带演讲备注(notes),bullets 页可配图。
9
9
  数据经结构化 data.json 交给 resources/pptx-builder.js(PptxGenJS,本目录 node_modules 离线可用)产出 16:9 pptx。
10
- 当用户请求把报告/日报/周报/年报转成 PPT、做成 PPT、导出 pptx、生成演示文稿、登台,或询问本 skill 用法时使用。
10
+ 当用户请求把报告/日报/周报/年报转成 PPT、做成 PPT、导出 pptx、生成演示文稿、登台,或询问本 skill 用法时使用。用户要 HTML 网页幻灯(网页放映/分享)时不用本 skill(交给 magic-deck);「做 PPT/演示文稿」未言明产出形态时先 AskUserQuestion 二选一(.pptx 可编辑文件 → 本 skill;HTML 网页幻灯 → magic-deck),不擅自默认。
11
11
  allowed-tools: ["Bash", "Read", "Write", "Edit"]
12
12
  disable-model-invocation: false
13
13
  ---
@@ -16,6 +16,11 @@ disable-model-invocation: false
16
16
 
17
17
  把报告三件套(日报/周报/年报)的产出——或任何散装素材——转成专业 .pptx 演示文稿。常规页原生可编辑(文本/数据卡/时间线/柱图/饼图/折线),封面/结尾页 HTML 截图保真,每页可带演讲备注,视觉与报告同源。写报告 → 放映(magic-deck)→ 登台(本 skill),最后一公里闭环。
18
18
 
19
+ ## 意图边界(与 magic-deck 分流)
20
+
21
+ - 本 skill 产 **.pptx 可编辑文件**(PowerPoint/WPS 打开可改);用户要 HTML 网页幻灯(网页放映/分享)→ 交给 magic-deck
22
+ - 「做 PPT / 做演示文稿」未言明产出形态 → AskUserQuestion 二选一:A .pptx 可编辑文件(继续本 skill)/ B HTML 网页幻灯(交给 magic-deck),不擅自默认
23
+
19
24
  ## 三问交互模型(生成前必走,一问不跳)
20
25
 
21
26
  **第一问 · 素材**:你手上有什么?四通道可单选可组合——
@@ -54,7 +59,22 @@ disable-model-invocation: false
54
59
 
55
60
  ## ⚙️ 默认配置(在 user-config.md,执行前必须先 Read)
56
61
 
57
- DIR(落盘根目录,DIR_MAC/DIR_WIN 双键)、THEME(tech/biz/mono/warm)、OPEN_PPTX(生成后是否打开)、CONFIRM(落盘前确认)、MODE(成片方式 page-by-page/once)、AUDIENCE(受众画像,备注话术参考)、NOTES(是否生成演讲备注)——均以 `user-config.md` 为准。升级技能时 user-config.md 不会被覆盖,你的修改永久保留。
62
+ DIR(落盘根目录,DIR_MAC/DIR_WIN 双键)、THEME(tech/biz/mono/light/warm)、OPEN_PPTX(生成后是否打开)、CONFIRM(落盘前确认)、MODE(成片方式 page-by-page/once)、AUDIENCE(受众画像,备注话术参考)、NOTES(是否生成演讲备注)——均以 `user-config.md` 为准。升级技能时 user-config.md 不会被覆盖,你的修改永久保留。
63
+
64
+ ## 🔧 配置版本机制(升级保护)
65
+
66
+ `user-config.md` 头部有 `CONFIG_VERSION` 字段,声明配置结构版本。本 skill 当前要求版本为 2。每次执行前先读 user-config.md:
67
+
68
+ 1. 若 CONFIG_VERSION 缺失或小于当前要求版本:先将旧 `user-config.md` 备份为 `user-config.md.bak-<时间戳>`
69
+ 2. 按版本迁移规则迁移字段(新增字段补默认值、改名字段按映射改名、删除字段保留在备份并在对话中提示用户)
70
+ 3. 更新 `CONFIG_VERSION` 为当前版本
71
+ 4. 对话告知用户「配置已升级到 vN:新增 X、改名 Y」
72
+
73
+ 禁止在未声明版本变更的情况下静默修改配置语义;配置结构如有变化必须同步更新本节的当前版本号。
74
+
75
+ **无法迁移项处理**(值域失效 / 语义漂移):三绝不——绝不静默(无法迁移项停下问,不猜值)、绝不丢失(旧值永远在 .bak-时间戳)、一次说清(升级报告三段式:⚠️ 版本与备份路径 → ✅ 已自动迁移 → 🟡 无法迁移项逐条附原因+影响+建议替代);随后 AskUserQuestion 三选项(A 用建议值 / B 用户给新值 / C 保持旧配置——不更新 CONFIG_VERSION,每次执行再提醒);报告必附回滚一句话。
76
+
77
+ 升级技能时 user-config.md 不会被覆盖(官方更新另存 `user-config.md.upstream` 对照文件)。
58
78
 
59
79
  ## 规则速览
60
80
 
@@ -62,7 +82,7 @@ DIR(落盘根目录,DIR_MAC/DIR_WIN 双键)、THEME(tech/biz/mono/warm
62
82
  - 页类型分页:timeline 每页 8 条、bullets 每页 6 条自动续页(builder 自动处理,AI 不用拆)
63
83
  - 节色五档:blue 概览 / green 成果 / purple 成长 / rose 反思 / orange 展望,与年报 HTML 同款
64
84
  - 数值纪律:业务结果指标优先、git 统计兜底;数字必带对比基准(同比/环比)
65
- - 主题四套与报告 HTML 令牌同源;theme 写在 data.json 里,未写默认 tech
85
+ - 主题五套与报告 HTML 令牌同源;theme 写在 data.json 里,未写默认 tech
66
86
  - 演讲备注:NOTES=true 时每页写 notes(单页/第一页)或 notesList(按分页逐页);话术按 AUDIENCE 画像,写开场白/数据解读/过渡句,不写正文照读
67
87
  - 图表扩容:chart 自绘柱 / chart-pie 原生饼图(percent/donut 选项)/ chart-line 原生折线(series 多线/smooth 选项)——原生图表在 PowerPoint/WPS 里可直接编辑数据
68
88
  - bullets 配图:page.image 给绝对路径即右侧配图(contain 等比内嵌),文本区自动缩窄,仅第一页带图
@@ -7,14 +7,15 @@
7
7
  <style>
8
8
  /* ⛔ 封面/亮点页截图模板(静态版式,无动画,保截图零风险)
9
9
  视觉与报告深蓝面板体系同源;AI 执行时替换 <script> 内 COVER 数据后经 Chrome headless 截图。
10
- 四主题经 html[data-theme] 切换;截图窗口 1280x720(16:9)。 */
10
+ 五主题经 html[data-theme] 切换;截图窗口 1280x720(16:9)。 */
11
11
  :root{
12
12
  --bg:#0a1929; --panel:#0b1e37; --panel-line:#0f3350; --text:#e6f1ff; --muted:#8892b0;
13
13
  --accent:#38bdf8; --accent2:#0ea5e9; --border:#1e3a5f; --glow:rgba(14,165,233,.25);
14
14
  --title-mid:#ffffff;
15
15
  }
16
16
  html[data-theme="biz"]{ --bg:#ffffff; --panel:#f8fafc; --panel-line:#e2e8f0; --text:#0f172a; --muted:#64748b; --accent:#2563eb; --accent2:#1d4ed8; --border:#e2e8f0; --glow:rgba(37,99,235,.14); --title-mid:#1e40af; }
17
- html[data-theme="mono"]{ --bg:#ffffff; --panel:#ffffff; --panel-line:#d4d4d4; --text:#111111; --muted:#666666; --accent:#000000; --accent2:#333333; --border:#cccccc; --glow:rgba(0,0,0,.08); --title-mid:#555555; }
17
+ html[data-theme="mono"]{ --bg:#1e1f22; --panel:#2b2d30; --panel-line:#3c3f41; --text:#dfe1e5; --muted:#9aa0a6; --accent:#3574f0; --accent2:#5e9aff; --border:#3c3f41; --glow:rgba(53,116,240,.22); --title-mid:#ffffff; }
18
+ html[data-theme="light"]{ --bg:#ffffff; --panel:#f2f2f2; --panel-line:#d1d1d1; --text:#1e1f22; --muted:#808080; --accent:#2675bf; --accent2:#1e5f9f; --border:#d1d1d1; --glow:rgba(38,117,191,.12); --title-mid:#1e5f9f; }
18
19
  html[data-theme="warm"]{ --bg:#1c0f0f; --panel:#2a1717; --panel-line:#4a2f1f; --text:#fff1e6; --muted:#c4a98f; --accent:#fdba74; --accent2:#f97316; --border:#4a2f1f; --glow:rgba(249,115,22,.22); --title-mid:#ffffff; }
19
20
  *{ margin:0; padding:0; box-sizing:border-box; }
20
21
  body{
@@ -11,7 +11,7 @@
11
11
  "subtitle": "资深研发工程师 · 全栈方向", // 封面副标题(可选)
12
12
  "footer": "GENERATED BY SPECCORE TEAM · 2026" // 每页页脚(可选,缺省 GENERATED BY SPECCORE TEAM)
13
13
  },
14
- "theme": "tech", // tech(默认)/ biz / mono / warm,与报告四主题同源
14
+ "theme": "tech", // tech(默认)/ biz / mono / light / warm,与报告五主题同源
15
15
  "pages": [
16
16
  { "type": "cover-image", "image": "/abs/path/cover.png",
17
17
  "notes": "开场白:各位好,今天汇报本年度研发工作,先看总体数字……" },
@@ -3,7 +3,7 @@
3
3
  * pptx-builder.js — 登台 deck-stage 生成器(真相源)
4
4
  * 用法: node pptx-builder.js --data <data.json> --out <输出.pptx>
5
5
  * 读 data.json(schema 见 data-schema.md),按页类型渲染 16:9 pptx。
6
- * 主题四套与报告 HTML 深蓝面板体系同源:tech 深蓝科技(默认)/ biz 浅色商务 / mono 极简黑白 / warm 温暖渐变。
6
+ * 主题五套与报告 HTML 深蓝面板体系同源:tech 深蓝科技(默认)/ biz 浅色商务 / mono IDEA 黑亮 / light IDEA 白亮 / warm 温暖渐变。
7
7
  * 依赖: pptxgenjs(本 skill 目录 node_modules,离线可用)。
8
8
  */
9
9
  'use strict';
@@ -1,6 +1,6 @@
1
1
  # 登台 deck-stage 使用指南
2
2
 
3
- 登台(deck-stage)把日报/周报/年报的产出——或任何散装素材——转成专业 .pptx 演示文稿:常规页(数据卡/时间线/条目/柱图/饼图/折线)原生生成、完全可编辑,封面与结尾页用 HTML 截图贴图、视觉保真。页面与数据分离,四主题(深蓝科技/浅色商务/极简黑白/温暖渐变)与报告同源,改主题只改一处。
3
+ 登台(deck-stage)把日报/周报/年报的产出——或任何散装素材——转成专业 .pptx 演示文稿:常规页(数据卡/时间线/条目/柱图/饼图/折线)原生生成、完全可编辑,封面与结尾页用 HTML 截图贴图、视觉保真。页面与数据分离,五主题(深蓝科技/浅色商务/IDEA 黑亮/IDEA 白亮/温暖渐变)与报告同源,改主题只改一处。
4
4
 
5
5
  ## 怎么用
6
6
 
@@ -9,7 +9,7 @@
9
9
  3. **逐页确认**:选逐页确认时,每页先报排版方案(版式 + 内容 + 图表 + 演讲备注),你 OK 一页出一页;说「第 N 页改成 XX」重出单页、「换主题 biz」全局换、「加一页/删一页」改骨架
10
10
  4. **自动排版**:AI 按报告结构自动映射版式——概览成数据卡页、成果成时间线页、条目成徽章页、提交节奏成柱图页,页数多了自动续页
11
11
  5. **封面与结尾**:默认用深蓝面板封面模板(发光标题 + 数据卡),结尾「谢谢观看」;想用自己的图片说一声即可
12
- 6. **改风格**:说「用浅色商务主题」「用极简黑白」——四套主题秒换;想永久换默认,改 `user-config.md` 的 THEME
12
+ 6. **改风格**:说「用浅色商务主题」「用黑色主题(IDEA 黑亮)」——五套主题秒换;想永久换默认,改 `user-config.md` 的 THEME
13
13
  7. **改内容**:生成后可直接在 PowerPoint/WPS 里编辑常规页(文本/饼图/折线都是原生元素);想改截图页(封面/结尾)让 AI 重新生成即可
14
14
  8. **落盘位置**:默认落到报告目录(`user-config.md` 的 DIR 可改);说「放到桌面」即按临时要求落盘
15
15
 
@@ -2,8 +2,8 @@
2
2
  DIR_MAC: /Users/luzhaosheng/MyWork/智慧食堂/reports
3
3
  DIR_WIN: %USERPROFILE%\reports
4
4
 
5
- # pptx 主题(与报告四主题同源)
6
- # 可选:tech 深蓝科技(默认)/ biz 浅色商务 / mono 极简黑白 / warm 温暖渐变
5
+ # pptx 主题(与报告五主题同源)
6
+ # 可选:tech 深蓝科技(默认)/ biz 浅色商务 / mono IDEA 黑亮 / light IDEA 白亮 / warm 温暖渐变
7
7
  THEME: tech
8
8
 
9
9
  # 成片方式(三问模型第三问的默认答案)
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: magic-deck
3
3
  description: 把内容做成 HTML 形态、PPT 体验的魔法幻灯(单文件离线打开、零外部依赖)。内置播放引擎(自动播放/循环/间隔可设/从头或当前播放)、键盘热键(翻页/直达/截图/复制/全屏)、十六套内置模板(经典商务/极简留白/杂志画册/黑金发布/时间线叙事/流程步骤/海报宣传/复古报纸/金融报表/蓝图工程/教学板书/高管简报/扁平磁贴/模块网格/暗夜深色/自然清新,放映时经「🎨 模板」面板随时切换
4
- + 模板面板「💼 领域」Tab 二十一套成套模板(六分类:教育学术——毕业答辩/开题报告/教学课件;职场商务——年终汇报/竞聘述职/商业计划书/求职简历;企业运营——产品发布/科技发布会/营销方案/企业培训/年会盛典;专业领域——金融分析/医疗科普/法律合规;党政政务——政务汇报/党建汇报;生活场景——餐饮品牌/旅游攻略/节日庆典/公益慈善,一键生成整套页面——封面+目录+内容页+图表页,两段确认可撤销)+ 图表动画五式(柱状生长/折线描画/饼图扇入/仪表扫弧/数字滚动,图表挂 data-anim-chart 翻页自动播放、翻回重放,保留图表自身动画)——可应用到全部页/仅本页/勾选页,支持「预览本页」先看效果再应用,标题自动映射到模板固定位置)、编辑能力(撤销/重做 Ctrl+Z、右侧页面管理边栏:缩略图跳页/新页/复页/排序/删页)+ 十六套主题面板即点即换(全部页/仅本页自由换肤)、动画库(右侧边栏「⚙ 工具」Tab:翻页风格八套 / 元素入场十二式 / 离场十二式 / 强调八式 / 标题文字动画四式,应用范围全部页面或仅本页,即点即换、选择记忆)、页内连接与外部链接、逐页 PNG 截图(本页/选页批量,选页面板默认全选=一键导出全部页)与本页/选页批量文字复制(均不含任何操作元素)、全屏放映纯净模式(无关元素自动退场)。当用户请求把内容做成幻灯片/PPT/演示文稿、生成 HTML 幻灯、做分享页/汇报页,提到 magic-deck 或 /magic-deck,或询问其用法(怎么用/使用说明/能干什么)时使用。
4
+ + 模板面板「💼 领域」Tab 二十一套成套模板(六分类:教育学术——毕业答辩/开题报告/教学课件;职场商务——年终汇报/竞聘述职/商业计划书/求职简历;企业运营——产品发布/科技发布会/营销方案/企业培训/年会盛典;专业领域——金融分析/医疗科普/法律合规;党政政务——政务汇报/党建汇报;生活场景——餐饮品牌/旅游攻略/节日庆典/公益慈善,一键生成整套页面——封面+目录+内容页+图表页,两段确认可撤销)+ 图表动画五式(柱状生长/折线描画/饼图扇入/仪表扫弧/数字滚动,图表挂 data-anim-chart 翻页自动播放、翻回重放,保留图表自身动画)——可应用到全部页/仅本页/勾选页,支持「预览本页」先看效果再应用,标题自动映射到模板固定位置)、编辑能力(撤销/重做 Ctrl+Z、右侧页面管理边栏:缩略图跳页/新页/复页/排序/删页)+ 十七套主题面板即点即换(全部页/仅本页自由换肤)、动画库(右侧边栏「⚙ 工具」Tab:翻页风格八套 / 元素入场十二式 / 离场十二式 / 强调八式 / 标题文字动画四式,应用范围全部页面或仅本页,即点即换、选择记忆)、页内连接与外部链接、逐页 PNG 截图(本页/选页批量,选页面板默认全选=一键导出全部页)与本页/选页批量文字复制(均不含任何操作元素)、全屏放映纯净模式(无关元素自动退场)。当用户请求把内容做成幻灯片/PPT/演示文稿、生成 HTML 幻灯、做分享页/汇报页,提到 magic-deck 或 /magic-deck,或询问其用法(怎么用/使用说明/能干什么)时使用。用户要可编辑 .pptx 文件(导出 pptx、转成 PPT 文件)时不用本 skill(交给 deck-stage);「做 PPT/演示文稿」未言明产出形态时先 AskUserQuestion 二选一(HTML 网页幻灯 → 本 skill;.pptx 可编辑文件 → deck-stage),不擅自默认。
5
5
  allowed-tools: Bash, Read, Write
6
6
  disable-model-invocation: false
7
7
  ---
@@ -10,11 +10,16 @@ disable-model-invocation: false
10
10
 
11
11
  把用户内容排版为单文件 HTML 幻灯片(16:9 舞台 + 播放引擎 + 十六套风格 + 全屏放映),落盘并自动打开。
12
12
 
13
+ ## 意图边界(与 deck-stage 分流)
14
+
15
+ - 本 skill 产 HTML 网页幻灯(浏览器放映/分享);用户要 **.pptx 可编辑文件**(「导出 pptx」「转成 PPT 文件」)→ 交给 deck-stage
16
+ - 「做 PPT / 做演示文稿」未言明产出形态 → AskUserQuestion 二选一:A HTML 网页幻灯(继续本 skill)/ B .pptx 可编辑文件(交给 deck-stage),不擅自默认
17
+
13
18
  ## 生成流程
14
19
 
15
20
  0. **读用户配置**(TEMPLATE/THEME/TRANSITION/ANIM/WIDTH/HEIGHT/SEC/FILENAME/DIR 等)→ 先 Read 同目录 `user-config.md`
16
21
  1. **收集内容**:解析用户提供的内容(文字/文件/结构化要点),确定页数与每页版式 → 先 Read `resources/content-guide.md` 按内容气质选版式骨架 / 按领域选成套模板 / 按用途定页数节奏 / 按数据挑图表形式
17
- 2. **生成 HTML**(每页写语义结构——.s-head 标题 / .card 卡片 / .points 要点 / .bignum 数据,按 TEMPLATE 在对应页 slide 挂 data-template 声明默认版式;十六主题 CSS 变量、主题面板、动画库(deck 标签 data-transition 翻页八套 + 元素 data-anim 入场十二式 / data-anim-leave 离场 / data-anim-emphasis 强调 + 标题文字拆分 + 边栏 ⚙ 工具 Tab 控制)、模板面板(16 套 + 预览本页)、编辑能力(撤销/重做/页面管理边栏:新页/复页/排序/删页)、播放引擎、热键、截图/复制、全屏纯净模式)→ 先 Read `resources/reference.html` + `resources/deck-spec.md` 两份,以 reference.html 为骨架逐处替换内容
22
+ 2. **生成 HTML**(每页写语义结构——.s-head 标题 / .card 卡片 / .points 要点 / .bignum 数据,按 TEMPLATE 在对应页 slide 挂 data-template 声明默认版式;十七主题 CSS 变量、主题面板、动画库(deck 标签 data-transition 翻页八套 + 元素 data-anim 入场十二式 / data-anim-leave 离场 / data-anim-emphasis 强调 + 标题文字拆分 + 边栏 ⚙ 工具 Tab 控制)、模板面板(16 套 + 预览本页)、编辑能力(撤销/重做/页面管理边栏:新页/复页/排序/删页)、播放引擎、热键、截图/复制、全屏纯净模式)→ 先 Read `resources/reference.html` + `resources/deck-spec.md` 两份,以 reference.html 为骨架逐处替换内容
18
23
  2.5 **交付前自检**(落盘前必做,硬门禁不可跳过):写工作区 `outputs/<文件名>.html` 后——
19
24
  - Bash 起 `python3 -m http.server 8941`(后台,端口占用换 8942/8943…)
20
25
  - Playwright headless 自检(缺则 `pip3 install --user playwright`;用系统 Chrome,无需 playwright install 下载浏览器):`p.chromium.launch(channel="chrome", headless=True)` → goto 页面 → 挂 pageerror 监听(零容忍)→ 按页数循环 `go(i)` 把每一页翻完
@@ -30,7 +35,7 @@ disable-model-invocation: false
30
35
  ## 规则速览
31
36
 
32
37
  - 单文件 HTML 离线双击可打开:禁用 CDN/@import/外链 CSS/JS/图片/网络字体,字体用系统栈
33
- - 模板十六套(版式骨架)与主题十六套(配色)正交组合,均运行时即点即换:模板经「🎨 模板」面板应用(全部页/仅本页/勾选页),先「👁 预览本页」看效果(不落 data-template,取消自动还原);生成时按 TEMPLATE/口头点名在 slide 挂 data-template 声明默认版式;标题自动映射——timeline 取卡片标题做节点、keynote 取页标题做大观点、magazine 左文右图分栏、steps 卡片转箭头步骤条、vintage 卡片收双栏报纸、poster 要点转斜切色带、finance 百分比转仪表环,切回经典商务恢复原排版内容不丢;`.slide` 自带 `background:var(--bg)` 使单页换肤整页变色
38
+ - 模板十六套(版式骨架)与主题十七套(配色)正交组合,均运行时即点即换:模板经「🎨 模板」面板应用(全部页/仅本页/勾选页),先「👁 预览本页」看效果(不落 data-template,取消自动还原);生成时按 TEMPLATE/口头点名在 slide 挂 data-template 声明默认版式;标题自动映射——timeline 取卡片标题做节点、keynote 取页标题做大观点、magazine 左文右图分栏、steps 卡片转箭头步骤条、vintage 卡片收双栏报纸、poster 要点转斜切色带、finance 百分比转仪表环,切回经典商务恢复原排版内容不丢;`.slide` 自带 `background:var(--bg)` 使单页换肤整页变色
34
39
  - 编辑操作全套可回退:Ctrl+Z 撤销 / Ctrl+Shift+Z 重做(工具栏 ↶↷);「▤ 页导航 / G 键」右侧页面管理边栏:点击缩略图跳页、悬停操作条复页/上移/下移/删页;「+ 新页」在边栏头部,16 版式任选插在当前页后;全部编辑只作用于内存,刷新后回到原始 deck
35
40
  - 工具栏控件统一 flex 垂直居中:`.toolbar/.group` flex + align-items:center + gap;`.tbtn` inline-flex + gap:6px + line-height:1;checkbox 14×14 与文字 6px 间距,文字不贴控件、上下不偏斜
36
41
  - 页面 1280×720 舞台 + 按窗口等比缩放(--sc),窗口任意大小不变形
@@ -1,6 +1,6 @@
1
1
  # magic-deck HTML 幻灯片完整规范
2
2
 
3
- > ⛔ **Reference 铁律(最高优先)**:本目录 `reference.html` 是定稿骨架源码(默认 classic 模板 + 十六套版式模板 + 十六主题 + 全部组件 + 播放引擎 + 单页主题 + 模板预览/撤销重做/右侧边栏双 Tab(页面管理 + 动画工具))。生成 HTML 时必须先 Read `resources/reference.html` 与本文件两份,以 reference.html 为骨架逐处替换内容;两者冲突时**以 reference.html 为准**。修改本 skill 的 HTML 效果时,必须同步更新 `resources/reference.html` 与本文档的对应描述,禁止只改一处。
3
+ > ⛔ **Reference 铁律(最高优先)**:本目录 `reference.html` 是定稿骨架源码(默认 classic 模板 + 十六套版式模板 + 十七主题 + 全部组件 + 播放引擎 + 单页主题 + 模板预览/撤销重做/右侧边栏双 Tab(页面管理 + 动画工具))。生成 HTML 时必须先 Read `resources/reference.html` 与本文件两份,以 reference.html 为骨架逐处替换内容;两者冲突时**以 reference.html 为准**。修改本 skill 的 HTML 效果时,必须同步更新 `resources/reference.html` 与本文档的对应描述,禁止只改一处。
4
4
 
5
5
  生成单文件 HTML 幻灯片(HTML 形态、PPT 体验),所有实现细节以本文为准。
6
6
 
@@ -53,7 +53,7 @@
53
53
  <script>播放引擎(见 §6)</script>
54
54
  ```
55
55
 
56
- ## 2. 十六主题 CSS 变量(完整色值,12 令牌 × 16 主题,默认 tech)
56
+ ## 2. 十七主题 CSS 变量(完整色值,12 令牌 × 17 主题,默认 tech)
57
57
 
58
58
  ```css
59
59
  :root, [data-theme="tech"]{ /* 深蓝科技(默认) */
@@ -70,12 +70,19 @@
70
70
  --title-grad:linear-gradient(90deg,#1e40af,#2563eb 55%,#0891b2);
71
71
  --tag-bg:rgba(37,99,235,.08);
72
72
  }
73
- [data-theme="mono"]{ /* 极简黑白 */
74
- --bg:#fafafa; --bg2:#f0f0f0; --panel:rgba(255,255,255,.9); --panel-solid:#ffffff;
75
- --text:#16181d; --muted:#6b7280; --accent:#111111; --accent2:#4b5563;
76
- --border:rgba(17,17,17,.14); --glow:rgba(17,17,17,.08);
77
- --title-grad:linear-gradient(90deg,#111,#333 60%,#666);
78
- --tag-bg:rgba(17,17,17,.06);
73
+ [data-theme="mono"]{ /* IDEA 黑亮 */
74
+ --bg:#1e1f22; --bg2:#2b2d30; --panel:rgba(43,45,48,.92); --panel-solid:#2b2d30;
75
+ --text:#dfe1e5; --muted:#9aa0a6; --accent:#3574f0; --accent2:#5e9aff;
76
+ --border:rgba(53,116,240,.24); --glow:rgba(53,116,240,.3);
77
+ --title-grad:linear-gradient(90deg,#dfe1e5,#5e9aff 50%,#3574f0);
78
+ --tag-bg:rgba(53,116,240,.12);
79
+ }
80
+ [data-theme="light"]{ /* IDEA 白亮 */
81
+ --bg:#ffffff; --bg2:#f2f2f2; --panel:rgba(255,255,255,.96); --panel-solid:#ffffff;
82
+ --text:#1e1f22; --muted:#6e7781; --accent:#2675bf; --accent2:#4a9be0;
83
+ --border:rgba(38,117,191,.18); --glow:rgba(38,117,191,.2);
84
+ --title-grad:linear-gradient(90deg,#1e5f9f,#2675bf 55%,#4a9be0);
85
+ --tag-bg:rgba(38,117,191,.08);
79
86
  }
80
87
  [data-theme="warm"]{ /* 温暖渐变 */
81
88
  --bg:#fdf3e7; --bg2:#f7e7d3; --panel:rgba(255,250,243,.85); --panel-solid:#fffaf3;
@@ -27,13 +27,21 @@ button,select,input{ font-family:inherit; }
27
27
  --tag-bg:rgba(37,99,235,.08);
28
28
  --card-shadow:0 1px 2px rgba(15,23,42,.05),0 10px 28px rgba(15,23,42,.12);
29
29
  }
30
- [data-theme="mono"]{
31
- --bg:#f2f2f4; --bg2:#e4e4e8; --panel:rgba(255,255,255,.98); --panel-solid:#ffffff;
32
- --text:#16181d; --muted:#6b7280; --accent:#111111; --accent2:#4b5563;
33
- --border:rgba(17,17,17,.14); --glow:rgba(17,17,17,.08);
34
- --title-grad:linear-gradient(90deg,#111,#333 60%,#666);
35
- --tag-bg:rgba(17,17,17,.06);
36
- --card-shadow:0 1px 2px rgba(0,0,0,.06),0 10px 28px rgba(0,0,0,.1);
30
+ [data-theme="mono"]{ /* IDEA 黑亮:JetBrains New UI Dark 官方(编辑区 #1e1f22 + 面板 #2b2d30 + 描边 #3c3f41) */
31
+ --bg:#1e1f22; --bg2:#2b2d30; --panel:rgba(43,45,48,.92); --panel-solid:#2b2d30;
32
+ --text:#dfe1e5; --muted:#9aa0a6; --accent:#3574f0; --accent2:#5e9aff;
33
+ --border:rgba(53,116,240,.24); --glow:rgba(53,116,240,.3);
34
+ --title-grad:linear-gradient(90deg,#dfe1e5,#5e9aff 50%,#3574f0);
35
+ --tag-bg:rgba(53,116,240,.12);
36
+ --card-shadow:0 1px 0 rgba(255,255,255,.06) inset,0 12px 32px rgba(0,0,0,.5),0 0 24px rgba(53,116,240,.16);
37
+ }
38
+ [data-theme="light"]{ /* IDEA 白亮:IntelliJ Light 官方(白编辑区 + 浅灰面板 #f2f2f2 + IDEA 蓝 #2675bf) */
39
+ --bg:#ffffff; --bg2:#f2f2f2; --panel:rgba(255,255,255,.96); --panel-solid:#ffffff;
40
+ --text:#1e1f22; --muted:#6e7781; --accent:#2675bf; --accent2:#4a9be0;
41
+ --border:rgba(38,117,191,.18); --glow:rgba(38,117,191,.2);
42
+ --title-grad:linear-gradient(90deg,#1e5f9f,#2675bf 55%,#4a9be0);
43
+ --tag-bg:rgba(38,117,191,.08);
44
+ --card-shadow:0 1px 2px rgba(30,31,34,.06),0 10px 28px rgba(30,31,34,.12);
37
45
  }
38
46
  [data-theme="warm"]{
39
47
  --bg:#f7ebd9; --bg2:#efe0c8; --panel:rgba(255,250,243,.97); --panel-solid:#fffaf3;
@@ -1274,9 +1282,9 @@ function startPlay(){
1274
1282
  }
1275
1283
  btnPlay.addEventListener('click', function(){ playing ? stopPlay() : startPlay(); });
1276
1284
 
1277
- /* ── 主题切换(🎨 主题面板:16 色点网格即点即换,范围全部 / 仅本页) ── */
1285
+ /* ── 主题切换(🎨 主题面板:17 色点网格即点即换,范围全部 / 仅本页) ── */
1278
1286
  var THEMES = [
1279
- ['tech','深蓝科技','#0ea5e9'], ['biz','浅色商务','#2563eb'], ['mono','极简黑白','#111111'], ['warm','温暖渐变','#d97706'],
1287
+ ['tech','深蓝科技','#0ea5e9'], ['biz','浅色商务','#2563eb'], ['mono','IDEA 黑亮','#1e1f22'], ['light','IDEA 白亮','#ffffff'], ['warm','温暖渐变','#d97706'],
1280
1288
  ['aurora','极光紫','#5e6ad2'], ['dracula','德古拉紫','#bd93f9'], ['nord','北欧冰蓝','#88c0d0'], ['midnight','东京夜色','#7aa2f7'],
1281
1289
  ['matrix','终端荧光绿','#00ff9c'], ['cyber','赛博霓虹','#ff2d78'], ['apple','苹果极简','#0071e3'], ['stripe','条纹紫蓝','#635bff'],
1282
1290
  ['notion','纸感暖白','#2383e2'], ['gruvbox','复古暖橙','#fe8019'], ['gold','黑金奢华','#d4af37'], ['ocean','深洋蓝','#38bdf8']
@@ -2499,7 +2507,7 @@ slides.forEach(function(s){
2499
2507
  if (tp && tp !== 'classic') applyTpl(s, tp);
2500
2508
  });
2501
2509
  var themeParam = new URLSearchParams(location.search).get('theme');
2502
- if (['tech','biz','mono','warm'].indexOf(themeParam) > -1) setGlobalTheme(themeParam);
2510
+ if (['tech','biz','mono','light','warm'].indexOf(themeParam) > -1) setGlobalTheme(themeParam);
2503
2511
  var tplParam = new URLSearchParams(location.search).get('tpl');
2504
2512
  if (tplParam && TPLS.some(function(t){ return t.id === tplParam; })) applyScope(tplParam, 'all', []);
2505
2513
  var sm = location.hash.match(/^#\/(\d+)$/);
@@ -5,7 +5,7 @@
5
5
  ## 能干什么(三句话版)
6
6
 
7
7
  1. **内容变幻灯**:把一段文字、一份大纲或一个文件,做成单文件 HTML 幻灯片——16:9 舞台、双击即开、离线可用
8
- 2. **现场改版**:版式模板十六套(经典商务 / 极简留白 / 杂志画册 / 黑金发布……)与主题配色十六套即点即换,可套全部页或仅当前页;「💼 领域」Tab 还有二十一套成套模板(毕业答辩 / 年终汇报 / 商业计划书 / 政务汇报……),一键生成整套页面
8
+ 2. **现场改版**:版式模板十六套(经典商务 / 极简留白 / 杂志画册 / 黑金发布……)与主题配色十七套即点即换,可套全部页或仅当前页;「💼 领域」Tab 还有二十一套成套模板(毕业答辩 / 年终汇报 / 商业计划书 / 政务汇报……),一键生成整套页面
9
9
  3. **放映与出料**:自动播放 / 全屏纯净放映 / 翻页动画与元素动画库;逐页 PNG 截图与本页 / 选页文字复制(均不含工具栏等操作元素)
10
10
 
11
11
  ## 放映热键
@@ -27,7 +27,7 @@
27
27
  ## 工具栏与边栏
28
28
 
29
29
  - **🎨 模板**:十六套版式骨架,应用范围可选全部页面 / 仅本页 / 勾选页面;先「预览本页」看效果再应用,切回「经典商务」恢复原排版、内容不丢
30
- - **🎨 主题**:十六套配色,色点即点即换,范围可选全部页面或仅本页
30
+ - **🎨 主题**:十七套配色,色点即点即换,范围可选全部页面或仅本页
31
31
  - **↶ ↷ 撤销 / 重做**:模板应用、增删页、换主题等所有编辑操作都可回退
32
32
  - **▤ 页导航**:右侧缩略图边栏——点缩略图跳页、+新页(16 版式任选)、复页、排序、删页
33
33
  - **⚙ 工具**:右侧边栏第二页签——翻页动画八套、元素入场 / 离场 / 强调动画、标题文字动画、⧉ 复制本页 / ▦ 选页复制 / 📷 截图本页 / ▦ 选页截图
@@ -15,7 +15,7 @@ CONFIG_VERSION: 2 # 配置结构版本:skill 升级时若配置
15
15
  DIR: ~/Desktop # 幻灯片 HTML 落盘目录
16
16
  FILENAME: auto # 文件名(不含扩展名):auto = 按本次内容主题+用途自动总结中文名(如「智能探针系统-产品介绍」,便于日后按名找回继续改);也可口头指定文件名(永远优先);或写死固定名如 slides(重名自动加日期后缀,不覆盖)
17
17
  OPEN_HTML: true # 生成后自动打开浏览器放映
18
- THEME: tech # 默认主题(十六套:tech 深蓝科技 / biz 浅色商务 / mono 极简黑白 / warm 温暖渐变 / aurora 极光紫 / dracula 德古拉紫 / nord 北欧冰蓝 / midnight 东京夜色 / matrix 终端荧光绿 / cyber 赛博霓虹 / apple 苹果极简 / stripe 条纹紫蓝 / notion 纸感暖白 / gruvbox 复古暖橙 / gold 黑金奢华 / ocean 深洋蓝;放映时「🎨 主题」面板色点即点即换:范围可选全部页面或仅本页)
18
+ THEME: tech # 默认主题(十七套:tech 深蓝科技 / biz 浅色商务 / mono IDEA 黑亮 / light IDEA 白亮 / warm 温暖渐变 / aurora 极光紫 / dracula 德古拉紫 / nord 北欧冰蓝 / midnight 东京夜色 / matrix 终端荧光绿 / cyber 赛博霓虹 / apple 苹果极简 / stripe 条纹紫蓝 / notion 纸感暖白 / gruvbox 复古暖橙 / gold 黑金奢华 / ocean 深洋蓝;放映时「🎨 主题」面板色点即点即换:范围可选全部页面或仅本页)
19
19
  TEMPLATE: classic # 默认模板
20
20
  TRANSITION: slide-lr # 默认翻页动画风格(八套:slide-lr 左右滑移 / fade 淡入淡出 / slide-ud 上下滑移 / zoom 缩放推进 / flip 3D 翻页 / cube 立方翻转 / wipe 平移擦除 / dissolve 溶解模糊;放映时边栏「⚙ 工具」Tab 即点即换,选择记忆)
21
21
  ANIM: true # 元素动画默认开(入场十二式挂 data-anim + 离场十二式挂 data-anim-leave + 强调八式挂 data-anim-emphasis + 标题文字动画,均带 data-anim-delay 八档错落;放映时边栏「⚙ 工具」Tab「开启」勾选框一键全关;false = 生成时 deck 挂 data-anim="off")
@@ -35,6 +35,6 @@ SIGNATURE: GENERATED BY SKILLFORGE # 封面/结束页署名
35
35
  ## 📝 模板、主题与动画(像真 PPT 一样可选)
36
36
 
37
37
  - **内置模板十六套**(版式骨架):classic 经典商务(默认)/ minimal 极简留白 / magazine 杂志画册 / keynote 黑金发布 / timeline 时间线叙事 / steps 流程步骤 / poster 海报宣传 / vintage 复古报纸 / finance 金融报表 / blueprint 蓝图工程 / education 教学板书 / executive 高管简报 / metro 扁平磁贴 / bento 模块网格 / dark 暗夜深色 / nature 自然清新。改上方 `TEMPLATE` 即换生成默认,或生成时口头点名(如「用杂志风模板」)当次生效;放映时随时经工具栏「🎨 模板」面板切换(全部页面/仅本页/选择页面),可先「预览本页」看效果再应用,标题自动映射到模板固定位置,切回经典商务即恢复原排版
38
- - **内置主题十六套**(配色,放映时随时换):tech 深蓝科技(默认)/ biz 浅色商务 / mono 极简黑白 / warm 温暖渐变 / aurora 极光紫 / dracula 德古拉紫 / nord 北欧冰蓝 / midnight 东京夜色 / matrix 终端荧光绿 / cyber 赛博霓虹 / apple 苹果极简 / stripe 条纹紫蓝 / notion 纸感暖白 / gruvbox 复古暖橙 / gold 黑金奢华 / ocean 深洋蓝。「🎨 主题」面板点色点=整份切换;范围选「仅本页」后再点色点=只给当前页换肤,选回「全部页面」即恢复整份模式
38
+ - **内置主题十七套**(配色,放映时随时换):tech 深蓝科技(默认)/ biz 浅色商务 / mono IDEA 黑亮 / light IDEA 白亮 / warm 温暖渐变 / aurora 极光紫 / dracula 德古拉紫 / nord 北欧冰蓝 / midnight 东京夜色 / matrix 终端荧光绿 / cyber 赛博霓虹 / apple 苹果极简 / stripe 条纹紫蓝 / notion 纸感暖白 / gruvbox 复古暖橙 / gold 黑金奢华 / ocean 深洋蓝。「🎨 主题」面板点色点=整份切换;范围选「仅本页」后再点色点=只给当前页换肤,选回「全部页面」即恢复整份模式
39
39
  - **动画库**(动效,与模板/主题正交,放映时收纳在右侧边栏「⚙ 工具」Tab,应用范围可选全部页面/仅本页):翻页风格八套——slide-lr 左右滑移(默认)/ fade 淡入淡出 / slide-ud 上下滑移 / zoom 缩放推进 / flip 3D 翻页 / cube 立方翻转 / wipe 平移擦除 / dissolve 溶解模糊,改上方 `TRANSITION` 即换生成默认,放映时即点即换;元素入场动画十二式(fade-up 上浮 / fade-in 淡入 / fade-down 下沉 / zoom-in 缩放 / slide-left 左滑 / slide-right 右滑 / slide-up 上滑 / slide-down 下滑 / pop 弹出 / bounce-in 弹跳 / flip-in 翻转 / blur 模糊浮现,另有 none 无动画),生成时元素挂 `data-anim` 属性声明、同页多元素挂 `data-anim-delay` 错落,翻到该页自动播放;离场动画十二式(元素挂 `data-anim-leave`,翻页前元素先离场 0.45s 再切页);强调动画八式(pulse 脉冲 / swing 摆动 / shake 抖动 / breathe 呼吸 / flash 闪烁 / tada 放大 / spin 旋转 / glow 发光,元素挂 `data-anim-emphasis` 循环播放);标题文字动画四式(none 无动画默认 / char 逐字 / word 逐词 / line 逐行);`ANIM: false` 时入场动画整份关闭(或放映时「开启」勾选框取消),所有选择浏览器记忆
40
40
  - **自定义模板片段**(可选):在 `resources/templates/` 下放 `my-*.html`(仅 body 内容片段,不含 html/head/script),生成时用户点名模板名即可套用;未点名用内置十六套模板
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "skill-forge-hub",
3
- "version": "0.5.3",
3
+ "version": "1.0.0",
4
4
  "description": "SkillForge (技能锻造坊) — a curated collection of AI craft skills. Install once, then pick skills interactively: daily/weekly/annual reports, article-to-HTML, magic-deck slides, deck-stage PPTX, prompt-pouch manager, Pandoc doc converters, meta-forge.",
5
5
  "bin": {
6
6
  "skill-forge": "cli.js"
@@ -2,12 +2,12 @@
2
2
  name: prompt-pouch
3
3
  description: >
4
4
  锦囊(prompt-pouch)提示词管理 Skill:生成并维护一个本地 HTML 提示词管理页面(锦囊管理台),
5
- 暖棕金/深蓝科技/Darcula 深灰蓝/薄荷绿四套主题(右下角换肤坞随时切换,THEME 配置可设默认),功能为分组侧栏(带计数徽章)+ 搜索(关键词高亮)+ 卡片网格 + 四种排序(最新添加默认/最近使用/使用频率/手动,
6
- 拖拽与 ▲▼ 自动切手动)+ 使用统计 + 收藏星标 + {变量} 插值填充面板 + 一键复制 + 卡片「👁 详情」弹窗
5
+ 暖棕金/深蓝科技/IDEA 黑亮/IDEA 白亮/薄荷绿五套主题(右下角换肤坞随时切换,THEME 配置可设默认),功能为分组侧栏(带计数徽章)+ 搜索(关键词高亮)+ 卡片网格 + 四种排序(最新添加默认/最近使用/使用频率/手动,
6
+ 拖拽与 ▲▼ 自动切手动)+ 分组条拖拽排序 + 标签交互(点击过滤/悬停删/快捷加)+ 导入导出 JSON 备份 + 使用统计 + 收藏星标 + {变量} 插值填充面板 + 一键复制 + 卡片「👁 详情」弹窗
7
7
  (全文滚动查看 / 复制 / 修改 / 创建修改时间线);数据存 <DIR>/data/prompts.json(DATA_DIR 可配),
8
8
  页面与数据严格分离,双笔协作(页面经授权目录直写,AI 代笔维护)。三类任务:①初始化——目标目录无页面时确认目录(默认用户配置 DIR)
9
9
  并生成 prompt-pouch.html(样式真相源为 resources/reference.html,原样复制)与 data/prompts.json
10
- (默认示例五组:写作输出/沟通协作/规划执行/复盘成长/提问艺术,每条带 createdAt;页面另内置同款示例种子 DEFAULT_POUCH,prompts.json 读不到时兜底展示);②维护——按用户口述增删改提示词与分组、调整排序、
10
+ (默认示例五组:写作输出/沟通协作/规划执行/复盘成长/提问艺术,每条带 createdAt;页面另内置同款示例种子 DEFAULT_POUCH,prompts.json 读不到时兜底展示);②维护——用户说「把这段话/这段对话/这个文件/XX 加进锦囊、存成提示词、收藏这句话」或口述增删改提示词与分组、调整排序、导入导出备份、
11
11
  切换收藏,读写 prompts.json(UTF-8、2 空格缩进),用户刷新页面即见;③打开——用户说「打开锦囊」时
12
12
  起本地服务并按平台打开浏览器访问管理页面。
13
13
  数据通过 HTTP 方式访问(file:// 直开会回退浏览器缓存快照,需提示用户起本地服务)。
@@ -35,13 +35,19 @@ disable-model-invocation: false
35
35
  ## 执行流程
36
36
 
37
37
  0. **读用户配置**(DIR/DIR_WIN/PORT/DATA_DIR/BACKUP_DIR/INIT_DATA/CONFIRM/THEME/CONFIG_VERSION)→ 先 Read 同目录 `user-config.md`
38
+ 0.5 **意图识别与确认**:
39
+ - **明确入囊**:用户说「把这段话/这段对话/这个文件 加进锦囊、存成提示词、收藏这句话、整理进锦囊」→ 直接进入维护或批量整理流程
40
+ - **模糊意图**:用户表达可能指向锦囊但不明确(如「保存这个」「记一下这个」)→ 先 AskUserQuestion 确认(选项:放入锦囊提示词 / 只是本次会话临时记录 / 其它),确认后执行,不擅自写文件
41
+ - **明确无关**:普通对话、没有保存意图 → 不触发任何文件操作
38
42
  1. **初始化**(目标目录无 `prompt-pouch.html` 时):
43
+ - **已有页面分支**:用户说「创建/生成」但目标目录已有 prompt-pouch.html → AskUserQuestion 三选项:A 打开现有页面(推荐,数据无损);B 覆盖重建——旧页面先复制 .bak-时间戳,仅重置页面为新版 reference.html(DATA_DIR/BACKUP_DIR 数据目录一概不动,用户数据绝不丢);C 取消不创建。默认推荐 A
39
44
  - **目录确认**:用户未提目录 → 用配置 `DIR`;`CONFIRM: true` 时先 AskUserQuestion 确认(选项:用默认目录 / 换目录);用户已说「放到 XX 目录」→ 直接用该目录(本次会话有效,不改配置文件)
40
45
  - 复制 `resources/reference.html` → `<DIR>/prompt-pouch.html`(原样复制,不修改任何样式与脚本;唯一例外:html 根标签 `data-theme` 属性值设为配置 `THEME`——reference 默认 "gold",仅当配置非 gold 时替换该属性值)
41
46
  - 创建 `<DIR>/<DATA_DIR>/` 与 `<DIR>/<BACKUP_DIR>/` 子目录(配置为空串则跳过、平铺根目录);生成 `<DIR>/<DATA_DIR>/prompts.json`:`INIT_DATA: example` 时写入「各职业通用」示例五组(写作输出/沟通协作/规划执行/复盘成长/提问艺术,每组 3 条,标题与正文按下方「## 默认示例数据」清单写,**每条必带 createdAt 当前时间(YYYY-MM-DD HH:mm:ss,写到时分秒)**);`empty` 时写空结构(version + 空 groups/prompts)
42
47
  - 收尾提示启动方式:`cd <DIR> && python3 -m http.server <PORT>`(Windows 无 python3 时 `py -m http.server`),浏览器访问 `http://localhost:<PORT>/prompt-pouch.html`(HTTP 才能读 prompts.json;file:// 直开回退缓存快照)
43
48
  2. **维护**(页面已存在时):读 `<DIR>/<DATA_DIR>/prompts.json` → 按用户意图修改 → 写回(UTF-8、2 空格缩进、保留 version 字段)→ 提醒用户刷新页面
44
- - **分类交互**:用户说「添加 XX」但未说分组 → AskUserQuestion 列出全部现有分组(加「新建分组」选项)让用户选;用户指定的分组不存在 → 明确告知该分组不存在,并问是否新建(新建则补 groups 条目:id 16 位数字主键(雪花规则见 data-format.md)、name 中文、icon 一个 emoji)
49
+ - **落盘确认**:写回前展示将要落盘的内容(新增/修改的标题、分组、正文摘要,一句话说清改了什么),等用户确认后落盘;用户明确说「直接存/不用确认」则跳过(本次会话有效);写回前重读最新文件合并
50
+ - **分类交互**:用户说「添加 XX」但未说分组 → 先按现有分组语义智能匹配(如内容讲周报 → 建议「写作输出 ✍️」并说明理由),匹配到则默认归入、用户可改口换组;匹配不到 → AskUserQuestion 列出全部现有分组(加「新建分组」选项)让用户选;用户指定的分组不存在 → 明确告知该分组不存在,并问是否新建(新建则补 groups 条目:id 16 位数字主键(雪花规则见 data-format.md)、name 中文、icon 一个 emoji)
45
51
  2.5 **交付前自检**(初始化与每次维护落盘后必做,硬门禁不可跳过):
46
52
  - **json 机器校验**:`python3 -c "import json;json.load(open('<DIR>/<DATA_DIR>/prompts.json',encoding='utf-8'))"`(Windows 用 py)解析通过,且 schema 自查无缺(version/groups/prompts 齐全、group 引用存在、order 连续、新增条目 createdAt 到时分秒)
47
53
  - **页面零报错验证**:Playwright headless(缺则 `pip3 install --user playwright`;用系统 Chrome,channel="chrome" 无需下载浏览器)→ 起本地服务 `cd <DIR> && python3 -m http.server <PORT>` → goto `http://localhost:<PORT>/prompt-pouch.html` → 挂 pageerror 监听(零容忍)→ 断言卡片数 `document.querySelectorAll('.card').length` 等于 prompts.json 的 prompts 条数(证明数据被正确读到;落回内置示例种子即自检失败)→ 收尾停服务
@@ -51,20 +57,21 @@ disable-model-invocation: false
51
57
  - 后台起本地服务(`cd <DIR> && python3 -m http.server <PORT>`,Windows 用 `py -m http.server`;端口被占则换 PORT+1 再试)
52
58
  - 按平台打开浏览器:darwin → `open http://localhost:<PORT>/prompt-pouch.html`;win32 → `start` 同 URL;linux → `xdg-open` 同 URL
53
59
  4. **结构规则与维护操作** → 读 `resources/data-format.md`(schema、id 规范、createdAt、updatedAt、排序落盘、插值语法、排序模式)
54
- 5. **批量整理入囊**(用户给一堆文字/文件/说「把最近对话框内容整理进锦囊」):
55
- - 读 `<DIR>/<DATA_DIR>/prompts.json` 现状 → 逐条提炼候选提示词(标题/正文/建议归入哪个现有组/标签 1-3 个)
56
- - 输出整理方案表给用户:每条建议分组与理由;现有组装不下的条目推荐新建分组(中文名 + emoji icon + 一句推荐理由),不擅自落盘
57
- - 用户口述调整(换组/改名/删条目/改推荐组名)→ 确认后一次性落盘:id 雪花规则、createdAt 当天、各组 order 续排,写回前重读最新文件合并
58
- - 落盘后提醒用户刷新页面
60
+ 5. **批量整理入囊**(用户给一堆文字/文件/说「把最近对话框内容整理进锦囊」)——两段确认,一段不跳:
61
+ - 读 `<DIR>/<DATA_DIR>/prompts.json` 现状
62
+ - **第一段 · 定条目**:逐条提炼候选提示词(标题/正文),**默认 AI 智能打标**——每条自动配 1-3 个语义标签(无需用户要求,默认就做;用户可改可删);同时给**插值泛化建议**(识别可泛化的具体词——人名/日期/数字/对象名,建议改为 {变量},附改写前后对比与复用效果,如「把『Q3 报告』换成 {报告主题},这条就能复用于任何主题」)。输出条目清单表(序号 | 标题 | AI 建议标签 | 插值建议),等用户确认条目(增/删/改标题正文/改标签/接受或拒绝插值建议),不擅自落盘
63
+ - **第二段 · 定分组**:基于定稿条目输出分组方案表(每条归入哪个现有组 + 语义匹配理由;现有组装不下的条目推荐新建分组:中文名 + emoji icon + 一句推荐理由),等用户确认分组(换组/改名/改推荐组名)
64
+ - 两段都确认后一次性落盘:id 雪花规则、createdAt 当天、各组 order 续排,写回前重读最新文件合并;落盘后提醒用户刷新页面
65
+ - 条目少(≤3 条)时两段可合并一次确认:报完整方案表(条目 + 标签 + 分组 + 插值建议),一次确认
59
66
  6. **使用咨询**(用户只问「锦囊怎么用」等用法、未要求生成或修改)→ 读 `resources/usage-guide.md`,将其内容原样输出(首行标题改为「锦囊使用指南」),不读写任何文件
60
67
 
61
68
  ## ⚙️ 配置与自定义主题
62
69
 
63
70
  **执行本 skill 前必须先 Read 同目录 `user-config.md`**:目录(DIR/DIR_WIN)、端口(PORT)、初始化数据(INIT_DATA)、确认开关(CONFIRM)、主题(THEME)等默认配置都在该文件中,以它为准。升级技能时 user-config.md 不会被覆盖,你的修改永久保留。
64
71
 
65
- **THEME 主题机制**:页面内置四套主题——gold 暖棕金(默认)/ tech 深蓝科技 / mono Darcula 深灰蓝(JetBrains IDE 同款观感)/ mint 薄荷绿。初始化复制 reference.html 后,将 html 根标签 `data-theme` 属性值设为配置 `THEME`(仅此一处修改);页面右下角「换肤坞」色点可随时切换主题,选择经浏览器 localStorage 持久(key: sf-pouch-theme),刷新后保持;localStorage 优先级高于根标签 data-theme。已初始化的页面改配置 THEME 不追溯——用户手动换过主题即以其选择为准。
72
+ **THEME 主题机制**:页面内置五套主题——gold 暖棕金(默认)/ tech 深蓝科技 / mono IDEA 黑亮(JetBrains New UI Dark 官方色系,编辑区 #1e1f22 + 面板 #2b2d30)/ light IDEA 白亮(IntelliJ Light 官方色系)/ mint 薄荷绿。初始化复制 reference.html 后,将 html 根标签 `data-theme` 属性值设为配置 `THEME`(仅此一处修改);页面右下角「换肤坞」色点可随时切换主题,选择经浏览器 localStorage 持久(key: sf-pouch-theme),刷新后保持;localStorage 优先级高于根标签 data-theme。已初始化的页面改配置 THEME 不追溯——用户手动换过主题即以其选择为准。
66
73
 
67
- **配置版本机制(升级保护)**:user-config.md 头部 `CONFIG_VERSION` 标识结构版本。升级 skill 后若发现新版本结构(如 v2 新增 THEME 字段)而用户配置是旧版:先备份旧配置为 `user-config.md.bak-时间戳`,将旧值迁移进新结构(保留用户已有 DIR/PORT/INIT_DATA/CONFIRM,缺失字段补默认值),更新 CONFIG_VERSION,最后用一句话告知用户配置已升级、旧文件备份在哪。v4 特例:用户配置 DATA_DIR: cache(v3 旧默认、非用户显式自定义)→ 目录改名 cache→data(先复制 .bak-时间戳)并同步更新配置值;用户显式自定义过其它目录名则尊重其选择不动。 **无法迁移项处理**(值域失效 / 语义漂移 / 数据不兼容):三绝不——绝不静默(无法迁移项停下问,不猜值)、绝不丢失(旧值永远在备份)、一次说清(升级报告三段式:⚠️ 版本与备份路径 / ✅ 已自动迁移 / 🟡 无法迁移项逐条附原因+影响+建议替代);随后 AskUserQuestion 三选项(A 用建议值 / B 用户给新值 / C 保持旧配置——不更新 CONFIG_VERSION,每次执行再提醒);报告必附回滚一句话;数据文件(prompts.json)迁移前先复制 .bak-时间戳,能映射则映射、不能则写兼容层(旧 id 兼容保留即范例)或留备份提示手动整理
74
+ **配置版本机制(升级保护)**:user-config.md 头部 `CONFIG_VERSION` 标识结构版本,本 skill 当前要求版本为 4;配置结构如有变化必须同步更新此版本号与迁移说明。升级 skill 后若发现新版本结构(如 v2 新增 THEME 字段)而用户配置是旧版:先备份旧配置为 `user-config.md.bak-时间戳`,将旧值迁移进新结构(保留用户已有 DIR/PORT/INIT_DATA/CONFIRM,缺失字段补默认值),更新 CONFIG_VERSION,最后用一句话告知用户配置已升级、旧文件备份在哪。v4 特例:用户配置 DATA_DIR: cache(v3 旧默认、非用户显式自定义)→ 目录改名 cache→data(先复制 .bak-时间戳)并同步更新配置值;用户显式自定义过其它目录名则尊重其选择不动。 **无法迁移项处理**(值域失效 / 语义漂移 / 数据不兼容):三绝不——绝不静默(无法迁移项停下问,不猜值)、绝不丢失(旧值永远在备份)、一次说清(升级报告三段式:⚠️ 版本与备份路径 / ✅ 已自动迁移 / 🟡 无法迁移项逐条附原因+影响+建议替代);随后 AskUserQuestion 三选项(A 用建议值 / B 用户给新值 / C 保持旧配置——不更新 CONFIG_VERSION,每次执行再提醒);报告必附回滚一句话;数据文件(prompts.json)迁移前先复制 .bak-时间戳,能映射则映射、不能则写兼容层(旧 id 兼容保留即范例)或留备份提示手动整理
68
75
 
69
76
  ## 核心约束
70
77
 
@@ -78,4 +85,5 @@ disable-model-invocation: false
78
85
  - **updatedAt 规范**:AI 修改提示词(改标题/分组/内容/标签)时同步写/更新 `updatedAt`(当天日期,格式同 createdAt);仅重排 order 或改收藏不更新;新增不写(视为无修改)
79
86
  - **页面双笔纪律**:页面经目录授权后可直写 prompts.json(增删改分组与提示词、排序落盘)。AI 每次维护必须先重读最新 prompts.json 再修改写回,严禁基于会话早期读入的旧内容覆盖写回(会丢失页面刚写入的改动);页面未授权目录时的操作会生成「复制指令」交回 AI,按指令内容落盘
80
87
  - **插值语法**:内容里的 `{变量名}`(如「{功能名}」)会被页面自动识别为填充面板变量,写内容时按需保留花括号占位
81
- - **主题令牌纪律**:reference.html 组件样式一律引用 CSS 变量(--gold/--gold2/--gold-dim/--border/--tag-bg/--star/--glow/--bar-hi/--bar-lo 等),禁止在组件侧硬编码暖棕金色值(#e8b04b、rgba(232,176,75,…)、rgba(23,17,12,…));新增样式需复用现有令牌或先在四主题块中各补一致定义;改主题只改对应 [data-theme] 块,不动组件
88
+ - **插值泛化纪律**:新增/整理提示词时主动识别可泛化的具体词(人名/日期/数字/对象名),向用户建议改为 {变量}(附改写示例与复用效果),用户确认后才改;不擅自泛化,用户拒绝则原样保留
89
+ - **主题令牌纪律**:reference.html 组件样式一律引用 CSS 变量(--gold/--gold2/--gold-dim/--border/--tag-bg/--star/--glow/--bar-hi/--bar-lo 等),禁止在组件侧硬编码暖棕金色值(#e8b04b、rgba(232,176,75,…)、rgba(23,17,12,…));新增样式需复用现有令牌或先在五主题块中各补一致定义;改主题只改对应 [data-theme] 块,不动组件
@@ -31,7 +31,7 @@
31
31
  - `prompts[].group`:引用组的数字 id,写回前逐一校验
32
32
  - `prompts[].order`:组内排序权重,从 1 递增且尽量连续;重排时按新顺序整体重写(数字 id 天然按时间有序,可作辅助参考)
33
33
  - `prompts[].favorite`:收藏星标(页面点星为本地态,指令「收藏/取消收藏 XX」由 AI 落盘)
34
- - `prompts[].tags`:1-3 个短标签,用于搜索与归类
34
+ - `prompts[].tags`:1-3 个短标签,用于搜索、过滤与归类(AI 批量整理时默认智能打标,用户可在页面悬停 ✕ 删 / + 加 / 编辑表单增删改)
35
35
  - `prompts[].createdAt`:添加时间(YYYY-MM-DD 或 YYYY-MM-DD HH:mm:ss,**新增提示词必写到时分秒**);旧数据可无此字段或仅日期(页面按 order 兜底排序,数字 id 时间序可辅助)
36
36
  - `prompts[].updatedAt`:最近一次内容修改时间(格式同 createdAt,写到时分秒);新增不写、首次修改才写,仅重排 order 不更新
37
37
 
@@ -49,6 +49,7 @@
49
49
  - **修改**:定位 id 或标题,只改用户指定的字段;「修改锦囊里『日报速写』的内容」→ 整段替换 content;改标题/分组/内容/标签时把 updatedAt 更新为当前时间(格式同 createdAt,写到时分秒)
50
50
  - **删除**:删 prompts 条目;删分组前须先处理组内条目(移组或一并删除,需与用户确认)
51
51
  - **排序与分组**:用户粘贴「复制变更指令」文本 → 先按「分组调整」节改各条 `group`(把「X」从「A」移到「B」),再按「各组顺序」节每组列表顺序重写 `order`;指令含「未保存」提示时,说明用户拖拽后未复制最新指令,以指令内容为准
52
+ - **分组顺序**:用户页面拖拽分组条 → 重排 groups 数组顺序(分组展示顺序 = 数组顺序,无独立 order 字段);未授权目录时页面复制「请把锦囊分组顺序调整为:A、B、C」指令,AI 按新顺序整体重写 groups 数组即可
52
53
  - **新建分组**:id 按雪花规则生成数字主键,name 中文,icon 一个 emoji
53
54
  - **写回格式**:UTF-8、2 空格缩进、末尾换行;不压缩不重排无关字段
54
55
  - **双写者纪律**:页面(授权目录时)与 AI 都会写本文件——任何一方写回前必须重读最新内容再合并修改,严禁基于旧内容整体覆盖