Agent skill

wjs-cleaning-spam

Use when the user complains about spam on his X/Twitter posts — 同城面付 / 寻固炮 / 线下上门 / 免费破处 这类引流号在他推文下刷的 emoji 垃圾回复 — and wants them removed. Covers the last 7 days (X recent-search window). Triggers — "把这些spam删掉", "清理X垃圾回复", "推文下面好多引流号", "clean spam replies", "/wjs-cleaning-spam".

jianshuogithub.com/jianshuoGitHub ↗
claude-codecodexships scriptsMIT
Install
npx skills add jianshuo/claude-skills --skill wjs-cleaning-spam --agent claude-code

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

Facts
Files in the skill folder: 2
SKILL.md size: 2 KB
Bundled scripts: yes
Path: wjs-cleaning-spam/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-cleaning-spam 清理挂在王建硕推文下的同城引流 spam 回复:**隐藏回复 + 静音账号**。 ## Core Principle **别人的推文删不掉。** X 只给串主两个武器:hide reply(从评论区移除,访客不可见)和 mute(通知里不再出现)。**block 端点已被 X 从 API 下线**(v2 返回 code 34,v1.1 要更高访问级别),真要拉黑只能网页手动。「删掉spam」= 隐藏 + 静音,做到 API 上限。 **先 dry-run,人审 borderline,再 apply。** 启发式会把真人评论("机器人🤖"、"저지능🤪")和 spam 变体("我在济源呀🌷" + 隐形字符)分错边。flagged 直接处理,borderline 必须 Claude 逐条看。 ## Workflow ```bash # 1. dry-run:输出 flagged + borderline 两个名单(JSON) python3 ~/.claude/skills/wjs-cleaning-spam/scripts/clean_spam.py # 2. Claude 逐条审 borderline:引流号特征 = 名字带 💕🌸♥ 装饰 / 同城话术 / # 文本夹隐形字符(U+034F 等)/ 纯 emoji。真人评论(哪怕是骂人)不动。 # 把 borderline 里确认是 spam 的 id 并入名单。 # 3. apply:隐藏 + 静音(默认只处理 flagged;审完 borderline 用 --ids 指定全集) python3 ~/.claude/skills/wjs-cleaning-spam/scripts/clean_spam.py --apply python3 ~/.claude/skills/wjs-cleaning-spam/scripts/clean_spam.py --apply --ids id1,id2,... # 4. 撞 429 限流(hide 约 50 次/15 分钟)脚本会自动停 —— 15 分钟后重跑同一条命令, # state/cleaned.jsonl 记录了已处理的 id,自动跳过、续跑。 ``` 向用户汇报:隐藏几条、失败几条(及原因)、静音几个号;提醒 block 需网页手动。 ## 踩过的坑(2026-06-10 实战) | 坑 | 现实 | |----|------| | raw 查询 401 Unauthorized | query 参数里的 `:` 必须 URL 编码(`to%3Ajianshuo`),不是 auth 问题,别去换 oauth1/oauth2 | | `xurl block` 报 code 34 | block 端点已从 X

What's inside
Steps it walks through
  1. Core Principle
  2. Workflow
  3. 踩过的坑(2026-06-10 实战)
  4. When NOT to use
  5. State
Ships with 1 file
  • scripts/clean_spam.py
Commands it runs
python3 ~/.claude/skills/wjs-cleaning-spam/scripts/clean_spam.py
python3 ~/.claude/skills/wjs-cleaning-spam/scripts/clean_spam.py --apply
python3 ~/.claude/skills/wjs-cleaning-spam/scripts/clean_spam.py --apply --ids id1,id2,...
state/cleaned.jsonl 记录了已处理的 id,自动跳过、续跑。
More from claude-skills
All skills →
About this skill
What does the wjs-cleaning-spam skill do?

Use when the user complains about spam on his X/Twitter posts — 同城面付 / 寻固炮 / 线下上门 / 免费破处 这类引流号在他推文下刷的 emoji 垃圾回复 — and wants them removed. Covers the last 7 days (X recent-search window). Triggers — "把这些spam删掉", "清理X垃圾回复", "推文下面好多引流号", "clean spam replies", "/wjs-cleaning-spam".

How do I install it?

Run `npx skills add jianshuo/claude-skills --skill wjs-cleaning-spam --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