From programmatic-doc-generation
Visit a user-supplied website URL and infer brand identity from it — colour palette, typography, logo, business name, address, contact details — then write a brand profile the plugin's other skills consume. Use when the user says something like "use the brand from our site", "extract our palette from the website", or supplies a URL and asks to set up branding.
npx claudepluginhub danielrosehill/claude-code-plugins --plugin programmatic-doc-generationThis skill uses the workspace's default tool permissions.
Auto-derive a brand profile by inspecting a live website. Faster than `define-brand-profile` when the user already has a polished web presence.
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.
Auto-derive a brand profile by inspecting a live website. Faster than define-brand-profile when the user already has a polished web presence.
Auto-trigger when the user:
Prefer the WebFetch tool for the initial pass (HTML + computed styles inferred from CSS). For richer extraction (rendered colours, real logo URLs after JS), use a Playwright tool if available — render, then read.
font-family declarations on body, h1-h6. Map to commonly-available fallbacks (e.g. site uses "Inter" → record "Inter", suggest installing it).<img> in the header, favicon, OpenGraph image, or link rel="apple-touch-icon". Prefer SVG when available. Download and stage locally.<title>, OpenGraph site_name, schema.org Organization JSON-LD if present.PostalAddress / ContactPoint if present. Otherwise scan the footer / contact page for an address block, email, phone.Show the user every field before writing. They edit / approve / reject each. Don't silently ship inferred branding — colour inference and logo selection are easy to get wrong.
Once confirmed, write the values into $DATA_ROOT/brand.json using the same schema as define-brand-profile. If a profile already exists, merge.
Resolve the data root:
DATA_ROOT="${CLAUDE_USER_DATA:-${XDG_DATA_HOME:-$HOME/.local/share}/claude-plugins}/programmatic-doc-generation"