Skip to main content
ClaudeWave
Skill990 estrellas del repoactualizado today

office-pptx

office-pptx generates editable PowerPoint `.pptx` files from structured specifications or Markdown outlines using bundled Python scripts. Use it to create, modify, inspect, or deliver presentation decks including pitch decks, strategy narratives, teaching materials, and operating reviews. The skill supports building slides from JSON specifications, converting Markdown outlines to presentations, appending slides to existing decks, and patching text while preserving themes and formatting.

Instalar en Claude Code
Copiar
git clone --depth 1 https://github.com/shiwenwen/hope-agent /tmp/office-pptx && cp -r /tmp/office-pptx/skills/office-pptx ~/.claude/skills/office-pptx
Después abre una sesión nueva de Claude Code; el skill carga automáticamente.

SKILL.md

# Office 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:

```bash
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:

```bash
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:

```bash
python3 "$SKILL_DIR/scripts/render_preview.py" output.pptx
```

5. To append slides to an existing deck without rebuilding it:

```bash
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:

```bash
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:

```json
{"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:

```bash
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:

```bash
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

```json
{
  "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.
code-reviewSkill

>

email-draftSkill

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.

feishuSkill

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 + attendees, contact (联系人) user/department lookup, hire (招聘) job/talent/application listing. Trigger on phrases like 'OKR 周报', '把这份文档发到飞书云盘', '给团队拉个评审会议', '查 [姓名] 的联系方式', '撤销那条审批', '/wiki 链接', or any request that mentions a feishu / lark URL / token (doxcn.../bascn.../wikcn.../boxcn.../om_...).

ha-browserSkill

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 agent to open / control / click / scrape / log into / verify something in a web app ('open X and click Y', '打开 X 然后点击 Y', 'log into my Gmail', 'scrape this page', 'fill out the form on X'); user reports a flow that requires real browser context (cookies, JS-rendered content, OAuth).

ha-find-skillsSkill

Discover and install third-party skills from external registries when the user needs a capability that no currently-active skill covers. Trigger when: (1) the user explicitly asks 'find a skill for X', 'is there a skill that does X', 'install a skill to X', (2) the user requests a well-known integration (Slack, Notion, Trello, GitHub, Hue, Sonos, iMessage, weather, TTS, transcription …) that isn't in the active skill catalog, (3) you are about to hand-write ad-hoc shell / API code for a domain that almost certainly has a published skill. Do NOT trigger if an active skill already covers the need — scan the visible skill catalog first.

ha-logsSkill

Self-service diagnostics — query Hope Agent's local SQLite databases (logs / sessions / async jobs) directly via the `exec` tool to investigate problems, analyze usage, and locate root causes. Trigger on: user reports something broken / failing / slow / stuck / not responding ('X 不工作', 'X 报错', 'X 卡住', '为什么 X 失败', 'why did X fail', 'show me the logs', 'check what happened'); ad-hoc data analysis ('this week's token usage', '最近调用最多的工具', 'how many subagent runs failed', 'tool error rate', 'find sessions where X happened'); verifying a fix ('did the error stop after I changed Y'). Use BEFORE asking the user to paste log snippets — the data is on disk, query it directly. Read-only — SELECT only, never UPDATE/DELETE/INSERT/DROP.

ha-mac-controlSkill

Hope Agent native macOS desktop control — the standard `mac_control` status / diagnostics / apps / dock / spaces / snapshot / visual / windows / menu / clipboard / dialog loop, target-first action rules, no-blind-coordinate policy, and recovery for stale AX/window/menu/dialog state. Load whenever using `mac_control`, or when the user asks to control local Mac apps, Dock, Spaces, click/type/menu/window/dialog/clipboard, automate Finder/TextEdit/System Settings, visually locate UI, or says 控制 Mac, macOS 自动化, 点按钮, 打开应用, Dock, Space, 关闭窗口, 菜单点击, 视觉定位.

ha-self-diagnosisSkill

Self-understanding and issue reporting for Hope Agent itself. Use when the user asks how Hope Agent works internally, asks about its own source code/docs/runtime behavior, reports a bug/failure/slowness/crash, asks to diagnose logs, or asks to create/submit a GitHub issue for a bug, feature request, or improvement (including when there is no bug). Chinese triggers: 自查, 了解自己, 自我诊断, 排查 Hope Agent, 提交 issue, 需求 issue, 功能改进.