Office mode assistant that orchestrates a full PPT creation pipeline from topic to editable PPTX. Combines ppt-workflow (staged content planning and HTML slide generation) with html-slide-to-pptx (preset-driven HTML-to-PPTX conversion). Use when the user wants to create a presentation, deck, or slides and expects a final editable PowerPoint file, not just an outline or preview. Handles the complete flow: clarify brief, research, outline, planning draft, HTML slide generation, preview review, ...
Scanned 9/22/2026
Install to Claude Code
npx -y skills add hjdspace/SpaceCode --skill ppt-office-assistant --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Ppt Office Assistant?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/hjdspace-ppt-office-assistant-spacecode)More formats (shields.io, HTML) on the badges page.
---
name: ppt-office-assistant
description: >-
Office mode assistant that orchestrates a full PPT creation pipeline from topic
to editable PPTX. Combines ppt-workflow (staged content planning and HTML slide
generation) with html-slide-to-pptx (preset-driven HTML-to-PPTX conversion).
Use when the user wants to create a presentation, deck, or slides and expects a
final editable PowerPoint file, not just an outline or preview. Handles the
complete flow: clarify brief, research, outline, planning draft, HTML slide
generation, preview review, preset matching, preset extension when needed,
PPTX conversion, QA, and delivery.
---
# PPT Office Assistant
## Overview
This skill is the orchestrator for a complete PPT creation pipeline. It chains
two sub-skills into one seamless workflow:
1. **ppt-workflow** — staged content work: brief → research → outline → planning
draft → HTML slide generation → preview.
2. **html-slide-to-pptx** — preset-driven conversion: HTML → editable PPTX with
native text boxes, shapes, and QA.
All three skills are installed as siblings under `.claude/skills/` in the
session working directory. Reference sub-skills by name, not by absolute path.
The assistant decides **when to stop for review**, **when to extend presets**,
and **how to bridge content planning with preset-compatible HTML structure**.
## When to use
- User wants a final editable PPTX (not just an outline or plan).
- User says "做个 PPT", "生成演示文稿", "make a deck", "create slides".
- User provides a topic, brief, or source material and expects a deliverable.
- User wants to iterate on slides with preview before committing to PPTX.
## Pipeline stages
```
Stage 1: Clarify Brief ─── ppt-workflow
Stage 2: Research / Context ─── ppt-workflow
Stage 3: Outline ─── ppt-workflow
Stage 4: Planning Draft ─── ppt-workflow
Stage 5: HTML Slide Generation ─── ppt-workflow + preset-awareness
Stage 6: Preview & Review Gate ─── manual checkpoint
Stage 7: Preset Match Check ─── html-slide-to-pptx
Stage 8: Preset Extension ─── html-slide-to-pptx (if needed)
Stage 9: PPTX Conversion ─── html-slide-to-pptx
Stage 10: QA & Delivery ─── html-slide-to-pptx
```
## Core rules
### Rule 1: Content first, conversion second
Never skip the planning stages to jump to PPTX. The quality of the final PPT
depends on the outline and planning draft, not on the converter.
### Rule 1b: All deliverables go under `outputs/`
Every generated file — HTML slides, PPTX, model JSON, QA reports — must be
written under the session working directory's `outputs/` folder. This is the
only directory the product panel scans. Concretely:
- HTML slides → `outputs/slides/slide-NN-*.html`
- PPTX files → `outputs/slide-NN.pptx`
- Model dumps → `outputs/slide-NN-model.json`
- QA reports → `outputs/slide-NN-qa.json`
Never write to `slides/`, `output/`, or any other top-level directory.
### Rule 2: Generate preset-aware HTML
When generating HTML slides in Stage 5, structure the HTML so it can be
converted later. Read `references/html-preset-bridge.md` before generating
HTML to understand which semantic structures map to existing presets.
### Rule 3: Always preview before converting
Stage 6 is a hard gate. Export HTML or PNG, let the user review layout,
hierarchy, and content, and only proceed to conversion after confirmation.
### Rule 4: No preset, no conversion
If the HTML structure does not match any existing preset, do not force
conversion. First add a new preset (Stage 8), then convert. Read
`references/preset-extension-guide.md` for the extension process.
### Rule 5: QA every output
Every generated PPTX must pass through `preflight_qa.js`. Address fail-level
issues before delivery.
## Sub-skills
This orchestrator coordinates two sub-skills. Both are installed alongside
this skill in `.claude/skills/`:
- **ppt-workflow** — read its `SKILL.md` and `references/prompts.md` for
content planning methodology and reusable prompts.
- **html-slide-to-pptx** — read its `SKILL.md` for conversion commands.
Its scripts are in its own `scripts/` directory; run `npm ci` there on
first use, then execute scripts with `node scripts/html_to_pptx.js ...`
from that directory.
To find a sub-skill's directory, look for the `Base directory for this skill:`
line that the engine prepends when the skill is invoked, or locate
`.claude/skills/<skill-name>/` in the session working directory.
## Detailed workflow
### Stage 1 — Clarify the brief
Collect minimum necessary inputs:
- topic, audience, purpose
- page-count range
- style or tone
- must-have sections
- whether research is needed
- whether the user wants staged review or fast output
If inputs are sufficient, proceed. If not, ask concise questions.
### Stage 2 — Research / Context
Perform fact-finding if:
- the topic depends on current events, statistics, or technical facts
- the user explicitly requests research-backed content
- supplied material is obviously incomplete
Produce a compact research brief with key facts, evidence, and open questions.
### Stage 3 — Outline
Generate a structured outline using the pyramid principle:
- conclusion first
- each section has a clear goal
- pages have titles and content points
Output as JSON for downstream processing.
### Stage 4 — Planning draft (策划稿)
For each page, produce a planning card:
- page title and goal
- core messages (3-6 points)
- evidence/data sources
- recommended visual treatment (comparison, flow, timeline, data card, card grid, etc.)
- information hierarchy
- keywords to emphasize
### Stage 5 — HTML slide generation
Generate HTML slides based on the planning draft. **This is the bridge stage.**
Before writing HTML:
1. Read `references/html-preset-bridge.md` to understand preset-compatible structures.
2. Classify each page into a slide family (architecture, runtime, cover, comparison, timeline, etc.).
3. Use semantic CSS classes that match preset extraction rules where possible.
4. Add `data-preset` attribute to `<body>` when targeting a specific preset.
HTML requirements:
- 16:9 aspect ratio (1280×720 or equivalent)
- semantic structure with clear regions (header, title, panels, cards, chips)
- self-contained (inline CSS, no external dependencies)
- previewable in a browser
Export options:
- HTML files for browser preview → write to `outputs/slides/`
- PNG screenshots if rendering tools are available → write to `outputs/slides/`
### Stage 6 — Preview & review gate
Present the generated HTML/PNG to the user for review:
- Is the layout correct?
- Is the information hierarchy clear?
- Is the content expression appropriate?
- Are there overflow or spacing issues?
Wait for explicit confirmation before proceeding. If changes are needed,
loop back to Stage 5.
### Stage 7 — Preset match check
For each HTML slide, determine if it matches an existing preset:
- `v9-architecture`: header + title + core box + left panel + center stack + right judgement chain
- `ai-runtime-page`: header + title + lead + input chips + runtime modules + support cards + output chips + base + takeaway
Read the `html-slide-to-pptx` skill's `references/preset-decision-rules.md` for
the full decision framework.
Decision outcomes:
- **Reuse** — same page family, only text/labels changed → proceed to Stage 9
- **Extend** — same family, minor structural variation → extend preset, then convert
- **New preset** — different page family → go to Stage 8
### Stage 8 — Preset extension (if needed)
When the HTML does not fit any existing preset:
1. Read `references/preset-extension-guide.md` for the complete process.
2. Implement all three layers: DOM extraction, layout mapping, QA rules.
3. Register the new preset in the `html-slide-to-pptx` skill's `html_to_pptx.js`.
4. Test with the actual HTML before proceeding.
### Stage 9 — PPTX conversion
First, ensure the `html-slide-to-pptx` skill environment is ready:
```bash
cd .claude/skills/html-slide-to-pptx
npm run check-env
# If dependencies are missing: npm ci
```
Then run the conversion (from the `html-slide-to-pptx` skill directory).
All output paths must be relative to the session working directory and placed
under `outputs/`:
```bash
node scripts/html_to_pptx.js outputs/slides/slide-01.html outputs/slide-01.pptx --preset=<preset-name> --dump-model outputs/slide-01-model.json
```
For multi-slide decks, convert each HTML file separately and note the output
paths. Merge instructions are in `references/workflow-pipeline.md`.
### Stage 10 — QA & delivery
Run preflight QA (from the `html-slide-to-pptx` skill directory):
```bash
node scripts/preflight_qa.js outputs/slide-01-model.json --preset=<preset-name> --report outputs/slide-01-qa.json
```
Check for:
- text overflow (fail-level)
- title/subtitle collision (high severity)
- chip/card text clipping
- stack height pressure
- insufficient spacing
Address all fail-level issues. Warn-level issues should be reviewed but may
be acceptable. Deliver the final PPTX file path(s) to the user.
## References
- `references/workflow-pipeline.md` — detailed stage-by-stage pipeline with commands
- `references/html-preset-bridge.md` — how to generate HTML that maps to presets
- `references/preset-extension-guide.md` — how to add new presets when needed
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!