From programmatic-doc-generation
Capture the user's brand identity — colour palette, fonts, logo, business name and registered address, tax/VAT IDs, contact details — into a reusable brand profile that every other skill in this plugin consumes. Use when the user wants to set up branding for their document templates, define their colour palette, or store business identity for invoice/letter generation.
npx claudepluginhub danielrosehill/claude-code-plugins --plugin programmatic-doc-generationThis skill uses the workspace's default tool permissions.
Capture brand and business identity once; reuse it across every template the plugin generates.
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.
Capture brand and business identity once; reuse it across every template the plugin generates.
Auto-trigger when the user:
If the user wants to infer their brand from a website rather than supply it manually, route them to extract-brand-from-site instead.
Don't demand everything in one shot — get what the user has, mark the rest as TBD, and let them top up later.
en-IL, dd/mm/yyyy)Resolve the data root:
DATA_ROOT="${CLAUDE_USER_DATA:-${XDG_DATA_HOME:-$HOME/.local/share}/claude-plugins}/programmatic-doc-generation"
mkdir -p "$DATA_ROOT/brand"
Write $DATA_ROOT/brand.json with the captured fields. Copy any supplied logo into $DATA_ROOT/brand/logo.<ext> and store the relative path inside brand.json so templates can resolve it.
If a brand.json already exists, merge rather than overwrite — preserve existing fields the user didn't update this run.
{
"version": 1,
"updated_at": "ISO8601",
"visual": {
"palette": {
"primary": "#hex",
"secondary": "#hex",
"accent": "#hex"
},
"fonts": {
"heading": "IBM Plex Sans",
"body": "IBM Plex Sans"
},
"logo": "brand/logo.svg"
},
"business": {
"legal_name": "...",
"trading_name": "...",
"address": "...",
"tax_ids": { "vat": "...", "company_number": "..." },
"contact": { "email": "...", "phone": "...", "website": "..." }
},
"defaults": {
"currency": "USD",
"locale": "en-US",
"date_format": "yyyy-mm-dd",
"footer": "..."
}
}
new-typst-template and ingest-document-sample will now use this profile automatically.