goose-ads
Edit, resize, animate and study image ads with GooseWorks in this chat. New static or image ads go to the make-static-ads skill…
Creates a new graphics format spec (custom canvas dimensions + content rules) and publishes it to the Gooseworks library so any agent can render against it. Use when the existing community formats (carousel, story, infographic, slides, poster, chart, tweet, plus community
Claude Code
$ npx -y skills add gooseworks-ai/goose-skills --skill goose-graphics-create-format --agent claude-code
Codex
$ npx skills add gooseworks-ai/goose-skills --skill goose-graphics-create-format -a codex -y
Cursor
$ npx skills add gooseworks-ai/goose-skills --skill goose-graphics-create-format -a cursor -y
Gemini CLI
$ npx skills add gooseworks-ai/goose-skills --skill goose-graphics-create-format -a gemini-cli -y
GitHub Copilot
$ npx skills add gooseworks-ai/goose-skills --skill goose-graphics-create-format -a github-copilot -y
OpenCode
$ npx skills add gooseworks-ai/goose-skills --skill goose-graphics-create-format -a opencode -y
Windsurf
$ npx skills add gooseworks-ai/goose-skills --skill goose-graphics-create-format -a windsurf -y
name: goose-graphics-create-format description: > Creates a new graphics format spec (custom canvas dimensions + content rules) and publishes it to the Gooseworks library so any agent can render against it. Use when the existing community formats (carousel, story, infographic, slides, poster, chart, tweet, plus community additions) don't fit the user's canvas — e.g., LinkedIn banner 1584×396, story cover 1080×1920, event flyer 8.5×11in. Mirrors goose-graphics-create-style but for formats.
Authors a new graphics format and publishes it to the central Gooseworks library via `npx gooseworks formats publish`. The output is a working directory with a `gooseworks-format.json` manifest plus at least one rendered example PNG paired with an existing style.
Use when the user wants a new named format with its own content rules — a story cover, a podcast cover, a square testimonial — that maps to one of the seven built-in canvas sizes (carousel, infographic, slides, poster, story, chart, tweet). The new format defines new rules and a new slug; it inherits dimensions from one of those canvases.
**Custom canvas dimensions are not supported.** If the user wants a canvas size that isn't in the seven built-ins (e.g. LinkedIn banner 1584×396, US Letter 2550×3300), tell them honestly — that requires a code change to the `goose-graphics` skill pack's `FORMAT_CONFIGS` and is out of scope for this skill. Suggest the closest existing canvas instead.
**Always check first:** run `npx gooseworks formats list` (or `formats search "banner"` etc.) to see whether a community-published format already covers the use case. If one fits, just use it via the regular `goose-graphics` flow.
this skill uses `goose-graphics/screenshot/screenshot.js` to render examples and pulls style specs via `npx gooseworks styles get <slug>`. Install it by pasting this into your agent:
Install gooseworks: https://gooseworks.ai/install.md including the goose-graphics skill
Or run it yourself: `npx gooseworks@latest install --all --mcp --with goose-graphics`.
(`goose-graphics/screenshot/node_modules/` must exist). If not:
cd <path-to>/goose-graphics/screenshot && npm install && npx playwright install chromium
to authenticate.
and content density rules.
<working-dir>/ gooseworks-format.json # manifest (see "Manifest format" below) example-1.png # at least one rendered example (REQUIRED) example-2.png # optional; recommend 2–3 examples across styles example-3.png
The backend rejects publish with an empty `examples` array — at least one rendered example is mandatory.
A new format is **a new slug + new content rules over one of the seven built-in canvas sizes** — *not* a new canvas. Custom dimensions are not supported: every renderer in the system (CLI screenshot tool, hub, other agents) is locked to this allow-list, and creating a format with custom `width`/`height` would produce something nobody can render.
Pick the canvas the new format should use:
| Canvas slug | Dimensions | Best for | |---------------|------------|--------------------------------------------| | `poster` | 1080×1350 | Vertical hero composition, single panel | | `infographic` | 1080×var. | Tall vertical scroll, multi-section | | `carousel` | 1080×1080 | Square single panel / multi-slide | | `slides` | 1920×1080 | Widescreen / presentation | | `story` | 1080×1920 | Vertical full-screen (IG/TikTok stories) | | `chart` | 1080×1080 | Square data viz | | `tweet` | 1080×1080 | Square testimonial / social card |
Then ask the user:
counts, whether it's single-panel or multi-panel.)
The new format inherits the canvas's `width`/`height` exactly. Set the manifest's `width`/`height` fields to the canvas's dimensions verbatim (e.g. 1080/1350 for a poster-canvas format). Do not invent new dimensions — the publish step will reject anything that doesn't match one of the seven canvases.
If the user wants a canvas that isn't in the list (e.g. LinkedIn banner 1584×396), tell them honestly: that's a code change to the `goose-graphics` skill pack's `FORMAT_CONFIGS` and is out of scope for this skill. Suggest the closest existing canvas instead.
Suggest 2–3 descriptive names that lead with the platform / surface (e.g., `linkedin-banner`, `story-cover`, `podcast-cover`, `event-flyer-letter`). Slug must be lowercase-kebab-case (`[a-z0-9-]+`).
**Collision check:** run `npx gooseworks formats 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.)
This is the load-bearing field — it teaches future agents how to fill the canvas. Cover, in this order:
Put your AI agent on the growth team. Research customers and competitors, analyze what is working, create the next campaign, and learn from the result.
Edit, resize, animate and study image ads with GooseWorks in this chat. New static or image ads go to the make-static-ads skill…
Make product photos (studio, lifestyle or on a model) of a brand's real products with GooseWorks in this chat. Start brand work…
Make an approved GooseWorks video when an answer's next_step gives its command.
Make a video ad in this chat from a real reference ad, found or theirs; styles are the fallback. Follow every answer's next_step.
GooseWorks growth coworker and router for markets, competitors, audiences, creators, campaigns, ads, photos, graphics, video,…
Create a custom video with sourced product accuracy, explicit sound routing and exact-final audiovisual review.
When the user wants to plan, design, or implement an A/B test or experiment, or build a growth experimentation program. Also use…
Comprehensive SEO analysis for any website or business type. Full site audits, single-page analysis, technical SEO (crawlability,…
Turn the current project website into a short, polished, shareable launch video using Hyperframes. Use when someone says "/brag",…
Full website GEO+SEO audit with parallel subagent delegation. Orchestrates a comprehensive Generative Engine Optimization audit…