wjs-tweeting-from-articles SKILL.md skillA
wjs-tweeting-from-articles from jianshuo/claude-skills is an agent skill: a SKILL.md folder an AI agent loads when a task calls for it.
mdr add jianshuo/claude-skills/wjs-tweeting-from-articles@git:20260527.7241e6ePins git:20260527.7241e6e in mdr.lock. Pin the fingerprint instead.
- Audit grade
- A, 17 of 17 checks passed
- Kind
- SKILL.md skill
- Repository
- jianshuo/claude-skills
- Path
wjs-tweeting-from-articles/SKILL.md- Versions recorded
- 5
- Latest version
- git:20260527.7241e6e, committed May 27, 2026
- First version recorded
- May 23, 2026
- Size
- 7,850 bytes
- Repository stars
- 138
- License
- MIT
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".
Collected from public GitHub. Every version is saved exactly as it was and never changes. Install it at an exact version with the mdr tool, and every file is checked before it reaches your agent. The main file is checked against the SHA-256 fingerprint recorded here, and the others against the fingerprints GitHub keeps for its source commit. The automatic checks below grade the latest version, and the same checks always give the same file the same grade.
What the file says
# 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」式的认知翻转 | "不是变聪明,是手感来了。" | …
Read the whole file at its exact version.
How to install
mdr add jianshuo/claude-skills/wjs-tweeting-from-articles@sha256:5d9e36de8a81e1c5The line at the top of this page pins the label git:20260527.7241e6e, which is what most people want. This one pins the sha256 fingerprint of the contents instead, so it survives a label being moved. Either way the exact version is written to mdr.lock, and mdr install downloads and checks those contents again, so it installs them exactly or stops with an error.
[](https://markdownregistry.com/a/art_rksdt7iil6qloaxd)
2 badge image fetches in 30 days. What the badge shows.
Versions
The registry has recorded 5 versions of this file, between May 23, 2026 and May 27, 2026, more than one a day.
| version | committed | commit | size | audit | |
|---|---|---|---|---|---|
| git:20260527.7241e6e latest | 2026-05-27 | 7241e6e | 7,850 B | A | view · diff |
| git:20260524.6f61bf5 | 2026-05-24 | 6f61bf5 | 7,919 B | A | view · diff |
| git:20260524.11a759d | 2026-05-24 | 11a759d | 7,805 B | A | view · diff |
| git:20260524.859b8be | 2026-05-24 | 859b8be | 7,460 B | A | view · diff |
| git:20260523.db22155 | 2026-05-23 | db22155 | 6,048 B | A | view |
Audit of the latest version
- pass: Frontmatter block present
- pass: Frontmatter declares a name
- pass: Frontmatter declares a description
- pass: Size between 200 bytes and 200 KB (7850 bytes)
- pass: No zero-width or bidi control characters
- pass: No instruction hidden inside an HTML comment
- pass: No link to an exfiltration or paste host
- pass: No credential-shaped string
- pass: No instruction to send local credentials anywhere
- pass: No text hidden with inline styles
- pass: No prompt-injection phrasing
- pass: No curl or wget piped into a shell
- pass: No recursive delete of root, home or parent
- pass: No instruction to read or print local credentials
- pass: No base64 blob over 200 characters
- pass: No link to a raw IP address
- pass: No script tag
Source
jianshuo/claude-skills · 138 stars · license MIT · pushed 2026-11-06 · branch main
API
GET https://markdownregistry.com/api/v1/artifacts/art_rksdt7iil6qloaxd GET https://markdownregistry.com/api/v1/resolve?ref=jianshuo/claude-skills/wjs-tweeting-from-articles GET https://markdownregistry.com/api/v1/blob/5d9e36de8a81e1c5ce2d5d45ccb25aeb5ce4705b2aadd98e5f01e7db8823c45e
Your AI assistant does the legwork. You hear about the deals worth your word. Hand yours the standing instructions at modelranch.com and it joins the network that reads files like this one.
Guides: the SKILL.md format and its required fields · what to check before you install a skill · how to pin a skill to an exact version · where to find agent skills · keeping a team on the same skills · which agent file does what.