Three composable Claude skills for shipping a long-tail SEO blog post end-to-end:
| Skill | What it does | Clawhub |
|---|---|---|
blog-topic-research |
Validates a topic has real, verifiable demand (PAA, Reddit threads, GitHub issues) before drafting. Outputs a research-proof scaffold the writer skill can consume. | clawhub.ai/skills/blog-topic-research |
ghost-blog-writer |
End-to-end pipeline for a single Ghost CMS post: research -> draft -> scrub LLM tells -> AI-SEO audit -> publish via Admin API. Adds FAQPage + BreadcrumbList + HowTo JSON-LD for AI-citation extractability. | clawhub.ai/skills/ghost-blog-writer |
blog-figure-svg |
Generates accessible SVG figures (flow, comparison bars, taxonomy, terminal mocks, OG feature cards) with system-font palette, rasterizes to compressed PNG. | clawhub.ai/skills/blog-figure-svg |
Together, they form a complete pipeline: research the topic -> write the post -> illustrate it -> publish to Ghost.
Installs all 3 skills into Claude Code, Cursor, Codex, Gemini CLI, GitHub Copilot, and 50+ other runtimes at once:
npx skills add ratamaha-git/publishing-skillsnpm i -g clawhub
clawhub login
clawhub skill install blog-topic-research
clawhub skill install ghost-blog-writer
clawhub skill install blog-figure-svgEach skill is a single SKILL.md file with YAML frontmatter. Drop it into your project's .claude/skills/<name>/ directory (or your agent runtime's equivalent skill folder) and reload.
git clone https://github.com/ratamaha-git/publishing-skills.git
cp -r publishing-skills/skills/* .claude/skills/+----------------------+ +------------------+ +-------------------+ +-------------------+
| blog-topic-research | ---> | (operator review)| ---> | ghost-blog-writer | <--- | blog-figure-svg |
| 'is the topic worth | | 'pick what to | | 'write + publish' | | 'illustrate the |
| writing about?' | | write next' | | | | post' |
+----------------------+ +------------------+ +-------------------+ +-------------------+
|
v
Ghost CMS (your blog)
blog-topic-researchruns first — it answers "does anyone actually search this?" before you spend tokens drafting.ghost-blog-writerconsumes the research-proof scaffold (or runs from scratch), drafts the HTML, validates the payload, and posts to Ghost.blog-figure-svgis invoked from within the writer's illustration step (or standalone) when a post needs charts, diagrams, or a feature card.
blog-topic-research— no system dependencies beyondWebSearch/WebFetchin the agent runtime.ghost-blog-writer— Python 3 (requests,pyjwt),GHOST_URLandGHOST_ADMIN_KEYenv vars pointing at your Ghost instance.blog-figure-svg— Python 3, plus one SVG rasterizer (ImageMagick /rsvg-convert/ Inkscape /cairosvg) and optionallypngquantfor compression.
Extracted and generalized from the editorial pipeline running automatelab.tech. The internal versions (al-topic-research, al-write-blog-post) are coupled to that site's tag taxonomy, cluster palettes, and backlog state; this repo strips those internals and parameterizes everything site-specific (hostname, author slug, tags, palettes) so the skills work against any Ghost blog.
MIT-0 — public domain equivalent. Use, modify, redistribute without attribution.