create-image-fal
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. image_urls…
Watch a rendered video (whole file or specific ranges) at a chosen fidelity and emit a timestamp-keyed observation report. Observation only — no edits, no verdicts.
$ npx -y skills add gooseworks-ai/goose-skills --skill watch --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/watchContext preview
The summary Claude sees to decide when to auto-load this skill.
Watch a rendered video (whole file or specific ranges) at a chosen fidelity and emit a timestamp-keyed observation report. Observation only — no edits, no verdicts.
name: watch description: Watch a rendered video (whole file or specific ranges) at a chosen fidelity and emit a timestamp-keyed observation report. Observation only — no edits, no verdicts.
Look at a rendered video and report what is actually on screen and in the audio. By default it watches the entire video and considers visuals, voiceover, music, and sound effects. Callers can narrow the scope (specific timestamp ranges, lower frame rate, disable audio tracks) when they want a cheaper or more focused pass.
This is the observation primitive that `watch-and-refine` calls before deciding what to fix. Other review and editing skills can call it directly.
If all three audio flags are `false`, the skill runs frames-only and notes this in the manifest.
1. Validate `video` exists and is readable. Probe duration with `ffprobe`. 2. Resolve `ranges`: if empty, use `[0, duration]`. Reject ranges outside the file duration. 3. Resolve `fps`: use caller value if provided, else auto-scale from total resolved range duration. Clamp at 2 fps. 4. Allocate the `max_frames` budget across ranges proportionally to range duration. 5. Extract frames with `ffmpeg` into `frames/` at the resolved `fps` and `resolution`. 6. If any audio flag is true, extract the audio for the resolved ranges to a working WAV. Run a transcript pass when `include_voice=true`; degrade to frames-only and flag a warning if no Whisper backend is available. 7. Compose `observation.md` — a timestamp-keyed report. Each entry references the frame paths visible during that window plus any transcript line and audio notes (music/SFX) for the same window. If `focus` is set, lead each entry with what was observed about that focus. 8. Write `manifest.json` capturing the resolved inputs (ranges, fps, frame count, audio flags) and output paths.
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.
Repo: 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. image_urls…
Generate a single photoreal or designed image with OpenAI gpt-image via fal.ai. Supports gpt-image-1 (default, fixed sizes — the FAL fallback for Higgsfield's…
Generate an instrumental music bed via ElevenLabs Music, ROUTED THROUGH THE elevenlabs-proxy so it bills the Ads agent. Trims any sparse intro, loudnorm, fades…
Image-to-video (or text-to-video) via any FAL video model (Kling, Seedance, Veo), ROUTED THROUGH THE GooseWorks fal-proxy so the call bills the Ads agent. The…
Generate a voiceover (VO) clip via ElevenLabs text-to-speech, ROUTED THROUGH THE elevenlabs-proxy so it bills the Ads agent. Voice id + script text come from…
Scrape competitor ads from Google Ads by domain. Returns ad creatives, formats, and campaign details. Use for competitive ad research and messaging analysis.