pptz Skill
Quick Start
Use moon runwasm Milky2018/pptz as the published presentation compiler. Run
it from the deck project directory and pass relative paths for the deck, page,
image, and output files. While developing this repository, use the top-level
package with moon runwasm ..
Expected project layout:
deck-topic/
├── deck.pptz.toml
├── pages/
│ ├── cover.page.toml
│ └── agenda.page.toml
├── images/
│ └── diagram.png
└── dist/
└── deck.pptx
Workflow
- Clarify the deck goal, audience, language, duration, required slide count,
and delivery constraints.
- Design a reusable visual system that fits the subject and supports text
legibility across all slides. Use a solid theme background when an image
background would reduce legibility or needs behavior outside current writer
support.
- Write a .pptz.toml file with title, canvas size, theme tokens, shared text
styles, image paths, and ordered page list.
- Write every pages/*.page.toml file. Keep coordinates explicit and reuse
theme tokens instead of hard-coded styles where possible. For decks that
must compile with the current writer, use only the supported feature set
below.
- Find or create required images/ assets. Do not use low-quality,
watermarked, license-unknown, or unreadable images.
- Compile the project with pptz from the deck directory:
cd deck-topic
moon runwasm Milky2018/pptz deck.pptz.toml --out dist/deck.pptx
- Fix any pptz errors. Inspect every warning and either fix it or record why
it is an intentional design choice.
- Deliver both the pptz source directory and the generated .pptx.
Quality Gate
- pptz exits successfully and writes the expected PPTX.
- Every warning is fixed before delivery unless it is intentional and documented
in the handoff. For text overflow warnings, first try larger bounds, smaller
font size, shorter copy, extra line breaks, or splitting the content.
- All page/image paths are relative to the deck directory.
- Text fits within its bounds and does not overlap important imagery.
- The common visual system works on cover, section, dense content, and closing
slides.
Current Supported Feature Set
Use these features for deliverable decks:
- explicit deck size and ordered page files;
- optional solid, gradient, or image page backgrounds;
- text elements with theme text styles, local overrides, text wrapping,
line breaks, rich paragraphs, styled runs, bullets, external hyperlinks,
body insets, and autofit controls;
- PowerPoint preset auto-shapes, excluding line and connector presets;
- straight, bent, and curved connectors with coordinate or element endpoints,
stroke, dash, and arrowheads;
- solid fills, gradient fills, no-fill shapes, and solid or dashed borders;
- outer shadows for shape and connector elements;
- built-in icon elements for cube, circle, square, star, heart,
plus, home, info, help, return, blank, smiley, sun, moon,
cloud, lightning, gear6, gear9, funnel, chart_plus,
chart_star, chart_x, and no_smoking, with optional fas:-style
prefixes;
- table elements with explicit or evenly distributed column widths and row
heights, including cell merge spans, cell styling, and theme table styles;
- inline chart elements for bar, line, pie, doughnut, area,
scatter, bubble, and radar, with title, legend, style, data labels,
data table, rounded-corner options, and a category chart data shorthand;
- raster image elements with fit = "stretch", fit = "cover", or
fit = "contain";
- image crop rectangles;
- SVG image elements.
Do not use these in deliverable decks until pptz implements them in the
writer: letter_spacing, unsupported icon names, line/connector shape presets,
unsupported connector kinds, or unsupported shape names.
Important Notes
- The reference selene-engine layout uses a similar directory organization,
but its sample files are YAML-like. This skill uses real TOML.
- pptz and page sources must be parseable by bobzhang/toml@0.4.1.
- File IO for the MoonBit tool should use moonbit-community/miniio.
- Published moon runwasm executes inside a WASI-style file sandbox. Prefer
running from the deck directory with relative paths; absolute paths outside
the current working tree may not be visible to the tool.
- See REFERENCE.md for the source schema and CLI contract.
- See examples/minimal for the maintained TOML deck that
covers the currently supported writer features.