End-to-end composite that turns a single brief
Social kit

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.
--- name: social-kit description: > 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. tags: [content, social] --- # Social Kit 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. ## Invocation Full args:
Overview
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.
Example prompts
/social-kit --briefManual install (npx, ZIP)
npx skills add gooseworks-ai/goose-skills --skill social-kit -g -a claude-codemkdir -p ~/.claude/skills && curl -sL https://codeload.github.com/gooseworks-ai/goose-skills/tar.gz/615c685f34f8 \
| tar -xz -C ~/.claude/skills --strip-components=4 goose-skills-615c685f34f8/skills/social/composites/social-kitNew-Item -ItemType Directory -Force "$HOME\.claude\skills" | Out-Null; Invoke-WebRequest "https://m.agentalley.io/zip/344a9d3db4a37cb7dab0/social-kit.zip" -OutFile "$env:TEMP\social-kit.zip"; Expand-Archive "$env:TEMP\social-kit.zip" -DestinationPath "$HOME\.claude\skills" -ForceConnects with Agent Alley MCP · agentalley.io/mcp
Files included
SKILL.md7.2 KBskill.meta.json692 B
Read the files here
gooseworks-ai/
Show the full text221 lines
Social Kit
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.
Invocation
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
Inputs
| 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 |
Workflow
Step 1 — Intake
- Resolve the brief (prompt if missing).
- Derive a
topic-slugfrom the brief (short kebab-case, 2–4 words). - Resolve
<output>— default./content/YYYY-MM-DD-<topic-slug>/. Create the directory if it doesn't exist.
Step 2 — Pre-flight voice guide check
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 run
Do not proceed without resolving every non-skipped platform.
Step 3 — Draft X variants
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.
Step 4 — Draft LinkedIn variants
Invoke /create-linkedin-content with the same args. Wait for completion.
Skip if --skip-linkedin.
Step 5 — Pick a graphic format
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.
Step 6 — Pick a style
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.
Step 7 — Generate the graphic
Invoke /goose-graphics with:
--style <style>
--format <format>
--brief "<distilled-brief>"
Point output at <resolved-output>/graphic/. The distilled brief should include:
- The headline/hook from the most substantive X variant
- 2–4 key beats (steps, numbers, or sections)
- Any specific strings that must appear verbatim (tool names, commands, prices)
Wait for completion. Capture paths to PNG exports + index.html.
Skip if --skip-graphic.
Step 8 — Deliver
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/X
Output Layout
content/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 # preview
Dependencies
Required skills:
create-x-contentcreate-linkedin-contentgoose-graphics
Recommended:
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.
Examples
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.
Tips
- First-time users: run
/generate-voice-guideonce before your first/social-kitinvocation. This is a one-time setup. - When the recommended format feels off, it probably is. The heuristic is a starting point — trust your read of the brief more than the recommendation.
- Pair drafts with graphics intentionally. A long
mechanism-breakdownX variant pairs with a carousel. A shorthypevariant pairs with a poster. The file naming makes these pairings easy to spot. - Iterate on voice before iterating on content. If your drafts feel off, 80% of the fix is re-running
/generate-voice-guidewith more recent posts or more iterations — not rewriting the skill prompts. - Output path convention: uses a standard
content/YYYY-MM-DD-<topic>/layout. Keep it consistent for easier cross-referencing later.
| 1 | |
| 2 | name social-kit |
| 3 | description > |
| 4 | End-to-end composite that turns a single brief into voice-tuned X post variants, |
| 5 | LinkedIn post variants, and a matching social graphic. Orchestrates |
| 6 | create-x-content + create-linkedin-content + goose-graphics in one invocation. |
| 7 | Asks about graphic format when not specified, with heuristic-driven |
| 8 | recommendations. |
| 9 | tags [content, social] |
| 10 | |
| 11 | |
| 12 | # Social Kit |
| 13 | |
| 14 | 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. |
| 15 | |
| 16 | ## Invocation |
| 17 | |
| 18 | Full args: |
| 19 | |
| 20 | /social-kit --brief "..." --format poster --style matt-gray --output ./content/2026-04-21-my-topic/ |
| 21 | |
| 22 | |
| 23 | Partial (asks for format): |
| 24 | |
| 25 | /social-kit --brief "..." |
| 26 | |
| 27 | |
| 28 | Interactive: |
| 29 | |
| 30 | /social-kit |
| 31 | |
| 32 | |
| 33 | ## Inputs |
| 34 | |
| 35 | | Flag | Required | Default | |
| 36 | |------|----------|---------| |
| 37 | | `--brief` | Yes (asked if missing) | — | |
| 38 | | `--format` | No | Asked with recommendations | |
| 39 | | `--style` | No | `matt-gray` if the user has no stated preference; otherwise asked | |
| 40 | | `--output` | No | `./content/YYYY-MM-DD-<topic-slug>/` | |
| 41 | | `--variants-x` | No | `create-x-content` decides | |
| 42 | | `--variants-linkedin` | No | `create-linkedin-content` decides | |
| 43 | | `--skip-graphic` | No | false | |
| 44 | | `--skip-x` | No | false | |
| 45 | | `--skip-linkedin` | No | false | |
| 46 | |
| 47 | ## Workflow |
| 48 | |
| 49 | ### Step 1 — Intake |
| 50 | |
| 51 | Resolve the brief (prompt if missing). |
| 52 | Derive a `topic-slug` from the brief (short kebab-case, 2–4 words). |
| 53 | Resolve `<output>` — default `./content/YYYY-MM-DD-<topic-slug>/`. Create the directory if it doesn't exist. |
| 54 | |
| 55 | ### Step 2 — Pre-flight voice guide check |
| 56 | |
| 57 | Check `~/.goose-skills/config.json` for `voice_guides.x` and `voice_guides.linkedin`. If either is missing and that platform isn't skipped: |
| 58 | |
| 59 | |
| 60 | Missing voice guide for <platform>. |
| 61 | (a) Generate one now via /generate-voice-guide --platforms <platform> |
| 62 | (b) Paste an existing path |
| 63 | (c) Skip <platform> for this run |
| 64 | |
| 65 | |
| 66 | Do not proceed without resolving every non-skipped platform. |
| 67 | |
| 68 | ### Step 3 — Draft X variants |
| 69 | |
| 70 | Invoke `/create-x-content` with: |
| 71 | |
| 72 | --brief "<brief>" |
| 73 | --output <resolved-output> |
| 74 | [--variants <N>] |
| 75 | |
| 76 | |
| 77 | Wait for completion. Capture the list of created files + the most substantive variant for use in Step 5's graphic brief. |
| 78 | |
| 79 | Skip if `--skip-x`. |
| 80 | |
| 81 | ### Step 4 — Draft LinkedIn variants |
| 82 | |
| 83 | Invoke `/create-linkedin-content` with the same args. Wait for completion. |
| 84 | |
| 85 | Skip if `--skip-linkedin`. |
| 86 | |
| 87 | ### Step 5 — Pick a graphic format |
| 88 | |
| 89 | If `--format` was passed, use it. |
| 90 | |
| 91 | Otherwise, analyse the brief and recommend 1–2 formats using this heuristic: |
| 92 | |
| 93 | | Brief shape | Recommended format | |
| 94 | |-------------|-------------------| |
| 95 | | One strong claim, stat, or launch announcement | **poster** (1080×1350) | |
| 96 | | Numbered steps, how-to, or sequential process | **carousel** (1080×1080 per slide) | |
| 97 | | Mechanism/data/timeline with multiple sections | **infographic** (1080×variable) | |
| 98 | | Single testimonial, quote, or result metric | **tweet** (1080×1080) | |
| 99 | | Vertical, mobile-first, under 6 beats | **story** (1080×1920) | |
| 100 | | Widescreen presentation or demo | **slides** (1920×1080) | |
| 101 | | Chart or data visualization | **chart** (1080×1080) | |
| 102 | |
| 103 | Present recommendations as a short menu: |
| 104 | |
| 105 | |
| 106 | Based on the brief, I'd recommend one of these: |
| 107 | 1. poster — single strong claim, fits the "X costs $0.01 to run" shape |
| 108 | 2. carousel — if you want to walk through the how-it-works steps |
| 109 | |
| 110 | Which? (or paste another format name) |
| 111 | |
| 112 | |
| 113 | Skip this step if `--skip-graphic`. |
| 114 | |
| 115 | ### Step 6 — Pick a style |
| 116 | |
| 117 | If `--style` was passed, use it. |
| 118 | |
| 119 | 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`. |
| 120 | |
| 121 | ### Step 7 — Generate the graphic |
| 122 | |
| 123 | Invoke `/goose-graphics` with: |
| 124 | |
| 125 | --style <style> |
| 126 | --format <format> |
| 127 | --brief "<distilled-brief>" |
| 128 | |
| 129 | |
| 130 | Point output at `<resolved-output>/graphic/`. The distilled brief should include: |
| 131 | The headline/hook from the most substantive X variant |
| 132 | 2–4 key beats (steps, numbers, or sections) |
| 133 | Any specific strings that must appear verbatim (tool names, commands, prices) |
| 134 | |
| 135 | Wait for completion. Capture paths to PNG exports + index.html. |
| 136 | |
| 137 | Skip if `--skip-graphic`. |
| 138 | |
| 139 | ### Step 8 — Deliver |
| 140 | |
| 141 | Print a summary: |
| 142 | |
| 143 | |
| 144 | Social kit ready at <resolved-output>/ |
| 145 | |
| 146 | X drafts (N variants): |
| 147 | - variant-a-<framing>.md |
| 148 | - variant-b-<framing>.md |
| 149 | - ... |
| 150 | |
| 151 | LinkedIn drafts (N variants): |
| 152 | - linkedin-a-<framing>.md |
| 153 | - linkedin-b-<framing>.md |
| 154 | - ... |
| 155 | |
| 156 | Graphic (<format>, <style>): |
| 157 | - graphic/slides/ (HTML source) |
| 158 | - graphic/exports/ (PNG files, N files) |
| 159 | - graphic/index.html (preview in browser) |
| 160 | |
| 161 | Next steps: |
| 162 | - Open graphic/index.html to review visuals |
| 163 | - Open any variant-*.md to copy/paste |
| 164 | - Pair a variant with a graphic for LinkedIn/X |
| 165 | |
| 166 | |
| 167 | ## Output Layout |
| 168 | |
| 169 | |
| 170 | content/YYYY-MM-DD-<topic>/ |
| 171 | ├── variant-a-<framing>.md # X drafts |
| 172 | ├── variant-b-<framing>.md |
| 173 | ├── ... |
| 174 | ├── linkedin-a-<framing>.md # LinkedIn drafts |
| 175 | ├── linkedin-b-<framing>.md |
| 176 | └── graphic/ |
| 177 | ├── slides/ # HTML source (1+ files depending on format) |
| 178 | ├── exports/ # PNG exports |
| 179 | └── index.html # preview |
| 180 | |
| 181 | |
| 182 | ## Dependencies |
| 183 | |
| 184 | Required skills: |
| 185 | `create-x-content` |
| 186 | `create-linkedin-content` |
| 187 | `goose-graphics` |
| 188 | |
| 189 | Recommended: |
| 190 | `generate-voice-guide` (create voice guides once before first use of social-kit) |
| 191 | |
| 192 | Voice guides + config at `~/.goose-skills/voice-guides/` and `~/.goose-skills/config.json` are discovered automatically. |
| 193 | |
| 194 | ## Examples |
| 195 | |
| 196 | **Typical run (format asked):** |
| 197 | |
| 198 | /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." |
| 199 | |
| 200 | → Drafts X + LinkedIn variants → asks "poster or carousel?" → generates graphic → delivers. |
| 201 | |
| 202 | **Full args (one-shot):** |
| 203 | |
| 204 | /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 |
| 205 | |
| 206 | → Runs end-to-end with no prompts. |
| 207 | |
| 208 | **Skip graphic:** |
| 209 | |
| 210 | /social-kit --brief "..." --skip-graphic |
| 211 | |
| 212 | → Just the X + LinkedIn drafts. |
| 213 | |
| 214 | ## Tips |
| 215 | |
| 216 | **First-time users:** run `/generate-voice-guide` once before your first `/social-kit` invocation. This is a one-time setup. |
| 217 | **When the recommended format feels off, it probably is.** The heuristic is a starting point — trust your read of the brief more than the recommendation. |
| 218 | **Pair drafts with graphics intentionally.** A long `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. |
| 219 | **Iterate on voice before iterating on content.** If your drafts feel off, 80% of the fix is re-running `/generate-voice-guide` with more recent posts or more iterations — not rewriting the skill prompts. |
| 220 | **Output path convention:** uses a standard `content/YYYY-MM-DD-<topic>/` layout. Keep it consistent for easier cross-referencing later. |
| 221 |
Details
- Updated
- Sep 21, 2026
- License
- MIT
- Stars on the repo
- ★ 1,220
- Checked
- Source
- gooseworks-ai/goose-skills ↗
- Creator
- gooseworks-ai · 206 listings
Made with social-kit

Similar skills
See all →
SkillTell us what your banner is for and what it should sayBanner Design - Multi-Format Creative Banner System
SkillDEFAULT poster pipelinePaper Poster (HTML): measurement-gated poster generation
SkillGenerate or edit images with Codex's built-in imageQiaomu codex imagegen
SkillPromptfilm — turns one sentence into a researched 3D motion
SkillMake real, accurate maps as one self-contained HTMLMap design
Prompt${primarytext:Megane}{ category: STUDIORACECARSIDEPROFILECar posterMore from gooseworks-ai
SkillMine the highest-converting ad angles from customer reviewsAd angle miner
SkillAnalyze ad campaign performance data to identify what'sAd campaign analyzer
SkillFor paid lead-gen and participant-recruitment adsAd lead quality analyzer
SkillAnalyze the message match between your ads and landing pagesAd to landing page auditor
SkillCheck and improve your brand's visibility across AI searchAeo
SkillSearch Amazon products - find items, compare pricesAmazon Product Search