Get the FREE Ultimate OpenClaw Setup Guide β†’

social-card-gen

Scanned
npx machina-cli add skill BrianRWagner/ai-marketing-claude-code-skills/social-card-gen --openclaw
Files (1)
SKILL.md
6.8 KB

Social Card Generator

Transform one source message into platform-ready social copy for Twitter/X, LinkedIn, and Reddit.

This skill works two ways:

  • With Node.js: Use generate.js for deterministic, automated output
  • Without Node.js: Manual generation path built directly into this skill (no dependencies required)

⚠️ MANDATORY: 4-Question Intake Before Generating

Ask these before writing a single word of copy:

  1. Source message: What's the core idea, update, or story? (Paste raw text or describe it.)
  2. Tone goal: Informative? Provocative? Humble brag? Conversational? Educational?
  3. Audience: Who needs to see this? (Founders, marketers, developers, general public?)
  4. CTA: What do you want readers to do? (Visit link, reply, follow, share, start a conversation?)

Without these answers, you'll get generic output that won't land on any platform.


Platform Reasoning Rules (Built In β€” No External Script Needed)

🐦 Twitter/X

  • Character limit: 280 characters (single tweet) or threaded for long-form
  • Tone: Punchy, direct, opinionated. Twitter rewards brevity and conviction.
  • Hook structure: Lead with the most surprising or specific claim. No warm-up.
  • Hashtags: Max 1-2 directly relevant tags. Never stuff.
  • CTA style: Short and embedded. "What's your take?" or "Link in reply."
  • What kills Twitter posts: Long intros, passive voice, corporate speak, hashtag walls.
  • Example hook pattern: "[Counterintuitive claim]. Here's why: [1-2 sentence reason]. [Engaging question]."

πŸ’Ό LinkedIn

  • Character limit: 3,000 characters for posts. First 2 lines before "See more" are critical.
  • Tone: Professional but personal. Thought leadership with a human angle.
  • Hook structure: First line must create curiosity or state a bold truth β€” not "excited to share."
  • Hashtags: 3-5 max, at the end. Never in the body copy.
  • CTA style: Invite discussion. "What's your experience with this?" works well.
  • Opener rule: NEVER start with self-promotional language. Lead with a lesson, story, or observation.
  • What kills LinkedIn posts: Cringe openers ("I'm humbled to announce..."), excessive hashtags, no line breaks.
  • Format tip: Short paragraphs (1-2 lines). White space is your friend.

πŸ”΅ Reddit

  • Character limit: No hard limit, but long posts need clear structure with headers.
  • Tone: Authentic, curious, community-first. Reddit readers have a finely tuned BS detector.
  • Hook structure: Situational β€” frame as a question, lesson learned, or genuine experience.
  • Hashtags: Never. Not a thing on Reddit.
  • CTA style: End with an open question that invites the community to share their take.
  • Self-promotion rule: Never lead with your own promotion. Frame everything as a contribution to the community.
  • What kills Reddit posts: Obvious marketing, lack of genuine insight, "check out my [thing]" openers.

Manual Generation Path (No Node.js Required)

Follow this process exactly:

Step 1: Distill the Core Message

From the source input, extract:

  • The ONE key insight or fact
  • The "so what" β€” why does this matter to the audience?
  • The evidence or story behind it

Step 2: Generate 3 Platform Variants

Twitter/X variant:

[Bold claim or surprising fact β€” max 1 sentence]

[1-2 sentences of supporting context]

[Engaging question or CTA]

[1-2 relevant hashtags max]

Check: Under 280 chars for single tweet? If not, decide: cut or thread.

LinkedIn variant:

[First line hook β€” create curiosity, not announcement]

[1-2 line context paragraph]

[Core insight or framework β€” 2-4 short paragraphs]

[Personal angle or reflection]

[Discussion CTA β€” question for the audience]

[3-5 hashtags at the end only]

Check: Does the first line work before "See more"? Does it NOT start with "I'm excited to..."?

Reddit variant:

[Title: specific, searchable, not clickbaity]

[Opening: frame as experience, question, or lesson β€” community-first]

[Body: genuine story or insight with specifics]

[Closing question to invite community input]

Check: Would this feel at home in the target subreddit? No hashtags?


With Node.js (Automated Path)

npm install

# text input
node generate.js --text "We reduced onboarding time by 35% with a checklist." --stdout

# file input
node generate.js --file examples/input-example.md --outdir examples

# URL input (when network is available)
node generate.js --url https://example.com/post --platforms twitter,linkedin --stdout

If generate.js is unavailable, use the Manual Generation Path above β€” same quality, just manual.


Quality Self-Review Pass (REQUIRED After Generating)

After generating all 3 variants, run this review before delivering:

CheckTwitterLinkedInReddit
Hook strong? (Would you stop scrolling?)βœ…/βŒβœ…/βŒβœ…/❌
CTA present and clear?βœ…/βŒβœ…/βŒβœ…/❌
Platform fit? (Tone matches platform norms)βœ…/βŒβœ…/βŒβœ…/❌
Guardrails pass? (See below)βœ…/βŒβœ…/βŒβœ…/❌

Flag the weakest variant and explain why: "The Reddit variant is the weakest because it still reads like a LinkedIn post β€” too polished, not community-first."


Guardrails (Never Violate)

❌ No identical copy cross-posted β€” every platform variant must be meaningfully different in tone and structure ❌ No hashtag spam on LinkedIn β€” max 5, always at the end, never in the body ❌ No self-promotional openers on Reddit β€” community value first, always ❌ No vague hooks β€” "I have some thoughts on X" is not a hook ❌ No copy that assumes platform context β€” Reddit readers don't know your LinkedIn audience


Iteration Loop

After delivering the 3 variants:

  1. Ask: "Which variant feels most off? What's not landing?"
  2. If hook is weak β†’ rewrite the first line using a different angle (counterintuitive, numerical, story-led)
  3. If CTA is weak β†’ try a question instead of a directive
  4. If platform fit is off β†’ re-read the platform rules and rewrite from scratch for that platform

Output Format

Deliver:

## Twitter/X
[Final copy β€” ready to paste]
Character count: [X]/280

## LinkedIn
[Final copy β€” ready to paste]

## Reddit
Title: [Post title]
[Body β€” ready to paste]

## Quality Review
- Strongest variant: [Platform] β€” because [reason]
- Weakest variant: [Platform] β€” [what to improve if needed]
- All guardrails passed: Yes / No β€” [note any issues]

Skill by Brian Wagner | AI Marketing Architect | brianrwagner.com

Source

git clone https://github.com/BrianRWagner/ai-marketing-claude-code-skills/blob/main/social-card-gen/SKILL.mdView on GitHub

Overview

Social Card Generator turns a single source message into platform-specific social posts for Twitter/X, LinkedIn, and Reddit. It supports both a deterministic Node.js workflow (generate.js) and a no-dependency manual path, with intake questions and guardrails to prevent cross-posting spam.

How This Skill Works

If you’re using Node.js, run generate.js for deterministic output. Without Node.js, use the manual path: answer the four intake questions, distill the core message and its significance, and then generate three variants tailored to Twitter/X, LinkedIn, and Reddit using the platform-specific templates and rules.

When to Use It

  • When you need platform-specific variants created from a single input
  • When you want deterministic output via a Node.js script (generate.js)
  • When you don’t have Node.js and need a no-dependency manual path
  • When you must guard against cross-posting spam with intake questions and guardrails
  • When preparing content for Twitter/X, LinkedIn, and Reddit in one pass

Quick Start

  1. Step 1: Gather your Source message, Tone goal, Audience, and CTA
  2. Step 2: Distill the core message and why it matters
  3. Step 3: Generate three platform variants following Twitter/X, LinkedIn, and Reddit templates

Best Practices

  • Complete the 4-question intake before writing to ground the copy
  • Follow each platform’s tone, length, and formatting rules (Twitter brevity, LinkedIn professionalism, Reddit authenticity)
  • Lead with a strong hook for each platform and avoid self-promotion in opens
  • Keep CTAs concise and context-appropriate for each platform
  • Review for spam risk, hashtag usage, and clear value for readers

Example Use Cases

  • Startup announces feature updates across platforms using a single message adapted for Twitter/X, LinkedIn, and Reddit
  • Marketing team repurposes a blog post into three platform-specific variants
  • Developer-focused update reframed for Reddit threads and LinkedIn thought leadership
  • Industry insights summarized into a LinkedIn post with a concise Twitter hook
  • Case-study teaser crafted to invite discussion on Reddit and engagement on LinkedIn

Frequently Asked Questions

Add this skill to your agents
Sponsor this space

Reach thousands of developers β†—