Agent skill

Render Hand Swipe Flavor Listicle

by gooseworks-ai in gooseworks-ai/goose-skills

Render a 'hand-swipe flavor listicle' video from a config — the brand's REAL product cutouts each float on a flat flavor-matched color field under a persistent title and slide RIGHT-TO-LEFT one to…

MITAuto-check passedMedia & Creative

Install Render Hand Swipe Flavor Listicle

skills CLI
$ npx skills add gooseworks-ai/goose-skills --skill render-hand-swipe-flavor-listicle -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install gooseworks-ai/goose-skills render-hand-swipe-flavor-listicle --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/gooseworks-ai/goose-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/ads/capabilities/render-hand-swipe-flavor-listicle .claude/skills/render-hand-swipe-flavor-listicle && rm -rf skills-src

Use ~/.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/

Facts

Skill name
render-hand-swipe-flavor-listicle
GitHub stars
1.2k
Token cost
~2.9k tokens
SKILL.md length
1,274 words
Files
6 (incl. scripts)
Skills in repo
273
Repo updated
First seen
Licence
MIT

At a glance

Render a 'hand-swipe flavor listicle' video from a config — the brand's REAL product cutouts each float on a flat flavor-matched color field under a persistent title and slide RIGHT-TO-LEFT one to…

  • The hand-swipe-flavor-listicle format
  • SKILL.md covers Run, Getting the inputs, Config and Choices, plus 4 more sections
  • Runs Python scripts from its folder; calls python3 and curl; reaches github.com and d2m0qbg34x1ii2.cloudfront.net
  • Tasks that involve Video production

What it does

Render Hand Swipe Flavor Listicle is an agent skill from gooseworks-ai/goose-skills. Render a 'hand-swipe flavor listicle' video from a config — the brand's REAL product cutouts each float on a flat flavor-matched color field under a persistent title and slide RIGHT-TO-LEFT one to the next like a phone-feed scroll, while a green-screen hand clip (back of hand toward camera, index finger up) is trimmed to its clean finger-up window, looped once per flavor, keyed with a green-dominance alpha key, scaled down and anchored at the bottom, with an optional end card and an optional instrumental music…

Its SKILL.md is about 2.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 7 other files, including scripts (for example `scripts/build_hand_swipe_listicle.py`, `scripts/config.example.json` and `skill.meta.json`).

It sits in Media & Creative, covering Video production, Text to speech and voice and Slides and decks. It works with FFmpeg and ElevenLabs. 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.

When your agent uses it

  • The hand-swipe-flavor-listicle format
  • Tasks that involve Video production
  • Tasks that involve Text to speech and voice

Example prompts

  • “hand-swipe flavor listicle”
  • “/render-hand-swipe-flavor-listicle”

Requirements

  • Python 3

What it can do on your machine

Read from SKILL.md and the folder at commit c650c6d. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Ships 2 files in scripts/ (Python), which the agent can run.

    Shell commands in SKILL.md call:

    • python3
    • curl

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • github.com
    • d2m0qbg34x1ii2.cloudfront.net

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Render Hand Swipe Flavor Listicle loads about 2.9k tokens when it runs. Until then it costs about 190 tokens; SKILL.md has 1,274 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~190
When it runs · the whole SKILL.md, loaded when a task matches
~2.9k

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.

Safety

Auto-check passed

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); the scripts in this folder are not scanned.

SKILL.md

The full file from gooseworks-ai/goose-skills at commit c650c6d, republished under its MIT licence (© gooseworks-ai). 1,274 words, ~2,894 tokens.

Download SKILL.mdSave it as .claude/skills/render-hand-swipe-flavor-listicle/SKILL.md (or your agent's skills folder). This skill also uses 5 other files; get the full folder from GitHub.
name
render-hand-swipe-flavor-listicle
description
Render a 'hand-swipe flavor listicle' video from a config — the brand's REAL product cutouts each float on a flat flavor-matched color field under a persistent title and slide RIGHT-TO-LEFT one to the next like a phone-feed scroll, while a green-screen hand clip (back of hand toward camera, index finger up) is trimmed to its clean finger-up window, looped once per flavor, keyed with a green-dominance alpha key, scaled down and anchored at the bottom, with an optional end card and an optional instrumental music bed — deterministic PIL plus FFmpeg assembly, FREE (the hand clip comes from create-video-fal and the bed from create-music-elevenlabs), so labels stay pixel-crisp. Use for the hand-swipe-flavor-listicle format.
status
active

render-hand-swipe-flavor-listicle

Render the hand-swipe-flavor-listicle format from a config: a short vertical (1080×1920, 30fps, ~7.5s) "N flavors of <Brand>" listicle. Each flavor is a card — a flat, saturated color field + a persistent title + the brand's REAL product cutout with a soft contact shadow. Cards change by sliding right-to-left (a phone-feed scroll), while a real-looking hand sweeps at the bottom of the frame. Music-only, no VO.

This capability is the FREE, deterministic assembly ($0, no keys). It never generates or edits the product — the cutouts are composited as-is, so labels stay crisp. It needs four kinds of input, gathered first (see Getting the inputs): product cutouts, a title TTF, a green-screen hand clip, and (optionally) a music bed.

Run

bash
S=/tmp/gooseworks-scripts/render-hand-swipe-flavor-listicle/scripts   # after `gooseworks fetch render-hand-swipe-flavor-listicle`
python3 $S/build_hand_swipe_listicle.py config.json                 # writes config "output"
python3 $S/build_hand_swipe_listicle.py config.json --out final.mp4 # override the output
python3 $S/build_hand_swipe_listicle.py config.json --stills cards/ # one PNG per card, no video
python3 $S/build_hand_swipe_listicle.py config.json --work work/    # keep the intermediates in work/

Relative paths in config.json resolve against the config file's own folder. Render --stills first: it is instant and shows the title, colors and cutouts before the full render.

Prereqs: python3 with Pillow, and ffmpeg + ffprobe on PATH. Nothing else.

Getting the inputs

InputFree routePaid route (gated: confirm with the user first)
Product cutoutsThe brand's transparent PNGs (PDP/press kit).A brand-site photo is usually NOT a cutout. Remove its background with create-image-fal, model fal-ai/birefnet/v2 (see below).
Title TTFDownload a TTF matching choices.title_style (table below).—
Hand clipThe bundled clip (one woman's hand): curl -fL -o hand-swipe-greenscreen.mp4 https://d2m0qbg34x1ii2.cloudfront.net/ads/samples/455dc125-e41c-46dc-9fa6-9ae125e9b6bf/media-hand-swipe-greenscreen.mp4 (also in the recipe's config.hand.bundled_clip_url).A new clip via create-video-fal (see Making the hand clip).
Music bedNone ("music": null, a silent cut).create-music-elevenlabs (see Making the music bed).

Cutouts. The renderer warns when an image has no transparent pixels: it would render as a white box with a rectangular shadow. Fix it before rendering, never by AI-regenerating the product. The cutout route is create-image-fal with model fal-ai/birefnet/v2 (paid, gated), payload {"image_url": "<public url of the product photo>"}, the same route render-vignette uses. Known gap: birefnet returns image, not images[], and create-image-fal's gen_image.py currently reads only images[], so check that capability's notes before relying on it. If no cutout route works, ask the user for transparent PNGs.

Title font. Always pass title_font. Without it the renderer falls back to whatever the machine has (Brush Script on macOS, DejaVu Sans Bold on Linux), so the same config renders a different title style on different machines. Free TTFs from Google Fonts, one per title_style:

choices.title_styleDownload
cursive / scriptcurl -fL -o fonts/title.ttf https://github.com/google/fonts/raw/main/ofl/pacifico/Pacifico-Regular.ttf
bold condensed sanscurl -fL -o fonts/title.ttf https://github.com/google/fonts/raw/main/ofl/anton/Anton-Regular.ttf
elegant serifcurl -fL -o fonts/title.ttf https://github.com/google/fonts/raw/main/ofl/dmserifdisplay/DMSerifDisplay-Regular.ttf
hand-drawn markercurl -fL -o fonts/title.ttf https://github.com/google/fonts/raw/main/apache/permanentmarker/PermanentMarker-Regular.ttf
the brand's own display fontThe brand's TTF/OTF file if you have it; otherwise the closest row above.

The title is auto-shrunk (with a warning) until it fits 88% of the frame width, and the underline follows the drawn text, so long brand names never clip on the edges.

Config

scripts/config.example.json is the worked example (Lucky Energy "5 Flavors of Lucky"). Copy its structure, never its creative values.

FieldWhat it is
titleThe persistent header line (required).
title_fontA TTF in the style from choices.title_style (see Title font). Missing → a warned, machine-dependent fallback.
title_size, title_y, title_color, title_underlineTitle layout (defaults 118, 200, white, true). title_size is a maximum: a too-wide title is shrunk to fit.
flavors[]{ "bg": "#hex", "can": "cutout.png" } per flavor, in play order (required, ≥2). image is accepted as an alias for can. Cutouts must be transparent PNGs.
can_height, can_center_yProduct size + vertical center (defaults 950, 940).
slide.framesFrames per slide (default 12). slide.direction is fixed: always right-to-left (any other value is ignored with a warning).
hand_clipThe green-screen hand swipe mp4 (required to render).
handtrim_start, trim_end (the clean finger-up window, default 0–1s, must lie inside the clip), speed, scale (default 0.45), green_margin (default 1.12).
end_card, end_card_hold_framesOptional PNG at the frame size (1080×1920) that slides in after the last flavor; hold (default 60 frames). Another aspect ratio is stretched, with a warning.
music{ "path", "trim_intro_sec", "volume" } or a plain path string, or null for a silent cut. path is the create-music-elevenlabs output file. volume is a gain after loudness normalization (1.0 = the demo level, -18 LUFS).
outputOutput mp4 (default hand-swipe-listicle.mp4 next to the config).

Hard errors (exit 1): an unfilled <input:…> / <brand:…> placeholder in a required field; a missing file; a music object whose path is empty or a placeholder (set "music": null if the cut is meant to be silent); a hand.trim_start at or past the clip's end.

Timing. Each flavor lasts one hand-loop (the trimmed clip length). With 5 flavors, a 1s trim, a 12-frame end-card slide and a 60-frame end-card hold, the cut is ~7.4s.

Music length. The bed must cover trim_intro_sec + the cut. If it is too short, the renderer trims less of the intro (with a warning) so the music still runs to the end and fades out there. If the file is shorter than the whole cut, the tail is silent (warned).

Show full SKILL.md (470 more words)Show less

Choices

The recipe asks the user these before any paid step; the renderer only draws what the config says.

  • flavor_lineup — which SKUs and in what order → flavors[]. The demo used 5 energy-drink flavors, strongest last.
  • title_style — the header style → title_font (download per the table), title_size. The demo used a cursive script.
  • hand — whose hand → hand_clip: the bundled clip (free) or a new create-video-fal clip (paid). The demo used a woman's hand.
  • music — the bed's feel → the create-music-elevenlabs prompt, then music.path. The demo used an upbeat, punchy energy underscore.

Making the hand clip (paid, gated — not this capability)

Only when choices.hand asks for a different hand than the bundled clip, or no bundled-clip URL is available. Fill {hand} from choices.hand (e.g. "a man's hand with a silver watch"). Write the payload to a file so apostrophes in the description don't break the shell:

bash
cat > hand-payload.json <<'JSON'
{
  "prompt": "Close-up of {hand}, the BACK of the hand facing the camera, index finger extended pointing up. The hand swipes smoothly from RIGHT to LEFT across the frame like scrolling to the next photo on a phone. One clean horizontal swipe, the index finger stays extended (do not curl it). Solid flat bright green screen background, even flat lighting, fixed camera, no zoom, no camera shake.",
  "negative_prompt": "curled finger, closed fist, vertical motion, static, frozen, morphing, deformed fingers, extra fingers, text, watermark, changing background",
  "duration": "5",
  "aspect_ratio": "9:16"
}
JSON
python3 /tmp/gooseworks-scripts/create-video-fal/scripts/gen_video.py \
  --model fal-ai/kling-video/v2.5-turbo/pro/text-to-video \
  --payload @hand-payload.json --out hand-swipe-greenscreen.mp4

Then look at the first ~1s (e.g. --stills-style frame grabs with ffmpeg, or watch) and set hand.trim_start / hand.trim_end to the clean finger-up window. Set hand_clip to the file.

Making the music bed (paid, gated — not this capability)

Generate it long enough to cover the intro trim plus the cut, plus 1s of slack: at least (trim_intro_sec + target_duration_sec + 1) seconds, i.e. about 11s for the default 2.5s trim and a 7.5s cut. Keep --trim-intro 0 there; this renderer does the trim.

bash
python3 /tmp/gooseworks-scripts/create-music-elevenlabs/scripts/gen_music.py \
  --prompt '<from choices.music; instrumental only, no vocals, no artist names>' \
  --length-ms 11000 --duration 11 --out music-bed.m4a

Then set music.path to music-bed.m4a.

Craft rules (baked into the renderer)

  • Never AI-regenerate the product. Image-to-video hallucinates the can and garbles the label. Only the hand is generative; the products are real cutouts.
  • Green-dominance key, not colorkey/chromakey. Alpha is 0 only where g > green_margin × max(r, b). It is brightness-invariant, so it survives a muddy, uneven AI green. Kept pixels are despilled (green clamped to max(r, b)), so green spill on skin turns neutral instead of see-through. Raise green_margin if skin goes see-through; lower it if green fringe remains.
  • Back of hand toward camera, finger UP. A nails-forward hand reads as the wrong hand.
  • Trim to the finger-UP window. These clips curl the finger periodically.
  • Scale the hand down and anchor it at the bottom so the fingertip reaches ~35% up (the can base) and never covers the product.
  • Flavors change by sliding RIGHT-TO-LEFT, never a vertical flick or a top-drop.
  • The hand is scaled to the frame width with its aspect kept, so a non-9:16 clip is not stretched.

Output

A WxH (default 1080×1920) H.264 mp4, with AAC audio when music is set (fade in/out + loudnorm, padded to the full length). The last line names the length and music/silent; read the WARNING lines above it. Then review the FULL mp4 with watch: the hand is opaque in every frame with no green fringe, the finger stays up, the title fits the frame, labels are crisp and readable, the slide is right-to-left, and the music runs to the end.

© 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

Files

SKILL.md and 5 other files (scripts) in skills/ads/capabilities/render-hand-swipe-flavor-listicle of gooseworks-ai/goose-skills.

  • SKILL.md
  • scripts/build_hand_swipe_listicle.py
  • scripts/config.example.json
  • skill.meta.json
  • tests/make_smoke_inputs.py
  • tests/smoke-test.md

Open the folder on GitHubat commit c650c6d

Compare with similar skills

Render Hand Swipe Flavor Listicle 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.

Render Hand Swipe Flavor Listicle compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Render Hand Swipe Flavor Listicle this skillgooseworks-ai/goose-skills1.2k—~2.9kAutomated safety check: PassMIT
Video Productionspeechlab0210/video-production-skill105—~4.1kAutomated safety check: NotesMIT
Academic Presentation MakerOpenLAIR/dr-claw1.2k—~1.5kAutomated safety check: PassCustom licence
Explain Videolimin112/min-skill454—~2.4kAutomated safety check: PassNone
Super Video MakerBomx/super-video-maker-skill310—~11kAutomated safety check: NotesNone
Hearyourvoicekillernay/HearYourVOICE140—~10kAutomated safety check: NotesMIT

Similar skills

  • Video Production

    speechlab0210/video-production-skill

    AI educational video production pipeline. An agent skill from speechlab0210/video-production-skill.

    105 GitHub stars~4.1k tokensUpdated 3 mo ago
    Media & CreativeAuto-check: notes
  • Turns a research paper into a slide deck and, optionally, a narrated demo video, through script, slide generation, text-to-speech and video assembly stages you control.

    1.2k GitHub stars~1.5k tokensUpdated 24 days ago
    Documents & OfficeAuto-check passed
  • Explain Video

    limin112/min-skill

    Build a narrated explainer video from a concept — discussion → structure → HTML slide deck → narration script → TTS voice → subtitles → background music → Playwright screen recording → ffmpeg…

    454 GitHub stars~2.4k tokensUpdated 2 days ago
    Media & CreativeAuto-check passed
  • Super Video Maker

    Bomx/super-video-maker-skill

    End-to-end AI video production skill for agentic frameworks.

    310 GitHub stars~11k tokensUpdated 2 mo ago
    Media & CreativeAuto-check: notes
  • Hearyourvoice

    killernay/HearYourVOICE

    The repeatable workflow for short Thai documentary/explainer videos — one topic in, one finished MP4 out.

    140 GitHub stars~10k tokensUpdated 2 mo ago
    Media & CreativeAuto-check: notes
  • TSX Vertical Shorts Builder

    hassancs91/claude-faceless-shorts-creator

    Builds a roughly 40-second vertical short end to end from a topic, scripting beats, rendering TSX compositions and layering voice and captions.

    271 GitHub stars~1.9k tokensUpdated 1 mo ago
    Media & CreativeAuto-check: notes

More from gooseworks-ai/goose-skills

All 273 skills in this repo
  • Reddit Post Finder

    gooseworks-ai/goose-skills

    Scrape and search Reddit posts using Apify. An agent skill from gooseworks-ai/goose-skills.

    1.2k GitHub starsUsed in 1 repo~1.2k tokens
    Auto-check passed
  • Create Image Fal

    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.

    1.2k GitHub stars~1.3k tokensUpdated yesterday
    Auto-check passed
  • Render Hook Replacement

    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.

    1.2k GitHub stars~2.3k tokensUpdated yesterday
    Auto-check passed
  • Blog Feed Monitor

    gooseworks-ai/goose-skills

    Scrape blog posts via RSS feeds (free, no API key) with Apify fallback for JS-heavy sites.

    1.2k GitHub starsUsed in 1 repo~578 tokens
    Auto-check passed
  • Competitor Post Engagers

    gooseworks-ai/goose-skills

    Find leads by scraping engagers from a competitor's top LinkedIn posts.

    1.2k GitHub starsUsed in 1 repo~1.8k tokens
    Auto-check: notes
  • Render Chatgpt Chat

    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…

    1.2k GitHub stars~2.3k tokensUpdated yesterday
    Auto-check passed

Questions about Render Hand Swipe Flavor Listicle

What does Render Hand Swipe Flavor Listicle do?

Render a 'hand-swipe flavor listicle' video from a config — the brand's REAL product cutouts each float on a flat flavor-matched color field under a persistent title and slide RIGHT-TO-LEFT one to…. Render Hand Swipe Flavor Listicle is an agent skill from gooseworks-ai/goose-skills.

When should I use Render Hand Swipe Flavor Listicle?

Render Hand Swipe Flavor Listicle fits situations like: the hand-swipe-flavor-listicle format; tasks that involve Video production; tasks that involve Text to speech and voice.

How do I install Render Hand Swipe Flavor Listicle in Claude Code?

Run `npx skills add gooseworks-ai/goose-skills --skill render-hand-swipe-flavor-listicle -a claude-code`. Or copy the skill folder (skills/ads/capabilities/render-hand-swipe-flavor-listicle in gooseworks-ai/goose-skills) into .claude/skills/render-hand-swipe-flavor-listicle in your project. Claude Code loads it when a task matches its description.

How do I install Render Hand Swipe Flavor Listicle in Codex?

Run `npx skills add gooseworks-ai/goose-skills --skill render-hand-swipe-flavor-listicle -a codex`. Or copy the skill folder (skills/ads/capabilities/render-hand-swipe-flavor-listicle in gooseworks-ai/goose-skills) into .agents/skills/render-hand-swipe-flavor-listicle in your project. Codex loads it when a task matches its description.

Can I use Render Hand Swipe Flavor Listicle in Cursor, Gemini CLI or GitHub Copilot?

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 render-hand-swipe-flavor-listicle -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/render-hand-swipe-flavor-listicle, .gemini/skills/render-hand-swipe-flavor-listicle, .github/skills/render-hand-swipe-flavor-listicle and .opencode/skills/render-hand-swipe-flavor-listicle in your project.

What does Render Hand Swipe Flavor Listicle need to run?

Going by SKILL.md and its folder, Render Hand Swipe Flavor Listicle needs Python for the scripts in its folder and the command-line tools its instructions call (python3 and curl). Our summary lists: Python 3.

Does Render Hand Swipe Flavor Listicle access the network?

SKILL.md names 2 domains. In commands or code: github.com and d2m0qbg34x1ii2.cloudfront.net; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.

Is Render Hand Swipe Flavor Listicle safe to install?

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. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Render Hand Swipe Flavor Listicle use?

Render Hand Swipe Flavor Listicle is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Render Hand Swipe Flavor Listicle use?

About 2.9k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Render Hand Swipe Flavor Listicle?

Skills that share tags, products or a category with Render Hand Swipe Flavor Listicle: Video Production (speechlab0210/video-production-skill, 105 stars), Academic Presentation Maker (OpenLAIR/dr-claw, 1.2k stars), Explain Video (limin112/min-skill, 454 stars) and Super Video Maker (Bomx/super-video-maker-skill, 310 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Render Hand Swipe Flavor Listicle?

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.