Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add darellchua2/opencode-config-template --skill pptx-generate-slide-skillgit clone --depth 1 https://github.com/darellchua2/opencode-config-templateWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/darellchua2/opencode-config-template/pptx-generate-slide-skill)<a href="https://agentmods.dev/skills/darellchua2/opencode-config-template/pptx-generate-slide-skill"><img src="https://agentmods.dev/badge/skills/darellchua2/opencode-config-template/pptx-generate-slide-skill.svg" alt="Measured on agentmods" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00031 | $0.08664 |
| Opus 5 | $0.00015 | $0.04332 |
| Sonnet 5 | $0.00006 | $0.01733 |
| Haiku 4.5 | $0.00003 | $0.00866 |
Grade A, and why
pptx-generate-slide-skill scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 4d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 580 lines — stays where its author put it; the contents beside it link to each section on GitHub.
What I do
I fill the PowerPoint template (template.pptx) with structured content using ppt_builder.py. I am the only approved method for generating presentations from structured data.
- Accept a JSON array (
slide_data_list) and render it into a.pptxfile - Resolve Slide Master layouts by name (robust to layout reordering)
- Add slides from the template's Slide Master layouts, filling placeholders by type
- Embed native charts (editable, not images) and native pictures
- Resolve resource placeholders (
data_query) into real assets before rendering - Validate every deck against a JSON schema (with two-layer retry) before it reaches the engine
- Write speaker notes (in the user's prompt language) to each slide's Notes pane (Presenter View only)
- Handle missing placeholders gracefully with warnings (never crash)
When to use me
Use this skill when:
- You have structured content (JSON array) and need a
.pptxoutput - You want to populate a Slide Master template with pre-defined layouts
Do NOT use for:
- Creating presentations from scratch
- OOXML editing or raw XML manipulation
- Thumbnail generation or visual analysis
Template
The engine is template-agnostic (Capability A, issues #43/#44/#45): it accepts any .pptx, introspects it into a JSON contract, and fills it using that template's own layouts — matched by placeholder-composition fingerprint, not hardcoded names.
| File | Description |
|---|---|
template/default.pptx |
Slide Master template (repo root) — the bundled default, used when no template_path is given. |
template/default.config.json |
Optional layout-name pins (<slide_type>_layout for any of the 8 types). |
template/default.pptx.contract.json |
Auto-generated introspection contract (mtime-cached, gitignored). |
User-supplied template (path pass-through)
To render from a user's own template, pass its path as template_path (or CLI --template) — do NOT overwrite the default. The engine introspects it automatically before every render. Omitting template_path uses template/default.pptx:
What ships with it
51 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- docs/DESIGN-multi-stage-generation.md 5.0 KB
- docs/DESIGN-resource-resolver.md 5.7 KB
- docs/DESIGN-template-agnostic.md 14 KB
- docs/RESEARCH-chart-generation.md 8.0 KB
- scripts/coordinate_placer.py 5.1 KB runs code
- scripts/density_mode.py 5.8 KB runs code
- scripts/multipass_render.py 13 KB runs code
- scripts/notes_repair.py 5.2 KB runs code
- scripts/ooxml_add_slide.py 6.8 KB runs code
- scripts/outline_store.py 4.4 KB runs code
- scripts/overflow_check.py 12 KB runs code
- scripts/placeholder_backfill.py 8.9 KB runs code
- scripts/ppt_builder.py 76 KB runs code
- scripts/resolver.config.example.json 258 B
- scripts/resolvers/__init__.py 445 B runs code
- scripts/resolvers/chart_data_resolver.py 4.1 KB runs code
- scripts/resolvers/pipeline.py 2.7 KB runs code
- scripts/schema_validator.py 16 KB runs code
- scripts/schemas/__init__.py 495 B runs code
- scripts/schemas/slide_schemas.py 5.7 KB runs code
- scripts/tests/conftest.py 4.0 KB runs code
- scripts/tests/test_auto_template.py 6.8 KB runs code
- scripts/tests/test_backward_compat.py 4.2 KB runs code
- scripts/tests/test_chart_slides.py 10 KB runs code
- scripts/tests/test_chart_styling.py 5.4 KB runs code
- scripts/tests/test_common_invariants.py 1.4 KB runs code
- scripts/tests/test_contract_adapter.py 8.4 KB runs code
- scripts/tests/test_coordinate_placer.py 6.4 KB runs code
- scripts/tests/test_density_mode.py 12 KB runs code
- scripts/tests/test_engine_defaults.py 3.6 KB runs code
- scripts/tests/test_fingerprint_resolution.py 11 KB runs code
- scripts/tests/test_geometry.py 8.0 KB runs code
- scripts/tests/test_header_footer.py 5.3 KB runs code
- scripts/tests/test_main.py 4.2 KB runs code
- scripts/tests/test_multi_stage.py 7.8 KB runs code
- scripts/tests/test_multipass_render_merge.py 11 KB runs code
- scripts/tests/test_multipass_render.py 3.5 KB runs code
- scripts/tests/test_notes_repair.py 2.4 KB runs code
- scripts/tests/test_placeholder_backfill.py 7.5 KB runs code
- scripts/tests/test_render_contract.py 6.6 KB runs code
- scripts/tests/test_resource_pipeline.py 6.7 KB runs code
- scripts/tests/test_schema_extractor.py 52 KB runs code
- scripts/tests/test_schema_validation.py 9.9 KB runs code
- scripts/tests/test_signoff.py 4.6 KB runs code
- scripts/tests/test_target_size_gate.py 9.1 KB runs code
- scripts/tests/test_template_introspector.py 7.7 KB runs code
- scripts/tests/test_template_validation.py 5.8 KB runs code
- scripts/tests/test_text_fit.py 7.9 KB runs code
- scripts/tests/test_text_fitting.py 13 KB runs code
- scripts/tests/test_us46_capture.py 7.9 KB runs code
- scripts/text_fit.py 12 KB runs code
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 4d ago First seen · 580 lines · 31 tokens per session scan A 0954363d1d32
pptx-generate-slide-skill is a skill published in the GitHub repository darellchua2/opencode-config-template (6 stars, last pushed yesterday), licensed Apache-2.0. It adds 31 tokens to every session and 8,664 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.
Other skills, from other repositories
ppt-master
AI-driven presentation workflow for generating editable PPTX decks and slides, reconstructing page visuals, creating reusable Brand/Style/Layout/Deck workspaces, filling native PPTX templates, and enhancing finished PPTX files. Use when the user asks to create, generate, reconstruct, regenerate, beautify, redesign…
paper2assets
Extract a research paper PDF into a structured set of poster-agnostic assets reusable by any downstream renderer (paper2poster, paper2blog, paper2audio, paper2video). Produces a / containing the paper's full text (assets/meta/text.txt), per-figure captions (assets/meta/captions.json), cleaned figure rasters…
html2pptx
Convert a rendered HTML page (especially A0 conference posters) into a native PowerPoint .pptx with editable text + native shapes — NOT a PNG-in-slide. Walks the live DOM via headless chromium, extracts BLOCK-level text containers (p/h1-h6/li/td) as TextBoxes with inline / as mixed-style Runs, as Picture with…
guizang-ppt-skill
A tool that creates slide-deck images from content by first making an outline and then rendering each slide. It supports multiple visual styles and is designed for decks people can read and share.
fin-arch-diagram
A tool for creating architecture diagrams, process flowcharts, and hierarchy trees. These show how system parts, business steps, decisions, or organizational levels relate to one another.
impress-presentations
Use when creating, opening, or editing LibreOffice Impress ODP presentations, or PPTX decks only when PowerPoint compatibility is explicitly required.