The workflow told the model to look at the PNG but framed it as an aesthetic glance, so the checks that matter were left implicit. Two failures this week were semantic, not geometric: a component placed below another asserted a dependency that did not exist, and a system that is fundamentally a loop was drawn one-way. No geometric audit can catch either. Split verification into clearing the audit and reviewing the image, and give the review a checklist that reads the render as a set of claims — what the picture says cold, what each arrow direction asserts, whether the return edge is visible, whether shared colour means shared category. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Erduo Skills
Empowering AI Agents with structured capabilities and intelligent workflows.
Erduo Skills is an AI Agent skill library — a collection of structured, composable workflow units that agents can invoke directly. Skills cover information retrieval, content processing, image tooling, and more.
Installation
Quick Install (Recommended)
npx skills add rookie-ricardo/erduo-skills
Skills at a Glance
| Skill | Description | Invocation |
|---|---|---|
| Daily News Report | Multi-source scraping + smart filtering → tech daily report | Agent |
| AK RSS Digest | Curated RSS digest with 10-point scoring | Agent / CLI |
| Transcript Polisher | Speech transcript → readable article, preserving original voice | Agent |
| Translate Polisher | 4-step publication-quality translation for ZH↔EN and ZH↔JA | Agent |
| Web To Markdown | URL routing + Readability cleanup for clean markdown extraction | Agent / CLI |
| Anthropic Style Diagram | Draw architecture and flow diagrams in SVG, audit the layout, export PNG | Agent / CLI |
| Gemini Watermark Remover | Reverse alpha blending to remove Gemini image watermarks | CLI |
🗞 Daily News Report
npx skills add rookie-ricardo/erduo-skills --skill daily-news-report
Autonomously fetches, filters, and summarizes high-quality tech news from multiple sources into a structured daily report.
Uses a Master-Worker architecture: the master agent orchestrates and decides, while sub-agents fetch in parallel — including a headless browser worker for JS-rendered pages.
graph TD
User((User)) -->|Start| Master[Master Agent<br>Orchestrate/Monitor/Decide]
subgraph Execution Layer [SubAgent Layer]
WorkerA[Worker A<br>WebFetch]
WorkerB[Worker B<br>WebFetch]
Browser[Browser Worker<br>Headless Chrome]
end
Master -->|Dispatch Tier 1| WorkerA
Master -->|Dispatch Tier 2| WorkerB
Master -->|Dispatch JS Pages| Browser
WorkerA -->|Result| Master
WorkerB -->|Result| Master
Browser -->|Result| Master
Master -->|Filter & Dedup| Report[Generate Report]
Master -->|Update| Cache[Smart Cache]
- Aggregates HackerNews, HuggingFace Papers, ProductHunt, and more across tiered sources
- 10-point scoring + deduplication (URL + content hash)
- Early stopping: halts once 20+ quality items are collected
- Outputs Markdown reports to
NewsReport/
📰 AK RSS Digest
npx skills add rookie-ricardo/erduo-skills --skill ak-rss-digest
Curates high-quality articles from a fixed RSS/Atom feed bundle, focused on AI agents, frontier AI commentary, deep interviews, and high-signal essays.
- Predefined feed list, defaults to the latest 7 days
- 10-point scoring, only outputs items above 7
- Filters out paper summaries, vendor marketing, and SEO content
- Chinese daily-brief style output: title, score, recommendation, summary, link
# Run the fetcher directly
python skills/ak-rss-digest/scripts/fetch_today_feed_items.py --format json
# Fetch a specific day
python skills/ak-rss-digest/scripts/fetch_today_feed_items.py --date 2026-03-18 --days 1
Prompt example:
"Use
$ak-rss-digestto pull the latest week's RSS posts, keep only items above 7/10, and format as a concise Chinese daily brief."
✍️ Transcript Polisher
npx skills add rookie-ricardo/erduo-skills --skill transcript-polisher
Polishes speech transcripts (interviews, talks, podcasts, meetings) into highly readable articles. Core principle: text polisher, not content summarizer — preserves the speaker's original words, metaphors, and personality.
- Auto-detects solo speaker vs. multi-speaker dialogue mode
- Noise reduction: removes filler words and meaningless interjections
- Homophone correction + proper noun fixes
- Semantic breathing: restructures paragraphs by meaning groups, not mechanical length
- Auto-chunks long texts (~5000 chars), processes in parallel via sub-agents
Input format:
视频标题:xxx
视频作者:xxx
视频时长:xxx
--- 字幕内容 ---
<transcript text>
Output format:
## 视频信息
Title / Author / Duration
## 导读
Core ideas summary
## 正文
Polished full text
🌐 Translate Polisher
npx skills add rookie-ricardo/erduo-skills --skill translate-polisher
For high-quality article translation and localization, using a 4-step workflow: Analyze → Draft → Critique → Final. Supports only ZH↔EN and ZH↔JA, and does not support direct EN↔JA translation.
- Accepts a file path, URL, or pasted text as input; URLs are fetched via
r.jina.ai, and the run stops if the full article body cannot be retrieved - Supports
--from,--to,--audience,--style, and--glossary - Performs terminology extraction, figurative language mapping, and reader-friction analysis before translating
- Includes built-in
EN↔ZHandZH↔JAglossaries, and can merge a custom glossary - Automatically chunks long texts and translates them in parallel with sub-agents before final review
- Includes 9 built-in style presets, defaults to
auto, and also accepts custom style descriptions
/translate [--from <lang>] [--to <lang>] [--audience <audience>] [--style <style>] [--glossary <file>] <source>
Prompt examples:
"Translate this article https://example.com/article" "Translate this Chinese article into English for a technical audience --style technical"
🔗 Web To Markdown
npx skills add rookie-ricardo/erduo-skills --skill web-to-markdown
Routes each URL to a source-aware extraction strategy and returns clean markdown for downstream agent tasks such as summarization, translation, and review.
- General pages and X/Twitter use
r.jina.aiby default - YouTube URLs use
defuddle.mdfor transcript-oriented extraction - WeChat, Zhihu, and Feishu use
cuimpChrome-impersonated HTTP fetching, then auto-fallback to browser extraction when needed - Built-in generic fallback chain: if
r.jina.aifails, try direct fetch + Mozilla Readability, then browser extraction - Supports
--jsonmetadata output (strategy,source, normalized URL, and markdown)
cd skills/web-to-markdown
npm install
node scripts/url_to_markdown.mjs <url>
node scripts/url_to_markdown.mjs <url> --json
📐 Anthropic Style Diagram
npx skills add rookie-ricardo/erduo-skills --skill anthropic-style-diagram
Draw technical diagrams in the Anthropic / Claude visual language, then render and save them as an image automatically. Triggers only when that style is explicitly requested.
- You write geometry and semantic classes (
th/ts/box/arr/c-blue…); the renderer injects colour, theme and typography - Audits the three failure modes that ruin diagrams: text spilling out of its box, overlapping boxes, connectors crossing unrelated nodes
- Crops the viewBox to real ink bounds — no clipped content, no dead whitespace
- Bakes computed styles into literal attributes, so the exported SVG needs no CSS and opens correctly in Figma or Illustrator
--theme bothproduces a light and a dark image from one source
cd skills/anthropic-style-diagram
npm install # skip if playwright is already installed globally
node scripts/render.mjs diagram.svg -o ~/Downloads/architecture.png
node scripts/render.mjs diagram.svg -o out.png --theme both --scale 3 --svg
node scripts/render.mjs diagram.svg --check # audit layout only, write nothing
Design tokens live in references/design-system.md; diagram-type routing and
copy-ready snippets in references/diagram-types.md.
🖼 Gemini Watermark Remover
npx skills add rookie-ricardo/erduo-skills --skill gemini-watermark-remover
Removes the visible Gemini AI watermark from the bottom-right corner of generated images using reverse alpha blending. Pixel-perfect restoration.
- Pure Python, only depends on Pillow
- Pre-captured alpha masks: 48px (small images) / 96px (images >1024×1024)
- Algorithm:
original = (watermarked - alpha × logo) / (1 - alpha)
python skills/gemini-watermark-remover/scripts/remove_watermark.py <input-image> <output-image>
For algorithm details, see skills/gemini-watermark-remover/references/algorithm.md
📂 Project Structure
erduo-skills/
├── .claude/
│ └── agents/ # Agent definitions
├── skills/
│ ├── daily-news-report/ # Daily News Report
│ │ ├── SKILL.md
│ │ ├── sources.json
│ │ └── cache.json
│ ├── ak-rss-digest/ # RSS Digest
│ │ ├── SKILL.md
│ │ ├── scripts/
│ │ └── references/feeds.opml
│ ├── transcript-polisher/ # Transcript Polisher
│ │ ├── SKILL.md
│ │ └── references/
│ ├── translate-polisher/ # Translate Polisher
│ │ ├── SKILL.md
│ │ └── references/
│ ├── web-to-markdown/ # Web To Markdown
│ │ ├── SKILL.md
│ │ ├── scripts/
│ │ └── references/
│ ├── anthropic-style-diagram/ # Anthropic Style Diagram
│ │ ├── SKILL.md
│ │ ├── scripts/render.mjs
│ │ ├── assets/diagram.css
│ │ └── references/
│ └── gemini-watermark-remover/ # Gemini Watermark Remover
│ ├── SKILL.md
│ ├── scripts/
│ ├── assets/
│ └── references/
├── NewsReport/ # Generated report archive
├── README.md # Documentation (Chinese)
└── README_EN.md # Documentation (English)
Claude Code Installation Supplement
This repository can be registered as a Claude Code plugin marketplace.
Native Claude Code Commands
Add the marketplace:
/plugin marketplace add rookie-ricardo/erduo-skills
Then install the plugin bundle you want:
/plugin install research-workflows@erduo-skills
/plugin install writing-workflows@erduo-skills
/plugin install image-tools@erduo-skills
Bundle contents:
research-workflows:ak-rss-digest,daily-news-reportwriting-workflows:transcript-polisher,translate-polisher,web-to-markdownimage-tools:anthropic-style-diagram,gemini-watermark-remover
For local testing, use the repository path directly:
/plugin marketplace add ./
/plugin install research-workflows@erduo-skills
If you use the skills CLI, you can also add this repository directly:
npx skills add rookie-ricardo/erduo-skills
🤝 Contributing
Contributions welcome! Each skill is a self-contained directory under skills/, with a SKILL.md (skill definition) and related scripts/resources.
📄 License
MIT © Erduo
Created with ❤️ by Erduo