Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add jianshuo/claude-skills --skill wjs-publishing-books-to-xgit clone --depth 1 https://github.com/jianshuo/claude-skillsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/jianshuo/claude-skills/wjs-publishing-books-to-x)<a href="https://agentmods.dev/skills/jianshuo/claude-skills/wjs-publishing-books-to-x"><img src="https://agentmods.dev/badge/skills/jianshuo/claude-skills/wjs-publishing-books-to-x/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/jianshuo/claude-skills/wjs-publishing-books-to-x"><img src="https://agentmods.dev/badge/skills/jianshuo/claude-skills/wjs-publishing-books-to-x.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector warn
SkillSpector: 2 findings, up to medium
These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →
- medium Rogue Agent · line 99 Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.Fix: Remove any persistence mechanisms (cron jobs, startup scripts, state files). Skills should not maintain state across sessions without explicit user consent.
- medium Rogue Agent · line 118 Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.Fix: Remove any persistence mechanisms (cron jobs, startup scripts, state files). Skills should not maintain state across sessions without explicit user consent.
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00097 | $0.02012 |
| Opus 5 | $0.00048 | $0.01006 |
| Sonnet 5 | $0.00019 | $0.00402 |
| Haiku 4.5 | $0.00010 | $0.00201 |
Grade A, and why
wjs-publishing-books-to-x scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 13d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
curl -s -o /tmp/cover.jpg "https://voicedrop.cn/books/$SLUG/cover.jpg" How it starts
The opening of the file, as written. The whole thing — 133 lines — stays where its author put it; the contents beside it link to each section on GitHub.
wjs-publishing-books-to-x
把 VoiceDrop 书架上我写的书,一本一个 thread 发到 X。首条钩子 + 封面图,中间按书的脉络走,最后一条讲这本书是怎么用 VoiceDrop 写出来的。
Core Principle
一本书 = 一个 thread。 书已经是成品,thread 是它的预告片——从章节梗概和正文里抠最硬的内容,不重新构思、不写营销腔。
只发我的书。 书架是社区书架,上面有别的用户写的书,发出去就是替别人代言,绝对不行。
Workflow
Step 1: 列我的书,排除已发过的
mcp__voicedrop__list_books # 公开书架,免登录
- hidden 的书(book.json 里
hidden: true)服务端已滤掉,不用再处理。 - 我的书判定:
author == "王建硕"或为空(早期的书没署名,都是我的)→ 是我的。其他署名(蜜蜡 / Dennis / sissi / …)→ 别人的书,不发。 - 对照
state/history.jsonl排除已发过的,列出剩余清单让用户挑。用户点名某本 → 直接用那本。
Step 2: 读书
mcp__voicedrop__read_book <slug> # 目录 + 每章梗概 + 一句话简介
mcp__voicedrop__read_book_chapter <slug> intro # 序章;再挑 1-2 个最有料的章读正文
梗概给骨架,正文给 quotable 的细节(数字、比喻、反直觉的断言)。
Step 3: 拆 thread(结构合同)
| 条 | 内容 |
|---|---|
| 1 | 钩子:书的核心断言或问题 + 书名,配封面图 https://voicedrop.cn/books/<slug>/cover.jpg |
| 2 … N-2 | 按书的脉络每条讲透一个点,从梗概/正文里抠。总共 6–10 条 |
| N-1 | 全书免费读:https://voicedrop.cn/books/<slug>/ |
| N(必须) | 这本书怎么写的:真实过程——在 VoiceDrop 丢了一句什么中心思想(seed),书自己长出来、逐章补齐、不满意的地方一句话修书。落 voicedrop.cn |
硬约束:每条加权 ≤280(中文每字算 2),buffer 到 ~120 汉字。王建硕语气:平实、家常比喻。无 hashtag、无 emoji、无 @。链接只出现在 N-1 和 N 两条。盘古之白。
Step 4: 过目
整串列给用户确认(每条标序号 + 字数)。用户说过 --yes 或明确「直接发」才跳过。
Step 5: 发(xurl 链式)
SLUG=<slug>
curl -s -o /tmp/cover.jpg "https://voicedrop.cn/books/$SLUG/cover.jpg"
MEDIA_ID=$(xurl media upload --category tweet_image --media-type image/jpeg /tmp/cover.jpg \
| grep -oE '"media_id_string":"[0-9]+"' | grep -oE '[0-9]+')
# 注意:不带 --category tweet_image 会按视频处理,media id 无效
# 首条(带图)
resp=$(xurl -X POST -d "$(jq -nc --arg t "$T1" --arg m "$MEDIA_ID" \
'{text:$t, media:{media_ids:[$m]}}')" /2/tweets)
# X 返回的 text 里有裸换行,jq 会拒;grep 抠 id
PREV=$(printf '%s' "$resp" | grep -oE '"id":"[0-9]+"' | head -1 | grep -oE '[0-9]+')
[[ -n "$PREV" ]] || { echo "POST failed: $resp"; exit 1; }
# 2…N 条依次 reply 上一条,条间 sleep 5
resp=$(xurl -X POST -d "$(jq -nc --arg t "$TN" --arg r "$PREV" \
'{text:$t, reply:{in_reply_to_tweet_id:$r}}')" /2/tweets)
What ships with it
5 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 13d ago First seen · 133 lines · 97 tokens per session scan A fcd4d39563d7
wjs-publishing-books-to-x is a skill published in the GitHub repository jianshuo/claude-skills (129 stars, last pushed 23d ago), licensed MIT. It adds 97 tokens to every session and 2,012 once invoked, about $0.0005 per session on Opus 5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
exploratory-data-analysis
Perform bounded, local exploratory analysis of explicitly supported scientific files. Use for redacted CSV/TSV/JSON profiles; optional NumPy, HDF5, FASTA/FASTQ, and basic image metadata inspection; missingness/leakage audits; outlier and transformation sensitivity; and rigorous EDA report scaffolds. Other domain…
google-ads-audit
Google Ads account audit and business context setup. Use for account-health audits and business-context setup. Trigger on "audit my ads", "ads audit", "set up my ads", "onboard", "account overview", "how's my account", "ads health check", "what should I fix in my ads", or when the user is new to NotFair and hasn't run…
data-charts-tako
Search and visualize the world's data - get charts, insights, and embeddable knowledge cards for finance, economics, demographics, sports, and more.
webhook-management
Configure and validate CCAM webhook targets across supported chat, incident, automation, and generic providers. Use when listing provider requirements, creating or updating a target, scoping it to alert rules, sending a test notification, reviewing delivery history, or deleting a target.
gesellschaftsrechtliche-satzungen-agb
Für Gesellschaftsrechtliche Satzungen AGB Abgrenzung: ordnet Norm, Beweislast und Gegenargument; Ergebnis: Prüfprodukt mit Risiko und nächstem Schritt. Fachgebiet: AGB-Recht-Prüfer. Route: gesellschaftsrechtliche-satzungen-agb.
master-yinguang
A reference-based assistant for questions about Yinguang and Pure Land Buddhism, a Buddhist tradition focused on faith, ethical living, and practice connected with rebirth in the Pure Land. It can answer in Yinguang’s historical teaching style.