/office-pptx
Use when the user asks to create, inspect, verify, polish, or deliver PowerPoint `.pptx` decks, Google Slides-targeted deck artifacts, strategy narratives, operating reviews, pitch decks, teaching decks, section slides, bullet slides, or source-to-PPTX transformations.
$ npx -y skills add shiwenwen/hope-agent --skill office-pptx --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/office-pptx
Context preview
The summary Claude sees to decide when to auto-load this skill.
Use when the user asks to create, inspect, verify, polish, or deliver PowerPoint `.pptx` decks, Google Slides-targeted deck artifacts, strategy narratives, operating reviews, pitch decks, teaching decks, section slides, bullet slides, or source-to-PPTX transformations.
SKILL.md
office-pptx.SKILL.mdname: office-pptx
description: "Use when the user asks to create, inspect, verify, polish, or deliver PowerPoint `.pptx` decks, Google Slides-targeted deck artifacts, strategy narratives, operating reviews, pitch decks, teaching decks, section slides, bullet slides, or source-to-PPTX transformations."
requires:
bins: [python3]
install:
- kind: brew
formula: python
bins: [python3]
label: "Install Python 3 via Homebrew"
os: [darwin]
allowed-tools:
- read
- write
- edit
- apply_patch
- exec
- ls
- grep
- pdf
- web_search
- web_fetch
- image_generate
- send_attachmentOffice PPTX
Use the bundled scripts in this skill package to produce editable `.pptx` decks. The builder writes editable text boxes, image placements, metric cards, tables, timelines, drawn proof charts, and native PowerPoint chart objects. The skill activation metadata includes `Skill directory`; treat that as `SKILL_DIR` and run scripts from `SKILL_DIR/scripts/`.
Story First
Before building slides, identify:
- Audience and decision context.
- Claim spine: what each slide proves.
- Required proof objects: table, metric, comparison, workflow, timeline, or
narrative slide.
- Visual rhythm: title, section, bullets, two-column, and appendix slides.
Every slide should have one job.
Workflow
1. Draft the slide list and title-level claims. 2. For explicit control, convert each slide into a structured slide object and run:
python3 "$SKILL_DIR/scripts/check_env.py"
python3 "$SKILL_DIR/scripts/build_pptx.py" --spec spec.json --out output.pptx
python3 "$SKILL_DIR/scripts/inspect_pptx.py" --verify output.pptx
python3 "$SKILL_DIR/scripts/layout_audit.py" output.pptx
3. For a Markdown outline, use `# Deck title`, `## Slide title`, `## Section: Name`, and bullet lists, then run:
python3 "$SKILL_DIR/scripts/outline_to_pptx.py" --outline outline.md --out output.pptx
python3 "$SKILL_DIR/scripts/inspect_pptx.py" --verify output.pptx
4. If visual QA matters and LibreOffice is available, run:
python3 "$SKILL_DIR/scripts/render_preview.py" output.pptx
5. To append slides to an existing deck without rebuilding it:
python3 "$SKILL_DIR/scripts/append_pptx.py" --input existing.pptx --spec append.json --out output.pptx
python3 "$SKILL_DIR/scripts/inspect_pptx.py" --verify output.pptx
python3 "$SKILL_DIR/scripts/layout_audit.py" output.pptx --reference existing.pptx
6. For targeted edits to an existing deck, patch text in place to preserve the source package, theme, layouts, media, and animations:
python3 "$SKILL_DIR/scripts/patch_pptx.py" --input existing.pptx --patch patch.json --out output.pptx
python3 "$SKILL_DIR/scripts/layout_audit.py" output.pptx --reference existing.pptx
Patch shape:
{"replace_text": [{"old": "Old title", "new": "New title"}]}7. For template-following or source-deck workflows, duplicate, drop, or reorder source slides without rebuilding their XML:
python3 "$SKILL_DIR/scripts/duplicate_slide.py" --input template.pptx --slide 2 --out duplicated.pptx
python3 "$SKILL_DIR/scripts/deck_reorder.py" --input duplicated.pptx --order '[2,1,3]' --out reordered.pptx
python3 "$SKILL_DIR/scripts/layout_audit.py" reordered.pptx --reference template.pptx
8. After rendering previews, create a contact sheet when reviewing slide rhythm:
python3 "$SKILL_DIR/scripts/make_contact_sheet.py" --images preview/page-*.png --out contact-sheet.html
9. Deliver the `.pptx` path or attach it with `send_attachment`.
Spec Shape
{
"title": "Deck title",
"slides": [
{"type": "title", "title": "Board Update", "subtitle": "Q2"},
{"type": "section", "title": "What changed"},
{"type": "bullets", "title": "Retention improved", "bullets": ["Activation rose", "Churn fell"]},
{"type": "metrics", "title": "Operating pulse", "metrics": [{"label": "ARR", "value": "$12M", "delta": "+18%"}]},
{"type": "table", "title": "Options", "headers": ["Option", "Pros", "Risks"], "rows": [["A", "Fast", "Low moat"]]},
{"type": "timeline", "title": "Launch path", "items": [{"date": "Q1", "label": "Pilot"}, {"date": "Q2", "label": "GA"}]},
{"type": "chart", "title": "Segment mix", "data": [{"label": "SMB", "value": 42}, {"label": "Enterprise", "value": 58}]},
{"type": "native_chart", "title": "Native segment mix", "chart_type": "pie", "data": [{"label": "SMB", "value": 42}, {"label": "Enterprise", "value": 58}]},
{"type": "image", "title": "Product screenshot", "image": "screenshot.png", "caption": "Use verified assets only"},
{"type": "two_column", "title": "Options", "left": ["Option A"], "right": ["Option B"]}
]
}Quality Bar
- Use concise slide titles with a claim, not just a topic label.
- Keep bullets short; move dense material into an appendix or document.
- Avoid invented logos, marks, screenshots, or metrics. Use verified assets or
omit them.
- Use `native_chart` when the deck needs a real editable PowerPoint chart
object; use `chart` only for quick drawn proof-object slides.
- Preserve source-deck style when the user asks for edits to an existing deck;
use `patch_pptx.py` for text-only edits and minimal local changes rather than rebuilding from scratch.
- When duplicating, dropping, or reordering slides, preserve non-slide
presentation relationships such as slide masters, layouts, themes, and view properties; do not rebuild `presentation.xml.rels` from slides only.
- Run the layout audit (`layout_audit.py`) before delivery; fix blank slides,
missing titles, dense text, and out-of-bounds shapes. Preserve source-deck style for template and targeted-edit work.
- If preview rendering fails because LibreOffice or a PDF-to-PNG renderer is
missing, state exactly which verification passed; do not imply visual QA passed.
Read more
name: office-pptx
description: "Use when the user asks to create, inspect, verify, polish, or deliver PowerPoint `.pptx` decks, Google Slides-targeted deck artifacts, strategy narratives, operating reviews, pitch decks, teaching decks, section slides, bullet slides, or source-to-PPTX transformations."
requires:
bins: [python3]
install:
- kind: brew
formula: python
bins: [python3]
label: "Install Python 3 via Homebrew"
os: [darwin]
allowed-tools:
- read
- write
- edit
- apply_patch
- exec
- ls
- grep
- pdf
- web_search
- web_fetch
- image_generate
- send_attachmentOffice PPTX
Use the bundled scripts in this skill package to produce editable `.pptx` decks. The builder writes editable text boxes, image placements, metric cards, tables, timelines, drawn proof charts, and native PowerPoint chart objects. The skill activation metadata includes `Skill directory`; treat that as `SKILL_DIR` and run scripts from `SKILL_DIR/scripts/`.
Story First
Before building slides, identify:
- Audience and decision context.
- Claim spine: what each slide proves.
- Required proof objects: table, metric, comparison, workflow, timeline, or
narrative slide.
- Visual rhythm: title, section, bullets, two-column, and appendix slides.
Every slide should have one job.
Workflow
1. Draft the slide list and title-level claims. 2. For explicit control, convert each slide into a structured slide object and run:
python3 "$SKILL_DIR/scripts/check_env.py" python3 "$SKILL_DIR/scripts/build_pptx.py" --spec spec.json --out output.pptx python3 "$SKILL_DIR/scripts/inspect_pptx.py" --verify output.pptx python3 "$SKILL_DIR/scripts/layout_audit.py" output.pptx
3. For a Markdown outline, use `# Deck title`, `## Slide title`, `## Section: Name`, and bullet lists, then run:
python3 "$SKILL_DIR/scripts/outline_to_pptx.py" --outline outline.md --out output.pptx python3 "$SKILL_DIR/scripts/inspect_pptx.py" --verify output.pptx
4. If visual QA matters and LibreOffice is available, run:
python3 "$SKILL_DIR/scripts/render_preview.py" output.pptx
5. To append slides to an existing deck without rebuilding it:
python3 "$SKILL_DIR/scripts/append_pptx.py" --input existing.pptx --spec append.json --out output.pptx python3 "$SKILL_DIR/scripts/inspect_pptx.py" --verify output.pptx python3 "$SKILL_DIR/scripts/layout_audit.py" output.pptx --reference existing.pptx
6. For targeted edits to an existing deck, patch text in place to preserve the source package, theme, layouts, media, and animations:
python3 "$SKILL_DIR/scripts/patch_pptx.py" --input existing.pptx --patch patch.json --out output.pptx python3 "$SKILL_DIR/scripts/layout_audit.py" output.pptx --reference existing.pptx
Patch shape:
{"replace_text": [{"old": "Old title", "new": "New title"}]}7. For template-following or source-deck workflows, duplicate, drop, or reorder source slides without rebuilding their XML:
python3 "$SKILL_DIR/scripts/duplicate_slide.py" --input template.pptx --slide 2 --out duplicated.pptx python3 "$SKILL_DIR/scripts/deck_reorder.py" --input duplicated.pptx --order '[2,1,3]' --out reordered.pptx python3 "$SKILL_DIR/scripts/layout_audit.py" reordered.pptx --reference template.pptx
8. After rendering previews, create a contact sheet when reviewing slide rhythm:
python3 "$SKILL_DIR/scripts/make_contact_sheet.py" --images preview/page-*.png --out contact-sheet.html
9. Deliver the `.pptx` path or attach it with `send_attachment`.
Spec Shape
{
"title": "Deck title",
"slides": [
{"type": "title", "title": "Board Update", "subtitle": "Q2"},
{"type": "section", "title": "What changed"},
{"type": "bullets", "title": "Retention improved", "bullets": ["Activation rose", "Churn fell"]},
{"type": "metrics", "title": "Operating pulse", "metrics": [{"label": "ARR", "value": "$12M", "delta": "+18%"}]},
{"type": "table", "title": "Options", "headers": ["Option", "Pros", "Risks"], "rows": [["A", "Fast", "Low moat"]]},
{"type": "timeline", "title": "Launch path", "items": [{"date": "Q1", "label": "Pilot"}, {"date": "Q2", "label": "GA"}]},
{"type": "chart", "title": "Segment mix", "data": [{"label": "SMB", "value": 42}, {"label": "Enterprise", "value": 58}]},
{"type": "native_chart", "title": "Native segment mix", "chart_type": "pie", "data": [{"label": "SMB", "value": 42}, {"label": "Enterprise", "value": 58}]},
{"type": "image", "title": "Product screenshot", "image": "screenshot.png", "caption": "Use verified assets only"},
{"type": "two_column", "title": "Options", "left": ["Option A"], "right": ["Option B"]}
]
}Quality Bar
- Use concise slide titles with a claim, not just a topic label.
- Keep bullets short; move dense material into an appendix or document.
- Avoid invented logos, marks, screenshots, or metrics. Use verified assets or
omit them.
- Use `native_chart` when the deck needs a real editable PowerPoint chart
object; use `chart` only for quick drawn proof-object slides.
- Preserve source-deck style when the user asks for edits to an existing deck;
use `patch_pptx.py` for text-only edits and minimal local changes rather than rebuilding from scratch.
- When duplicating, dropping, or reordering slides, preserve non-slide
presentation relationships such as slide masters, layouts, themes, and view properties; do not rebuild `presentation.xml.rels` from slides only.
- Run the layout audit (`layout_audit.py`) before delivery; fix blank slides,
missing titles, dense text, and out-of-bounds shapes. Preserve source-deck style for template and targeted-edit work.
- If preview rendering fails because LibreOffice or a PDF-to-PNG renderer is
missing, state exactly which verification passed; do not imply visual QA passed.
🦭 会记忆、能持续推进目标、会动态编排多 Agent 的跨端桌面 AI 助手,也可服务化常驻 NAS / 云端 | A cross-device desktop AI agent with memory, autonomous goals, dynamic workflows, and headless deployment
Repo: shiwenwen/hope-agent
Other skills on hope-agent.
- /email-draft
Use when the user asks to draft, polish, translate, or reply to an email. Produces a clean draft with subject line, greeting, body, and sign-off, plus a pre-send self-check.
Open skill - /feishu
Use when the user mentions 飞书 / Feishu / Lark workspace operations: docx (云文档) read/write, bitable (多维表格) records / views / dashboards, drive (云盘) upload/download, wiki (知识库) link resolution, approval (审批) instance create/cancel/query, calendar (日历) event create/list/update +
Open skill - /ha-browser
Hope Agent browser automation — the standard `status → tabs → snapshot → act` loop, stale-ref recovery rules, and what to do when login / 2FA / captcha / camera-prompt / dialog blocks progress. Load this skill whenever you reach for the `browser` tool. Trigger on: user asks the
Open skill - /ha-code-review
Hope-native review of uncommitted, staged, commit, branch, or PR changes: discover concrete regressions, independently verify candidates, and report actionable findings first without speculative noise.
Open skill - /ha-coding-common
Hope-native baseline for implementing, fixing, refactoring, and maintaining code: inspect the repository first, protect user changes, keep scope narrow, and finish with direct evidence.
Open skill - /ha-coding-plan
Hope-native implementation planning for non-trivial code changes: ground the plan in repository evidence, order dependencies, name critical files and risks, define verification, then continue execution when allowed.
Open skill

