Create Goose Graphics Format
Create and publish a new Gooseworks graphics format when the existing community formats do not cover the user's requested surface or content structure. The runbook guides an agent through selecting one of the fixed supported canvases, drafting a reusable `contentRulesMd` spec, re
10 steps · start to finish.
- 1Step 1
Environment Setup
▶- Create the output directory and a dedicated working directory.
- Confirm the
goose-graphicsskill is installed in the workspace. - Confirm screenshot dependencies are installed for
goose-graphics/screenshot. - Confirm the user is signed in with
npx gooseworks login.
mkdir -p "${RESULTS_DIR:-/app/results}" "${WORKING_DIR:-./gooseworks-format}" npx gooseworks formats list >/tmp/gooseworks-formats.txt npx gooseworks styles list >/tmp/gooseworks-styles.txt test -d goose-graphics/screenshot/node_modules || \ (cd goose-graphics/screenshot && npm install && npx playwright install chromium) - 2Step 2
Check Existing Formats
▶Run `npx gooseworks formats list` or `npx gooseworks formats search "<term>"` before creating anything new. If an existing format fits the user's request, stop and report the existing slug instead of publishing a duplicate.
- 3Step 3
Pick a Supported Canvas
▶Choose exactly one built-in canvas. A new format is a new slug and new content rules over an existing canvas; it is not a new custom width and height.
- 4Step 4
Define Name, Slug, and Content Rules
▶Suggest 2-3 descriptive lowercase kebab-case slugs. Check the preferred slug before using it:
- 5Step 5
Render Example Images
▶Render at least one example PNG and preferably 2-3 examples across contrasting published styles.
- 6Step 6
Write `gooseworks-format.json`
▶Create the manifest in the working directory.
- 7Step 7
Validate Before Publish
▶Validate that the manifest has a 20-1000 character description, at least 50 characters of `contentRulesMd`, 3-10 lowercase tags, and at least one rendered example file. Confirm `width` and `height` match the selected built-in canvas.
- 8Step 8
Publish
▶Publish from the working directory. Use `--yes` when scripted so a server-suggested slug can be accepted automatically after a collision.
- 9Step 9
Iterate on Errors (max 3 rounds)
▶If validation or publish fails, run at most 3 rounds of targeted fixes. Fix only the failing item, re-render examples when visual output changes, re-run validation, and then retry publish. Stop after 3 rounds and write the remaining issue to `summary.md` and `validation_report.js
- 10Step 10
Final Checklist
▶Write `summary.md` and `validation_report.json`, then verify all mandatory outputs.