Oct 25, 2026

Ship Gated Blog Posts with claude-blog's 30 /blog Commands

claude-blog is a 32-directory Claude Code skill suite — one orchestrator and 31 sub-skills behind 30 /blog commands — that writes, rewrites, audits, translates and refreshes posts, and refuses to show you a draft until a 5-gate delivery contract scores it 90 or higher.

#tutorial#seo#claude-code#productivity

Most blog-writing prompts make you the first reviewer of everything the model produces. claude-blog, a 3k-star MIT skill suite by Daniel Agrici, inverts that: a 5-gate Blog Delivery Contract scores every draft against a 100-point rubric, blocks delivery below 90, verifies artifacts and links, and iterates up to three times before it escalates to you.

Why This Skill Matters

The suite is a full-lifecycle blog engine — strategy, briefs, outlines, writing, rewriting, analysis, schema, AI citation readiness, site audits, topic clusters, multilingual publishing, audio narration and content decay detection. Its v2.3.1 shape, prepared 2026-10-13, is 32 skill directories: one orchestrator in skills/blog/SKILL.md plus 31 sub-skills under skills/blog-*, exposed as 30 user-facing /blog commands (blog-chart is internal), with 5 specialized agents, 22 core references and 12 templates.

The orchestrator parses /blog input, detects the target platform — Next.js MDX, Astro, Hugo, Jekyll, WordPress, Ghost, 11ty, Gatsby or static HTML — loads only the references it needs, routes to a sub-skill, and coordinates agents and scripts through the delivery contract. Every draft ships as an artifact folder: markdown source, rendered HTML, PDF, a real hero.<ext>, three viewport screenshots, review.md and preflight-report.json.

Installation

Plugin install, tested on Claude Code 2.1.296:

/plugin marketplace add AgriciDaniel/claude-blog
/plugin install claude-blog@agricidaniel-blog

The README traces the ${CLAUDE_SKILL_DIR} variable these skills rely on to Claude Code 2.1.69, so that is the oldest version it can justify. Restart Claude Code after installing. Requirements are the Claude Code CLI and Python 3.11+ for scoring, the contract runners, renderers and lint; pip install -r requirements.txt is optional, for advanced analysis, readability scoring, schema detection and media workflows.

A standalone installer exists for Unix, macOS and Windows. The README's recommended flow is clone, git checkout <commit-sha-or-release-tag>, review install.sh, uninstall.sh and scripts/installer_ownership.py, then ./install.sh. Heed its warning: do not install or uninstall from the v2.2.0 tag, whose uninstall.sh recursively deletes whole blog and blog-* skill directories including files you added; v2.3.0 is the first release with the ownership-aware installer.

Real Workflow: Strategy, Then a Gated Article

  1. The README's first-run order is strategy, write, analyze:
/blog strategy <niche>
/blog write <topic>
/blog analyze <file-or-url>
  1. /blog write runs a fixed sequence: draft, resolve markers and visuals, render, issue the review nonce, review, run the gates — and after any edit, re-render, re-issue and re-review, up to three iterations.
  2. Gate 1 (Capability Discovery) confirms required tools, agents, env vars and optional dependencies before writing. Gate 2 (Format Completeness) checks, among other things, that .md, .html, .pdf and a hero that decodes at 1200×630 or larger exist, that no [IMAGE], [CHART] or [INTERNAL-LINK] markers are left over, and that the HTML's blog-source-sha256 matches the .md. Gate 3 (Visual Verification) screenshots at 375, 768 and 1280 widths via patchright or playwright and checks that JSON-LD is valid, dark mode holds, SVGs do not overflow and no article text is hidden.
  3. Gate 4 (Content Review) is the blocking review: blog-reviewer must score 90+ with zero P0 issues, a matching nonce, and no change to the draft after the nonce was issued — a stale review is a violation. Gate 5 (Asset and Link Integrity) checks that images resolve, og:image exists, links satisfy the verified URL policy, and the word count matches the schema within 5%.
  4. The hero comes from a ladder — Banana MCP, direct Gemini API, premium stock APIs, then Openverse — and the first working source wins.

Scoring is five categories: Content Quality 30, SEO Optimization 25, E-E-A-T Signals 15, Technical Elements 15, AI Citation Readiness 15. Bands run Exceptional (90–100), Strong (80–89), Acceptable (70–79), Below Standard (60–69) and Rewrite (below 60); the contract blocks delivery below 90.

Tips

  • /blog brand writes BRAND.md and VOICE.md, which every sub-skill auto-loads; /blog style learn <paths> builds an author voice profile from 5 to 10 of your own posts.
  • /blog multilingual <topic> --languages <codes> writes, translates, localizes and emits hreflang in one command; /blog localize does cultural deep-adaptation for DACH, FR, ES, JA or a custom locale, and /blog locale-audit <directory> checks completeness, hreflang, parity and freshness.
  • /blog factcheck <file> fetches cited source URLs and scores each claim as exact match, paraphrase or not found; blog-reviewer treats a load-bearing claim without adequate source support as a P0, which blocks delivery.
  • /blog decay <current-gsc> <previous-gsc> flags 20%+ quarter-over-quarter traffic declines from Search Console exports and suggests refresh, consolidate or prune.
  • /blog update <file> is a freshness alias routed to blog-rewrite — that is why the README counts 30 commands while its table has 31 rows.
  • Gate 5 needs network access for external links. A fully local article can pass offline because the renderer's own footer link is checked for its scheme only, and a failure on an external link may be a network or DNS problem rather than a dead link.
  • On Claude Code 2.1.292 and later, claude plugin validate reports Plugin name "claude-blog" is reserved, because third-party plugin names starting with claude- are reserved for Anthropic. In maintainer testing the plugin still installs and loads; the README calls it a validation error rather than an observed install failure, and notes a future release could enforce it at install time.

When Not to Use This

The README's own maintainer opinion, dated 2026-10-12 and labelled not a benchmark, draws the line: direct prompting is faster for a single throwaway draft, hosted writing tools are easier for non-developers, and building your own pipeline is more flexible for unusual needs. claude-blog is aimed at people who already use Claude Code and want a repeatable, gated workflow they can read and change. The gates also assume their tooling: Gate 3 needs patchright or playwright, the hero ladder reaches for Banana MCP, Gemini, stock APIs or Openverse, and Gate 1 exists to tell you what is missing before writing starts.


See the leaderboard for more skills.