Install
$ agentstack add skill-marsmike-feinschmiede-deck ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ● Filesystem access Used
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
deck — master-template renderer
Generate a brand-perfect .pptx by composing plans against a brand pack's master.pptx. The master supplies typography, colors, footers, slide-number chrome — the renderer only fills placeholders and clones bespoke shapes.
Quick Start
from pathlib import Path
from feinschliff import FillPlan, render
render(
Path("feinschliff/brands/feinschliff"),
[FillPlan(layout="Title Slide", fills={0: "Q3 update", 1: "Roadmap"})],
Path("out.pptx"),
)
Author the call in feinschliff/.debug/-/build.py and run it with feinschliff build.py — the plugin's launcher execs the venv Python directly, no CLI in between.
Brand packs
Each pack ships under feinschliff/brands// with a master.pptx (or .ref pointer) and catalog files. Built-in packs: feinschliff (default), annual-review, geometric, scientific, shapes, gs-ramspau. Corporate / private packs surface through sibling feinschliff-* plugin directories ($FEINSCHLIFF_BRAND_PATH). Run python -m feinschliff.master_template.catalog to list layouts + snippets for any pack.
Mental model
A deck is a list of plans, in slide order:
FillPlan(layout, fills)— pick a layout by name (see/layouts.yaml), fill placeholders byidx. Values:str,list[str],PictureRef, orChartSpec. Charts and pictures replace the OBJECT placeholder.ClonePlan(source_idx, replacements)— XML-clone a bespoke source slide from/snippets.yaml.replacementsis a queue per old-string; repeating("Milestone", ...)consumes successive occurrences in document order.render(..., theme=Path|dict)— optional. Patches the master'stheme1.xml`from a small JSON. Onemaster.pptx`, N visual variations; the file on disk is never touched.
Flow
- Interview if the brief is thin. Topic + audience are the minimum; [references/storyline.md](references/storyline.md) maps audience to a default slide count.
- Draft the storyline per [references/storyline.md](references/storyline.md) — emit the brief block + numbered slides block, pick a frame, tag each row with
roleandact, write claim-style titles. - Pick layouts per [references/layouts.md](references/layouts.md). For bespoke shapes (timelines, funnels, infographics) clone from
/snippets.yaml— see [references/clones.md](references/clones.md) for the text-anchor recipe. - Approval gate — show storyline + chosen layouts, ask "ok?". Don't render until approved.
- Render with the Quick Start snippet. Respect the verbosity tier when sizing fills. See [references/gotchas.md](references/gotchas.md) for pitfalls.
- Verify and loop — convert to PDF and read the pages against the defect classes in [references/verify.md](references/verify.md). Fix and re-render until clean; the reference describes the
/loop-driven iteration.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: marsmike
- Source: marsmike/feinschmiede
- License: MIT
- Homepage: https://marsmike.github.io/feinschmiede/
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.