
Turn any codebase, with its docs, SQL schemas, configs, and PDFs, into a queryable knowledge graph. A /graphify skill for Claude Code, Cursor, Codex, and Gemini CLI: local deterministic AST parsing, every edge explained, no vector store.
This repository packages five Claude Code skills for a content workflow from research to publication. Each skill has one job: collect sources, score an article, refine the scoring rubric, publish drafts through Wechatsync, or use yt-dlp commands directly. It also ships plugin metadata and install docs for setup and integration.
Builders who use Claude Code to research, draft, edit, and publish long-form articles.
You can turn a manual writing workflow into reusable agent steps instead of re-explaining each part every time.
Collects YouTube videos and web articles for a topic, pushes them into a NotebookLM notebook, runs analysis queries, and saves the results as markdown.
Scores one article with a fixed rubric and iterates rewrites round by round to raise the score.
Batch-scores a labeled sample set so you can tune the rubric used by the article scorer.
Checks, normalizes image paths, dry-runs, and publishes markdown drafts to platforms such as Zhihu, Juejin, CSDN, and WeChat.
Provides practical command reference for common yt-dlp tasks like playlists, audio extraction, subtitles, and browser cookies.
/plugin marketplace add xiaomoBoy/claude-writing-skills /plugin install claude-writing-skills@claude-writing-skills
You: 帮我收集 "Claude Code skills" 这个话题的素材,输出到 ./research/claude-skills
Claude: [invokes research-collector] → creates notebook, adds ~15 YouTube + ~40 web sources,
runs 3 analysis queries, saves summary markdownYou: 把 path/to/article.md 发到知乎和掘金(先 dry-run)
Claude: [invokes publisher-wechatsync] → checks auth, normalizes image paths,
runs dry-run, asks confirmation, then syncsYou: 给 path/to/article.md 跑一遍评分 Claude: [invokes article-optimizer] → returns 9-dimension score JSON You: 评分器对 "title_score" 给得太松,帮我校准 Claude: [invokes score-optimizer] → re-runs prompt on labeled samples, compares
You: 把这个 YouTube 播放列表的音频下下来 Claude: [invokes yt-dlp-direct] → constructs the exact yt-dlp invocation, runs it
A toolkit of Claude Code skills for long-form content creators — research, score, rewrite, and publish, end to end.
中文版: README.zh-CN.md
5 skills extracted from a real working writing setup. They are opinionated, narrow in scope, and meant to compose. Each one does one thing.
Skill descriptions (frontmatter) are English so they trigger correctly. Skill bodies are written in Chinese — that's the author's working language. If you don't read Chinese, the script files and command examples are still usable, and the descriptions tell you what each skill does. PRs translating bodies welcome.
Add this repo as a Claude Code marketplace, then install:
/plugin marketplace add xiaomoBoy/claude-writing-skills
/plugin install claude-writing-skills@claude-writing-skills
That's it — you now have all 5 skills available.
Each skill may need its own upstream CLI (e.g. yt-dlp, nlm, codex, wechatsync). See INSTALL.md for the full per-OS install guide (macOS / Linux / Windows + verification + troubleshooting).
Not using Claude Code? See INTEGRATIONS.md for using these skills with Cursor, Aider, Codex CLI, the Claude API directly, or as standalone scripts.
| Skill | What it does | Depends on |
|---|---|---|
| research-collector | Collect YouTube videos + web articles for a topic, push into a NotebookLM notebook, run analysis queries, save results as markdown. | notebooklm-mcp-cli (nlm), yt-dlp |
| publisher-wechatsync | Publish a finished markdown article to 知乎 / 掘金 / CSDN / 公众号 etc. as drafts via the wechatsync CLI. Handles pre-flight checks, dry-run, and image-path normalization. | @wechatsync/cli + Chrome extension |
| article-optimizer | Score a single article against a fixed viral-content rubric, then iterate rewrites round by round to raise the score. | codex CLI |
| score-optimizer | Calibrate / improve the scoring rubric itself by batch-scoring a labeled sample set. The companion to article-optimizer when you want to tune the evaluator. | codex CLI |
| yt-dlp-direct | A pragmatic command-reference skill for the installed yt-dlp CLI — single videos, playlists, audio extraction, subtitles, cookies-from-browser. No reinvention, just operational knowledge. | yt-dlp |
I write long-form articles on my own publication and cross-post to several Chinese platforms. After a year of doing it with Claude Code, I had accumulated maybe 30 ad-hoc prompts and shell helpers. These 5 skills are the parts that survived the consolidation — the ones I actually use every week.
Two design principles run through all of them:
yt-dlp, nlm, wechatsync, codex), the skill wraps operational knowledge around it rather than reinventing in pure prompt.If you want the writing workflow as a whole (idea → outline → draft → style alignment), it's deeply coupled to my personal vault and not part of this release. These 5 are the parts I could cleanly extract.
You: 帮我收集 "Claude Code skills" 这个话题的素材,输出到 ./research/claude-skills
Claude: [invokes research-collector] → creates notebook, adds ~15 YouTube + ~40 web sources,
runs 3 analysis queries, saves summary markdown
You: 把 path/to/article.md 发到知乎和掘金(先 dry-run)
Claude: [invokes publisher-wechatsync] → checks auth, normalizes image paths,
runs dry-run, asks confirmation, then syncs
You: 给 path/to/article.md 跑一遍评分
Claude: [invokes article-optimizer] → returns 9-dimension score JSON
You: 评分器对 "title_score" 给得太松,帮我校准
Claude: [invokes score-optimizer] → re-runs prompt on labeled samples, compares
You: 把这个 YouTube 播放列表的音频下下来
Claude: [invokes yt-dlp-direct] → constructs the exact yt-dlp invocation, runs it
Most skills work with zero config. A few env vars are useful:
| Variable | Used by | Purpose |
|---|---|---|
CODEX_CLI_PATH | article-optimizer, score-optimizer | Override codex binary path if not on PATH |
RESEARCH_OUTPUT_DIR | research-collector | Default output directory (default: ./research/<topic>/) |
MD_VAULT_ROOT | publisher-wechatsync (image normalizer) | Fallback root for resolving relative image paths |
WECHATSYNC_TOKEN | publisher-wechatsync | Required, from the Wechatsync Chrome extension |
nlm, yt-dlp, codex, wechatsync) — install only the ones for skills you useFor full install instructions across macOS / Linux / Windows, see INSTALL.md.
.claude-plugin/
marketplace.json # marketplace definition (one plugin)
plugin.json # plugin manifest
.github/
ISSUE_TEMPLATE/ # bug + feature templates
PULL_REQUEST_TEMPLATE.md
skills/
research-collector/
publisher-wechatsync/
article-optimizer/
score-optimizer/
yt-dlp-direct/
docs/
USAGE.md # end-to-end walkthrough (EN)
USAGE.zh-CN.md # end-to-end walkthrough (ZH)
README.md # this file
README.zh-CN.md # Chinese landing
INSTALL.md # dependency install guide (EN)
INSTALL.zh-CN.md # dependency install guide (ZH)
INTEGRATIONS.md # use outside Claude Code (EN)
INTEGRATIONS.zh-CN.md # use outside Claude Code (ZH)
CONTRIBUTING.md # how to contribute
CHANGELOG.md # version history
LICENSE
| Doc | What's in it |
|---|---|
| README.md / README.zh-CN.md | Landing page, quick install, what's inside |
| INSTALL.md / INSTALL.zh-CN.md | Detailed install of every CLI dependency, per OS |
| INTEGRATIONS.md / INTEGRATIONS.zh-CN.md | Use these skills with Cursor, Aider, Codex CLI, Claude API SDK, or standalone |
| docs/USAGE.md / docs/USAGE.zh-CN.md | End-to-end scenario walkthrough |
| CONTRIBUTING.md | Contribution workflow + design principles |
| CHANGELOG.md | Version history |
Per-skill skills/<name>/SKILL.md | The actual playbook each skill follows |
Per-skill skills/<name>/README.md | GitHub-friendly skill summary |
Issues and PRs welcome. See CONTRIBUTING.md for the workflow + design principles.
Highest-impact PRs right now:
score-optimizer (the calibration loop is non-obvious if you haven't tried it)If you build something on top of these or extract a new skill, link back — happy to feature it in the README.
MIT — see LICENSE.
Built by @xiaomoBoy. I write about VPS, self-hosting, and AI workflows. If this is useful to you, a star helps me find time to keep maintaining it.
Sign in to join the discussion.
No comments yet. Be the first to say what this is good for.

Turn any codebase, with its docs, SQL schemas, configs, and PDFs, into a queryable knowledge graph. A /graphify skill for Claude Code, Cursor, Codex, and Gemini CLI: local deterministic AST parsing, every edge explained, no vector store.
Open-source AI job search: scan job portals, evaluate listings into a structured A-H report with a global 1-5 score, tailor your CV, track applications — runs locally in your AI coding CLI (Claude Code, Codex, OpenCode, Antigravity…)
A skill to stop your coding agent from burying the answer. ADHD-friendly output.
AI agent skill that researches any topic across Reddit, X, YouTube, HN, Polymarket, and the web - then synthesizes a grounded summary
De-AI writing skill for any Agent Skills-compatible agent (77+ via the Skills CLI), with native plugins for Claude Code, Codex, Grok Build, and Antigravity. Narrative-architecture repair for fiction, venue-matched rules for professional prose. Based on StoryScope (arXiv:2604.03136).
Academic Research Skills for Claude Code: research → write → review → revise → finalize