blog-writer

Solid

Channel-master writer for long-form blog posts. Owns the SHAPE of a post — beat structure, title/preview/slug commitments, per-post container layout, per-site voice anchor discovery — and delegates VOICE (prose generation) to /authors-voice and PUBLISH mechanics to the openwriter github plugin (`add_blog_site` + `post_to_blog`). Use when: "/blog-writer", "write a blog post", "blog draft", "brainstorm blog topics", "blog beats", "extract beats from this post", "write about this feature", "draft a post", "blog title", "preview text", "OG description", "blog image", "featured image", "OG image", "integrate", "create the files", "wire up the blog post", "publish to blog", "post to blog", "set up blog repo", "register blog site". Requires: OpenWriter MCP server configured + github plugin enabled + `gh auth login` set up locally. Project SHOULD have a `## Blog` section in its CLAUDE.md for writing-rules / image-style overrides (optional after setup).

AI & Automation 27 stars 1 forks Updated 3 days ago MIT

Install

View on GitHub

Quality Score: 82/100

Stars 20%
48
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
100
Issue Health 10%
50
License 10%
100
Description 5%
100

Skill Content

# Blog Writer Channel-master skill for long-form blog content. Owns ideation → beats → draft → image → publish. **Architecture:** beats-first (v0.5.0) + plugin-backed publish (v0.4.0). Each post lives in its own container with two sibling docs: a `Beats` doc (the structural commitments — beat list + title/preview/slug as B0) and a `Draft` doc (the voice-poured prose). Beats reshape regularly; draft re-pours via `/authors-voice` against a per-site anchor (`voice/anchor-<site-slug>.md`). Publish is a single `post_to_blog` MCP call against a site registered via `add_blog_site` — site-specific frontmatter (layout, author, prerender, `date → publishedDate` for Astro, etc.) lives on the github plugin's per-site config in `~/.openwriter/config.json`, not in project config. Mirrors book-writer's discipline at post scale. ## Convention This skill obeys the shared writer contract at [WRITER-CONVENTION.md](../WRITER-CONVENTION.md). Brief shape and return shape match that doc. Sub-form values: `long` | `short` | `tutorial` | `announcement`. **OpenWriter pad mechanics are canonical in [/openwriter](../openwriter/SKILL.md) — read it, don't re-derive from tool descriptions.** The load-bearing rule: `populate_document` is **create-only, used ONCE**; it re-sends the whole body, so calling it again to "fix" a doc appends a duplicate. All edits (rewrite / insert / delete) go through `write_to_pad` on fresh node IDs. Plus the read ladder (`outline_doc` → `search_docs` → `peek_doc` → `read_p...

Details

Author
travsteward
Repository
travsteward/openwriter
Created
6 months ago
Last Updated
3 days ago
Language
TypeScript
License
MIT

Integrates with

Similar Skills

Semantically similar based on skill content — not just same category

AI & Automation Solid

beat-writer

Channel-agnostic writer for any piece of content that doesn't yet belong to a specific channel. Use when you have something to say but don't know where it goes — could become a blog post, X thread, newsletter section, web copy, journal entry, or just stay as a plain doc. Runs the beat extraction + shaping discipline, pours prose via /authors-voice (with the operator's default anchor — personal voice), polishes, and leaves a clean draft in OpenWriter. The draft can later be refactored into a specific channel via /blog-writer, /x-writer, or /newsletter-writer. Use when: "/beat-writer", "write this", "draft something", "I have an idea but don't know where", "extract beats", "write me a draft", "pour this in voice", "I want to think this through in writing", "plain doc", "just open a doc", "uncommitted draft", "I'll figure out where it goes later". NOT for: known-channel work (use the channel-master directly — /blog-writer for blogs, /x-writer for tweets, /newsletter-writer for emails, /book-writer for chapters).

27 Updated 3 days ago
travsteward
Data & Documents Featured

blog-write

Write new blog articles from scratch optimized for Google rankings and AI citations. Generates full articles with template selection, answer-first formatting, Key Takeaways summary box, information gain markers, citation capsules, sourced statistics, Pixabay/Unsplash images, built-in SVG chart generation, optional FAQ sections, internal linking zones, and proper heading hierarchy. Supports MDX, markdown, and HTML output. Use when user says "write blog", "new blog post", "create article", "write about", "draft blog", "generate blog post".

2,121 Updated today
AgriciDaniel
AI & Automation Solid

write-blog

Write and ship a blog post for your project that reads like a human wrote it and pulls SEO traffic to your site. Use when a contributor wants to draft, edit, or publish a blog post, add a post to the site, write about the project for search/traction, or make an existing draft sound less like AI. Enforces the house voice (no em dashes), picks a non-cannibalizing angle, uses ASD-STE100 Simplified Technical English for technical prose, wires the post into your site, and runs the humanizer pass before shipping.

11 Updated 1 months ago
tamdogood