Web Application Testing
anthropics/skills
Tests local web applications with Python Playwright scripts, checking frontend behavior, capturing screenshots and reading browser console logs.
Portable visual skill pack for the Agent Skills ecosystem (Claude Code, Claude Desktop, Claude Cowork, Claude Design, Goose, Cursor, Codex).
$ npx skills add gooseworks-ai/goose-skills --skill goose-graphics -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install gooseworks-ai/goose-skills goose-graphics --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/gooseworks-ai/goose-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/design/composites/goose-graphics .claude/skills/goose-graphics && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "goose-graphics" agent skill from https://github.com/gooseworks-ai/goose-skills/tree/main/skills/design/composites/goose-graphics into .claude/skills/goose-graphics/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "goose-graphics", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/gooseworks-ai/goose-skills/tree/main/skills/design/composites/goose-graphicsType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add gooseworks-ai/goose-skills --skill goose-graphics -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install gooseworks-ai/goose-skills goose-graphics --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/gooseworks-ai/goose-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/design/composites/goose-graphics .agents/skills/goose-graphics && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "goose-graphics" agent skill from https://github.com/gooseworks-ai/goose-skills/tree/main/skills/design/composites/goose-graphics into .agents/skills/goose-graphics/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "goose-graphics", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add gooseworks-ai/goose-skills --skill goose-graphics -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install gooseworks-ai/goose-skills goose-graphics --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/gooseworks-ai/goose-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/design/composites/goose-graphics .cursor/skills/goose-graphics && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "goose-graphics" agent skill from https://github.com/gooseworks-ai/goose-skills/tree/main/skills/design/composites/goose-graphics into .cursor/skills/goose-graphics/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "goose-graphics", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/gooseworks-ai/goose-skills.git --path skills/design/composites/goose-graphics--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add gooseworks-ai/goose-skills --skill goose-graphics -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install gooseworks-ai/goose-skills goose-graphics --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/gooseworks-ai/goose-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/design/composites/goose-graphics .gemini/skills/goose-graphics && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "goose-graphics" agent skill from https://github.com/gooseworks-ai/goose-skills/tree/main/skills/design/composites/goose-graphics into .gemini/skills/goose-graphics/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "goose-graphics", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install gooseworks-ai/goose-skills goose-graphicsInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add gooseworks-ai/goose-skills --skill goose-graphics -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/gooseworks-ai/goose-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/design/composites/goose-graphics .github/skills/goose-graphics && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "goose-graphics" agent skill from https://github.com/gooseworks-ai/goose-skills/tree/main/skills/design/composites/goose-graphics into .github/skills/goose-graphics/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "goose-graphics", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add gooseworks-ai/goose-skills --skill goose-graphics -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install gooseworks-ai/goose-skills goose-graphics --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/gooseworks-ai/goose-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/design/composites/goose-graphics .opencode/skills/goose-graphics && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "goose-graphics" agent skill from https://github.com/gooseworks-ai/goose-skills/tree/main/skills/design/composites/goose-graphics into .opencode/skills/goose-graphics/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "goose-graphics", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
goose-graphicsPortable visual skill pack for the Agent Skills ecosystem (Claude Code, Claude Desktop, Claude Cowork, Claude Design, Goose, Cursor, Codex).
Goose Graphics is an agent skill from gooseworks-ai/goose-skills. Portable visual skill pack for the Agent Skills ecosystem (Claude Code, Claude Desktop, Claude Cowork, Claude Design, Goose, Cursor, Codex). Discovers community-published styles + formats via the gooseworks CLI, runs an extract-style workflow on reference images, and exports rendered PNGs via Playwright.
Its SKILL.md is about 5.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 13 other files (for example `README.md`, `extract-style.md` and `screenshot/fetch-full-tweet.js`).
It sits in Testing & QA, covering Browser testing. It works with Playwright. The repository describes itself as: Library of Growth & GTM skills + data APIs for Claude Code, Codex, Cursor to run ads, social, content, lead gen, seo and data scraping. The licence is MIT.
12 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit c650c6d. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships script files (JavaScript), which the agent can run.
Shell commands in SKILL.md call:
npxnpmnodeFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
skills.gooseworks.aiFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Goose Graphics loads about 5.2k tokens when it runs. Until then it costs about 80 tokens; SKILL.md has 2,219 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from gooseworks-ai/goose-skills at commit c650c6d, republished under its MIT licence (© gooseworks-ai). 2,219 words, ~5,223 tokens.
.claude/skills/goose-graphics/SKILL.md (or your agent's skills folder). This skill also uses 11 other files; get the full folder from GitHub.goose-graphics is a portable visual skill pack for the Agent Skills ecosystem. Styles and formats live in the central Gooseworks library — fetched on demand via npx gooseworks instead of bundled into this repo. The skill pairs that catalog with an extract-style workflow for reference images, an Unsplash + ASCII art image-sourcing layer, and a Playwright-based HTML-to-PNG export pipeline.
It loads in any host that reads SKILL.md — Claude Code agents calling it for automated render, Goose pipelines wiring it into content generation, Cursor/Codex projects picking it up via .cursor/rules/ or ~/.codex/skills/. Each style ships a slim DESIGN.md spec via npx gooseworks styles get <slug>, which can also be uploaded directly into Claude Design as a design-system scaffold.
Format templates, image-sourcing helpers, and the screenshot pipeline live in this skill pack. Styles, formats, and example renders are fetched on demand from the central library — no slugs are baked in.
This skill supports three invocation modes — all-args, partial-args, and interactive. Pick the fastest path for the ask.
/goose-graphics --style <slug> --format <format> [--brief "..."] [--ref <image-path>]--style <slug> — any community-published style slug. Discover with npx gooseworks styles list / search. Required for style-selected generation. Omit to let the user pick interactively.--format <format> — any community-published format slug (e.g., carousel, story, infographic, slides, poster, chart, tweet, plus any community additions). Discover with npx gooseworks formats list. Required for format-selected generation.--brief "..." — the topic / content description. Replaces the Content Discovery phase.--ref <image-path> — if present, extract an ad-hoc style from the reference image for this single render instead of using a preset. When --ref is provided, --style is ignored. For creating a persistent published style that other agents can discover, use the dedicated /goose-graphics-create-style skill instead.Three branches:
--style + --format + --brief OR --ref + --format + --brief) → skip discovery, skip style selection, proceed directly to §7 (Set Output Path) and §8 (Generate HTML).--style is set but --format is not, ask only for format. If --brief is missing, ask only for the topic/content.# Full args — one-shot generate
/goose-graphics --style matt-gray --format carousel --brief "How founders find their first 100 customers in 2026"
# Reference-driven — extract a one-off style from an image and build with it
/goose-graphics --ref ~/Desktop/mood.png --format poster --brief "Summer studio open house, August 14"
# Partial — Claude asks for the missing brief
/goose-graphics --style deep-ocean --format slides
# No args — full interactive flow
/goose-graphicsTo create a persistent published style (slim spec + hero render + a few additional examples, pushed to the central library so other agents can discover it), use the dedicated /goose-graphics-create-style skill instead.
--brief is missing but clearly inferable from subsequent user text, don't block — proceed.--format is missing, default to asking (there is no safe default across formats).--style is missing and --ref is missing, ask — style is load-bearing.Styles and formats live in the central Gooseworks library, not in this skill pack. Always list or search before assuming a slug exists — the catalog is community-driven and changes over time.
# List or search styles
npx gooseworks styles list
npx gooseworks styles search "warm editorial"
npx gooseworks styles list --mood "Organic & Warm" --tag warm
# Fetch a specific style's DESIGN.md (the slim spec) — pipe into Claude Design,
# or include in the agent context for HTML generation
npx gooseworks styles get <slug>
# Same shape for formats
npx gooseworks formats list
npx gooseworks formats search "vertical"
npx gooseworks formats get <slug>When the user names a style or format, run list / search first, then get the spec for the chosen slug. Never assume a slug exists from memory — slugs come and go as the community publishes and retires entries.
When the user creates a new aesthetic via extract-style.md (or via the dedicated /goose-graphics-create-style skill) and is happy with it, publish it to the community library so other agents and users can discover it:
cd <directory-with-rendered-examples>
npx gooseworks styles publishThe CLI expects a gooseworks-style.json manifest in the working directory plus the referenced PNG files. See §13 Manifest format for the exact shape.
The description is what makes the style discoverable by AI agents searching the catalog. Treat it as a search index, not flavor text.
isHero: true. Pick the format that best showcases the style.poster > carousel > infographic > slides > chart > story > tweet.When the existing community-published formats don't fit the user's canvas (e.g., LinkedIn banner 1584×396, story cover 1080×1920, event flyer 8.5×11in), use the sibling /goose-graphics-create-format skill to produce a format spec and at least one rendered example, then publish:
cd <directory-with-format-bundle>
npx gooseworks formats publishFormat publishing requires at least one rendered example — the backend rejects an empty examples array. See §13 Manifest format for the exact shape of gooseworks-format.json.
Description and tag guidelines for formats follow the same rules as styles (§4.1, §4.2), but lead with dimensions + content density instead of mood:
"1080×1920 vertical canvas for Instagram and TikTok stories. Single-panel composition, 5-word title max, large hero image or stat. Use for quick announcements and engagement posts where the viewer scrolls past in 2 seconds."
SKILL.md (this file) auto-loads on most Agent Skills hosts once the pack is installed at the right path. Claude Design is the one host that does not auto-load skill packs — instead, it consumes individual style files (DESIGN.md) one at a time via manual upload, fetched on demand via npx gooseworks styles get <slug>.
| Host | Install | Notes |
|---|---|---|
| Claude Code | npx goose-skills install goose-graphics --claude | Lands at ~/.claude/skills/goose-graphics/ |
| Claude Desktop | (same install as above) | Auto-shared — Desktop reads ~/.claude/skills/ |
| Claude Cowork | (same install as above) | Built on Claude Desktop; same skill dir |
| Goose (Block) | (same install as above) | Auto-discovers ~/.claude/skills/ + ~/.config/goose/skills/ |
| Cursor | npx goose-skills install goose-graphics --cursor --project-dir . | Writes .cursor/rules/goose-goose-graphics.mdc |
| Codex (OpenAI) | npx goose-skills install goose-graphics --codex | Writes ~/.codex/skills/goose-graphics/ |
| Claude Design | npx gooseworks styles get <slug> → upload the resulting DESIGN.md via CD's "Create new design system" | Per-style DESIGN.md upload; no CLI sync |
Before first use, check whether the screenshot tool's dependencies are installed. Look for a node_modules/ directory inside the screenshot/ folder (relative to this skill file).
If node_modules/ does not exist, run:
cd [skill-pack-dir]/screenshot && npm install && npx playwright install chromiumReplace [skill-pack-dir] with the absolute path to the directory containing this SKILL.md file.
1. Discover Intent --> What format? What content?
2. Select Style --> Pick from the catalog or extract from reference image
3. Select Sources --> Unsplash photos? ASCII art? None?
4. Set Output Path --> Where to save exports
5. Generate HTML --> Using format spec + style spec + sources
6. Screenshot --> Playwright PNG export
7. Deliver --> Present results with file listingAsk the user what they want to create. Run npx gooseworks formats list to see the current catalog. The seven baseline formats are:
| Format | Dimensions | Best For |
|---|---|---|
| Carousel | 1080x1080px per slide | LinkedIn, Instagram multi-slide posts |
| Story | 1080x1920px per slide | Instagram/LinkedIn Stories, TikTok, Snapchat |
| Infographic | 1080px wide, variable height | Social media, blog embeds |
| Slides | 1920x1080px per slide | Presentations, webinars |
| Poster | 1080x1350px | Instagram posts, event flyers |
| Chart | 1080x1080px | Single data chart graphic |
| Tweet | 1080x1080px | Tweet-sized square screenshot |
The community library may publish additional formats (story covers, podcast covers, square testimonials, etc.) — always run list first rather than assuming only the seven baseline slugs exist. Note that every community format must use one of the seven canvas sizes above (the renderer is locked to that allow-list); they differ from the baselines only in name, intent, and content rules. If no published format fits the user's needs, suggest the /goose-graphics-create-format skill.
Once the user chooses a format, fetch its full spec:
npx gooseworks formats get <format-slug>The returned spec.md (or content rules) describes layout, content density, and per-section content rules. Follow its Content Discovery phase to gather the topic, content, and any other format-specific inputs from the user.
If the user hasn't specified a style, point them at the full catalog so they can browse visually:
Browse the style catalog at https://skills.gooseworks.ai/styles to see every published style with rendered examples.
Then run npx gooseworks styles list (or search "..." / list --mood "..." --tag ...) to surface relevant options inline. Present the candidates in groups by mood with their taglines so the user can pick.
The user may also say: "I have a reference image" — in that case, read extract-style.md (in this skill pack) and follow its workflow to derive a custom style from the provided image. That workflow ends in a publishable bundle (gooseworks-style.json + rendered PNGs) the user can publish via npx gooseworks styles publish. After publishing, continue the workflow from Step 3 onward using the new slug.
After the user picks a slug, fetch its slim spec:
npx gooseworks styles get <slug>The returned DESIGN.md contains everything you need to generate: palette, typography, layout, do/don'ts, and ready-to-paste CSS snippets.
Ask the user: "Do you want to include images in your graphic?"
Options:
sources/unsplash.md and follow its search workflow to find and embed high-quality stock photography.sources/ascii-art.md and follow its workflow to generate and embed ASCII art elements.Ask the user: "Where should I save the exports?"
Default location: ./goose-graphics-exports/
Within that directory, create a subfolder using this naming convention:
[YYYY-MM-DD]-[slugified-name]/For example: 2026-04-17-q2-product-roadmap/
Follow the chosen format spec's HTML Generation phase. When generating:
styles get has everything you need.Run the screenshot script to export HTML files to high-resolution PNGs:
node [skill-pack-dir]/screenshot/screenshot.js --format CANVAS --input INPUT_PATH --output OUTPUT_PATHWhere:
[skill-pack-dir] is the absolute path to this skill pack's directory.CANVAS is always one of the seven built-in canvas slugs, never the format's catalog slug. The renderer's allow-list is strict — passing a community format slug like story-cover or linkedin-banner will fail.INPUT_PATH is the directory or file containing the generated HTML.OUTPUT_PATH is the directory where PNG files should be saved.Map the format's width/height (from npx gooseworks formats get <slug>) to a canvas slug using this table:
| width × height | Canvas slug |
|---|---|
| 1080 × 1080 | carousel |
| 1080 × 1350 | poster |
| 1920 × 1080 | slides |
| 1080 × 1920 | story |
| 1080 × ≥1080 (variable) | infographic |
Examples:
poster (1080×1350) → --format poster.story-cover (1080×1920) → --format story (because the format inherits the story canvas).linkedin-quote-card (1080×1080) → --format carousel (any 1080×1080 catalog format renders against the carousel canvas).If the format's width/height doesn't match any row above, the format was published incorrectly — report it to the user and stop. Don't try to render with custom dimensions; the tool can't.
Present the results to the user:
npx gooseworks styles list. Ask the user only for content/topic, then generate everything else automatically.These manifests are CLI inputs the user produces in their own working directory before running publish. They never live in this repo.
gooseworks-style.json){
"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 — palette table, typography table, layout rules, do/don'ts, optional CSS variables block…",
"moodGroup": "Organic & Warm",
"tags": ["warm", "desert", "editorial", "serif", "dtc"],
"palette": [
{ "hex": "#E06A2C", "role": "primary" },
{ "hex": "#3A1F1A", "role": "ink" },
{ "hex": "#F5EFE7", "role": "paper" }
],
"examples": [
{ "format": "poster", "isHero": true, "file": "./poster.png", "caption": "Hero render" },
{ "format": "carousel", "file": "./carousel.png" },
{ "format": "story", "file": "./story.png" }
]
}Field constraints:
name: 1–120 charsslug: optional kebab-case [a-z0-9-]+; backend auto-generates if absent. A collision returns 409 with a suggestedSlug — the CLI handles re-submission.description: 20–1000 chars (required)designMd: minimum 50 chars (required)moodGroup: optional; one of "Dark & Moody", "Light & Editorial", "Organic & Warm", "Bold & Energetic", "Retro & Cinematic", "Structural & Technical", "Friendly Corporate"tags: array of strings (default [])palette: array of { hex: "#RRGGBB", role?: string }examples: array, minimum 1 entry, exactly one with isHero: trueexamples[].format: slug of an existing graphics format (any from npx gooseworks formats list)examples[].file: relative path to the PNG in the working directorygooseworks-format.json){
"name": "Story Cover",
"slug": "story-cover",
"description": "1080×1920 vertical cover slide for Instagram and TikTok stories. Single hero panel, 5-word title max, optional brand mark in the lower 10%. Use for product launches and event reminders where the viewer scrolls past in 2 seconds.",
"width": 1080,
"height": 1920,
"contentRulesMd": "## Rules\n\n- Title: 5 words max, large display, centered or top-left\n- One hero element (image, stat, or large icon) in the upper 70% of the canvas\n- Optional brand mark in the lower 10%, ≤8% of canvas height\n…",
"tags": ["story", "vertical", "social", "instagram", "tiktok"],
"examples": [
{ "file": "./example-1.png", "styleSlug": "matt-gray", "caption": "Paired with matt-gray" },
{ "file": "./example-2.png", "styleSlug": "neon-dashboard" }
]
}Field constraints:
name: 1–120 charsslug: optional kebab-casedescription: 20–1000 chars (required)width / height: must match one of the seven built-in canvases: 1080×1080 (carousel/chart/tweet), 1080×1350 (poster), 1920×1080 (slides), 1080×1920 (story), or 1080×≥1080 (infographic). Custom dimensions are rejected at publish time because the renderer's allow-list is strict.contentRulesMd: minimum 50 chars (required)tags: array of stringsexamples: array, minimum 1 entry (required — the backend rejects empty)examples[].styleSlug: optional reference to which style was used to render the exampleThis skill pack ships only the local helpers needed to render and source images — styles, formats, and example renders all come from the central library via npx gooseworks.
| File | Description |
|---|---|
sources/unsplash.md | Search and embed Unsplash stock photography. |
sources/ascii-art.md | Generate and embed ASCII art decorations. |
| File | Description |
|---|---|
extract-style.md | Derive a custom style from a reference image and produce a publishable bundle (gooseworks-style.json + rendered PNGs). |
| File | Description |
|---|---|
screenshot/screenshot.js | Playwright-based HTML-to-PNG export script. |
screenshot/package.json | Node.js dependencies for the screenshot tool. |
© gooseworks-ai, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 11 other files in skills/design/composites/goose-graphics of gooseworks-ai/goose-skills.
Open the folder on GitHubat commit c650c6d
We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in gooseworks-ai/goose-skills, which our catalogue first saw on October 7, 2026.
Goose Graphics next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Goose Graphics this skillgooseworks-ai/goose-skills | 1.2k | 1 repos | ~5.2k | Automated safety check: Pass | MIT | |
| Web Application Testinganthropics/skills | 180k | 51 repos | ~966 | Automated safety check: Pass | Apache-2.0 | |
| Playwright CLIsanity-io/sanity | 6.4k | 18 repos | ~1.9k | Automated safety check: Pass | MIT | |
| Write and Verify Playwright Testsappsmithorg/appsmith | 41k | — | ~2.9k | Automated safety check: Notes | Apache-2.0 | |
| playwright-cli Browser Automationgithub/gh-aw | 5.4k | 25 repos | ~2.8k | Automated safety check: Pass | MIT | |
| Cucumber and Playwright E2E Testslanggenius/dify | 158k | — | ~682 | Automated safety check: Pass | Custom licence |
anthropics/skills
Tests local web applications with Python Playwright scripts, checking frontend behavior, capturing screenshots and reading browser console logs.
sanity-io/sanity
Automates browser interactions for web testing, form filling, screenshots, and data extraction.
appsmithorg/appsmith
Writes a Playwright end-to-end test from a prompt, runs it against a live Appsmith deployment and retries with fixes up to three times until it passes.
github/gh-aw
Drives a real browser from the command line with playwright-cli to open pages, interact, mock requests, save state and work with Playwright tests.
langgenius/dify
Guides changes and reviews of the Cucumber and Playwright end-to-end suite under `e2e/`: feature files, step definitions, support code, tags, locators and assertions.
langflow-ai/langflow
Write and review Playwright E2E tests for Langflow. An agent skill from langflow-ai/langflow.
gooseworks-ai/goose-skills
Scrape and search Reddit posts using Apify. An agent skill from gooseworks-ai/goose-skills.
gooseworks-ai/goose-skills
Generate or edit an image via any FAL image model (nano-banana edit, gpt-image, flux, ...), ROUTED THROUGH THE fal-proxy so it bills the Ads agent.
gooseworks-ai/goose-skills
Replace an existing video's opening with a supplied clip or free kinetic text hook while retaining and verifying every original body frame, audio, captions and ending.
gooseworks-ai/goose-skills
Scrape blog posts via RSS feeds (free, no API key) with Apify fallback for JS-heavy sites.
gooseworks-ai/goose-skills
Find leads by scraping engagers from a competitor's top LinkedIn posts.
gooseworks-ai/goose-skills
Assemble a ChatGPT chat-reveal video ad from a thread + timeline JSON — one continuous Playwright recording of a ChatGPT mobile chat (user types with the iOS keyboard up → taps send → keyboard…
Works with
Categories
Portable visual skill pack for the Agent Skills ecosystem (Claude Code, Claude Desktop, Claude Cowork, Claude Design, Goose, Cursor, Codex). Goose Graphics is an agent skill from gooseworks-ai/goose-skills. Portable visual skill pack for the Agent Skills ecosystem (Claude Code, Claude Desktop, Claude Cowork, Claude Design, Goose, Cursor, Codex).
Goose Graphics fits situations like: tasks that involve Browser testing.
Run `npx skills add gooseworks-ai/goose-skills --skill goose-graphics -a claude-code`. Or copy the skill folder (skills/design/composites/goose-graphics in gooseworks-ai/goose-skills) into .claude/skills/goose-graphics in your project. Claude Code loads it when a task matches its description.
Run `npx skills add gooseworks-ai/goose-skills --skill goose-graphics -a codex`. Or copy the skill folder (skills/design/composites/goose-graphics in gooseworks-ai/goose-skills) into .agents/skills/goose-graphics in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add gooseworks-ai/goose-skills --skill goose-graphics -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/goose-graphics, .gemini/skills/goose-graphics, .github/skills/goose-graphics and .opencode/skills/goose-graphics in your project.
Going by SKILL.md and its folder, Goose Graphics needs JavaScript for the scripts in its folder and the command-line tools its instructions call (npx, npm and node). Our summary lists: Node.js.
SKILL.md names 1 domain. As links in the text: skills.gooseworks.ai. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Goose Graphics is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 5.2k tokens (SKILL.md is roughly 21k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Goose Graphics: Web Application Testing (anthropics/skills, 180k stars), Playwright CLI (sanity-io/sanity, 6.4k stars), Write and Verify Playwright Tests (appsmithorg/appsmith, 41k stars) and playwright-cli Browser Automation (github/gh-aw, 5.4k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
gooseworks-ai (a GitHub organization) maintains it in gooseworks-ai/goose-skills, which has 1,240 GitHub stars. The repository holds 273 skills in this directory. The repository was last updated on October 8, 2026.
Source: gooseworks-ai/goose-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.