End-to-end composite that turns a single brief into voice-tuned X post variants, LinkedIn post variants, and a matching social graphic. Orchestrates create-x-content + create-linkedin-content + goose-graphics in one invocation. Asks about graphic format when not specified, with heuristic-driven recommendations.
npx gooseworks install --all # then, in Claude Code, Cursor, or Codex: /gooseworks use the social-kit skill
One command → X variants + LinkedIn variants + a graphic. A thin orchestrator that chains create-x-content, create-linkedin-content, and goose-graphics, with sensible defaults and a pre-flight check for voice guides.
Full args:
/social-kit --brief "..." --format poster --style matt-gray --output ./content/2026-04-21-my-topic/Partial (asks for format):
/social-kit --brief "..."Interactive:
/social-kit| Flag | Required | Default |
|---|---|---|
--brief | Yes (asked if missing) | — |
--format | No | Asked with recommendations |
--style | No | matt-gray if the user has no stated preference; otherwise asked |
--output | No | ./content/YYYY-MM-DD-<topic-slug>/ |
--variants-x | No | create-x-content decides |
--variants-linkedin | No | create-linkedin-content decides |
--skip-graphic | No | false |
--skip-x | No | false |
--skip-linkedin | No | false |
topic-slug from the brief (short kebab-case, 2–4 words).<output> — default ./content/YYYY-MM-DD-<topic-slug>/. Create the directory if it doesn't exist.Check ~/.goose-skills/config.json for voice_guides.x and voice_guides.linkedin. If either is missing and that platform isn't skipped:
Missing voice guide for <platform>.
(a) Generate one now via /generate-voice-guide --platforms <platform>
(b) Paste an existing path
(c) Skip <platform> for this runDo not proceed without resolving every non-skipped platform.
Invoke /create-x-content with:
--brief "<brief>"
--output <resolved-output>
[--variants <N>]Wait for completion. Capture the list of created files + the most substantive variant for use in Step 5's graphic brief.
Skip if --skip-x.
Invoke /create-linkedin-content with the same args. Wait for completion.
Skip if --skip-linkedin.
If --format was passed, use it.
Otherwise, analyse the brief and recommend 1–2 formats using this heuristic:
| Brief shape | Recommended format |
|---|---|
| One strong claim, stat, or launch announcement | poster (1080×1350) |
| Numbered steps, how-to, or sequential process | carousel (1080×1080 per slide) |
| Mechanism/data/timeline with multiple sections | infographic (1080×variable) |
| Single testimonial, quote, or result metric | tweet (1080×1080) |
| Vertical, mobile-first, under 6 beats | story (1080×1920) |
| Widescreen presentation or demo | slides (1920×1080) |
| Chart or data visualization | chart (1080×1080) |
Present recommendations as a short menu:
Based on the brief, I'd recommend one of these:
1. poster — single strong claim, fits the "X costs $0.01 to run" shape
2. carousel — if you want to walk through the how-it-works steps
Which? (or paste another format name)Skip this step if --skip-graphic.
If --style was passed, use it.
Otherwise, default to matt-gray unless the user stops the skill to pick another. To change the default per-user, a future enhancement can add a style_default key to ~/.goose-skills/config.json.
Invoke /goose-graphics with:
--style <style>
--format <format>
--brief "<distilled-brief>"Point output at <resolved-output>/graphic/. The distilled brief should include:
Wait for completion. Capture paths to PNG exports + index.html.
Skip if --skip-graphic.
Print a summary:
Social kit ready at <resolved-output>/
X drafts (N variants):
- variant-a-<framing>.md
- variant-b-<framing>.md
- ...
LinkedIn drafts (N variants):
- linkedin-a-<framing>.md
- linkedin-b-<framing>.md
- ...
Graphic (<format>, <style>):
- graphic/slides/ (HTML source)
- graphic/exports/ (PNG files, N files)
- graphic/index.html (preview in browser)
Next steps:
- Open graphic/index.html to review visuals
- Open any variant-*.md to copy/paste
- Pair a variant with a graphic for LinkedIn/Xcontent/YYYY-MM-DD-<topic>/
├── variant-a-<framing>.md # X drafts
├── variant-b-<framing>.md
├── ...
├── linkedin-a-<framing>.md # LinkedIn drafts
├── linkedin-b-<framing>.md
└── graphic/
├── slides/ # HTML source (1+ files depending on format)
├── exports/ # PNG exports
└── index.html # previewRequired skills:
create-x-contentcreate-linkedin-contentgoose-graphicsRecommended:
generate-voice-guide (create voice guides once before first use of social-kit)Voice guides + config at ~/.goose-skills/voice-guides/ and ~/.goose-skills/config.json are discovered automatically.
Typical run (format asked):
/social-kit --brief "Claude can now verify email deliverability for $0.01 per check. Install gooseworks and ask. Runs MX, SMTP, RCPT TO, catch-all, disposable, blocklist checks."→ Drafts X + LinkedIn variants → asks "poster or carousel?" → generates graphic → delivers.
Full args (one-shot):
/social-kit --brief "Someone vibe-coded a full lead gen tool in Claude Code in 2 weeks. Scrapes every business off Google Maps with 30+ data fields, pulls verified emails, reads up to 50 reviews to find pain points. Running $4200 ACV deals." --format carousel --style heatwave-orange→ Runs end-to-end with no prompts.
Skip graphic:
/social-kit --brief "..." --skip-graphic→ Just the X + LinkedIn drafts.
/generate-voice-guide once before your first /social-kit invocation. This is a one-time setup.mechanism-breakdown X variant pairs with a carousel. A short hype variant pairs with a poster. The file naming makes these pairings easy to spot./generate-voice-guide with more recent posts or more iterations — not rewriting the skill prompts.content/YYYY-MM-DD-<topic>/ layout. Keep it consistent for easier cross-referencing later.create-x-contentcreate-linkedin-contentDiscover rising category conversations, formats, sounds, questions, and creator patterns across social platforms, then separate durable demand signals from short-lived noise.
Turn TikTok, Instagram, YouTube, Facebook, X, LinkedIn, Reddit, or Rumble transcripts into timestamped hooks, claims, objections, proof, calls to action, sponsorship signals, and reusable content atoms. Use directly for transcript analysis or as support for creator, competitor, trend, demand, and repurposing work.
Produce a decision-ready brief of current brand, product, category, and competitor conversations across social platforms, including sentiment drivers, questions, risks, and growth opportunities.