ppt-deck-builder

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

PPT Deck Builder

PPT Deck Builder

This is a portable, single-folder PPT generation skill. Everything needed by the workflow lives inside this skill folder: process guidance, references, templates, helper scripts, and packaging tools.
这是一个可移植的单文件夹PPT生成技能。 工作流所需的所有内容都存放在该技能文件夹内:流程指南、参考资料、模板、辅助脚本和打包工具。

Use When

适用场景

  • The user wants a reusable PPT production workflow that can be copied to another machine or repo.
  • The user wants to build a new deck from notes, PDFs, spreadsheets, or an existing deck.
  • The user wants to generate slide images with fixed text and package them into a
    .pptx
    .
  • The user wants one skill folder instead of multiple linked skills.
  • The user wants the image provider to stay replaceable so OpenClaw or another agent can switch providers later.
  • The user wants to choose a visual direction such as dark blue business, light consulting, or whiteboard hand-drawn before generation.
  • 用户需要一个可复用的PPT制作工作流,可复制到其他机器或仓库中使用。
  • 用户希望从笔记、PDF、电子表格或现有演示文稿创建新的演示文稿。
  • 用户希望生成带有固定文本的幻灯片图像,并将其打包为
    .pptx
    文件。
  • 用户希望使用单一技能文件夹,而非多个关联技能。
  • 用户希望图像提供者可替换,以便OpenClaw或其他Agent后续能切换提供者。
  • 用户希望在生成前选择视觉风格方向,如深蓝色商务风、浅色咨询风或白板手绘风。

Do Not Use When

不适用场景

  • The user only wants one sentence rewritten.
  • The user only wants speaking advice, with no deck production.
  • The user needs fully editable theme engineering beyond this workflow's image-based packaging path.
  • 用户仅需要改写一句话。
  • 用户仅需要演讲建议,无需制作演示文稿。
  • 用户需要超出本工作流基于图像的打包路径之外的、完全可编辑的主题设计。

Setup

环境配置

Read
references/setup.md
before first use. This workflow expects:
  • bash
  • python3
  • requests
  • python-pptx
  • an image provider selected by CLI, plan file, or environment variable
  • provider-specific environment variables only for the chosen provider
Before first generation:
  • Ask whether a RunningHub API key is available.
  • Default model is
    rhart-image-n-g31-flash
    .
  • If no provider is specified, stay on
    runninghub_g31
    .
OpenClaw-safe paths use
{baseDir}
. Plain shell usage still works from the root of this skill folder with
bash scripts/...
.
首次使用前请阅读
references/setup.md
。 本工作流依赖以下环境:
  • bash
  • python3
  • requests
  • python-pptx
  • 通过CLI、计划文件或环境变量选择的图像提供者
  • 仅针对所选提供者的特定环境变量
首次生成前:
  • 确认是否拥有RunningHub API密钥。
  • 默认模型为
    rhart-image-n-g31-flash
  • 若未指定提供者,则默认使用
    runninghub_g31
兼容OpenClaw的路径使用
{baseDir}
。 在本技能文件夹根目录下,直接使用
bash scripts/...
即可通过普通Shell执行。

Workflow Decision Tree

工作流决策树

  1. If the input is messy or vague, start with story design.
  2. Choose one deck-level style preset or define a custom style direction before prompt writing.
  3. If the page sequence exists, define the page type, page identity sentence, and reading path before prompt writing.
  4. Compress page titles and visible text before adding style language.
  5. If the deck is image-based, generate a small reference pack before the full batch.
  6. If one page sets the desired visual standard, treat it as a style anchor for later pages when the provider supports reference images.
  7. If text looks unstable, simplify the page before adding more visual detail.
  8. After full-batch generation, build review contact sheets and inspect the whole deck.
  9. If any page has text, layout, tone, or style-drift issues, rerun only that page and review again.
  10. Package only after the full image set is reviewed and approved.
  1. 若输入内容杂乱或模糊,先从故事线设计开始。
  2. 在编写提示词前,选择一个演示文稿级别的样式预设或定义自定义风格方向。
  3. 若页面顺序已确定,在编写提示词前先定义页面类型、页面核心描述句和阅读路径。
  4. 在添加风格描述前,先压缩页面标题和可见文本。
  5. 若演示文稿为图像型,在全量生成前先生成一个小型参考样本包。
  6. 若某一页符合预期视觉标准,当图像提供者支持参考图像时,将其作为后续页面的风格锚点。
  7. 若文本显示不稳定,先简化页面内容再添加更多视觉细节。
  8. 全量生成后,创建审阅用联系表并检查整个演示文稿。
  9. 若任何页面存在文本、布局、语气或风格偏差问题,仅重新生成该页面并再次审阅。
  10. 仅在所有图像集通过审阅并获批后,再进行打包操作。

Core Workflow

核心工作流

1. Define the deck job

1. 定义演示文稿任务

  • Identify audience, objective, and expected action.
  • Choose a storyline pattern.
  • Choose a deck-level style preset early. Default to a business presentation style unless the user explicitly wants a stronger style such as whiteboard hand-drawn.
  • Reduce the deck to one message per page.
  • Draft a page list with title, role, and key takeaway.
Read when needed:
  • references/story-patterns.md
  • references/audience-and-goals.md
  • references/style-presets.md
  • references/workflow-playbook.md
  • 明确受众、目标和期望行动。
  • 选择故事线模式。
  • 尽早选择演示文稿级别的样式预设。除非用户明确要求更强风格(如白板手绘风),否则默认使用商务演示风格。
  • 将演示文稿简化为每页传达一个核心信息。
  • 草拟包含标题、页面作用和核心要点的页面列表。
必要时阅读以下文件:
  • references/story-patterns.md
  • references/audience-and-goals.md
  • references/style-presets.md
  • references/workflow-playbook.md

2. Build the page map

2. 构建页面映射

  • Assign a page type to each page.
  • Write one page identity sentence for each page such as
    This is a Chinese client-facing PPT path page, not a poster.
  • Lock the deck style at the same time. Put style exceptions on the page only when a page genuinely needs to break the deck standard.
  • Keep a clear reading order.
  • Choose a visual job for the page: decision, diagnosis, path, matrix, rollout, results, or conclusion.
  • Avoid dense structures before the narrative is stable.
  • If the user wants a text-heavy image page, define the text regions before expanding the copy.
Read when needed:
  • references/page-types.md
  • references/layout-patterns.md
  • references/style-presets.md
  • references/workflow-playbook.md
  • 为每个页面分配页面类型。
  • 为每个页面编写一句核心描述,例如“这是面向中国客户的PPT路径页,而非海报”。
  • 同时锁定演示文稿风格。仅当页面确实需要打破演示文稿标准风格时,才设置页面级别的风格例外。
  • 保持清晰的阅读顺序。
  • 为页面选择视觉任务:决策型、诊断型、路径型、矩阵型、推广型、结果型或结论型。
  • 在叙事内容稳定前,避免使用复杂结构。
  • 若用户需要文本密集型图像页面,在添加更多文本前先确定每句话的放置位置。
必要时阅读以下文件:
  • references/page-types.md
  • references/layout-patterns.md
  • references/style-presets.md
  • references/workflow-playbook.md

3. Compress page language

3. 压缩页面文本

  • Shorten titles before writing prompts.
  • Keep card titles short and stable.
  • Prefer noun phrases over spoken-sentence titles.
  • Remove repeated text and low-value labels.
  • Decide what absolutely must appear as visible text.
  • If the user wants higher information density, first decide where each sentence belongs before adding more text.
  • Do not raise information density by repeating the same idea in both the diagram area and the footer area.
  • Treat the page as an integrated text-and-background PPT page, not as a background image that will be fixed later.
  • For Chinese image pages, prefer fewer but larger text groups over many scattered micro-labels.
  • For whiteboard-style pages, reduce visible text even earlier and prefer 3-6 large handwritten groups instead of many tiny labels.
Use these local resources:
  • assets/page_brief_template.md
  • references/prompt-rules.md
  • references/workflow-playbook.md
  • 在编写提示词前先缩短标题。
  • 保持卡片标题简短且固定。
  • 优先使用名词短语而非口语化句子作为标题。
  • 删除重复文本和低价值标签。
  • 确定必须显示为可见文本的内容。
  • 若用户需要更高的信息密度,先确定每句话的归属位置再添加更多文本。
  • 不要通过在图表区域和页脚区域重复同一内容来提高信息密度。
  • 将页面视为集成了文本和背景的PPT页面,而非后续需要修改的背景图。
  • 对于中文图像页面,优先使用少量大文本块,而非多个分散的微标签。
  • 对于白板风格页面,更早减少可见文本,优先使用3-6个大的手写文本块,而非多个小标签。
使用以下本地资源:
  • assets/page_brief_template.md
  • references/prompt-rules.md
  • references/workflow-playbook.md

4. Build prompt-ready page plans

4. 构建可用于生成提示词的页面计划

  • Work one page at a time.
  • Start each prompt with page identity and page type before style words.
  • Carry the chosen
    style_preset
    into each page plan. Only use page-level style overrides when the deck needs a controlled exception.
  • Fix the exact text lines allowed on the page.
  • Map each text line to one region.
  • State the reading path directly.
  • Give each page a clear composition, not just a generic style.
  • Keep provider choice separate from page story and layout decisions.
  • Preserve the page's native structure when adding more text. A path page should stay a path page, a matrix page should stay a matrix page, and a comparison page should stay a comparison page.
  • Keep the deck's primary business visual standard first.
  • Use a light consulting-style layout with dark text only as a fallback when dense text remains blurry or repetitive after prompt repair.
  • When a model supports richer text rendering, still avoid long paragraph blocks until a reference pack proves the layout is stable.
  • If the chosen style is
    whiteboard_handdrawn
    , explicitly lock the whiteboard borders, zero room background, handwritten Chinese, hand-drawn illustration behavior, and mascot policy if any.
Use these local resources:
  • references/prompt-rules.md
  • references/provider-adapters.md
  • references/style-presets.md
  • assets/slide_plan_template.json
  • assets/page_brief_template.md
  • 逐页处理。
  • 每个提示词先从页面核心描述和页面类型开始,再添加风格词汇。
  • 将所选的
    style_preset
    应用到每个页面计划中。仅当演示文稿需要受控的风格例外时,才使用页面级别的风格覆盖。
  • 固定页面上允许出现的准确文本行。
  • 将每个文本行映射到一个区域。
  • 直接说明阅读路径。
  • 为每个页面指定清晰的布局,而非仅通用风格。
  • 将提供者选择与页面故事和布局决策分开。
  • 添加更多文本时保留页面的原生结构:路径页始终是路径页,矩阵页始终是矩阵页,对比页始终是对比页。
  • 优先保持演示文稿的核心商务视觉标准。
  • 当密集文本仍然模糊或重复时,使用浅色咨询风格布局搭配深色文本作为 fallback 方案。
  • 即使模型支持更丰富的文本渲染,在参考样本包验证布局稳定前,仍避免使用长段落块。
  • 若所选风格为
    whiteboard_handdrawn
    ,需明确锁定白板边框、无额外背景、手写中文、手绘插图样式以及吉祥物规则(如有)。
使用以下本地资源:
  • references/prompt-rules.md
  • references/provider-adapters.md
  • references/style-presets.md
  • assets/slide_plan_template.json
  • assets/page_brief_template.md

5. Generate a reference pack first

5. 先生成参考样本包

Use a small sample to validate:
  • text sharpness
  • card consistency
  • title wrapping
  • reading order
  • overall business tone
  • style fidelity to the selected preset
  • dense-page readability
  • no repeated footer or summary text
  • whether the page reads like a client-facing slide instead of a poster or training handout
  • whether one approved page can act as a style anchor for later pages
OpenClaw-safe reference pack:
bash
bash {baseDir}/scripts/run_reference_pack.sh plan.json output_dir
Plain shell from the skill root:
bash
bash scripts/run_reference_pack.sh plan.json output_dir
使用小型样本验证以下内容:
  • 文本清晰度
  • 卡片一致性
  • 标题换行情况
  • 阅读顺序
  • 整体商务语气
  • 与所选预设的风格契合度
  • 密集页面的可读性
  • 无重复的页脚或摘要文本
  • 页面是否符合客户演示幻灯片的风格,而非海报或培训手册
  • 是否可将一个已获批页面作为后续页面的风格锚点
兼容OpenClaw的参考样本包生成命令:
bash
bash {baseDir}/scripts/run_reference_pack.sh plan.json output_dir
在技能文件夹根目录下的普通Shell命令:
bash
bash scripts/run_reference_pack.sh plan.json output_dir

6. Generate the full batch

6. 全量生成

Important:
  • Do not stop after writing the plan file.
  • Do not package a deck before slide images exist.
  • If the user asked to actually generate a PPT, the workflow is not complete until image generation has run, the generated pages have been reviewed, and the deck has been packaged.
The image provider can be selected in this order:
  1. Slide-level
    image_provider
  2. CLI
    --provider
  3. Plan-level
    image_provider
  4. Environment variable
    PPT_IMAGE_PROVIDER
  5. Default
    runninghub_g31
Notes:
  • The built-in
    runninghub_g31
    adapter targets the RunningHub
    rhart-image-n-g31-flash/text-to-image
    path by default.
  • If the backend should use reference images, image editing, or multi-image style anchoring, switch to
    command
    and let OpenClaw own that adapter logic.
  • If the user wants strong cross-page style continuation such as a whiteboard course deck, prefer a sample-first workflow and treat one approved page as the style anchor for later reruns.
Built-in providers:
  • runninghub_g31
  • command
command
is the generic escape hatch. It lets OpenClaw or another agent replace the image backend without changing the main workflow script.
OpenClaw-safe full batch:
bash
bash {baseDir}/scripts/run_image_batch.sh plan.json output_dir
Plain shell from the skill root:
bash
bash scripts/run_image_batch.sh plan.json output_dir
OpenClaw-safe end-to-end generate + package:
bash
bash {baseDir}/scripts/run_full_deck.sh plan.json output_dir deck.pptx
Plain shell from the skill root:
bash
bash scripts/run_full_deck.sh plan.json output_dir deck.pptx
OpenClaw-safe single-page rerun:
bash
bash {baseDir}/scripts/rerun_single_page.sh plan.json output_dir 8
重要提示:
  • 不要在写完计划文件后就停止操作。
  • 不要在幻灯片图像生成前就打包演示文稿。
  • 若用户要求实际生成PPT,需完成图像生成、页面审阅和演示文稿打包三个步骤,工作流才算完成。
图像提供者的选择优先级如下:
  1. 幻灯片级别的
    image_provider
  2. CLI参数
    --provider
  3. 计划文件级别的
    image_provider
  4. 环境变量
    PPT_IMAGE_PROVIDER
  5. 默认值
    runninghub_g31
注意事项:
  • 内置的
    runninghub_g31
    适配器默认指向RunningHub的
    rhart-image-n-g31-flash/text-to-image
    接口。
  • 若后端需要使用参考图像、图像编辑或多图像风格锚定功能,切换为
    command
    提供者,由OpenClaw处理适配器逻辑。
  • 若用户需要跨页面的强风格延续(如白板课程演示文稿),优先采用样本优先的工作流,并将一个已获批页面作为后续重新生成的风格锚点。
内置提供者:
  • runninghub_g31
  • command
command
是通用的兜底选项,允许OpenClaw或其他Agent在不修改主工作流脚本的情况下替换图像后端。
兼容OpenClaw的全量生成命令:
bash
bash {baseDir}/scripts/run_image_batch.sh plan.json output_dir
在技能文件夹根目录下的普通Shell命令:
bash
bash scripts/run_image_batch.sh plan.json output_dir
兼容OpenClaw的端到端生成+打包命令:
bash
bash {baseDir}/scripts/run_full_deck.sh plan.json output_dir deck.pptx
在技能文件夹根目录下的普通Shell命令:
bash
bash scripts/run_full_deck.sh plan.json output_dir deck.pptx
兼容OpenClaw的单页重新生成命令:
bash
bash {baseDir}/scripts/rerun_single_page.sh plan.json output_dir 8

7. Review the generated deck, then package

7. 审阅生成的演示文稿,然后打包

Check every page for wording accuracy, text sharpness, hierarchy, layout noise, repeated text, and client-facing business tone. Do not treat generation success as delivery success. Build review contact sheets, inspect the whole deck, rerun only the bad pages, and package only after the corrected image set is approved.
OpenClaw-safe contact sheet review:
bash
python3 {baseDir}/scripts/build_contact_sheet.py output_dir
Plain shell from the skill root:
bash
python3 scripts/build_contact_sheet.py output_dir
OpenClaw-safe single-page repair:
bash
bash {baseDir}/scripts/rerun_single_page.sh plan.json output_dir 8
OpenClaw-safe packaging after review:
bash
bash {baseDir}/scripts/package_image_deck.sh output_dir deck.pptx plan.json
Plain shell from the skill root:
bash
bash scripts/package_image_deck.sh output_dir deck.pptx plan.json
Read when needed:
  • references/qa-checklist.md
检查每一页的措辞准确性、文本清晰度、层级结构、布局噪音、重复文本以及客户面向的商务语气。 不要将生成成功等同于交付成功。创建审阅用联系表,检查整个演示文稿,仅重新生成有问题的页面,在修正后的图像集获批后再进行打包。
兼容OpenClaw的联系表审阅命令:
bash
python3 {baseDir}/scripts/build_contact_sheet.py output_dir
在技能文件夹根目录下的普通Shell命令:
bash
python3 scripts/build_contact_sheet.py output_dir
兼容OpenClaw的单页修复命令:
bash
bash {baseDir}/scripts/rerun_single_page.sh plan.json output_dir 8
兼容OpenClaw的审阅后打包命令:
bash
bash {baseDir}/scripts/package_image_deck.sh output_dir deck.pptx plan.json
在技能文件夹根目录下的普通Shell命令:
bash
bash scripts/package_image_deck.sh output_dir deck.pptx plan.json
必要时阅读以下文件:
  • references/qa-checklist.md

Failure Recovery

故障恢复

  • If the provider returns busy or queue-related failures, rerun a smaller sample with
    max-workers=1
    .
  • If text quality drops, simplify the page, shorten titles, and rerun only that page.
  • If the backend should change, switch to
    command
    instead of rewriting the deck workflow.
  • If a page keeps failing, repair the story or prompt first, not the packaging step.
  • If a page looks stylish but not presentation-ready, strengthen page identity, reading path, and text-region mapping before changing colors or effects.
  • If a whiteboard-style page starts adding the wrong mascot, wrong title, or extra handwritten notes, tighten the exact text list and explicitly forbid replacement or summary text before rerunning that page.
  • 若提供者返回繁忙或队列相关错误,使用
    max-workers=1
    参数重新生成更小的样本。
  • 若文本质量下降,简化页面内容、缩短标题,仅重新生成该页面。
  • 若需要更换后端,切换为
    command
    提供者,而非重写演示文稿工作流。
  • 若某一页持续生成失败,先修复故事线或提示词,而非打包步骤。
  • 若页面风格美观但不符合演示文稿要求,先强化页面核心描述、阅读路径和文本区域映射,再调整颜色或效果。
  • 若白板风格页面出现错误的吉祥物、错误标题或额外手写笔记,在重新生成前先严格限定准确文本列表,并明确禁止替换或摘要文本。

Local Tools In This Folder

本文件夹中的本地工具

  • scripts/generate_from_plan.py
  • scripts/build_pptx_from_images.py
  • scripts/run_reference_pack.sh
  • scripts/run_image_batch.sh
  • scripts/run_full_deck.sh
  • scripts/rerun_single_page.sh
  • scripts/package_image_deck.sh
  • scripts/build_contact_sheet.py
  • scripts/check_env.sh
  • scripts/provider_command_template.py
  • scripts/provider_mock_png.py
  • scripts/generate_from_plan.py
  • scripts/build_pptx_from_images.py
  • scripts/run_reference_pack.sh
  • scripts/run_image_batch.sh
  • scripts/run_full_deck.sh
  • scripts/rerun_single_page.sh
  • scripts/package_image_deck.sh
  • scripts/build_contact_sheet.py
  • scripts/check_env.sh
  • scripts/provider_command_template.py
  • scripts/provider_mock_png.py

Guardrails

约束规则

  • One page should do one job.
  • Prefer fewer, larger text groups in image-based pages.
  • Shorten titles before prompting; do not hope the model will solve crowded copy.
  • Give each page a composition job, not just a style direction.
  • Define page identity and reading path before adding visual styling.
  • Treat image pages as final text-and-background slides, not as background art to be fixed later.
  • Approve a small reference pack before full-batch generation.
  • Review the full generated deck before final delivery.
  • Do not treat plan writing as deck generation.
  • Do not package before validating that the expected slide images exist.
  • Do not hide story problems with visual polish.
  • Keep provider logic replaceable and isolated from the story and layout logic.
  • Keep this folder self-contained when sharing it.
  • 一页只做一件事。
  • 在图像型页面中优先使用少量大文本块。
  • 编写提示词前先缩短标题;不要指望模型解决文本拥挤的问题。
  • 为每个页面指定布局任务,而非仅风格方向。
  • 在添加视觉风格前,先定义页面核心描述和阅读路径。
  • 将图像页面视为最终的文本+背景幻灯片,而非后续需要修改的背景图。
  • 在全量生成前先获批一个小型参考样本包。
  • 在最终交付前审阅完整的生成演示文稿。
  • 不要将计划编写等同于演示文稿生成。
  • 在验证预期幻灯片图像存在前不要打包。
  • 不要用视觉修饰掩盖故事线问题。
  • 保持提供者逻辑可替换,并与故事线和布局逻辑分离。
  • 分享时保持本文件夹的独立性。