slides
SKILL_762929974 · vv1.0 · 通用工具 · Owner:— · 发布于 2026-08-11
调用 130
下载 1
点赞 0
浏览 0
- 简介
- 通用PPT处理工具,支持幻灯片创建、编辑、美化、模板填充及长材料转换。
- 触发词
- PPT生成,PPT编辑,PPT美化,模板填充,报告转PPT
- 分发渠道
- ARK Engine
- 功能测试
- ✅ 通过 · 业务评审:✅ 通过
- 技能包文件
- slides/.DS_Store、slides/LICENSE.txt、slides/SKILL.md、slides/agents/openai.yaml、slides/assets/pptxgenjs_helpers/code.js、slides/assets/pptxgenjs_helpers/image.js、slides/assets/pptxgenjs_helpers/index.js、slides/assets/pptxgenjs_helpers/latex.js …共113个文件
使用示例:帮我把这份长报告转换成10页PPT
SKILL.md 全文
Frontmatter
| name | slides |
|---|---|
| description | "General PowerPoint routing skill for non-Noah slide work. Use when a PPT/PPTX/POTX/deck/presentation is the requested artifact or an existing .pptx/.potx needs to be opened, read, analyzed, modified, beautified, filled from a template, combined, split, or otherwise touched. Trigger for creating slide decks, pitch decks, reports, outline-to-PPT tasks, template-based PPT creation, and small edits to already generated decks. Do not start PPT work with ad hoc Bash/python-pptx/openpyxl/pandas when this skill applies. Do not use for Noah/诺亚/Noah Holdings/诺亚控股 standard-branded decks; use noah-ppt-layout-standard instead." |
| license | Proprietary. LICENSE.txt has complete terms |
Slides Skill
Use this skill for general PPT work. For Noah/诺亚-branded standard decks, use the dedicated Noah standard skill instead.Request Router
Before creating, editing, or unpacking any deck, classify the request into: 1. exactly one primary path; and 2. zero or more secondary capabilities. State the chosen primary path and secondary capabilities briefly, then load only the guide required for the primary path. Secondary capabilities modify local behavior inside that path; they do not start separate workflows.Primary Paths
Choose exactly one primary path by priority. If more than one path matches, use this order:noah-route > edit-existing / beautify-existing > template-fill > long-material > create-generic > outline-only
| Primary Path | Use When | Action |
|--------------|----------|--------|
| noah-route | Request mentions Noah, 诺亚, Noah Holdings, 诺亚控股, 诺亚财富, ARK Wealth, Olive, Glory, 诺亚风格, or Noah standard templates | Do not generate in this skill. Use the dedicated noah-ppt-layout-standard skill if available. |
| edit-existing | A PPTX exists and the user asks for specific changes, replacements, deletions, additions, page edits, wording changes, or local layout fixes | Read [editing.md](editing.md). Build a deck-level change map, then batch edits. |
| beautify-existing | A PPTX exists and the user asks to make it prettier, more polished, more unified, more professional, or adjust style | Read [editing.md](editing.md). Preserve content order and meaning; do local style/layout changes instead of rebuilding the whole deck unless explicitly requested. |
| template-fill | User asks to use, follow, preserve, or fill an uploaded/reference template | Read [editing.md](editing.md). Inventory the template, map content to layouts, then batch structural/text edits. |
| long-material | User provides a long report, transcript, article, research material, or dense source files to convert into PPT | First condense into a slide plan, default to 8-12 slides unless the user specifies length, then create with direct PptxGenJS. |
| create-generic | User asks to generate a new general PPT/PPTX and the request is not Noah-branded | Read [pptxgenjs.md](pptxgenjs.md), write direct PptxGenJS, and run qa.py. |
| outline-only | User asks for PPT ideas, outline, structure, page plan, script, or framework, but does not ask for a PPTX/file/export | Return a structured text outline. Do not create a PPTX. |
Secondary Capabilities
Apply these only inside the chosen primary path: | Secondary Capability | Trigger | Required Behavior | |----------------------|---------|-------------------| |data-chart | KPIs, statistics, comparison, trends, returns, dashboards, charts, gauges, progress bars, or matrices | Use [pptxgenjs.md](pptxgenjs.md) chart primitives first. Do not explore common chart APIs with temporary decks. |
| style-refresh | prettier, polished, modern, premium, unified style, color improvement, typography, spacing | Preserve the main path. Improve style locally; do not rebuild the storyline unless [editing.md](editing.md) triage explicitly selects rebuild-existing. |
| language-preserve | User request is in a specific language, especially Chinese | Keep all audience-facing slide text and user-facing progress/final messages in that language. |
| asset-aware | User uploads images, logos, screenshots, templates, spreadsheets, PDFs, docs, or data files | Inspect the files in parallel where possible, then use only the needed extracted content/assets. |
Coverage rule: these primary paths plus secondary capabilities cover normal PPT requests. If the user asks only for analysis of a PPT, use edit-existing in analysis-only mode and do not write files.
Small edit rule: if the user wants to modify an already generated or uploaded PPT with a narrow request such as "change this title", "replace page 3 text", "remove two slides", "add one chart", "make this page cleaner", or "fix the colors", stay in edit-existing. Do not recreate the deck from scratch unless the user explicitly asks for a full rebuild.
Quick Reference
| Task | Guide | |------|-------| | Read/analyze content |python -m markitdown presentation.pptx |
| Edit or create from template | Read [editing.md](editing.md) |
| Create from scratch | Read [pptxgenjs.md](pptxgenjs.md) and write direct PptxGenJS |
---
Script Paths
Resolve scripts from the skill root. On the server the default is${SKILLS_ROOT:-/mnt/agentrun_sg/skills}/slides; do not embed workstation paths.
SKILL_ROOT="${SLIDES_SKILL_ROOT:-${SKILLS_ROOT:-/mnt/agentrun_sg/skills}/slides}"
Key scripts:
$SKILL_ROOT/scripts/qa.py$SKILL_ROOT/scripts/validate_content.py$SKILL_ROOT/scripts/fix_pptxgenjs_ooxml.js$SKILL_ROOT/scripts/fix_pptxgenjs_charts.js$SKILL_ROOT/scripts/fix_content_types.js$SKILL_ROOT/scripts/inspect_deck.py$SKILL_ROOT/scripts/apply_manifest_edits.py$SKILL_ROOT/scripts/extract_text_inventory.py$SKILL_ROOT/scripts/apply_text_manifest.py$SKILL_ROOT/scripts/thumbnail.py$SKILL_ROOT/scripts/office/unpack.py$SKILL_ROOT/scripts/office/pack.py$SKILL_ROOT/scripts/office/validate.py
Parallelism
Parallelize independent reads and inspections to reduce wall time. This is mandatory for non-trivial PPT work.- At the start of each task, parallelize all independent context reads: relevant guide files, nearby source files, user-provided data files, and lightweight artifact inspections.
- For existing PPTX analysis, run text extraction, thumbnail/template inventory, and user-provided source/content reads in parallel unless one output is required to choose the next command.
- For PPT editing, never inspect one slide, edit it, then repeat. Build a deck-level change map first.
- After unpacking a template or deck, inspect all affected
slide*.xml, relationship, media inventory, and notes files in parallel, then apply text changes with one manifest or grouped XML patches. - If a task touches multiple independent uploaded files, inspect them in parallel before deciding the deck structure.
- Unpack, structural edits, manifest application, clean, pack, and validation must run in order.
- For generated decks, use one QA command instead of separate syntax/build/validate calls.
Reading Content
# Text extraction python -m markitdown presentation.pptx---Visual overview
python "$SKILL_ROOT/scripts/thumbnail.py" presentation.pptxRaw XML
python "$SKILL_ROOT/scripts/office/unpack.py" presentation.pptx unpacked/
Editing Workflow
Read [editing.md](editing.md) for full details. For existing PPTX edits, especially template + spreadsheet updates, use the structured manifest route: 1. Inspect sources in parallel: spreadsheet/data extraction,markitdown, and deck manifest.
2. Write one plan_changes.json.
3. Apply the plan with $SKILL_ROOT/scripts/apply_manifest_edits.py.
4. Clean, pack, and validate.
Do not read ppt/slides/slide*.xml one by one to decide what to do. Direct XML is allowed only inside a deterministic script or a grouped patch after the manifest route has identified a missing operation.
---
Creating from Scratch
Read [pptxgenjs.md](pptxgenjs.md) for full details. Use when no template or reference presentation is available. Keep this path freeform and do not use the Noah kit or presets. For common statistical visuals, use the stable primitives in [pptxgenjs.md](pptxgenjs.md): donut gauges, progress bars, KPI grids, comparison bars, and stat matrices. PptxGenJSaddChart() is allowed when an editable native chart is useful; qa.py automatically applies the known PptxGenJS chart XML repair. If chart schema validation still fails after qa.py, do not unpack chart XML, read PptxGenJS source, or write temporary XML fix scripts. Replace the failing chart with a shape-based or SVG/PNG chart.
---
Design Ideas
Don't create boring slides. Plain bullets on a white background won't impress anyone. Consider ideas from this list for each slide.Before Starting
- Pick a bold, content-informed color palette: The palette should feel designed for THIS topic. If swapping your colors into a completely different presentation would still "work," you haven't made specific enough choices.
- Dominance over equality: One color should dominate (60-70% visual weight), with 1-2 supporting tones and one sharp accent. Never give all colors equal weight.
- Dark/light contrast: Dark backgrounds for title + conclusion slides, light for content ("sandwich" structure). Or commit to dark throughout for a premium feel.
- Commit to a visual motif: Pick ONE distinctive element and repeat it — rounded image frames, icons in colored circles, thick single-side borders. Carry it across every slide.
Color Palettes
Choose colors that match your topic — don't default to generic blue. Use these palettes as inspiration: | Theme | Primary | Secondary | Accent | |-------|---------|-----------|--------| | Midnight Executive |1E2761 (navy) | CADCFC (ice blue) | FFFFFF (white) |
| Forest & Moss | 2C5F2D (forest) | 97BC62 (moss) | F5F5F5 (cream) |
| Coral Energy | F96167 (coral) | F9E795 (gold) | 2F3C7E (navy) |
| Warm Terracotta | B85042 (terracotta) | E7E8D1 (sand) | A7BEAE (sage) |
| Ocean Gradient | 065A82 (deep blue) | 1C7293 (teal) | 21295C (midnight) |
| Charcoal Minimal | 36454F (charcoal) | F2F2F2 (off-white) | 212121 (black) |
| Teal Trust | 028090 (teal) | 00A896 (seafoam) | 02C39A (mint) |
| Berry & Cream | 6D2E46 (berry) | A26769 (dusty rose) | ECE2D0 (cream) |
| Sage Calm | 84B59F (sage) | 69A297 (eucalyptus) | 50808E (slate) |
| Cherry Bold | 990011 (cherry) | FCF6F5 (off-white) | 2F3C7E (navy) |
For Each Slide
Every slide needs a visual element — image, chart, icon, or shape. Text-only slides are forgettable. Layout options:- Two-column (text left, illustration on right)
- Icon + text rows (icon in colored circle, bold header, description below)
- 2x2 or 2x3 grid (image on one side, grid of content blocks on other)
- Half-bleed image (full left or right side) with content overlay
- Large stat callouts (big numbers 60-72pt with small labels below)
- Comparison columns (before/after, pros/cons, side-by-side options)
- Timeline or process flow (numbered steps, arrows)
- Icons in small colored circles next to section headers
- Italic accent text for key stats or taglines
Typography
Choose an interesting font pairing — don't default to Arial. Pick a header font with personality and pair it with a clean body font. | Header Font | Body Font | |-------------|-----------| | Georgia | Calibri | | Arial Black | Arial | | Calibri | Calibri Light | | Cambria | Calibri | | Trebuchet MS | Calibri | | Impact | Arial | | Palatino | Garamond | | Consolas | Calibri | | Element | Size | |---------|------| | Slide title | 36-44pt bold | | Section header | 20-24pt bold | | Body text | 14-16pt | | Captions | 10-12pt muted |Spacing
- 0.5" minimum margins
- 0.3-0.5" between content blocks
- Leave breathing room—don't fill every inch
Avoid (Common Mistakes)
- Don't repeat the same layout — vary columns, cards, and callouts across slides
- Don't center body text — left-align paragraphs and lists; center only titles
- Don't skimp on size contrast — titles need 36pt+ to stand out from 14-16pt body
- Don't default to blue — pick colors that reflect the specific topic
- Don't mix spacing randomly — choose 0.3" or 0.5" gaps and use consistently
- Don't style one slide and leave the rest plain — commit fully or keep it simple throughout
- Don't create text-only slides — add images, icons, charts, or visual elements; avoid plain title + bullets
- Don't forget text box padding — when aligning lines or shapes with text edges, set
margin: 0on the text box or offset the shape to account for padding - Don't use low-contrast elements — icons AND text need strong contrast against the background; avoid light text on light backgrounds or dark text on dark backgrounds
- NEVER use accent lines under titles — these are a hallmark of AI-generated slides; use whitespace or background color instead
QA
For direct PptxGenJS generation, run the full fast QA chain as one command:SKILL_ROOT="${SLIDES_SKILL_ROOT:-${SKILLS_ROOT:-/mnt/agentrun_sg/skills}/slides}"
python3 "$SKILL_ROOT/scripts/qa.py" deck.js output.pptx
qa.py runs syntax check, builds the deck, applies the pptxgenjs OOXML order fix, applies the known PptxGenJS chart XML fix, removes missing [Content_Types].xml overrides, scans extracted content for placeholders/object leaks, and validates the PPTX schema. Do not run these as separate tool calls unless debugging a failing step.
For template/XML workflows, after packing run:
node "$SKILL_ROOT/scripts/fix_content_types.js" output.pptx python3 "$SKILL_ROOT/scripts/validate_content.py" output.pptx python3 "$SKILL_ROOT/scripts/office/validate.py" output.pptx --original input.pptxDo not render slides, convert to images, or do manual visual QA. This applies even when the user asks for a preview or reports a style/layout problem — rely on
qa.py, validate_content.py, and office/validate.py instead. Do not use office/soffice.py, pdftoppm, or any PDF/image rendering step on generated or edited decks.
---
Dependencies
Use dependencies already provided by the runtime. Do not install or upgrade apt, pip, or npm packages from this skill unless the user explicitly asks.- markitdown - text extraction
- pptxgenjs - creating from scratch
- LibreOffice (
soffice) - used internally bythumbnail.pyfor template analysis only; do not invoke directly for generated/edited decks