skill-forge-hub 1.0.3 → 1.0.5
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 +27 -0
- package/README.md +82 -150
- package/annual-report/SKILL.md +27 -7
- package/annual-report/resources/data-collection.md +22 -5
- package/annual-report/resources/disk-and-html.md +6 -6
- package/annual-report/resources/reference.html +77 -45
- package/annual-report/resources/usage-guide.md +10 -2
- package/annual-report/user-config.md +16 -4
- package/article-to-html/.preserve +3 -0
- package/article-to-html/SKILL.md +26 -7
- package/article-to-html/design-system.md +9 -3
- package/article-to-html/resources/reference.html +631 -0
- package/article-to-html/resources/usage-guide.md +9 -1
- package/article-to-html/user-config.md +6 -3
- package/cli.js +58 -26
- package/daily-report/SKILL.md +27 -7
- package/daily-report/resources/content-rules.md +2 -2
- package/daily-report/resources/data-collection.md +26 -23
- package/daily-report/resources/disk-and-html.md +2 -2
- package/daily-report/resources/reference.html +24 -3
- package/daily-report/resources/usage-guide.md +10 -2
- package/daily-report/user-config.md +16 -4
- package/deck-stage/SKILL.md +15 -4
- package/deck-stage/resources/cover-template.html +3 -3
- package/deck-stage/resources/data-schema.md +11 -1
- package/deck-stage/resources/pptx-builder.js +1 -1
- package/deck-stage/resources/usage-guide.md +9 -2
- package/deck-stage/user-config.md +1 -1
- package/docs/architecture.md +89 -0
- package/docs/images/article-to-html.png +0 -0
- package/docs/images/daily-report.png +0 -0
- package/docs/images/deck-stage.png +0 -0
- package/docs/images/magic-deck.png +0 -0
- package/docs/images/meeting-minutes.png +0 -0
- package/docs/images/prompt-pouch.png +0 -0
- package/docs/install.md +71 -0
- package/magic-deck/SKILL.md +23 -8
- package/magic-deck/resources/content-guide.md +5 -4
- package/magic-deck/resources/deck-spec.md +18 -11
- package/magic-deck/resources/reference.html +110 -32
- package/magic-deck/resources/usage-guide.md +10 -2
- package/magic-deck/user-config.md +4 -4
- package/meeting-minutes/SKILL.md +51 -0
- package/meeting-minutes/resources/content-rules.md +57 -0
- package/meeting-minutes/resources/disk-and-html.md +26 -0
- package/meeting-minutes/resources/meeting-type-dictionary.md +24 -0
- package/meeting-minutes/resources/reference.html +436 -0
- package/meeting-minutes/resources/usage-guide.md +63 -0
- package/meeting-minutes/user-config.md +56 -0
- package/meta-forge/SKILL.md +6 -6
- package/meta-forge/resources/forge-rules.md +61 -9
- package/meta-forge/resources/usage-guide.md +7 -3
- package/meta-forge/user-config.md +1 -1
- package/monthly-report/SKILL.md +62 -0
- package/monthly-report/resources/content-rules.md +40 -0
- package/monthly-report/resources/data-collection.md +44 -0
- package/monthly-report/resources/date-parsing.md +18 -0
- package/monthly-report/resources/disk-and-html.md +29 -0
- package/monthly-report/resources/industry-dictionary.md +21 -0
- package/monthly-report/resources/reference.html +531 -0
- package/monthly-report/resources/usage-guide.md +75 -0
- package/monthly-report/user-config.md +53 -0
- package/package.json +9 -2
- package/prompt-pouch/SKILL.md +17 -2
- package/prompt-pouch/resources/data-format.md +1 -1
- package/prompt-pouch/resources/reference.html +56 -24
- package/prompt-pouch/resources/usage-guide.md +10 -3
- package/prompt-pouch/user-config.md +1 -1
- package/quarterly-report/SKILL.md +63 -0
- package/quarterly-report/resources/content-rules.md +42 -0
- package/quarterly-report/resources/data-collection.md +46 -0
- package/quarterly-report/resources/date-parsing.md +19 -0
- package/quarterly-report/resources/disk-and-html.md +22 -0
- package/quarterly-report/resources/industry-dictionary.md +21 -0
- package/quarterly-report/resources/reference.html +509 -0
- package/quarterly-report/resources/usage-guide.md +76 -0
- package/quarterly-report/user-config.md +53 -0
- package/spec-doc2spec/SKILL.md +21 -22
- package/spec-doc2spec/resources/checklist.md +7 -0
- package/spec-doc2spec/resources/images.md +14 -5
- package/spec-doc2spec/resources/structure.md +19 -10
- package/spec-doc2spec/resources/usage-guide.md +10 -8
- package/spec-doc2spec/user-config.md +2 -2
- package/spec-spec2doc/SKILL.md +4 -4
- package/spec-spec2doc/resources/checklist.md +6 -0
- package/spec-spec2doc/resources/pdf-path.md +1 -0
- package/spec-spec2doc/resources/usage-guide.md +2 -2
- package/template/SKILL.md +1 -1
- package/weekly-report/SKILL.md +27 -7
- package/weekly-report/resources/content-rules.md +2 -2
- package/weekly-report/resources/data-collection.md +26 -23
- package/weekly-report/resources/disk-and-html.md +3 -3
- package/weekly-report/resources/reference.html +132 -120
- package/weekly-report/resources/usage-guide.md +10 -2
- package/weekly-report/user-config.md +16 -4
|
@@ -10,16 +10,28 @@
|
|
|
10
10
|
|
|
11
11
|
```yaml
|
|
12
12
|
DISK: true # 是否落盘写文件;false = 默认只在对话输出,不写文件不开浏览器
|
|
13
|
-
CONFIG_VERSION:
|
|
13
|
+
CONFIG_VERSION: 3 # 配置结构版本:skill 升级时若配置结构变化会递增;AI 每次执行前对比 SKILL.md「配置版本机制」节声明的当前版本,不一致时按 SKILL.md 的迁移规则处理(先备份本文件为带时间戳 .bak,再迁移,最后对话告知用户)
|
|
14
14
|
FORMATS: [md, txt, html, content-png] # 落盘哪些格式(数组,可删减/增,如 [md, html] / [md, txt, html](不截图);content-png = 整页内容区截图(头部标题卡片 + 今日任务进度/明日计划/风险阻塞点三张分节卡片整体截出,头部卡片必须带上),删除该项即不截图;不影响对话中的 md 正文输出)
|
|
15
15
|
DIR: auto # 落盘根目录:auto = 按当前系统自动选 DIR_MAC / DIR_WIN(也可直接写死某个绝对路径)
|
|
16
|
-
DIR_MAC:
|
|
17
|
-
DIR_WIN:
|
|
16
|
+
DIR_MAC: ~/reports # macOS 落盘根目录(自动按目标日期建子目录;目录不存在时回退用户主目录下 reports)
|
|
17
|
+
DIR_WIN: %USERPROFILE%\reports # Windows 落盘根目录(自动按目标日期建子目录;目录/盘符不存在时回退用户主目录下 reports)
|
|
18
18
|
OPEN_HTML: true # 落盘后是否自动用浏览器打开 html(FORMATS 不含 html 时忽略)
|
|
19
|
-
THEME: tech # html 页面主题:tech 深蓝科技(默认)/ biz 浅色商务 / mono IDEA 黑亮 / light IDEA 白亮 / warm 温暖渐变;生成时写 <html data-theme="THEME值">
|
|
19
|
+
THEME: tech # html 页面主题:tech 深蓝科技(默认)/ biz 浅色商务 / mono IDEA 黑亮 / light IDEA 白亮 / warm 温暖渐变;生成时写 <html data-theme="THEME值"> 定默认,页面右下角换肤坞五色点随点随换(浏览器本地记忆(键按页内嵌唯一 ID 隔离、多份产物互不串台、改名/移动目录记忆不丢;生成时头部写 `<meta name="daily-id" content="<UUID>">`,每次新 UUID),?shot 截图模式自动隐藏,打印隐藏)
|
|
20
20
|
TEMPLATE: default # 报告模板:default = 内置三段式(任务进度/明日计划/风险阻塞点);custom = 使用下方「📝 自定义模板」节;口头临时指定模板仅当次生效
|
|
21
21
|
ROLE: 全栈开发工程师(企业内技术开发) # 用户默认职业角色与主要工作内容(两者并存:职业名 + 括号内工作内容,生成内容/术语/量化指标/节奏条/风险话术全部按此画像走);用户随口描述职业时(如「我搞装修的,天天跑工地」)→ AI 提炼为规范表述(装修项目经理(负责工地现场管理、施工进度与质量巡检))更新此处;说「以 XX 的身份写」→ 当次临时换角色不改配置;说「以后默认用 XX 角色 / 我的职业是 XX / 我的主要工作是 XX」→ 永久更新此处
|
|
22
22
|
CONFIRM: never # 落盘前确认:never = 直接生成落盘不确认(默认);text = 纯文字整理模式先出效果确认后再落盘;always = 任何方式生成都先确认;临时说「先看看效果」当次先确认、说「不用确认」当次跳过
|
|
23
|
+
DATA_SOURCES: [] # 数据源清单(升级不覆盖;AI 每次生成前 Read 本文件按此清单收集;空清单 = 只按会话/文字内容生成)。每项:name 唯一名称 + type 类型 + 路径。三种类型示例(把下方 # 注释示例改成你的真实数据源后填入上方数组;未知 type(拼写错误)忽略该项并在生成时一句话提示,不中断):
|
|
24
|
+
# - name: 主项目仓库 # 名称:唯一 key(重名视为同一数据源;口述「只聚合 xxx」按 name 匹配)
|
|
25
|
+
# type: git # git = 代码仓库(git log 聚合提交;路径不存在/非代码仓库时静默跳过)
|
|
26
|
+
# mac: ~/Projects/main-app # macOS 路径(绝对路径或 ~ 开头)
|
|
27
|
+
# win: D:\Projects\main-app # Windows 路径;「-」= 该系统不存在,自动跳过
|
|
28
|
+
# - name: 周例会纪要
|
|
29
|
+
# type: file # file = 普通文件/目录(文件 Read 全文、目录逐个 Read 文本文件,二进制跳过;路径无效静默跳过)
|
|
30
|
+
# mac: ~/Documents/meeting-notes.md
|
|
31
|
+
# win: -
|
|
32
|
+
# - name: 数据接口
|
|
33
|
+
# type: remote # remote = 远程网络源(只需 url 字段忽略 mac/win;AI 联网拉取内容提取要点;失败静默跳过不阻塞;仅收集时联网,HTML 产物仍零外链)
|
|
34
|
+
# url: https://example.com/data.json
|
|
23
35
|
```
|
|
24
36
|
|
|
25
37
|
> 临时口头要求(仅对当次生效,不修改上方配置):说「不落盘/别写文件」→ 当次 DISK=false;说「写到桌面/存到 ~/report(macOS)或 D:\report(Windows)」→ 当次改用该 DIR;说「只要 md / 只出 html / 只要内容区截图」→ 当次只落指定格式;说「这次不截图」→ 当次不生成内容区截图;说「只要截图/重新截个图」→ 当次只对现有 html 执行内容区截图(不重新收集数据、不重写 md/txt/html 内容文件);说「别开浏览器」→ 当次 OPEN_HTML=false;说「这次按 xxx 模板来」→ 当次临时换模板(不改配置);说「以后都用这个模板」→ 自动写入下方「📝 自定义模板」节并把 TEMPLATE 改为 custom(永久生效);说「先看看效果/先出效果再落盘」→ 当次先出效果确认后再落盘;说「不用确认/直接落盘」→ 当次跳过确认直接落盘。说「页面用浅色商务主题/浅色主题」→ 当次 THEME=biz;说「以后默认用暖色主题」→ 永久改 THEME=warm。
|
package/deck-stage/SKILL.md
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: deck-stage
|
|
3
3
|
description: >
|
|
4
|
-
登台 deck-stage
|
|
4
|
+
登台 deck-stage:把日报/周报/月报/季报/年报(md/HTML/口述大纲)或散装素材(目录/文件/随手文字)转成专业 .pptx 演示文稿。
|
|
5
5
|
三问交互——先问素材(指定目录/指定文件/贴文字/口述主题)、再报页结构大纲表确认、后选成片方式(一键成片/逐页确认)。
|
|
6
6
|
混合模式——常规页原生生成(文本/数据卡/时间线/柱图/饼图/折线,全部可编辑),封面与结尾页用 HTML 截图贴图(视觉保真)。
|
|
7
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
|
-
|
|
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
|
---
|
|
14
14
|
|
|
15
15
|
# 登台 deck-stage
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
把报告五件套(日报/周报/月报/季报/年报)的产出——或任何散装素材——转成专业 .pptx 演示文稿。常规页原生可编辑(文本/数据卡/时间线/柱图/饼图/折线),封面/结尾页 HTML 截图保真,每页可带演讲备注,视觉与报告同源。写报告 → 放映(magic-deck)→ 登台(本 skill),最后一公里闭环。
|
|
18
18
|
|
|
19
19
|
## 意图边界(与 magic-deck 分流)
|
|
20
20
|
|
|
@@ -50,13 +50,24 @@ disable-model-invocation: false
|
|
|
50
50
|
|
|
51
51
|
0. **读用户配置**(DIR/DIR_WIN/THEME/OPEN_PPTX/CONFIRM/MODE/AUDIENCE/NOTES/CONFIG_VERSION)→ 先 Read 同目录 `user-config.md`
|
|
52
52
|
1. **三问交互**(见上节):素材 → 骨架大纲表确认 → 成片方式(MODE 未配置时默认 B 逐页确认)
|
|
53
|
-
2. **结构化提炼** → 读 `resources/data-schema.md`(schema +
|
|
53
|
+
2. **结构化提炼** → 读 `resources/data-schema.md`(schema + 段落映射:年报五段/季报四段/月报四段/周报四段/日报四段 → 页类型与节色)
|
|
54
54
|
3. **封面/结尾截图**(无现成素材时)→ 读 `resources/cover-template.html` 说明:复制模板到临时目录 → 替换 `COVER` 对象(title/subtitle/info/stats 或 mode:closing)→ Chrome headless 截图 1280x720(macOS:`/Applications/Google Chrome.app/Contents/MacOS/Google Chrome --headless --disable-gpu --no-sandbox --hide-scrollbars --screenshot=cover.png --window-size=1280,720 --virtual-time-budget=3000 "file:///<临时html>"`;Windows 按序探测 chrome.exe/msedge.exe,URL 用 node url.pathToFileURL)
|
|
55
55
|
4. **生成 pptx**:写 data.json → `cd <skill目录> && node resources/pptx-builder.js --data <data.json绝对路径> --out <DIR>/<文件名>.pptx` → 输出 `PPTX_OK <路径>`
|
|
56
56
|
5. **交付前自检**(硬门禁,不可跳过):文件存在、大小 > 20KB;`unzip -l <pptx>` 校验——`ppt/slides/slideN.xml` 数量与 data.json pages 数一致、每页 slide XML 均存在且非空;builder 已报 `PPTX_OK` 才算通过。未通过 → 修 data.json 后重跑 builder,禁止跳过直接交付
|
|
57
57
|
6. **落盘与打开**:按配置 DIR 落盘;`OPEN_PPTX: true` 时打开(macOS:`open <pptx>`;Windows:`start <pptx>`)
|
|
58
58
|
7. **使用咨询**(用户只问「登台怎么用」「报告转 PPT 怎么用」等用法、未要求生成)→ 读 `resources/usage-guide.md`,将其内容原样输出(首行标题改为「登台 deck-stage 使用指南」),不执行任何生成动作
|
|
59
59
|
|
|
60
|
+
|
|
61
|
+
## 🔧 报修处理流程(用户报成品问题时)
|
|
62
|
+
|
|
63
|
+
用户说「封面/结尾页效果不对」「第 N 页版式不对」「ppt 打开有问题」(常附截图或指出具体现象)→ 按以下流程处理,不以「重新生成一份」敷衍:
|
|
64
|
+
|
|
65
|
+
1. **立标准**:封面/结尾页的标准答案在 `resources/cover-template.html`;常规页版式标准在 `resources/pptx-builder.js`(真相源)+ `resources/data-schema.md`(schema 描述)
|
|
66
|
+
2. **分诊**:封面/结尾页问题 → 重新生成截图(按第 3 步流程替换 COVER 对象重截);常规页版式问题 → Read data.json 与 data-schema.md 比对定位(字段缺/映射错/主题错)
|
|
67
|
+
3. **修复**:以 builder 与 data-schema 为准修 data.json 后重跑 builder;封面问题修 cover-template.html 或 COVER 数据后重截
|
|
68
|
+
4. **自证**:`unzip -l <pptx>` 校验 slide 数与非空 + 输出 `PPTX_OK`;封面重截后 Read 截图自查
|
|
69
|
+
5. **汇报**:一句话说清问题根因 + 修复了什么 + 附截图;若根因在 cover-template.html / pptx-builder.js 自身,顺修仓库模板并在汇报中说明「参考模板已同步修正」
|
|
70
|
+
|
|
60
71
|
## ⚙️ 默认配置(在 user-config.md,执行前必须先 Read)
|
|
61
72
|
|
|
62
73
|
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 不会被覆盖,你的修改永久保留。
|
|
@@ -98,7 +98,7 @@
|
|
|
98
98
|
<div class="bg-stars"></div>
|
|
99
99
|
<div class="card-glow"></div>
|
|
100
100
|
<div class="wrap">
|
|
101
|
-
<div class="badge" id="badge">GENERATED BY
|
|
101
|
+
<div class="badge" id="badge">GENERATED BY AI TEAM</div>
|
|
102
102
|
<div class="center">
|
|
103
103
|
<div class="title" id="title">2026 研发年度总结</div>
|
|
104
104
|
<div class="subtitle" id="subtitle">资深研发工程师 · 全栈方向</div>
|
|
@@ -107,14 +107,14 @@
|
|
|
107
107
|
</div>
|
|
108
108
|
<div class="foot">
|
|
109
109
|
<div class="info"><span id="info">2026-01-01 ~ 2026-12-31 · 生成于 2026-11-11</span></div>
|
|
110
|
-
<div class="brand">GENERATED BY
|
|
110
|
+
<div class="brand">GENERATED BY AI TEAM</div>
|
|
111
111
|
</div>
|
|
112
112
|
</div>
|
|
113
113
|
<script>
|
|
114
114
|
/* ── COVER 数据(AI 执行时替换此对象内容) ─────────────────────── */
|
|
115
115
|
var COVER = {
|
|
116
116
|
mode: "cover", // cover 封面 / closing 结尾
|
|
117
|
-
badge: "GENERATED BY
|
|
117
|
+
badge: "GENERATED BY AI TEAM",
|
|
118
118
|
title: "2026 研发年度总结",
|
|
119
119
|
subtitle: "资深研发工程师 · 全栈方向",
|
|
120
120
|
info: "2026-01-01 ~ 2026-12-31 · 生成于 2026-11-11",
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"meta": {
|
|
10
10
|
"title": "2026 研发年度总结", // pptx 文档标题
|
|
11
11
|
"subtitle": "资深研发工程师 · 全栈方向", // 封面副标题(可选)
|
|
12
|
-
"footer": "GENERATED BY
|
|
12
|
+
"footer": "GENERATED BY AI TEAM · 2026" // 每页页脚(可选,缺省 GENERATED BY AI TEAM)
|
|
13
13
|
},
|
|
14
14
|
"theme": "tech", // tech(默认)/ biz / mono / light / warm,与报告五主题同源
|
|
15
15
|
"pages": [
|
|
@@ -75,6 +75,16 @@
|
|
|
75
75
|
| 多期趋势对比(提交/工时双线等) | `chart-line`(series=多系列) | blue |
|
|
76
76
|
| — | `closing-image`(谢谢观看 + 署名) | — |
|
|
77
77
|
|
|
78
|
+
### 月报(四段式)
|
|
79
|
+
|
|
80
|
+
| 报告段落 | 页类型 | color |
|
|
81
|
+
|:---|:---|:---|
|
|
82
|
+
| 月度概览(TL;DR + 数据卡) | `overview`(TL;DR + stats=数据卡,环比小字并入卡片描述) | blue |
|
|
83
|
+
| 本月关键成果(W1-W4 周时间线) | `timeline`(q=W1..W4,desc=成果描述,metric=量化小字) | green |
|
|
84
|
+
| 问题与改进 | `bullets`(t=问题,d=影响+改进) | rose |
|
|
85
|
+
| 下月计划 | `bullets`(t=目标,d=量化指标与周级行动节点) | orange |
|
|
86
|
+
| 本月提交日历热力图 | `chart-heatmap`(calendar 热力图:dates=当日提交数,labels=YYYY-MM) | orange |
|
|
87
|
+
|
|
78
88
|
### 周报
|
|
79
89
|
|
|
80
90
|
| 报告段落 | 页类型 | color |
|
|
@@ -314,7 +314,7 @@ function main() {
|
|
|
314
314
|
pptx.layout = 'WIDE';
|
|
315
315
|
SHAPES = pptx.ShapeType;
|
|
316
316
|
CHART_TYPES = pptx.ChartType;
|
|
317
|
-
pptx.author = '
|
|
317
|
+
pptx.author = 'AI TEAM';
|
|
318
318
|
pptx.title = meta.title || '报告';
|
|
319
319
|
|
|
320
320
|
for (const page of data.pages || []) {
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# 登台 deck-stage 使用指南
|
|
2
2
|
|
|
3
|
-
登台(deck-stage
|
|
3
|
+
登台(deck-stage)把日报/周报/月报/季报/年报的产出——或任何散装素材——转成专业 .pptx 演示文稿:常规页(数据卡/时间线/条目/柱图/饼图/折线)原生生成、完全可编辑,封面与结尾页用 HTML 截图贴图、视觉保真。页面与数据分离,五主题(深蓝科技/浅色商务/IDEA 黑亮/IDEA 白亮/温暖渐变)与报告同源,改主题只改一处。
|
|
4
4
|
|
|
5
5
|
## 怎么用
|
|
6
6
|
|
|
7
|
-
1. **一句话登台**:对 AI 说「把今天的日报转成 PPT」「把这份年报做成 pptx」,或直接给报告文件路径;没有现成报告时给主题大纲也行,AI 会先提炼要点
|
|
7
|
+
1. **一句话登台**:对 AI 说「把今天的日报转成 PPT」「把这份月报做成 pptx」「把这份年报做成 pptx」,或直接给报告文件路径;没有现成报告时给主题大纲也行,AI 会先提炼要点
|
|
8
8
|
2. **三问交互**:AI 会先问你素材(指定目录/指定文件/贴文字/口述主题)→ 再报页结构大纲表给你增删改 → 最后问成片方式(一键成片 / 逐页确认)
|
|
9
9
|
3. **逐页确认**:选逐页确认时,每页先报排版方案(版式 + 内容 + 图表 + 演讲备注),你 OK 一页出一页;说「第 N 页改成 XX」重出单页、「换主题 biz」全局换、「加一页/删一页」改骨架
|
|
10
10
|
4. **自动排版**:AI 按报告结构自动映射版式——概览成数据卡页、成果成时间线页、条目成徽章页、提交节奏成柱图页,页数多了自动续页
|
|
@@ -18,3 +18,10 @@
|
|
|
18
18
|
- 转换不改原报告:md/HTML 原样保留,pptx 是新增产物
|
|
19
19
|
- 同名 pptx 不会覆盖旧文件,自动加日期后缀
|
|
20
20
|
- 生成全程离线,pptx 双击即开,可放心走内网流程
|
|
21
|
+
|
|
22
|
+
## 效果不对怎么办
|
|
23
|
+
|
|
24
|
+
- 成品效果不对(封面/结尾页不对、第 N 页版式不对、ppt 打开异常),对 AI 说「第 N 页效果不对 / 封面不对,对照参考模板修复」,把问题描述清楚(哪一页、什么现象,能截图最好)
|
|
25
|
+
- 本技能的参考标准在技能目录里:封面/结尾页标准答案 = `resources/cover-template.html`,常规页版式标准 = `resources/pptx-builder.js`(真相源)+ `resources/data-schema.md`,AI 修复时以此为对照
|
|
26
|
+
- AI 的处理流程固定:先判断是哪类页 → 封面页重截、常规页修数据后重生成 → 校验 pptx 文件结构完整(页数一致、每页非空)→ 截图自证
|
|
27
|
+
- 常规页(文本/数据卡/图表)本身就是原生可编辑元素,小改动(改个字、调个数字)建议直接在 PowerPoint/WPS 里改,比让 AI 重新生成更快
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
# 架构与规范 · Architecture & Conventions
|
|
2
|
+
|
|
3
|
+
> 本文档描述仓库目录结构、技能形态(薄入口 + resources)、四大机制与拆分规范。This document describes the repository layout, skill anatomy (thin entry + resources), the four core mechanisms, and the splitting conventions.
|
|
4
|
+
|
|
5
|
+
## 目录结构 · Directory Layout
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
.
|
|
9
|
+
├── README.md # 双语介绍 + 产物画廊 + 技能分类 + 技能清单 · bilingual intro, gallery, categories, skill list
|
|
10
|
+
├── CHANGELOG.md # 版本变更记录 · version changelog
|
|
11
|
+
├── docs/ # 文档(安装升级 / 架构规范 / 产物截图)· docs (install / architecture / screenshots)
|
|
12
|
+
│ ├── install.md # 安装与升级详解 · installation & upgrade
|
|
13
|
+
│ ├── architecture.md # 本文档 · this document
|
|
14
|
+
│ └── images/ # 产物成品截图 · output screenshots
|
|
15
|
+
├── cli.js # 安装器(ls / init / update,零依赖 Node>=14)· installer, zero-dependency Node>=14
|
|
16
|
+
├── package.json # npm 包定义(skill-forge-hub,命令名 skill-forge)· npm package definition
|
|
17
|
+
├── template/ # 新技能模板(薄入口 + resources 拆分规范)· new-skill template
|
|
18
|
+
├── meta-forge/ # 元技能:造 skill 的 skill(四大机制植入 + 仓库登记)· meta skill: forges skills
|
|
19
|
+
├── article-to-html/
|
|
20
|
+
│ ├── SKILL.md # 文档 → 精美 HTML 完整流程 + 逐章截图(含内嵌使用说明)
|
|
21
|
+
│ ├── design-system.md # 设计系统(字体 / 配色 / 排版 / 图表重绘)· design system
|
|
22
|
+
│ ├── user-config.md # ⚙️ 用户配置(THEME 等,升级不覆盖)· user config
|
|
23
|
+
│ ├── .preserve # 升级保留清单(design-system.md 用户可改)· extra preserve list
|
|
24
|
+
│ └── scripts/ # 字体安装 / docx 抽取 / 字体内联脚本 · font & extraction scripts
|
|
25
|
+
├── daily-report/(weekly-report / monthly-report / quarterly-report / annual-report 同构 · same shape)
|
|
26
|
+
│ ├── SKILL.md # 薄入口:frontmatter + 生成流程 + 规则速览 · thin entry
|
|
27
|
+
│ ├── user-config.md # ⚙️ 用户配置(CONFIG_VERSION + 默认配置 + 自定义模板)· user config
|
|
28
|
+
│ └── resources/ # 重内容按生成阶段拆分,AI 按需读取 · heavy content split by stage
|
|
29
|
+
│ ├── usage-guide.md # 📖 使用说明(咨询应答的原样输出源)· usage guide
|
|
30
|
+
│ ├── date-parsing.md # 🗓 日期解析(自然语言优先)· date parsing
|
|
31
|
+
│ ├── data-collection.md # 📥 数据收集(多源聚合:口述 / 文字 / 文件 / 图片)· data collection
|
|
32
|
+
│ ├── content-rules.md # ✍️ 内容规则(聚合来源 / 纯文字模式 / 输出格式 / 写作风格)· content rules
|
|
33
|
+
│ ├── industry-dictionary.md # 🏭 行业适配(12 行业职业词典)· industry dictionary
|
|
34
|
+
│ └── disk-and-html.md # 💾 本地落盘 / HTML 样式 / content-png 截图规范 · disk & HTML spec
|
|
35
|
+
├── magic-deck/
|
|
36
|
+
│ ├── SKILL.md # 薄入口:魔法幻灯生成流程 + 规则速览 · thin entry
|
|
37
|
+
│ ├── user-config.md # ⚙️ 用户配置 · user config
|
|
38
|
+
│ └── resources/
|
|
39
|
+
│ ├── usage-guide.md # 📖 使用说明(功能/热键/截图/复制/全屏)· usage guide
|
|
40
|
+
│ ├── deck-spec.md # 完整规范(骨架/主题色值/模板库/热键表/截图实现)· full deck spec
|
|
41
|
+
│ └── reference.html # 成品骨架(生成时以此为骨逐处替换内容)· output skeleton
|
|
42
|
+
├── deck-stage/
|
|
43
|
+
│ ├── SKILL.md # 薄入口:登台 PPTX 三问交互 + 生成流程 · thin entry
|
|
44
|
+
│ ├── user-config.md # ⚙️ 用户配置 · user config
|
|
45
|
+
│ ├── package.json # 依赖声明(pptxgenjs)· dependency declaration
|
|
46
|
+
│ └── resources/
|
|
47
|
+
│ ├── usage-guide.md # 📖 使用说明 · usage guide
|
|
48
|
+
│ ├── data-schema.md # data.json 结构(段落 → 页类型/节色映射)· data schema
|
|
49
|
+
│ ├── pptx-builder.js # 真相源:读 data.json 产 16:9 pptx · source of truth
|
|
50
|
+
│ └── cover-template.html # 封面/结尾截图底版 · cover/closing capture template
|
|
51
|
+
├── prompt-pouch/
|
|
52
|
+
│ ├── SKILL.md # 薄入口:锦囊管理台生成流程 · thin entry
|
|
53
|
+
│ ├── user-config.md # ⚙️ 用户配置(DIR/DATA_DIR/BACKUP_DIR 等)· user config
|
|
54
|
+
│ └── resources/
|
|
55
|
+
│ ├── usage-guide.md # 📖 使用说明 · usage guide
|
|
56
|
+
│ ├── data-format.md # prompts.json 数据格式 · data format
|
|
57
|
+
│ └── reference.html # 成品骨架 · output skeleton
|
|
58
|
+
├── spec-doc2spec/(spec-spec2doc 同构 · same shape)
|
|
59
|
+
│ ├── SKILL.md # 薄入口:Pandoc 转换 + AI 校对流程 · thin entry
|
|
60
|
+
│ ├── user-config.md # ⚙️ 用户配置 · user config
|
|
61
|
+
│ └── resources/ # 分册:checklist 校对清单 / images 图片处理 / structure 目录组织 / pdf-path PDF 双路径 / usage-guide
|
|
62
|
+
├── quarterly-report/ # 结构同 daily-report,季报专属差异:环比/同比双基准 / Q1-Q4 走势图 / M1-M3 月时间线
|
|
63
|
+
├── meeting-minutes/ # 结构同 daily-report,纪要专属差异:五段式 / 行动项三要素 / 12 类会议词典
|
|
64
|
+
└── weekly-report/ # 结构同 daily-report,周报专属差异:WEEK_END 周结束日 / 周定位解析 / 本周概览卡 / 用时 X.XD(1D=8H)
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## 技能形态 · Skill Anatomy
|
|
68
|
+
|
|
69
|
+
- **SKILL.md 只保留**:frontmatter、生成流程总览(每步标注读哪个 resource)、「⚙️ 默认配置」「📝 自定义模板」(用户手改的配置必须留在入口)、规则速览(3-5 条硬性规则)。SKILL.md keeps only: frontmatter, the generation-flow overview (each step names its resource), the user-config pointer, and a rules summary (3-5 hard rules).
|
|
70
|
+
- **resources/ 一文件一职责**:按生成阶段拆分,SKILL.md 流程节点标注 `读 resources/xxx.md`;每份 resource 独立可读,不互相引用。resources/ is one-file-one-job: split by generation stage, each file standalone, no cross-references.
|
|
71
|
+
- **咨询应答**:用户只问用法不要求生成时,读 `resources/usage-guide.md` 原样输出(首行标题按技能改为「XX生成器使用指南」)。Usage-only questions read usage-guide.md and echo it verbatim.
|
|
72
|
+
- **用户配置抽离**:所有用户可改内容在 `user-config.md`(首行 `CONFIG_VERSION`),升级永不覆盖。All user-editable content lives in user-config.md (CONFIG_VERSION on the first line), never overwritten on upgrade.
|
|
73
|
+
|
|
74
|
+
## 四大机制 · The Four Core Mechanisms
|
|
75
|
+
|
|
76
|
+
| 机制 Mechanism | 说明 Description |
|
|
77
|
+
|:---|:---|
|
|
78
|
+
| CONFIG_VERSION 钥匙<br>CONFIG_VERSION key | `user-config.md` 首行声明配置结构版本;官方结构变化(新增/改名/删除配置键)时递增 1 并在 SKILL.md「配置版本机制」节写明迁移规则。CLI 升级与 AI 执行前都自检该版本:版本升了 → 备份 `.bak-时间戳` → 交互三选一(官方覆盖 / 保留我的 + `.upstream` 对照 / 稍后处理)。<br>First line of user-config.md declares the config-structure version; bump by 1 whenever the official structure changes (keys added / renamed / removed) and document migration rules in SKILL.md. Both the CLI updater and the AI self-check this version before running. |
|
|
79
|
+
| user-config 抽离<br>user-config extraction | 用户可改内容(默认配置 yaml + 自定义模板)从 SKILL.md 抽离到独立 `user-config.md`,SKILL.md 只留指引段(执行前必须先 Read)。升级时 BUILTIN_PRESERVE + 技能 `.preserve` 清单双重保护,本地修改永久保留。<br>User-editable content (default config + custom templates) is extracted from SKILL.md into user-config.md; SKILL.md keeps only the pointer. BUILTIN_PRESERVE plus the skill's .preserve list guard it on upgrade. |
|
|
80
|
+
| reference 双轨<br>reference dual-track | 成品 HTML 形态的技能(报表族 / 魔法幻灯 / 锦囊)以 `resources/reference.html` 为视觉真相源:生成时以此为骨逐处替换内容,保证产物样式与官方演示一致;产物头部带 `sf-template` 版本戳 + 稳定 ID meta,按「产物升级(回炉)」节可把旧产物升级到新模板。<br>Skills that produce HTML keep a reference.html as the visual source of truth; generation clones its skeleton, so output matches the official demo. Outputs carry an sf-template version stamp + stable ID meta, enabling "回炉" (reforge) upgrades of old outputs. |
|
|
81
|
+
| 自检纪律<br>self-check discipline | 交付前硬门禁:Playwright/Chrome headless 打开产物零 JS 错误 + 截图验证内容完整;静态门禁(grep 残留旧词 / frontmatter 与版本声明一致)。ID 格式定死(crypto.randomUUID() 标准 v4),落盘前顺扫目录查重。<br>Hard gates before delivery: headless open with zero JS errors + screenshot proof; static gates (no stale terms, consistent frontmatter). IDs are locked to the standard UUID v4 format and checked for collisions before writing. |
|
|
82
|
+
|
|
83
|
+
## 拆分规范 · Splitting Conventions
|
|
84
|
+
|
|
85
|
+
- **新技能按 `template/` 结构创建**,目录名 = 技能名(英文短横线),并归入 README「技能分类」表对应分类 + 同步 cli.js CATEGORIES 与 package.json files。New skills follow the template/ structure, directory name = skill name (lowercase-hyphen), and must be registered in the README category table + cli.js CATEGORIES + package.json files.
|
|
86
|
+
- **已有技能按各自结构维护**:article-to-html 采用 SKILL.md + design-system.md + scripts/ 平铺结构(使用说明内嵌 SKILL.md「用户使用说明」节)。Existing skills keep their own shape; article-to-html uses a flat SKILL.md + design-system.md + scripts/ layout.
|
|
87
|
+
- **通用原则**:零外部依赖(禁 CDN / 外链,内网离线双击可开)、双系统兼容(macOS / Windows)。General principles: zero external dependencies (no CDN / external links, offline double-click works), cross-platform (macOS / Windows).
|
|
88
|
+
- **配置升级**:user-config.md 首行带 `CONFIG_VERSION`,官方配置结构变化时递增并写明迁移规则;CLI update 与 AI 执行时均按该版本做备份 + 迁移提示。Config upgrades: bump CONFIG_VERSION and document migration rules; both CLI update and AI execution back up and prompt accordingly.
|
|
89
|
+
- **元技能**:meta-forge 造技能时的规范真相源在 `resources/forge-rules.md`(澄清清单 / 结构规范 / 四大机制 / 校验清单 / 仓库登记),SKILL.md 流程节点与 template/ 模板均与之对齐。For the meta skill, forge-rules.md is the source of truth (clarification checklist / structure / four mechanisms / validation / repo registration); SKILL.md flow and template/ both align with it.
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/docs/install.md
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# 安装与升级 · Installation & Upgrade
|
|
2
|
+
|
|
3
|
+
> 本文档详述 SkillForge 的两种安装方式、命令参考,以及升级时的配置保护机制。This document covers both install methods, the command reference, and the config-protection mechanics applied on upgrade.
|
|
4
|
+
|
|
5
|
+
## 方式一:npm 全局安装(推荐) · Method 1: Global npm Install (Recommended)
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm i -g skill-forge-hub
|
|
9
|
+
skill-forge ls # 列出全部技能与说明(只读)· list all skills (read-only)
|
|
10
|
+
skill-forge init # 交互式挑选技能,自动探测并安装到 AI 助手技能目录 · pick skills interactively
|
|
11
|
+
skill-forge update # 升级已安装技能(配置版本感知,见下)· upgrade installed skills (config-version aware)
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
非交互 / 指定目录场景 · Non-interactive or explicit directory:
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
skill-forge init --target ~/.claude/skills --skills daily-report,weekly-report
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
> **deck-stage 依赖说明**:deck-stage 需要 PptxGenJS。从本仓库直接 init 会连带复制技能目录内 node_modules,离线可用;npm 全局装出的包不含 node_modules,安装时会提示 `cd <技能目录>/deck-stage && npm install` 补装一次即可。
|
|
21
|
+
>
|
|
22
|
+
> **deck-stage dependency note**: deck-stage needs PptxGenJS. Installing directly from this repo copies the skill's node_modules along (works offline); the npm global package excludes node_modules, so the CLI prompts `cd <skill dir>/deck-stage && npm install` to install it once.
|
|
23
|
+
|
|
24
|
+
## 方式二:手动复制 · Method 2: Manual Copy
|
|
25
|
+
|
|
26
|
+
将技能目录复制到你所用的 AI 助手的技能目录(支持 SKILL.md 格式、本地加载技能的助手均可)。Copy the skill directories into your AI assistant's skill directory (any assistant supporting the SKILL.md format works).
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
cp -R daily-report weekly-report monthly-report quarterly-report annual-report <你的 AI 助手技能目录>/
|
|
30
|
+
cp -R magic-deck prompt-pouch <你的 AI 助手技能目录>/
|
|
31
|
+
cp -R spec-doc2spec spec-spec2doc <你的 AI 助手技能目录>/
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
复制后直接说「写日报」「写周报」「写月报」「写季报」「写年报」「记会议」或丢给它一个文档即可触发;问「日报怎么用 / 周报怎么用 / 月报怎么用 / 季报怎么用 / 会议纪要怎么用 / 登台怎么用」输出使用说明。
|
|
35
|
+
|
|
36
|
+
After copying, say "写日报" (write a daily report), "记会议" (take minutes), or hand it a document to trigger a skill; asking "how to use X" prints the usage guide.
|
|
37
|
+
|
|
38
|
+
## 命令参考 · Command Reference
|
|
39
|
+
|
|
40
|
+
| 命令 Command | 说明 Description |
|
|
41
|
+
|:---|:---|
|
|
42
|
+
| `skill-forge ls` | 列出全部技能(分类 + 名称 + 说明),只读 · List all skills (category + name + description), read-only |
|
|
43
|
+
| `skill-forge init` | 列清单交互挑选:a=全部安装 / 编号挑选(已装标 ★,确认时可 s 跳过已装只装新)· Interactive pick: a=all / numbered (installed marked ★; confirm with s to skip installed) |
|
|
44
|
+
| `skill-forge update` | 升级全部已安装技能(配置版本感知)· Upgrade all installed skills (config-version aware) |
|
|
45
|
+
| `skill-forge update --skills a,b` | 只升级指定技能(未安装的提示跳过)· Upgrade only the named skills (uninstalled ones are skipped with a notice) |
|
|
46
|
+
| `skill-forge --version` | 显示版本号 · Show version |
|
|
47
|
+
| `skill-forge --help` | 显示完整帮助 · Show full help |
|
|
48
|
+
|
|
49
|
+
通用参数(init / update 通用)· Common flags (for init / update):
|
|
50
|
+
|
|
51
|
+
| 参数 Flag | 说明 Description |
|
|
52
|
+
|:---|:---|
|
|
53
|
+
| `--target <目录>`(`-t`) | 指定技能目录;缺省自动探测常见助手目录(~/.qoder-cn、~/.claude、~/.cursor 等),探测到多个时交互选择 · Explicit skill directory; defaults to auto-detecting common assistant dirs (~/.qoder-cn, ~/.claude, ~/.cursor, ...), interactive pick when several are found |
|
|
54
|
+
| `--skills a,b`(`-s`) | 指定技能名列表:init 时跳过选择直接安装/升级指定技能(适合脚本与单件补装);update 时只升级指定技能 · Named skill list: init skips the picker and installs/upgrades exactly these (good for scripts); update upgrades only these |
|
|
55
|
+
| `--yes`(`-y`) | 跳过确认直接执行;配置版本变化时默认「保留我的 + 官方版另存 .upstream 对照」· Skip confirmation; on config-version change defaults to "keep mine + official copy saved as .upstream" |
|
|
56
|
+
|
|
57
|
+
命令别名:`list` = `ls`、`install` = `init`、`upgrade` = `update`。Command aliases: `list` = `ls`, `install` = `init`, `upgrade` = `update`.
|
|
58
|
+
|
|
59
|
+
## 升级与配置保护 · Upgrade & Config Protection
|
|
60
|
+
|
|
61
|
+
`skill-forge update`(默认升级全部已装技能,可用 `--skills a,b` 指定)在覆盖技能文件前自动保护你的配置。`skill-forge update` (all installed skills by default, or `--skills a,b`) protects your config before overwriting any skill files.
|
|
62
|
+
|
|
63
|
+
- **常驻保护 · Always preserved**:目标目录已存在的 `user-config.md`(及技能 `.preserve` 清单声明的文件)永不被覆盖,你的本地配置永久保留;官方配置内容有更新时另存 `.upstream` 对照文件,可按需手动合并新配置点
|
|
64
|
+
- **版本感知 · Version aware**:官方 `user-config.md` 首行的 `CONFIG_VERSION` 高于你的本地版本(配置结构增/减/改名)时——
|
|
65
|
+
1. 先把你的配置备份为 `user-config.md.bak-<时间戳>`
|
|
66
|
+
2. 交互三选一:`[1] 官方覆盖`(旧配置在备份中随时找回)/ `[2] 保留我的` + 官方版另存 `.upstream` 对照(默认)/ `[3] 稍后处理`(本次不生成对照文件)
|
|
67
|
+
3. `--yes` 或非交互环境默认 `[2]`,最安全
|
|
68
|
+
- **版本一致 · Version match**:无感升级,只更新技能文件,配置原样保留
|
|
69
|
+
- **结构同步 · Structure sync**:升级按 `.installed-manifest` 安装清单精准同步官方文件增删——只清理清单内官方已删除的文件与空目录,用户自建文件一律不动(旧版本安装无清单时跳过清理,升级后补写);`user-config.md`、`.preserve` 清单文件、`.upstream` 对照、`.bak-*` 备份与 `node_modules` 依赖永远不动
|
|
70
|
+
|
|
71
|
+
技能维护者约定 · Maintainer conventions:官方配置结构每次变化(新增/改名/删除配置键)时,`user-config.md` 的 `CONFIG_VERSION` 递增 1,并在 SKILL.md「配置版本机制」节写明迁移规则(AI 每次执行前也会自检该版本)。Whenever the official config structure changes (keys added / renamed / removed), bump `CONFIG_VERSION` in `user-config.md` by 1 and document the migration rules in the SKILL.md "配置版本机制" section (the AI self-checks this version before every run).
|
package/magic-deck/SKILL.md
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: magic-deck
|
|
3
|
-
description: 把内容做成 HTML 形态、PPT
|
|
4
|
-
+ 模板面板「💼 领域」Tab
|
|
3
|
+
description: 把内容做成 HTML 形态、PPT 体验的魔法幻灯(单文件离线打开、零外部依赖)。内置播放引擎(自动播放/循环/间隔可设/从头或当前播放)、键盘热键(翻页/直达/截图/复制/全屏)、十七套内置模板(经典商务/极简留白/杂志画册/黑金发布/时间线叙事/流程步骤/海报宣传/复古报纸/金融报表/蓝图工程/教学板书/高管简报/扁平磁贴/模块网格/暗夜深色/自然清新/统计图表,放映时经「🎨 模板」面板随时切换
|
|
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
|
---
|
|
8
8
|
|
|
9
9
|
# 魔法幻灯生成(magic-deck)
|
|
10
10
|
|
|
11
|
-
把用户内容排版为单文件 HTML 幻灯片(16:9 舞台 + 播放引擎 +
|
|
11
|
+
把用户内容排版为单文件 HTML 幻灯片(16:9 舞台 + 播放引擎 + 十七套风格 + 全屏放映),落盘并自动打开。
|
|
12
12
|
|
|
13
13
|
## 意图边界(与 deck-stage 分流)
|
|
14
14
|
|
|
@@ -19,15 +19,26 @@ disable-model-invocation: false
|
|
|
19
19
|
|
|
20
20
|
0. **读用户配置**(TEMPLATE/THEME/TRANSITION/ANIM/WIDTH/HEIGHT/SEC/FILENAME/DIR 等)→ 先 Read 同目录 `user-config.md`
|
|
21
21
|
1. **收集内容**:解析用户提供的内容(文字/文件/结构化要点),确定页数与每页版式 → 先 Read `resources/content-guide.md` 按内容气质选版式骨架 / 按领域选成套模板 / 按用途定页数节奏 / 按数据挑图表形式
|
|
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 控制)、模板面板(
|
|
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 控制)、模板面板(17 套 + 预览本页)、编辑能力(撤销/重做/页面管理边栏:新页/复页/排序/删页)、播放引擎、热键、截图/复制、全屏纯净模式)→ 先 Read `resources/reference.html` + `resources/deck-spec.md` 两份,以 reference.html 为骨架逐处替换内容
|
|
23
23
|
2.5 **交付前自检**(落盘前必做,硬门禁不可跳过):写工作区 `outputs/<文件名>.html` 后——
|
|
24
24
|
- Bash 起 `python3 -m http.server 8941`(后台,端口占用换 8942/8943…)
|
|
25
25
|
- Playwright headless 自检(缺则 `pip3 install --user playwright`;用系统 Chrome,无需 playwright install 下载浏览器):`p.chromium.launch(channel="chrome", headless=True)` → goto 页面 → 挂 pageerror 监听(零容忍)→ 按页数循环 `go(i)` 把每一页翻完
|
|
26
26
|
- 截首 / 中 / 末三页 PNG,Read 自查:版式正常、文字无溢出截断、图表数据到位、无豆腐块缺字
|
|
27
27
|
- 任何报错或视觉问题:修 HTML → 重检;全绿才进第 3 步
|
|
28
|
-
3.
|
|
28
|
+
3. **落盘与命名**:自检通过后在 DIR 下新建 `{文件名}/` 子目录(`mkdir -p`,总目录统一管理、各次产出自包含互不干扰),`cp` 到该子目录,自动打开浏览器供用户放映。命名三级优先:①用户口头指定文件名 → 用指定名;②未指定且 FILENAME=auto → 按本次内容主题+用途总结中文名(如「智能探针系统-产品介绍」,让用户日后能按名找回继续改);③FILENAME 写死固定名 → 用固定名。重名一律自动加日期后缀,绝不覆盖;落盘目录复用不清空、不改动目录内既有文件
|
|
29
29
|
4. **使用咨询**(用户只问「怎么用 / 使用说明 / 能干什么」等用法、未要求生成)→ 读 `resources/usage-guide.md`,将其内容原样输出(首行标题改为「魔法幻灯生成器使用指南」),不生成 HTML
|
|
30
30
|
|
|
31
|
+
|
|
32
|
+
## 🔧 报修处理流程(用户报页面问题时)
|
|
33
|
+
|
|
34
|
+
用户说「这个页面效果不对 / 布局乱了 / 有 UI 问题 / 某交互坏了」(常附截图或指出具体现象)→ 按以下流程处理,不以「重新生成一份」敷衍:
|
|
35
|
+
|
|
36
|
+
1. **立标准**:先 Read 本 skill 目录 `resources/reference.html` + `resources/deck-spec.md`——reference.html 就是设计标准答案(布局/主题/动画/播放引擎全在代码里),deck-spec.md 是它的规格说明
|
|
37
|
+
2. **找问题**:Read 用户那份问题 html 文件,与 reference 逐处比对(结构顺序 / 主题变量 / 模板面板 / 播放引擎 / 热键 / 截图复制),定位跑偏处;用户给了截图则按截图现象反查
|
|
38
|
+
3. **修复**:以 reference 为准修复那份 html(只修跑偏处,不动正确内容;reference 与 html 不一致时以 reference 为准)
|
|
39
|
+
4. **自证**:Playwright headless(channel="chrome")→ 挂 pageerror 零容忍 → 按页数循环 `go(i)` 翻完每页 → 截问题页 PNG Read 自查恢复标准效果;用户给了问题截图时尽量复现同视角截图做前后对比
|
|
40
|
+
5. **汇报**:一句话说清问题根因 + 修复了什么 + 附截图;若根因在 reference.html 自身(生成结果与 reference 一模一样但仍有问题),顺修 reference.html 与 deck-spec.md 对应处并在汇报中说明「参考模板已同步修正」,避免下一份重蹈覆辙
|
|
41
|
+
|
|
31
42
|
## ⚙️ 配置与自定义
|
|
32
43
|
|
|
33
44
|
**执行本 skill 前必须先 Read 同目录 `user-config.md`**:默认配置(TEMPLATE/THEME/TRANSITION/ANIM/WIDTH/HEIGHT/SEC/FILENAME/DIR 等)与用户模板都在该文件中,以它为准。升级技能时 user-config.md 不会被覆盖,你的修改永久保留;官方更新配置时另存 `user-config.md.upstream` 对照文件,可按需手动合并新配置点。
|
|
@@ -35,13 +46,13 @@ disable-model-invocation: false
|
|
|
35
46
|
## 规则速览
|
|
36
47
|
|
|
37
48
|
- 单文件 HTML 离线双击可打开:禁用 CDN/@import/外链 CSS/JS/图片/网络字体,字体用系统栈
|
|
38
|
-
-
|
|
49
|
+
- 模板十七套(版式骨架)与主题十七套(配色)正交组合,均运行时即点即换:模板经「🎨 模板」面板应用(全部页/仅本页/勾选页),先「👁 预览本页」看效果(不落 data-template,取消自动还原);生成时按 TEMPLATE/口头点名在 slide 挂 data-template 声明默认版式;标题自动映射——timeline 取卡片标题做节点、keynote 取页标题做大观点、magazine 左文右图分栏、steps 卡片转箭头步骤条、vintage 卡片收双栏报纸、poster 要点转斜切色带、finance 百分比转仪表环,切回经典商务恢复原排版内容不丢;`.slide` 自带 `background:var(--bg)` 使单页换肤整页变色
|
|
39
50
|
- 编辑操作全套可回退:Ctrl+Z 撤销 / Ctrl+Shift+Z 重做(工具栏 ↶↷);「▤ 页导航 / G 键」右侧页面管理边栏:点击缩略图跳页、悬停操作条复页/上移/下移/删页;「+ 新页」在边栏头部,16 版式任选插在当前页后;全部编辑只作用于内存,刷新后回到原始 deck
|
|
40
51
|
- 工具栏控件统一 flex 垂直居中:`.toolbar/.group` flex + align-items:center + gap;`.tbtn` inline-flex + gap:6px + line-height:1;checkbox 14×14 与文字 6px 间距,文字不贴控件、上下不偏斜
|
|
41
52
|
- 页面 1280×720 舞台 + 按窗口等比缩放(--sc),窗口任意大小不变形
|
|
42
|
-
- 领域/业务成套模板
|
|
53
|
+
- 领域/业务成套模板 22 套(thesis/proposal/teaching/report/competition/plan/hiring/product/tech/marketing/sales/training/ceremony/finance/medical/law/gov/party/food/travel/festival/charity,六分类):面板「💼 领域」Tab 点选后一键生成整套页面(P 生成器产封面+目录+内容页+图表页+结束页,每套 6-8 页,主版式各不相同);两段确认(profArmed)防误触,pushUndo 可撤销;生成后与版式/主题正交——每页照常挂 data-template 运行时换版式、主题照常换肤;演示页 15 的 22 张 .prof-demo 卡点击直达面板并选中
|
|
43
54
|
- 图表五式动画(L6,容器挂 data-anim-chart):bars 柱状生长(--h 定高 + --bi 错峰)/ line 折线描画(dashoffset 归零 + 圆点按序浮现)/ pie 饼图扇入(弧段 rotate 定起点 + --po 扫入)/ ring 仪表扫弧(顶部起扫 + 中心数字)/ count 数字滚动(data-count + data-count-dec,go() 里 rAF 900ms 缓动);图表动画独立于元素入场体系(图表是「会动的数据」不挂 data-anim);prefers-reduced-motion 全部直显;全部主题变量驱动换肤即变色
|
|
44
|
-
- 动画库与模板/主题正交,收纳在右侧边栏「⚙ 工具」Tab(工具栏 ⚙ 按钮或 G 键进入,应用范围 radio 全部页面/仅本页):翻页八套(slide-lr 左右滑移默认 / fade / slide-ud / zoom / flip 3D / cube 立方翻转 / wipe 平移擦除 / dissolve 溶解模糊,deck 标签 data-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 逐行,运行时拆分标题文字);「开启」复选框一键全关,选择均 localStorage
|
|
55
|
+
- 动画库与模板/主题正交,收纳在右侧边栏「⚙ 工具」Tab(工具栏 ⚙ 按钮或 G 键进入,应用范围 radio 全部页面/仅本页):翻页八套(slide-lr 左右滑移默认 / fade / slide-ud / zoom / flip 3D / cube 立方翻转 / wipe 平移擦除 / dissolve 溶解模糊,deck 标签 data-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 逐行,运行时拆分标题文字);「开启」复选框一键全关,选择均 localStorage 记忆(键按页内嵌唯一 ID 命名空间,多份演示稿互不干扰、改名/移动目录记忆不丢(初始化/生成时头部写 `<meta name="deck-id" content="<UUID>">`,每次 crypto.randomUUID() 生成标准 UUID v4(8-4-4-4-12 十六进制,禁止手写变体、禁止沿用占位与旧值);落盘写文件前顺扫落盘目录下本技能命名的 html,读各文件 id meta 查重,撞号重掷至不重复));prefers-reduced-motion 下全部退化为直切
|
|
45
56
|
- 结构顺序:背景装饰 → 顶部进度条 → 工具栏 → 页码 → 提示 → 左右箭头 → 右侧边栏(sp-tabs 双 Tab:▤ 页面 / ⚙ 工具)→ 舞台页组 → 说明弹层 → 播放引擎
|
|
46
57
|
- 左右箭头不常驻:默认透明,鼠标在页面内才显现;触屏设备(hover:none)保持可见
|
|
47
58
|
- 全屏放映纯净模式:`:root:fullscreen` 下工具栏/页码/提示/箭头/弹层与背景氛围层全部隐藏、页面黑底 `#000`(与 PPT 软件放映一致:幻灯按比例充满画面,比例不匹配处补黑边,绝无主题氛围边框),只留主体;热键全屏下照常生效
|
|
@@ -64,6 +75,10 @@ disable-model-invocation: false
|
|
|
64
75
|
|
|
65
76
|
升级技能时 user-config.md 不会被覆盖(官方更新另存 `user-config.md.upstream` 对照文件)。
|
|
66
77
|
|
|
78
|
+
## 产物升级(回炉)
|
|
79
|
+
|
|
80
|
+
生成 HTML 时头部写版本戳 `<meta name="sf-template" content="magic-deck@2">`(模板升级时递增 @N 并同步 reference.html 与本文档)。用户说「升级旧产物/回炉旧页面/旧演示稿换新样式」时:扫落盘目录下本技能生成的 html,读版本戳筛出旧版(无版本戳或缺少 `<meta name="deck-id">` 稳定 ID 的产物视为 v0 最旧版,一并进清单)→ 列清单(文件/旧版本/手改状态——deck 是单文件产物无 md 底稿,标记「无底稿,正文保留」)→ AskUserQuestion 选全部或部分 → 逐份升级:浅升级(CSS/JS 变化)对旧页替换 `<style>` 块与交互脚本、正文与 slide 内容原样保留;深升级(DOM 结构变化)提取旧页 slide 内容按当前 reference.html 重建,先备份旧版 `.bak-时间戳` → 报告三段式:✅ 已升级清单 / ⚠️ 手改保留说明 / 🟡 失败项原因。模板改动分级:业务改动(板块/段落/标题体系)、数据格式改动(字段/存储结构)、页面改动(样式/布局/交互)任一发生即模板升级,版本戳 +1 并同步 reference.html 与本文档;纯措辞润色不 bump。每次生成 HTML 时顺扫落盘目录读版本戳:发现旧版产物(vN-1 或无版本戳的历史产物)主动告知「技能模板已升级至 vN,检测到 X 份旧版演示稿,说『把我旧演示稿都升级成新样式』即可一键升级」,不让用户背触发语。
|
|
81
|
+
|
|
67
82
|
## 📏 文档同步自检纪律(维护者必读)
|
|
68
83
|
|
|
69
84
|
- 修改本 skill 任何文件后,必须 grep 全文核对:新词已命中、旧词零残留(改一处查一处)
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
> 生成 HTML 前必读:按内容气质挑版式骨架、按领域挑成套模板、按用途定页数节奏、按数据挑图表形式。拿不准时用 AskUserQuestion 让用户在候选里挑,不替用户做风格决策。
|
|
4
4
|
|
|
5
|
-
## 一、内容气质 →
|
|
5
|
+
## 一、内容气质 → 版式骨架(十七套怎么挑)
|
|
6
6
|
|
|
7
7
|
| 内容类型 | 首选版式 | 备选 | 理由 |
|
|
8
8
|
|:---|:---|:---|:---|
|
|
@@ -18,8 +18,9 @@
|
|
|
18
18
|
| 极简个人页 / 简历 | minimal 极简留白 | bento 模块网格 | 居中大字 + 要点列表 |
|
|
19
19
|
| 暗色氛围 / 发布会备选 | dark 暗夜深色 | keynote 黑金发布 | 深底高对比,适合屏幕放映 |
|
|
20
20
|
| 清新生活 / 公益 | nature 自然清新 | minimal 极简留白 | 绿色系温和感 |
|
|
21
|
+
| 统计看板 / 数据大屏 | stats 统计图表 | finance 金融报表 | KPI 大数字横排 + 图表框架,看板气质 |
|
|
21
22
|
|
|
22
|
-
##
|
|
23
|
+
## 二、领域成套模板(二十二套,六分类怎么挑)
|
|
23
24
|
|
|
24
25
|
用户内容主题与某套高度契合时,优先推荐领域模板(一键生成整套:封面 + 目录 + 内容页 + 图表页 + 结束页,每套 6-8 页):
|
|
25
26
|
|
|
@@ -27,12 +28,12 @@
|
|
|
27
28
|
|:---|:---|:---|
|
|
28
29
|
| 教育学术 | thesis 毕业答辩 / proposal 开题报告 / teaching 教学课件 | 学位答辩、课题申报、课堂 |
|
|
29
30
|
| 职场商务 | report 年终汇报 / competition 竞聘述职 / plan 商业计划书 / hiring 求职简历 | 述职、融资、求职 |
|
|
30
|
-
| 企业运营 | product 产品发布 / tech 科技发布会 / marketing 营销方案 / training 企业培训 / ceremony 年会盛典 |
|
|
31
|
+
| 企业运营 | product 产品发布 / tech 科技发布会 / marketing 营销方案 / sales 销售方案 / training 企业培训 / ceremony 年会盛典 | 发布会、销售提案、培训、年会 |
|
|
31
32
|
| 专业领域 | finance 金融分析 / medical 医疗科普 / law 法律合规 | 行业分析、科普、合规宣贯 |
|
|
32
33
|
| 党政政务 | gov 政务汇报 / party 党建汇报 | 政府汇报、党建活动 |
|
|
33
34
|
| 生活场景 | food 餐饮品牌 / travel 旅游攻略 / festival 节日庆典 / charity 公益慈善 | 探店、攻略、节庆、公益 |
|
|
34
35
|
|
|
35
|
-
生成后领域模板与版式 / 主题正交:每页仍可挂 data-template
|
|
36
|
+
生成后领域模板与版式 / 主题正交:每页仍可挂 data-template 运行时换十七版式、主题照常换肤,不是死骨架。
|
|
36
37
|
|
|
37
38
|
## 三、页数与节奏
|
|
38
39
|
|