social-card-gen ยท diff
git:20260225.733acad to git:20260308.5724749
42 added, 154 removed. Audit A to A.
---
name: social-card-gen
- description: Generate platform-specific social post variants (Twitter/X, LinkedIn, Reddit) from one source input. Works with or without Node.js script. Includes platform reasoning, quality review, and guardrails against cross-posting spam.
- ---
-
- # 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)
-
+ description: Generate platform-specific social post variants (Twitter, LinkedIn, Reddit) from one source input using a local Node.js script with no API dependency.
---
- ## โ ๏ธ 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.
+ # Social Card Generator Skill
- ---
+ Use this skill when a user needs one source message transformed into platform-ready social copy for Twitter, LinkedIn, and Reddit.
- ## Platform Reasoning Rules (Built In โ No External Script Needed)
+ ## Mode
- ### ๐ฆ 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]."
+ Detect from context or ask: *"One platform, all platforms, or all platforms with variants?"*
- ### ๐ผ 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.
+ | Mode | What you get | Best for |
+ |------|-------------|----------|
+ | `quick` | 1 platform (user picks), optimized variant | Testing a single channel |
+ | `standard` | All 3 platforms: Twitter, LinkedIn, Reddit | Standard cross-platform post |
+ | `deep` | All platforms + 3 variants each + A/B test guidance | Campaign testing, maximizing reach |
- ### ๐ต 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.
+ **Default: `standard`** โ use `quick` if they specify a platform. Use `deep` if they're running a content campaign and want options.
---
- ## 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]
+ ## What it does
- [Body: genuine story or insight with specifics]
+ - Converts one source input into 3 platform variants.
+ - Enforces platform limits:
+ - Twitter: 280 chars
+ - LinkedIn: 3000 chars
+ - Reddit: no hard limit in this tool
+ - Applies platform style:
+ - Twitter: punchy + compact hashtags
+ - LinkedIn: professional + business framing
+ - Reddit: authentic + discussion-oriented
+ - Runs entirely offline for text/file workflows (no API required).
- [Closing question to invite community input]
- ```
- *Check: Would this feel at home in the target subreddit? No hashtags?*
+ ## Files
- ---
+ - `generate.js`: CLI generator.
+ - `templates.js`: platform rules, tone guidance, hashtag strategy, and CTA formats.
+ - `examples/`: sample input and output.
- ## With Node.js (Automated Path)
+ ## Usage
```bash
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:
-
- | Check | Twitter | LinkedIn | Reddit |
- |---|---|---|---|
- | 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
+ ## Why this vs ChatGPT?
- ---
+ - Deterministic output shape: same rules every run.
+ - Zero prompt iteration for routine adaptation.
+ - Works without external AI APIs.
+ - Easy to automate in CI or content pipelines.
- ## Output Format
+ ## Before / After
- Deliver:
+ Before (single source):
+ ```text
+ We shipped a new onboarding flow that cut setup time and improved week-1 activation.
```
- ## 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]
+ After (platform-ready):
- ## Quality Review
- - Strongest variant: [Platform] โ because [reason]
- - Weakest variant: [Platform] โ [what to improve if needed]
- - All guardrails passed: Yes / No โ [note any issues]
- ```
+ - Twitter: short hook, concise body, tight hashtags, direct CTA.
+ - LinkedIn: professional framing with practical outcome and discussion CTA.
+ - Reddit: conversational framing with an open-ended question.
- ---
+ ## Case study (real workflow)
- *Skill by Brian Wagner | AI Marketing Architect | brianrwagner.com*
+ A two-person SaaS team publishes one product update weekly. They previously rewrote each update manually for Twitter, LinkedIn, and Reddit (about 20-30 minutes total). With this skill they write one source update, run `node generate.js --file update.md --outdir posts`, and review 3 drafts in under 5 minutes before publishing.