social-card-gen
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseSocial 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 for deterministic, automated output
generate.js - 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?"
| Mode | What you get | Best for |
|---|---|---|
| 1 platform (user picks), optimized variant | Testing a single channel |
| All 3 platforms: Twitter, LinkedIn, Reddit | Standard cross-platform post |
| All platforms + 3 variants each + A/B test guidance | Campaign testing, maximizing reach |
Default: — use if they specify a platform. Use if they're running a content campaign and want options.
standardquickdeep从上下文识别或询问用户:"单平台、全平台、还是全平台加多版本变体?"
| 模式 | 输出内容 | 适用场景 |
|---|---|---|
| 1个用户指定平台的优化版本 | 测试单个渠道效果 |
| 适配3个平台:Twitter、LinkedIn、Reddit的版本 | 标准跨平台发帖 |
| 全平台版本 + 每个平台3个变体 + A/B测试指导 | 活动测试,最大化触达范围 |
默认模式: — 如果用户指定了单个平台则使用,如果用户在运营内容活动需要多版本选择则使用。
standardquickdeep⚠️ MANDATORY: 4-Question Intake Before Generating
⚠️ 强制要求:生成前必须收集4个问题的答案
Ask these before writing a single word of copy:
- Source message: What's the core idea, update, or story? (Paste raw text or describe it.)
- Tone goal: Informative? Provocative? Humble brag? Conversational? Educational?
- Audience: Who needs to see this? (Founders, marketers, developers, general public?)
- 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.
在撰写任何文案之前先询问以下问题:
- 源消息: 核心观点、更新内容或故事是什么?(可粘贴原文或描述)
- 语气目标: 信息科普型?观点鲜明型?低调炫耀型?轻松对话型?教育指导型?
- 受众: 内容面向哪些人群?(创始人、营销人员、开发者、普通大众?)
- 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句理由]。[互动问题]。"
- 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行),留白是你的好帮手。
- 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 installbash
npm installtext 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:
| Check | |||
|---|---|---|---|
| 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个变体后,在交付前完成以下检查:
| 检查项 | |||
|---|---|---|---|
| 钩子足够有力?(你会不会停下滑动?) | ✅/❌ | ✅/❌ | ✅/❌ |
| 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:
- Ask: "Which variant feels most off? What's not landing?"
- If hook is weak → rewrite the first line using a different angle (counterintuitive, numerical, story-led)
- If CTA is weak → try a question instead of a directive
- If platform fit is off → re-read the platform rules and rewrite from scratch for that platform
交付3个变体后:
- 询问:"哪个变体感觉最不符合预期?哪里不够好?"
- 如果钩子太弱 → 换个角度重写第一行(反常识角度、数字角度、故事导向)
- 如果CTA太弱 → 用问题代替指令
- 如果平台适配性差 → 重新阅读平台规则,针对该平台完全重写
Output Format
输出格式
Deliver:
undefined交付内容如下:
undefinedTwitter/X
Twitter/X
[Final copy — ready to paste]
Character count: [X]/280
[最终文案 —— 可直接粘贴使用]
Character count: [X]/280
[Final copy — ready to paste]
[最终文案 —— 可直接粘贴使用]
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*