Best for
- Use when the user says "write a blog post", "blog article", "write about", "create content for", "SEO article", "blog content", "write a post about", or provides a keyword and asks for a written article.
OpenClaudia/openclaudia-skills/skills/write-blog/SKILL.md
Generate a full SEO-optimized blog post. Use when the user says "write a blog post", "blog article", "write about", "create content for", "SEO article", "blog content", "write a post about", or provides a keyword and asks for a written article.
Decision brief
You are an expert SEO content writer. Create comprehensive, well-researched blog posts optimized for both search engines and readers. Follow the E-E-A-T framework (Experience, Expertise, Authoritativeness, Trustworthiness).
Compatibility matrix
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/OpenClaudia/openclaudia-skills --skill "skills/write-blog"Inspect the Agent Skill "write-blog" from https://github.com/OpenClaudia/openclaudia-skills/blob/6b91665a5ab7d36599a605df17dae3e27d5ab242/skills/write-blog/SKILL.md at commit 6b91665a5ab7d36599a605df17dae3e27d5ab242. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
Before writing a single word, gather intelligence:
Before writing a single word, gather intelligence:
Build a detailed outline before writing. Every blog post follows this master structure:
Follow these writing rules strictly:
Target featured snippets with these patterns:
Permission review
The documentation includes network, browsing, or remote request actions.
curl -s "https://api.semrush.com/?type=phrase_all&key=${SEMRUSH_API_KEY}&phrase={keyword}&database=us&export_columns=Ph,Nq,Cp,Co,Nr"The documentation includes network, browsing, or remote request actions.
curl -s "https://api.unsplash.com/search/photos?query={topic}&per_page=5&orientation=landscape" \Evidence record
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 96/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 662 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
You are an expert SEO content writer. Create comprehensive, well-researched blog posts optimized for both search engines and readers. Follow the E-E-A-T framework (Experience, Expertise, Authoritativeness, Trustworthiness).
Before writing a single word, gather intelligence:
1A. Understand the keyword Ask or infer:
1B. Get Keyword Data (if SemRush API available)
If SEMRUSH_API_KEY is set, pull real keyword metrics to inform the content strategy:
# Get keyword data for the target keyword
curl -s "https://api.semrush.com/?type=phrase_all&key=${SEMRUSH_API_KEY}&phrase={keyword}&database=us&export_columns=Ph,Nq,Cp,Co,Nr"
The response is semicolon-delimited with columns:
Use these insights to:
1C. Analyze the SERP (if tools available) Use WebSearch to check what currently ranks:
1D. Build the outline from SERP intelligence Your outline should cover everything the top results cover, plus unique sections they miss.
Build a detailed outline before writing. Every blog post follows this master structure:
# [H1: Title - includes primary keyword, compelling, 50-60 chars for title tag]
Meta Title: [50-60 characters, primary keyword front-loaded]
Meta Description: [150-160 characters, includes keyword, has CTA, creates curiosity]
URL Slug: [primary-keyword-short-descriptive]
## Introduction (100-150 words)
- Hook: Open with a surprising stat, question, or relatable problem
- Context: Why this topic matters RIGHT NOW
- Promise: What the reader will learn/gain
- Primary keyword appears in first 100 words
## [H2: First major section - includes secondary keyword]
### [H3: Subsection if needed]
- Key points to cover
- Data or examples to include
## [H2: Second major section]
### [H3: Subsection]
...
## [H2: Practical/Actionable Section]
(How-to steps, templates, checklists, frameworks)
## [H2: Expert Tips / Advanced Section]
(Differentiator content - what competitors don't cover)
## [H2: Common Mistakes / What to Avoid]
(Addresses "People Also Ask" questions)
## [H2: FAQ]
### [H3: Question 1?]
Answer (2-4 sentences, targets featured snippet)
### [H3: Question 2?]
...
## Conclusion (100-150 words)
- Summarize key takeaways (3-5 bullet points)
- Restate the main value delivered
- Clear CTA: what should the reader do next?
## Internal Links Plan
- Link TO: [3-5 related pages on the site]
- Link FROM: [Pages that should link to this post]
Follow these writing rules strictly:
Choose the best pattern for the intent:
| Intent | Formula | Example |
|---|---|---|
| How-to | "How to {Action} ({Qualifier})" | "How to Start a Blog (Step-by-Step Guide)" |
| Listicle | "{Number} {Adjective} {Topic} for {Year/Audience}" | "15 Best SEO Tools for Small Business (2025)" |
| Guide | "{Topic}: The {Adjective} Guide for {Year}" | "Email Marketing: The Complete Guide for 2025" |
| Comparison | "{A} vs {B}: {Differentiator}" | "Notion vs Obsidian: Which Is Better for Teams?" |
| Question | "{Question}? {Promise}" | "Is SEO Dead? What the Data Actually Shows" |
Title rules:
{What the article covers} + {Unique value prop} + {CTA or curiosity hook}
Examples:
Meta description rules:
Readability:
Structure & Scannability:
SEO Integration (natural, not forced):
E-E-A-T Signals:
| Article Type | Target Words | Sections (H2) | Images | Internal Links | External Links |
|---|---|---|---|---|---|
| How-to Guide | 2000-3000 | 6-10 | 5-10 | 5-8 | 3-5 |
| Listicle | 2500-4000 | 1 per item + intro/conclusion | 1 per item | 5-10 | 3-5 |
| Ultimate Guide | 3000-5000 | 8-15 | 8-15 | 8-12 | 5-8 |
| Comparison | 1500-2500 | 5-8 | 3-5 | 3-5 | 2-4 |
| Opinion/Thought | 1000-1500 | 4-6 | 2-3 | 3-5 | 2-3 |
| News/Update | 800-1200 | 3-5 | 1-3 | 3-5 | 3-5 |
Target featured snippets with these patterns:
Paragraph snippet (definition/what is):
## What Is {Topic}?
{Topic} is {clear 40-60 word definition that directly answers the question}.
{Additional context in 1-2 more sentences}.
List snippet (how-to/best of):
## How to {Action}
1. **{Step 1 title}** - Brief description
2. **{Step 2 title}** - Brief description
3. **{Step 3 title}** - Brief description
...
Table snippet (comparison/data):
## {Comparison Topic}
| {Column 1} | {Column 2} | {Column 3} |
|------------|------------|------------|
| {Data} | {Data} | {Data} |
Image suggestions: For each major section, suggest an image:
[IMAGE: {Description of what the image should show}]
Alt text: "{Descriptive alt text with keyword where natural}"
Image types to suggest:
Sourcing Featured Images from Unsplash (if UNSPLASH_CLIENT_ID available):
Use the Unsplash API to find high-quality, royalty-free featured images for the blog post:
# Search Unsplash for a relevant featured image
curl -s "https://api.unsplash.com/search/photos?query={topic}&per_page=5&orientation=landscape" \
-H "Authorization: Client-ID ${UNSPLASH_CLIENT_ID}"
Parsing the response:
The JSON response contains a results array. For each photo, extract:
# Parse with jq to get image URLs, photographer info, and download links
curl -s "https://api.unsplash.com/search/photos?query={topic}&per_page=5&orientation=landscape" \
-H "Authorization: Client-ID ${UNSPLASH_CLIENT_ID}" | \
jq -r '.results[] | {
id: .id,
description: .description,
image_url: .urls.regular,
full_url: .urls.full,
download_link: .links.download,
photographer_name: .user.name,
photographer_url: .user.links.html,
unsplash_url: .links.html
}'
Key fields from the response:
.urls.regular - Optimized image (1080px wide, good for blog featured images).urls.full - Full resolution image.urls.small - Thumbnail (400px wide, good for social sharing previews).links.download - Trigger a download (Unsplash tracks this for photographer stats).user.name - Photographer's name (required for attribution).user.links.html - Photographer's Unsplash profile URLUnsplash attribution requirement:
Unsplash requires attribution whenever you use a photo. Include this in the blog post:
Photo by [Photographer Name](https://unsplash.com/@username?utm_source=your_app&utm_medium=referral) on [Unsplash](https://unsplash.com/?utm_source=your_app&utm_medium=referral)
Place the attribution either:
Tip: Search with specific, descriptive queries rather than broad terms. For example, use "remote team video call" instead of "business" for better results. You can also filter by color, content_filter (low/high), and order_by (relevant/latest).
Internal link placement:
External link rules:
Every blog post should end with a FAQ section targeting "People Also Ask":
## Frequently Asked Questions
### {Question matching PAA or long-tail keyword}?
{Direct answer in 2-4 sentences. Front-load the answer.
Provide additional context after the direct answer.
This format optimizes for both featured snippets and FAQ rich results.}
### {Second question}?
{Answer}
FAQ rules:
Before delivering the post, verify:
SEO Checklist:
Readability Checklist:
E-E-A-T Checklist:
Deliver the blog post in this format:
---
title: "{Meta title - 50-60 chars}"
description: "{Meta description - 150-160 chars}"
slug: "{url-slug}"
keywords: ["{primary}", "{secondary1}", "{secondary2}"]
date: "{YYYY-MM-DD}"
author: "{Author name}"
---
# {H1 Headline}
{Full article content with all formatting, links, and image placeholders}
After the article, provide:
Frequently asked questions
You are an expert SEO content writer. Create comprehensive, well-researched blog posts optimized for both search engines and readers. Follow the E-E-A-T framework (Experience, Expertise, Authoritativeness, Trustworthiness).
The source record exposes this install command: npx skills add https://github.com/OpenClaudia/openclaudia-skills --skill "skills/write-blog". Inspect the command and pinned source before running it.
Static rules flagged network in the source; the page lists the matching lines and excerpts.
Alternatives
indranilbanerjee/contentforge
Translate publication-ready ContentForge content into any of 15 languages at three localization levels (literal, adapted, transcreated) — preserving brand voice, keeping citation URLs and DOIs untouched, and adapting SEO keyword placements for the target market — delivered as a translated .docx plus a quality report via the brand's tracking backend. Triggers on "/contentforge:cf-translate", "translate this article to Spanish", "localize this for the German market", "make a French version of this
adaptico/adaptico-os
Competitive intelligence for /gtm competitors <target>. Use when the user wants to identify competitors, analyze rival marketing and positioning, or find differentiation gaps and steal-worthy tactics. Also trigger for "who are my competitors", "analyze my competition", "competitive analysis", "how do rivals market", or "where can we differentiate".
nowork-studio/notfair-plugin
Write SEO-optimized blog posts, landing pages, and content improvements following Google's E-E-A-T and Helpful Content guidelines. Handles new content creation from a keyword or topic, and improving existing pages. Use when asked to "write a blog post", "create a landing page", "improve this page", "write content about X", "content for keyword X", "draft an article", "blog post about", "landing page for", "service page", "product page copy", "rewrite this page", "make this page rank better", "co
indranilbanerjee/digital-marketing-pro
Draft marketing content in brand voice — blog posts, ad copy, email sequences, social posts, landing pages, and brand-voice guides — through a gated pipeline (research, outline, draft, fact-check, humanize, voice check, SEO checklist) with numbered working files and a five-gate quality scorecard before copy is publish-ready. Triggers on "/digital-marketing-pro:content-engine", "write a blog post about X", "draft ad copy for this campaign", "create an email sequence", "landing page copy for our p