1实现原理 · 为什么它能做到
它是一条分阶段流水线:分析内容→(强制)确认→生成大纲→生成提示词→出图→合并 PPTX/PDF;阶段产物全部落盘,可按 --outline-only/--prompts-only/--images-only 断点续跑。
Input → Preferences → Analyze → [Check Existing?] → Confirm (1-2 rounds) → Outline → [Review Outline?] → Prompts → [Review Prompts?] → Images → Merge → Complete
风格系统 = 16 个预设 × 4 个维度(texture/mood/typography/density)自由组合,每个预设映射到一组维度取值。
| `blueprint` (Default) | grid + cool + technical + balanced | Architecture, system design |
内容信号命中关键词表就自动选型,未命中回退 blueprint。
| tutorial, learn, education, guide, beginner | `sketch-notes` |
按篇幅推荐页数:<1000 词 5-10 页 … >5000 词 20-30 页(并建议拆分)。
| > 5000 words | 20-30 (consider splitting) |
Step 2 是硬门禁:风格、受众、页数、大纲评审、提示词评审五项确认均不可跳过。
**Step 2 confirmation required** - do not skip (style, audience, slides, outline review, prompt review)
偏好从 EXTEND.md 加载,先查项目级再查用户级($HOME)。
# Check project-level first
产物目录结构固定:源文件、outline.md、prompts/、NN-slide-*.png、pptx、pdf。
slide-deck/{topic-slug}/
合并由两个本地脚本承担:npx -y bun 调用 merge-to-pptx.ts / merge-to-pdf.ts。
npx -y bun ${SKILL_DIR}/scripts/merge-to-pptx.ts <slide-deck-dir>
出图不在本仓实现,而是让 agent『选择可用的图像生成 skill』按同一 session ID 顺序生成。
1. Select available image generation skill
改图纪律:先改提示词文件,再 --regenerate 指定页。
**IMPORTANT**: When updating slides, ALWAYS update the prompt file (`prompts/NN-slide-{slug}.md`) FIRST before regenerating.
2核心能力
3外部依赖
| 类型 | 依赖 |
|---|---|
| api | 运行时图像生成后端(由 agent 选择『可用的图像生成 skill』完成出图,用户内容/提示词由此出网) |
| cli | bun / npx -y bun(运行合并脚本) |
4风险提醒 风险提醒:橙色 · 评估后使用
- 素材出网(判橙主因):每页提示词由用户文章内容组装,Step 7 交由运行时选定的图像生成服务生成,敏感素材请先确认后端与额度策略。
- 出图后端不确定:本 fork 未点名具体图像后端,端点由运行时环境决定,行为随宿主变化,难以在 skill 层审计。
- 提示词通道可能混入生成指令:prompts 文件同时作为图像后端提示词(本 bundle 未展开 base-prompt.md,无法核对其结尾指令,属待核面)。
- 文字类错误只能整页重生成:出图模型的排版/文字不可靠,且策略禁止事后贴字修补,正式商务演示需谨慎。
- 成本与失败模式:每页一次外部生成调用,20-30 页即同量级调用;失败需按提示词重试。
5第二遍独立确认
- [ok] 自身脚本无网络、无环境变量、无 spawn — skills/canghe-slide-deck/scripts/ 只有 merge-to-pdf.ts 与 merge-to-pptx.ts;bundle 风险扫描『網路請求:無命中』『憑證/環境變數』仅命中 ${SKILL_DIR} 与 $HOME 路径。
- [ok] 出图是跨 skill 委派而非本仓实现 — Step 7『1. Select available image generation skill』;本仓无任何图像生成脚本或端点声明。档位按『把用户素材送外部生成后端』落 orange。
- [ok] 确认门禁措辞与位置 — Notes 与 Step 2 均标注 ⚠️ REQUIRED;Notes 重复『Step 2 confirmation required - do not skip』。
- [ok] 合并脚本行为 — 风险扫描『寫盤/產生檔案』命中 merge-to-pdf.ts 的 Bun.write 与 merge-to-pptx.ts 的 pptx.writeFile,均为本地输出。
- [ok] 风格/维度数量与文件结构 — §1 清单列出 16 个 references/styles/*.md、5 个 references/dimensions/*.md(含 presets.md),与 SKILL.md 表格一致。
- [ok] 未展开文件的处理 — bundle 只展开 12 个最相关文件;base-prompt.md、design-guidelines.md 等未展开,故未对其内容下结论,仅按 §1 清单列为内部资产。
- [ok] 档位复核 — 自身脚本面绿蓝级,但核心用途将用户内容送入运行时图像生成服务 → 按站内『生成後端類』先例判 orange;无 red 触发项(无逆向/冒充/绕过/安全降级/任意代码执行)。
- [ok] 元数据与 commit — skill.commit 与 audit.skill_commit = dd0bf355955b4c82b764740b4183c86a72ba0e0c;license=MIT(仓库根 LICENSE),installs=null。
6结论
5efda196172fff6e…dd0bf35595