From programmatic-doc-generation
Scaffold a parameterised Typst template for batch document rendering. Use when the user asks to create a Typst template, build an invoice/receipt/statement/report/letter template, or set up a JSON-data-driven Typst document for batch CLI rendering. Produces a `.typ` template that consumes a JSON sidecar so N documents can be rendered from N data files.
How this skill is triggered — by the user, by Claude, or both
Slash command
/programmatic-doc-generation:new-typst-templateThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Scaffold a reusable Typst template parameterised over a JSON data file. The template is designed for batch rendering via the Typst CLI: one `.typ` template + N JSON files = N PDFs.
Scaffold a reusable Typst template parameterised over a JSON data file. The template is designed for batch rendering via the Typst CLI: one .typ template + N JSON files = N PDFs.
Auto-trigger when the user asks for a programmatic Typst template, especially for:
If the user just wants a one-off styled document (not parameterised, not batch), the standalone typst skill is a better fit — point them to it instead.
ingest-document-sample first.$CLAUDE_USER_DATA_ROOT/brand.json (see path resolution below). If present, use it. If not, ask whether to run define-brand-profile first or proceed with placeholder branding.~/Documents/doc-templates/<template-name>/.Resolve the plugin data root once per session:
DATA_ROOT="${CLAUDE_USER_DATA:-${XDG_DATA_HOME:-$HOME/.local/share}/claude-plugins}/programmatic-doc-generation"
mkdir -p "$DATA_ROOT"
Read $DATA_ROOT/config.json for any pointers (e.g. user-chosen templates path).
Read $DATA_ROOT/brand.json for brand profile, if present.
For an invoice (other types follow the same pattern), produce:
<template-dir>/
├── template.typ # the Typst template
├── data.example.json # example payload — schema reference
├── render.sh # batch render helper
└── README.md # how to use, what each field does
template.typ should:
#let data = json("data.json") at the top.#for over arrays (line items, sections) rather than hardcoded slots.render.sh should iterate over a data/*.json directory and emit out/<basename>.pdf for each — one CLI call per file via typst compile.
typst compile once against the example data to verify it builds. If typst isn't installed, instruct the user how to install it (don't try to install it for them on a system you don't fully own).render.sh, and point at batch-render-typst for the batch flow.~/Documents/ or ~/repos/. Store only the path pointer in $DATA_ROOT/config.json.npx claudepluginhub danielrosehill/claude-code-plugins --plugin programmatic-doc-generationGuides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.