← ClaudeAtlas

wjs-tweeting-from-articleslisted

Use when the user wants to post a daily X/Twitter tweet inspired by one of their recently-published 微信公众号 articles. Picks the newest article that hasn't been tweeted yet, drafts 3 tweet candidates from it (different angles — quote / metaphor / one-liner), posts the chosen one via xurl, records to history. Triggers — "每天发一个 tweet", "从文章里发推", "今天的 tweet", "/wjs-tweeting-from-articles".
jianshuo/claude-skills · ★ 77 · AI & Automation · score 85
Install: claude install-skill jianshuo/claude-skills
# wjs-tweeting-from-articles 每天一条 X tweet,灵感**直接从最近发的公众号文章**里抠。文章是源头,tweet 是更短的萃取。 ## Core Principle **文章已经过了一轮王建硕式的精炼,tweet 只是再短一格的版本。** 不要重新构思——从 article.md 里直接抠最 quotable 的一句 / 一段,按 X 的节奏切。 **一天最多一条,一篇文章只推一次。** 状态文件 `state/history.jsonl` 记录哪些 article 已经推过;不重复。(**例外:批量排期模式**——一次把多篇排进队列、按每 N 小时一条自动发,见下文。) **真发,不暂存。** 用户确认后立刻 `xurl POST`。失败原文 dump 给用户重试。 ## When This Skill Fires - 用户说「今天的 tweet」/「发一条 X」/「从文章里发推」 - 用户跑 `/wjs-tweeting-from-articles` - 用户设了 `/schedule daily /wjs-tweeting-from-articles` 之后每天自动调 ## When NOT to use - 用户要发的内容**和最近的公众号文章无关**——直接 `xurl POST /2/tweets` 即可 - 用户要发的是产品 / skill 推广——用 `/publish-skill` 或 `/wjs-promoting-skills` ## Workflow ### Step 1: 挑今天要推的文章 ```bash scripts/pick-next-article.sh ``` 输出最新一篇**还没推过**的文章的 folder 路径(最近一周内,按日期倒序找第一个未推的)。已经全推完 → 退出 0、空输出,告诉用户「最近 7 天的文章都推过了,今天 rest day」。 如果用户想推**特定**那一篇:跳过此脚本,直接用 `<folder>`。 ### Step 2: 读文章 + 草拟 3 条 tweet 候选 读 `<folder>/article.md`,按下面**三个角度**各起草一条: | 角度 | 选材 | 例子 | |------|------|------| | **A · 金句** | 从文中挑一句最 quotable 的,可以加一句铺垫 | "笔头钝了,写不出锋——蘸点墨,在砚台上转两圈,重新有了尖。" | | **B · 比喻** | 文章的核心比喻 + 一句把比喻落到读者头上 | "写 prompt 跟画画一样,是手感活儿。每天都得写点。" | | **C · 反差** | 「不是 X,是 Y」式的认知翻转 | "不是变聪明,是手感来了。" | **长度硬约束**:tweet ≤ **280 字符**(X 限制;中文每字算 2)——所以中文 tweet 实际 ≤ **140 字**。**留 buffer 到 120 字以内**比较稳。 **风格**:保留王建硕语气——平实、家常比喻、不写营销腔。**不要**加 hashtags、不要加 @、不要加 emoji(除非原文有)。**不要**加 mp.weixin 链接(默认);如果用户问要不要带链接,提示可以 reply 里附。 ### Step 3: 让用户挑一条 用 `AskUserQuestion` 给出 A/B/C 三条候选 + 「四选其他」。用户选一条之后进入 Step 4