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.
npx claudepluginhub danielrosehill/claude-code-plugins --plugin programmatic-doc-generationThis skill uses the workspace's default tool permissions.
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.
Mandates invoking relevant skills via tools before any response in coding sessions. Covers access, priorities, and adaptations for Claude Code, Copilot CLI, Gemini CLI.
Share bugs, ideas, or general feedback.
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.