goose-graphics-create-style
End-to-end skill that turns a single reference image into a published Gooseworks style — analyzes the image, drafts the slim style spec, renders a hero example plus 2-3 additional formats via Playwright, writes the `gooseworks-style.json` manifest, and publishes via `npx gooseworks styles publish` s…
Install / Use
npx skills add gooseworks-ai/goose-skills --skill goose-graphics-create-styleInstalls into whichever agent you are using.
SKILL.md
Installable skill definition
Quality Score
Category
Development & EngineeringSupported Platforms
Our assessment of goose-graphics-create-style
goose-graphics-create-style scores 93/100 on our quality scale, 709th of 4,606 Development & Engineering skills we index (top 16%).
Its SKILL.md is 17 KB long, well organised into 19 sections with 10 code examples: a thorough specification that gives an agent plenty to work with.
With 1,222 GitHub stars, it is one of the more widely adopted skills in the catalogue.
Maintenance, license and trust
- The repository was last updated 33 days ago, so goose-graphics-create-style is actively maintained.
- Our last check on 2026-10-26 found the source still online.
- It is released under the MIT license, a permissive license that allows use, modification and commercial use with attribution.
- Its trust signals score 100/100, with no cautions. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.
Safety scan
No issues foundOur scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands. An AI review of the same text found nothing harmful.
AI review by kimi-k2.7-code on 2026-10-26. Automated pattern scan on 2026-10-26. It catches known dangerous patterns, not every risk — read a skill before letting an agent act on it.
goose-graphics-create-style compared with similar skills
All 4 of these similar skills score higher than goose-graphics-create-style; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| goose-graphics-create-style (this skill)by gooseworks-ai | 93 | 1.2k | 33d ago | SKILL.md |
| taste-skillby Leonxlnx | 100 | 102.7k | today | CLAUDE.md |
| ai-job-searchby ai-job-search-dev | 100 | 66.0k | 5d ago | CLAUDE.md |
| claude-howtoby luongnv89 | 100 | 45.2k | 6d ago | CLAUDE.md |
| LocalAIby mudler | 100 | 50.0k | today | MCP Server |
Frequently asked questions
- How do I install goose-graphics-create-style?
- Run
npx skills add gooseworks-ai/goose-skills --skill goose-graphics-create-style. The install tabs above show the steps for each supported agent. - Which AI agents does goose-graphics-create-style work with?
- It is written for Universal, as a SKILL.md file. Other agents that read the same format can often use it too.
- Is goose-graphics-create-style safe to use?
- Our scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands. An AI review of the same text found nothing harmful. It is MIT-licensed and scores 100/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is goose-graphics-create-style still maintained?
- The repository was last updated 33 days ago, so goose-graphics-create-style is actively maintained.
Skill content
View source on GitHubname: goose-graphics-create-style
description: >
End-to-end skill that turns a single reference image into a published
Gooseworks style — analyzes the image, drafts the slim style spec, renders
a hero example plus 2-3 additional formats via Playwright, writes the
gooseworks-style.json manifest, and publishes via
npx gooseworks styles publish so other agents can discover it. Mirrors
goose-graphics-create-format but for styles.
Create Goose Graphics Style
Authors a new graphics style and publishes it to the central Gooseworks
library via npx gooseworks styles publish. The output is a working
directory with a gooseworks-style.json manifest plus a hero rendered
example and 2-3 additional examples that demonstrate the aesthetic flexing
across formats.
When to use this skill
Use when the user has a reference image and wants the aesthetic available
as a reusable, discoverable style — so any future
/goose-graphics --style <slug> --format <any> call can render against it.
Always check first: run npx gooseworks styles list (or
npx gooseworks styles search "warm editorial") to see whether a
community-published style already covers the look. If one fits, just use
it via the regular goose-graphics flow.
Prerequisites
- The
goose-graphicsskill must be installed in the same workspace — this skill uses itsscreenshot/screenshot.jsto render examples. Install it by pasting this into your agent:
Or run it yourself:Install gooseworks: https://gooseworks.ai/install.md including the goose-graphics skillnpx gooseworks@latest install --all --mcp --with goose-graphics. - The screenshot tool's dependencies must be installed
(
goose-graphics/screenshot/node_modules/must exist). If not:cd <path-to>/goose-graphics/screenshot && npm install && npx playwright install chromium - The user must be signed in to Gooseworks (
npx gooseworks login) forpublishto authenticate.
Invocation
/goose-graphics-create-style --ref <image-path> [--name <slug>] [--mood <mood-group>]
--ref <image-path>(required) — path to the reference image (PNG/JPG/WebP).--name <slug>(optional) — desired style slug in lowercase-kebab-case (e.g.,pillow-block,neon-dashboard). If omitted, propose 2-3 candidate names after analyzing the image and ask the user to pick.--mood <mood-group>(optional) — whichmoodGroupthe style belongs to. One of:Dark & Moody,Light & Editorial,Organic & Warm,Bold & Energetic,Retro & Cinematic,Structural & Technical,Friendly Corporate. If omitted, infer from the image and confirm.
If the user says "I want a new style for goose-graphics" without args, ask for the reference image path first, then proceed.
Outputs (in a working directory)
<working-dir>/
gooseworks-style.json # manifest (see "Manifest format" below)
poster.png # hero example (REQUIRED — exactly one with isHero: true)
carousel.png # additional examples (recommend 2-3 across formats)
infographic.png
...
The backend rejects publish with an empty examples array or with no
hero — exactly one example must be marked isHero: true.
Standard Brief
All examples are generated using the same brief used by the rest of the catalog, so users can compare styles apples-to-apples:
Brief:
5 Tips for Building a Startup in 2026Tips (use these verbatim, adapt phrasing per style voice):
- Ship fast, learn faster
- Build AI into the core
- Hire for leverage, not headcount
- Obsess over 10 users before 10,000
- Revenue beats runway
Always use this brief. Do not invent your own — it makes the catalog inconsistent.
Workflow
Step 1 — Receive & analyze the image
-
Read the image with the
Readtool (it supports PNG/JPG/WebP natively). -
Work through this analysis checklist explicitly. Write the analysis out in plain text before moving on — do not skip ahead.
Palette — identify 3-6 dominant colors. For each, propose a hex value in the right family (you cannot extract exact hex; pick well-balanced values). Classify each by role: background/canvas, primary surface, accent, secondary accent, text, muted text, borders/dividers, any neon/highlight color.
Typography — heading face (serif / sans / slab / mono), body face (same or different family), weight range, tracking (negative / normal / positive), line-height (tight / generous), overall feel (geometric / humanist / elegant / technical / rounded / condensed). Map to a Google Fonts equivalent (Inter, Fraunces, Playfair Display, Space Grotesk, IBM Plex Mono, etc.).
Layout & shape language — corner radius (sharp / 12px / 28px squircle / pill / circle), borders (yes / no), shadows (yes / no / subtle), tile density, alignment, whether elements overlap.
Signature visual moves — what makes this style THIS style? Examples: "pillowy 28px squircle tiles with hero numerals bottom-right", "blush canvas + oversized black serif money stats", "dark jewel surfaces + neon pink pill labels". Lead with these — they differentiate the style across formats.
Mood / category — dark/light, calm/loud, premium/playful. Use this to pick the
moodGroupif not provided. -
Critical separation of concerns: A style is an aesthetic SYSTEM (palette + typography + signature visual moves) that flexes across all formats. It is NOT a fixed composition. If your analysis describes "5 cards in a bento grid" or "3 vertical insight cards," you are mixing format into style. Re-frame in terms of palette, typography, and signature visual moves that any format can adopt.
Step 2 — Pick name, slug, and moodGroup
If --name was provided, use it. Otherwise propose 2-3 candidates derived
from the signature moves (e.g. pillow-block, pastel-ledger,
neon-dashboard) and ask the user to pick. Slug must be
lowercase-kebab-case ([a-z0-9-]+).
Collision check: run npx gooseworks styles get <slug> — if the
catalog returns a hit, the slug is taken. Suggest an alternative.
(The user may omit slug from the manifest; the backend auto-generates
one. On 409 the CLI prompts you to accept the server's suggested slug;
pass --yes at publish time to auto-accept.)
If --mood was provided, use it. Otherwise pick the best fit from the
seven moodGroup values (see §Invocation) and confirm.
Step 3 — Draft the slim style spec
This becomes the designMd field of the manifest in step 5. Hold it in
memory; do not write it to disk until step 5 packages it into the
manifest. Mirror the structure of canonical slim specs (e.g.
dot-grid-stat, pillow-block, blush-annual, neon-dashboard) — fetch
one as a reference if unsure of the shape:
npx gooseworks styles get dot-grid-stat
Required sections, in this order:
- Title (h1) — display name (Title Case).
- Tagline paragraph — 2-3 sentences describing the aesthetic and the signature move. End with the vibe / brand analogy.
## Palette— markdown table withHex | Rolecolumns. Include semi-transparent variants (rgba(...)) where the style uses them.## Typography— Google Fonts<link>block, font CSS variable lines, then a type table with columnsRole | Font | Size | Weight | Line-height | Tracking. Include rows for hero, display, body, label, caption, brand. End with a Principles sub-list (3-5 bullets).## Layout— bullet list. Must include a "Format padding" line listing per-format padding (carousel/infographic/slides/poster/story/chart/tweet). Then 4-6 aesthetic-principle bullets.## Do / Don't— two sub-lists, 5 bullets each.## CSS snippets—:rootvariables block, then 1-2 ready-to-paste HTML snippets demonstrating the signature move (e.g. a hero tile, a card, a CTA pill).
Keep it under ~200 lines / 8KB. Aesthetic-only — no fixed compositions. Minimum length is 50 chars (the manifest validator's floor); the sweet spot for the catalog is 2000-6000 chars.
Step 4 — Render hero + 2-3 additional examples
Pick a hero format (the one example that best showcases the aesthetic), plus 2-3 additional formats so the catalog tile shows variety. Hero priority order:
poster > carousel > infographic > slides > chart > story > tweet
i.e. start at poster and walk down until you hit a format that fits the
aesthetic well.
For each example, generate HTML at the format's exact dimensions using the slim spec's palette, fonts, and signature visual moves, and the standard brief above. Format dimensions:
| Format | Dimensions | Notes | |---|---|---| | poster | 1080×1350 portrait | Hero composition with all 5 tips | | infographic | 1080×variable | Tall vertical, 5 tip sections stacked | | carousel | 1080×1080 | Single representative cover slide | | slides | 1920×1080 | Single representative widescreen slide | | story | 1080×1920 vertical | Single representative story slide | | chart | 1080×1080 | Bar / line / block chart of stats from the 5 tips | | tweet | 1080×1080 | Testimonial card on decorative background, NOT a poster |
Critical: the tweet format is a simulated tweet/testimonial card centered on a decorative background styled with the new aesthetic — not a poster. Background uses the new style's palette/shapes; the centered card looks like a real social-media post (avatar, display name, handle, body, timestamp, engagement metrics).
HTML rules (apply to every example):
- Self-contained single HTML file — inline
<style>block + Google Fonts<link>. - Fixed pixel sizes only. NO
vw/vh/%/rem/em/clamp(). - Outer dimensions match the format spec exactly:
html, body { width: Xpx; height: Ypx; overflow: hidden; }. Infographic is the exception: width fixed, height grows. - Use exactly the palette hex codes and font links from the slim spec — do not invent new colors.
- Maintain the signature visual moves across every example. If a format can't fit the move comfortably, scale it down — do not abandon it.
Render each via the screenshot tool, writing PNGs directly into the working directory (one PNG per format, named after the format slug):
node <path-to>/goose-graphics/screenshot/screenshot.js \
--format <format> \
--input <path-to-html> \
--output <working-dir>/<format>.png \
--font-delay 1500
Single-file vs directory input: carousel, slides, and story are
"multi-file" formats by default — if --input is a directory, the tool
renders every .html file inside it to numbered slide-NN.png files in
the --output directory. For the single representative slide we want
here, pass a single .html file as --input and a single PNG path as
--output — the tool detects the file input and writes one PNG. The
other formats (poster, infographic, chart, tweet) are always single-file.
Common failure modes:
- Content overflows the fixed canvas → reduce font sizes or simplify layout.
- Fonts not loaded → bump
--font-delayto 2000. - Playwright/chromium not installed → run the install command from Prerequisites.
Step 5 — Write gooseworks-style.json
Match the shape documented in goose-graphics/SKILL.md §17.1. Required:
{
"name": "Desert Sunset",
"slug": "desert-sunset",
"description": "Warm dusk gradients with rust and amber on cream paper. Editorial serif headlines paired with a single sans-serif accent. Built for DTC beauty product launches, lifestyle long-form, and event posters where you want a confident, sun-soaked, high-end magazine feel.",
"designMd": "# Desert Sunset\n\n…full slim spec markdown from step 3 — palette table, typography table, layout rules, do/don'ts, CSS snippets…",
"moodGroup": "Organic & Warm",
"tags": ["warm", "desert", "editorial", "serif", "dtc"],
"palette": [
{ "hex": "#E06A2C",
Truncated for display — read the full file on GitHub.
Related Skills
taste-skill
102.7kAgent skills that give coding agents taste: art direction, reference images and a browser check instead of generic AI pages
ai-job-search
66.0kThe job search that runs on your machine. AI job application framework built on Claude Code: evaluate postings, tailor CVs, write cover letters, prep interviews. Fork it and own it.
claude-howto
45.2kA visual, example-driven guide to Claude Code — from basic concepts to advanced agents, with copy-paste templates that bring immediate value.
LocalAI
50.0kLocalAI is the open-source AI engine. Run any model - LLMs, vision, voice, image, video - on any hardware. No GPU required.
Languages
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
