social-card-gen

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

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)

将单条源消息转换为适配Twitter/X、LinkedIn和Reddit平台的可直接发布的社交文案。
本skill有两种运行方式:
  • 带Node.js: 使用
    generate.js
    获得确定性的自动化输出
  • 不带Node.js: 内置的手动生成路径(无需任何依赖)

Mode

模式

Detect from context or ask: "One platform, all platforms, or all platforms with variants?"
ModeWhat you getBest for
quick
1 platform (user picks), optimized variantTesting a single channel
standard
All 3 platforms: Twitter, LinkedIn, RedditStandard cross-platform post
deep
All platforms + 3 variants each + A/B test guidanceCampaign testing, maximizing reach
Default:
standard
— use
quick
if they specify a platform. Use
deep
if they're running a content campaign and want options.

从上下文识别或询问用户:"单平台、全平台、还是全平台加多版本变体?"
模式输出内容适用场景
quick
1个用户指定平台的优化版本测试单个渠道效果
standard
适配3个平台:Twitter、LinkedIn、Reddit的版本标准跨平台发帖
deep
全平台版本 + 每个平台3个变体 + A/B测试指导活动测试,最大化触达范围
默认模式:
standard
— 如果用户指定了单个平台则使用
quick
,如果用户在运营内容活动需要多版本选择则使用
deep

⚠️ MANDATORY: 4-Question Intake Before Generating

⚠️ 强制要求:生成前必须收集4个问题的答案

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.

在撰写任何文案之前先询问以下问题:
  1. 源消息: 核心观点、更新内容或故事是什么?(可粘贴原文或描述)
  2. 语气目标: 信息科普型?观点鲜明型?低调炫耀型?轻松对话型?教育指导型?
  3. 受众: 内容面向哪些人群?(创始人、营销人员、开发者、普通大众?)
  4. CTA: 你希望读者做出什么行动?(访问链接、回复、关注、分享、发起讨论?)
没有这些答案,生成的内容会非常通用,在任何平台都不会有好效果。

Platform Reasoning Rules (Built In — No External Script Needed)

平台适配规则(内置,无需外部脚本)

🐦 Twitter/X

🐦 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]."
  • 字符限制: 单条推文280字符,长内容可发线程
  • 语气: 干练、直接、观点鲜明。Twitter奖励简洁性和说服力。
  • 钩子结构: 开头就抛出最出人意料或最具体的观点,不要铺垫。
  • 话题标签: 最多1-2个直接相关的标签,绝对不要堆砌。
  • CTA风格: 简短嵌入文案,比如"你怎么看?"或"链接放在回复里"。
  • Twitter帖子雷区: 冗长的介绍、被动语态、企业套话、满屏话题标签。
  • **钩子示例模板:"[反常识观点]。原因如下:[1-2句理由]。[互动问题]。"

💼 LinkedIn

💼 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.
  • 字符限制: 帖子最多3000字符,"查看更多"之前的前2行至关重要。
  • 语气: 专业但有个人温度,带有个人视角的思想领导力输出。
  • 钩子结构: 第一行必须引发好奇心或抛出大胆的真相,不要用"很高兴和大家分享"。
  • 话题标签: 最多3-5个,统一放在末尾,绝对不要放在正文里。
  • CTA风格: 邀请讨论,比如"你在这方面有什么经验?"效果很好。
  • 开头规则: 绝对不要用自我宣传类的语言开头,先讲经验、故事或者观察。
  • LinkedIn帖子雷区: 尴尬的开场白("我很荣幸地宣布...")、过多的话题标签、没有换行。
  • 格式技巧: 短段落(1-2行),留白是你的好帮手。

🔵 Reddit

🔵 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.

  • 字符限制: 没有严格限制,但长帖需要清晰的标题结构。
  • 语气: 真实、有好奇心、以社区为中心。Reddit用户对无用内容的识别度极高。
  • 钩子结构: 贴合场景,包装成问题、学到的经验或者真实经历。
  • 话题标签: 完全不要用,Reddit没有这个功能。
  • CTA风格: 末尾用开放式问题邀请社区分享自己的观点。
  • 自我宣传规则: 绝对不要一上来就宣传自己的内容,所有内容都要包装成对社区的贡献。
  • Reddit帖子雷区: 明显的营销内容、缺乏真实洞见、"来看看我的[产品/内容]"这类开场白。

Manual Generation Path (No Node.js Required)

手动生成路径(无需Node.js)

Follow this process exactly:
严格遵循以下流程:

Step 1: Distill the Core Message

步骤1:提炼核心信息

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

步骤2:生成3个平台的变体

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?

Twitter/X变体:
[大胆观点或意外事实 —— 最多1句话]

[1-2句支撑背景]

[互动问题或CTA]

[最多1-2个相关话题标签]
检查:单条推文是否在280字符以内?如果超出,决定是精简内容还是发线程。
LinkedIn变体:
[第一行钩子 —— 引发好奇心,不是公告式内容]

[1-2行背景段落]

[核心洞见或框架 —— 2-4个短段落]

[个人视角或反思]

[讨论类CTA —— 给受众的问题]

[仅在末尾放3-5个话题标签]
检查:"查看更多"之前的第一行是否足够有吸引力?有没有用"我很高兴..."这类开头?
Reddit变体:
[标题:具体、可搜索、不是标题党]

[开头:包装成经历、问题或者经验 —— 以社区为中心]

[正文:带细节的真实故事或洞见]

[邀请社区参与的收尾问题]
检查:放在目标subreddit里会不会显得违和?有没有话题标签?

With Node.js (Automated Path)

带Node.js(自动化路径)

bash
npm install
bash
npm install

text input

text input

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

file input

file input

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

URL input (when network is available)

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.

---
node generate.js --url https://example.com/post --platforms twitter,linkedin --stdout

如果`generate.js`不可用,使用上面的手动生成路径,质量相同,只是需要手动操作。

---

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."

生成所有3个变体后,在交付前完成以下检查:
检查项TwitterLinkedInReddit
钩子足够有力?(你会不会停下滑动?)✅/❌✅/❌✅/❌
CTA存在且清晰?✅/❌✅/❌✅/❌
适配平台特性?(语气符合平台规范)✅/❌✅/❌✅/❌
符合防护规则?(见下文)✅/❌✅/❌✅/❌
标记最弱的变体并解释原因:"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

禁止跨平台发布完全相同的文案 —— 每个平台的变体必须在语气和结构上有明显差异 ❌ 禁止在LinkedIn上堆砌话题标签 —— 最多5个,永远放在末尾,不要放在正文里 ❌ 禁止在Reddit上用自我宣传的开场白 —— 永远把社区价值放在第一位 ❌ 禁止模糊的钩子 —— "我对X有一些想法"不是合格的钩子 ❌ 禁止假设跨平台的用户上下文 —— Reddit用户不知道你的LinkedIn受众是谁

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

交付3个变体后:
  1. 询问:"哪个变体感觉最不符合预期?哪里不够好?"
  2. 如果钩子太弱 → 换个角度重写第一行(反常识角度、数字角度、故事导向)
  3. 如果CTA太弱 → 用问题代替指令
  4. 如果平台适配性差 → 重新阅读平台规则,针对该平台完全重写

Output Format

输出格式

Deliver:
undefined
交付内容如下:
undefined

Twitter/X

Twitter/X

[Final copy — ready to paste] Character count: [X]/280
[最终文案 —— 可直接粘贴使用] Character count: [X]/280

LinkedIn

LinkedIn

[Final copy — ready to paste]
[最终文案 —— 可直接粘贴使用]

Reddit

Reddit

Title: [Post title] [Body — ready to paste]
Title: [帖子标题] [正文 —— 可直接粘贴使用]

Quality Review

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*
  • 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*