# Guizang PPT Skill: agent-generated HTML slide decks in two visual systems

> An AI-agent Skill that turns articles and outlines into single-file HTML decks, with a magazine style and a locked Swiss grid. It needs an agent with file access and a browser, and it is the wrong tool for collaborative editing.

**op7418/guizang-ppt-skill** — AI-agent Skill for generating polished HTML slide decks: editorial magazine and Swiss layouts, image prompts, social covers, and a WebGL/low-power presentation runtime.

- Repository: https://github.com/op7418/guizang-ppt-skill
- Stars: 27,096 · Forks: 1,879
- Language: HTML
- License: AGPL-3.0
- Published: 2026-08-08 · Updated: 2026-08-18 · Language: en
- Canonical page: https://hysenlabs.com/projects/op7418-guizang-ppt-skill

## What Guizang PPT Skill solves, and for whom

Most slide tools assume a human dragging boxes. Guizang PPT Skill assumes an agent writing text. The repository describes it as a Skill for Claude Code and Codex environments that produces a single-file HTML deck with horizontal paging, plus image prompts and social covers, and a presenter runtime. The README states the reason for HTML directly: HTML and CSS are text, so an agent can read, edit and verify them, while Markdown cannot express fine layout, positioning, animation or responsive covers. Delivery is a single file that opens in a browser with no build step and no server.

The intended user is someone giving a talk. The README lists offline sharing sessions, internal industry talks, private salons, AI product launches and demo days as the fit. The two visual systems map to two kinds of content: Style A, an electronic magazine look with an electronic ink palette, is meant for narrative and personal voice; Style B, Swiss International style, is meant for facts, products and methodology. The README is equally explicit about the mismatch: dense tables, training material where more information density is needed, and anything requiring several people to edit the same file are listed as unsuitable. That last one is not a bug. A static HTML file has no merge story.

## How the Skill drives an agent through a deck

The Skill is a structured workflow rather than a generator you call once. According to the README, the agent walks through ten steps: pick a style, clarify requirements against a seven-question checklist covering audience, duration, material, image needs, theme color and hard constraints, copy the matching template, fill content by choosing from layout skeletons, optionally generate images, write speaker notes, self-check against references/checklist.md, preview in a browser, rehearse, then iterate.

The mechanism that matters is the layout system. Style A ships ten layouts (cover, section, data poster, image and text, image grid, pipeline, comparison and others). Style B is stricter: the README states that body pages may only be chosen from the named layouts S01 through S22, and that inventing a page structure is not allowed. Style B also locks a 16-column grid, right angles, 1px hairlines, no shadows, no gradients and no rounded corners, with four high-saturation anchor colors. Images must go into the template's reserved data-image-slot, and main images are generated at 21:9 or 16:10.

Quality control is split in two. A checklist marks P0 issues that must all pass, and separate validators exist per style and for presenter mode. The README states that when Playwright is available, the Swiss validator goes further and measures real rendered output for overflow, bottom whitespace, title gap and the navigation safe line. That is the interesting design choice here: the project treats visual defects as things a script can catch, not things a human has to eyeball.

## Installing Guizang PPT Skill and building a first deck

The README gives three install routes. The recommended one is a single npx command. Run it in a shell that has network access and the skills CLI available:

```bash
npx skills add https://github.com/op7418/guizang-ppt-skill --skill guizang-ppt-skill
```

If you prefer to see exactly where files land, the manual route clones the repository into the Claude Code skills directory. After it finishes, list the directory: the README says you should see SKILL.md, assets/ and references/.

```bash
git clone https://github.com/op7418/guizang-ppt-skill.git ~/.claude/skills/guizang-ppt-skill
ls ~/.claude/skills/guizang-ppt-skill/
```

There is also a copy-paste prompt for agents with shell permission, which asks the agent to create ~/.claude/skills/, clone into it, verify the same three entries, and confirm. Updating is a git pull inside that directory.

Once installed, Claude Code discovers the skill and triggers it from conversation. The README's example request is a Swiss-style deck of about seven pages with two or three images. For the first real run, start from a piece of writing you already have and ask for a magazine-style deck, which uses assets/template.html. Check the result by opening the HTML file directly in a browser: left and right arrow keys, the scroll wheel, touch swipes and the bottom dots should all page through the deck, and ESC should open the index.

Before presenting, run the presenter-mode validator against the file, optionally with a target duration:

```bash
node scripts/validate-presenter-mode.mjs path/to/index.html
node scripts/validate-presenter-mode.mjs path/to/index.html --target-minutes 30
```

If you chose Swiss style, run the Swiss validator instead. The README's command begins `node scripts/validate-swis`; the full argument list is truncated in the README excerpt, so check scripts/ in the cloned repository for the exact script name and flags.

## The presenter runtime and its deliberate limits

Both templates embed the same presenter runtime. Clicking P in the bottom right opens the speaker view and the browser opens a second, clean audience window. The README states plainly that everything runs locally in the HTML and the browser, with no live captions, no cloud relay, no phone remote and no AI coaching service. That is a constraint worth taking at face value: if your venue needs a remote clicker or a phone-based remote, this runtime does not provide one.

The speaker view shows current and next page stacked and always held at 16:9, scaling down on small screens rather than cropping or squeezing text. Notes are structured into title, purpose, talking points and transition as required fields; interaction, tone, page-turn timing, fallbacks and pronunciation only appear if the outline supplied them. The README is explicit that the agent should not guess information the user did not provide. Timing shows elapsed, current-page and remaining or overtime figures, and rehearsal mode records per-page and total durations in local browser storage with no AI scoring.

Auto-advance is off by default and only turns on when the outline gives explicit per-page seconds or the user enables a global interval in settings. It pauses when the grid, settings or annotation tool is open, when the page is hidden, or when the audience screen pauses or loses sync. Live tools include a laser pointer and annotation that mirror to the audience screen, black or white screen, and freezing the audience screen, with recovery that catches up to the speaker's current page. If the audience window closes or the heartbeat times out, the view says it is disconnected and offers to reopen it. The pre-talk check covers popups, fullscreen, fonts, images and video and the 16:9 preview, and the README still tells the speaker to confirm HDMI, adapters and the projector by hand.

## Style B is the real constraint, and the real reason to use it

The Swiss theme is not a CSS swap. The README calls it a stricter layout system, and the restrictions are what produce the look: 22 named layouts, no improvisation, four anchor colors, a 16-column grid, hairlines, and no shadows, gradients or rounded corners. Chinese headings need to drop a size step, the README notes, or they eat the space reserved for body text and images. In text-and-image pages, the body block should align to the bottom of the image while avoiding the footer paging controls.

That rigidity is the trade-off. An agent that wants to express something the 22 layouts do not cover has nowhere to go, and the validator will block centered titles, experimental layouts, text drawn inside SVG, and images placed outside their slots. The upside is consistency across a whole deck and a script that can catch the failures before you present. Style A has the opposite profile: ten layouts and more narrative freedom, with correspondingly less mechanical checking. If you are unsure which to pick, the README's own routing is content-based. Narrative and opinion go to Style A. Product analysis and methodology go to Style B.

## Where it breaks, and what to use instead

Three failure modes are visible in the documentation. First, collaboration: a static HTML file cannot be edited by several people at once, and the README lists multi-person editing as unsuitable. Second, information density: training decks and large tables are called out as a poor fit, because the layouts are built for a few strong statements per page. Third, environment: the platform table marks plain chatbots as not recommended, since without a filesystem and browser preview an agent cannot reliably produce or check a full deck. Cursor and other local agents are listed as usable only if they can read and write files and run shell commands. WorkBuddy is described as being adapted, with a separate listing version in progress.

The obvious alternative is a conventional presentation application, and the difference is structural rather than cosmetic. In PowerPoint or Keynote the file is a binary or zip container that an agent cannot meaningfully edit as text, and the visual checking is manual. Here the deck is HTML and CSS, so the agent edits it directly and a Node script can measure the rendered result when Playwright is present. The cost is that you give up real-time co-editing, native chart objects and the ecosystem of templates and add-ins. Another alternative is asking a general-purpose agent to write HTML slides from scratch with no skill installed. That works for a one-off, but you lose the fixed layout vocabulary, the checklist and the validators, which is most of what this repository actually contains.

## Maintenance, upgrade cost and the AGPL-3.0 licence

The repository is not archived, and the last push was on 2026-05-15, which is also the date of the v1.1.0 release labeled as the Swiss style and community-ready release. That is roughly four months before the time of writing, so treat the project as one with a recent release rather than one with a steady stream of commits; check the commit log yourself if update cadence matters to you.

Upgrading is cheap by design. The README's update instruction is a git pull inside ~/.claude/skills/guizang-ppt-skill. Because decks are single HTML files that do not depend on the skill at runtime, a skill update does not retroactively change a deck you already generated. The practical upgrade cost is re-running the validators against existing decks if you want them to conform to newer rules.

The licence is AGPL-3.0, which is a strong copyleft licence. For internal decks that you present and never distribute, the practical effect is limited. If you plan to redistribute the skill, embed it in a hosted service, or ship generated decks as part of a product, the network-use and derivative-work terms are worth reading in LICENSE and, where the stakes are real, taking to a lawyer. This article is not legal advice.

## Conclusion

Adopt it if you present from a browser, want a deck you can edit as text, and already run Claude Code, Codex, or another local agent with shell access. Skip it if several people need to edit the same deck, if you need dense tables or training material, or if you only have a plain chatbot with no filesystem. Before committing, verify that the skill lands in ~/.claude/skills/guizang-ppt-skill with SKILL.md, assets/ and references/ present, open assets/template-swiss.html in a browser to confirm the horizontal paging works on your machine, and run the validator that matches the style you chose, since the Swiss layouts are the part most likely to break if an agent improvises.

## FAQ

### What is Guizang PPT Skill?

It is an AI-agent Skill for Claude Code and Codex that generates single-file HTML slide decks with horizontal paging, plus image prompts and multi-platform covers. It ships two visual systems: an electronic magazine style and a Swiss International style with 22 locked layouts.

### How do I install Guizang PPT Skill?

The README's recommended route is the npx command `npx skills add https://github.com/op7418/guizang-ppt-skill --skill guizang-ppt-skill`. You can also clone the repository into ~/.claude/skills/guizang-ppt-skill and verify that SKILL.md, assets/ and references/ are present.

### Which agents and platforms does Guizang PPT Skill support?

The README lists Claude Code as natively supported and Codex as supported, including image generation and browser-based visual checks. Cursor and other local agents work if they can read and write files and run shell commands. Plain chatbots are not recommended because there is no filesystem or browser preview.

### Can I turn an article into a slide deck with Guizang PPT Skill?

Yes. The README's example requests include turning a Markdown file into a magazine-style presentation deck and building a roughly seven-page Swiss-style deck from an article with two or three images. The workflow extracts core points first and then generates the deck at a six to ten page rhythm.

### How do I enter presenter mode in Guizang PPT Skill?

Open the deck and click P in the bottom right corner. The browser then opens a separate audience window, and the speaker view shows current and next page at 16:9, structured notes, timing and rehearsal recording, all running locally without cloud services.

## Sources

- [Official README](https://github.com/op7418/guizang-ppt-skill#readme)
- [Project repository](https://github.com/op7418/guizang-ppt-skill)
- [Release notes](https://github.com/op7418/guizang-ppt-skill/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/op7418-guizang-ppt-skill
