An Agent Skill that takes a topic, a pile of pasted material, or a finished manuscript and produces a complete zine — editorial plan, manuscript, page-spec JSON, rendered pages, and a print-ready PDF.
It treats a zine as an editorial and production system rather than a prompt. Page JSON is an intermediate artifact, not something you have to hand it.
- Routes by what you have. A seed idea gets a short guided intake. Arbitrary pasted content gets ingested and given a page plan. A finished manuscript gets paginated and designed with its voice preserved. Existing JSON gets validated and repaired.
- Writes before it renders. Full manuscript — headlines, body, captions, sidebars, callouts, credits, back cover — before any visual production.
- Picks the right production method per page. Deterministic HTML/CSS or SVG for text-heavy pages and exact typography; image generation for illustration and collage. Long copy is composited over generated art rather than asking an image model to render paragraphs.
- Checks itself. Page count, sequence, duplicate copy, leaked prompt text, safe areas, bleed, contrast, character continuity, traceable citations.
Clone into your skills directory:
git clone https://github.com/lizTheDeveloper/make-zines.git ~/.claude/skills/make-zinesThen invoke it by name, or just describe what you want made into a zine.
| Path | What it is |
|---|---|
SKILL.md |
The skill itself — routing, editorial workflow, rendering strategy, QA |
references/page-spec.md |
Canonical page JSON schema, field rules, copy budgets per page role |
scripts/validate_zine_json.py |
Structural validator — run before rendering |
agents/openai.yaml |
Interface metadata for OpenAI surfaces |
assets/icon.svg |
Skill icon |
python3 scripts/validate_zine_json.py my-zine-pages.jsonChecks that page_count matches the array, page numbers are sequential from 1, slugs are unique
kebab-case, and every page carries the required fields. Errors fail the run; warnings are worth
reading.
Two constraints do most of the work:
- Never bake layout instructions into visible copy. Everything in
copy,callouts, andsidebarsis approved visible text; non-visible direction lives inproduction_notes. This is what stops prompt fragments turning up printed on the page. - Never invent quotations, facts, citations, or source-derived claims. When research is needed, URLs are retained in the manuscript and the JSON so claims stay traceable.
Page counts default to a multiple of four, because that is how a folded print zine actually works.
CC BY-SA 4.0 — use it, remix it, share it;
derivatives carry the same licence. See LICENSE.