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…
Generate a personal voice guide for X (Twitter) and/or LinkedIn by scanning a user's past posts and iteratively refining with sample-and-feedback loops. Produces a structured markdown voice guide that sibling skills (create-x-content, create-linkedin-content) consume to draft
$ npx -y skills add gooseworks-ai/goose-skills --skill generate-voice-guide --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/generate-voice-guideContext preview
The summary Claude sees to decide when to auto-load this skill.
Generate a personal voice guide for X (Twitter) and/or LinkedIn by scanning a user's past posts and iteratively refining with sample-and-feedback loops. Produces a structured markdown voice guide that sibling skills (create-x-content, create-linkedin-content) consume to draft
name: generate-voice-guide description: > Generate a personal voice guide for X (Twitter) and/or LinkedIn by scanning a user's past posts and iteratively refining with sample-and-feedback loops. Produces a structured markdown voice guide that sibling skills (create-x-content, create-linkedin-content) consume to draft in-voice posts. Different from brand-voice-extractor, which analyses company blogs/landing pages — this skill is for personal social voice. tags: [content, social]
Turn a real person's past posts into a structured voice guide that other skills can use to draft in-voice content. Produces one guide per platform (X, LinkedIn, or both) with persona, dos/don'ts, banned phrases, hook patterns, format rules, and example posts.
**This is an agent-executed skill** — the agent handles scraping, analysis, drafting, and iteration via the tools available in the session. No bundled Python script.
**When NOT to use:** For analysing a company's blog/landing-page voice, use `brand-voice-extractor` instead. That's for corporate marketing voice; this one is for individual social voice.
Interactive:
/generate-voice-guide
Args mode:
/generate-voice-guide --profile @GooseworksAI --platforms x,linkedin --output ~/.goose-skills/voice-guides
Ask these up front if not supplied via flags:
1. **Whose voice?** "Paste an X/Twitter handle (e.g. `@GooseworksAI`), a LinkedIn profile URL, or both. You can mimic your own voice or someone else's." 2. **Which platforms?** "Generate a voice guide for X, LinkedIn, or both?" 3. **How many posts to scan?** "Default: 50 X posts / 25 LinkedIn posts. Higher = more signal, more tokens, slower." 4. **Save location?** "Default: `~/.goose-skills/voice-guides/voice-{x,linkedin}.md`. Ok to use that, or prefer a different path?"
**For X:**
**For LinkedIn:**
**Fallback (no scraper available or posts paywalled):** ask the user to paste 15–25 posts as plain text.
Store raw post text, engagement metrics (likes, views if available), and timestamps.
Use `voice-x.md` / `voice-linkedin.md` template references (see "Template Skeleton" below) to produce v1 of the guide. Do NOT copy content from them — only the *structure*.
Analyse the scraped posts for:
This is where voice-guide quality is made. Do NOT skip iterations.
Each iteration:
1. **Generate 3 sample posts** from the current guide, each using a different hook pattern from the guide. Use topics from the user's own posting history so they're easy to judge (e.g. if they post about AI agents, draft on AI agents). 2. **Show the user:**
3. **Ask for feedback** — specific prompts:
4. **Apply feedback** — revise the guide. Update dos/don'ts, hook patterns, banned phrases, examples. Note what changed in a short changelog at the top of the guide during iteration. 5. **Repeat.**
**Stopping rule:** continue until the user explicitly says "this is good" AND at least 5 iterations have completed. 5 is a floor, not a ceiling. If the user says "good enough" at iteration 2, push back: "Voice guides need at least 5 rounds to actually lock in. Can we do 3 more?"
1. Write the final guide to the resolved output path (default `~/.goose-skills/voice-guides/voice-<platform>.md`). 2. Strip the iteration changelog — only keep the final clean guide. 3. Update `~/.goose-skills/config.json`:
{
"voice_guides": {
"x": "<absolute path to voice-x.md>",
"linkedin": "<absolute path to voice-linkedin.md>"
}
}Create the directory/file if missing. Merge with existing config if present (don't overwrite other keys). 4. Print a confirmation with the saved paths and a next-step suggestion: "You can now run `/create-x-content --brief \"...\"` and it'll use
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.