Agent skill

wjs-tweeting-from-articles

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

jianshuogithub.com/jianshuoGitHub ↗
claude-codecodexships scriptsMIT
Install
npx skills add jianshuo/claude-skills --skill wjs-tweeting-from-articles --agent claude-code

Same command for any agent — swap --agent for codex, cursor, copilot.

Facts
Files in the skill folder: 10
SKILL.md size: 5 KB
Bundled scripts: yes
Path: wjs-tweeting-from-articles/SKILL.md
Open the folder on GitHub →
Where it comes from
Stars: 112
Language: Python

Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.

From the SKILL.md

# 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 ≤

What's inside
Steps it walks through
  1. Core Principle
  2. When This Skill Fires
  3. When NOT to use
  4. Workflow
  5. Step 1: 挑今天要推的文章
  6. Step 2: 读文章 + 草拟 3 条 tweet 候选
  7. Step 3: 让用户挑一条
  8. Step 4: 真发 X
  9. Step 5: 记录到 history
  10. Step 6: 收尾
  11. Inputs
  12. File Layout
  13. 批量排期模式(多篇一次排,每 N 小时一条)
  14. Daily 自动化(可选)
Ships with 9 files
  • com.jianshuo.wjs-tweeting-from-articles.plist.template
  • daily.sh
  • scripts/mirror-articles.py
  • scripts/pick-next-article.sh
  • scripts/pick-next-article.sh.bak.1779689674
  • setup.sh
  • state/.gitignore
  • state/queue-2026-05-24.tsv
  • uninstall.sh
Commands it runs
scripts/pick-next-article.sh
Grep the id directly instead.
echo "https://x.com/jianshuo/status/$TWEET_ID"
jq -nc --arg date "$(date +%F)" --arg slug "$SLUG" --arg angle "$ANGLE" \
echo "5 * * * * /bin/bash $HOME/.claude/skills/wjs-tweeting-from-articles/scripts/post-next-from-queue.sh >/dev/null 2>&1" ) | crontab -
More from claude-skills
All skills →
About this skill
What does the wjs-tweeting-from-articles skill do?

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

How do I install it?

Run `npx skills add jianshuo/claude-skills --skill wjs-tweeting-from-articles --agent claude-code` — it drops the skill into your project so the agent can pick it up. Swap the --agent value for codex, cursor or copilot if you use one of those.

Where does this skill come from?

From jianshuo/claude-skills, a repository with 112 stars. We read it straight from the repository tree rather than a submitted listing, so what you see here is what is actually published.

Is a popular skill a good skill?

Not necessarily. Stars measure attention, not adoption — a repository can trend for a week and be abandoned. That is why we show the weekly change from our own snapshots next to the total, instead of a single flattering number.

Keep going