blog-rewrite
blog-rewrite is a skill in AgriciDaniel/claude-blog, last changed 9 Jul 2026. It can run shell commands and name web addresses. Our pattern check flagged nothing at commit 3544423 on 27 Oct 2026.
Pattern check: nothing flagged · commit 3544423 · 27 Oct 2026
InstallRewrite and optimize existing blog posts for Google SEO (May 2026 Core Update, March 2026 core/spam context, June 2026 spam context, E-E-A-T) and AI citation visibility as one SEO discipline. Full rewrite for both Google rankings AND AI citations. For AI-citation-only audit (no Google work), use blog-geo instead. Replaces fabricated statistics with sourced data, applies answer-first formatting, adds Pixabay/Unsplash images, generates built-in SVG charts, validates Article-priority schema, performs AI content detection, adds citation capsules and information gain markers, and updates freshness signals. Works with any blog format (MDX, markdown, HTML). Use when user says "rewrite blog", "optimize blog", "update blog", "improve blog", "fix blog", "refresh blog post", "blog optimization".
- Licence
- MIT
- Repo stars
- 2.6k
- Folder last changed
- 9 Jul 2026 (opens in a new tab)
- Publisher
- AgriciDaniel
- Files
- 1 file
- Checked
- 3544423 (opens in a new tab) · 27 Oct 2026
Install
Each tab says whether it installs commit 3544423, the one we checked, or the latest version.
No tab for your agent? Use Any agent for OpenCode, Goose, Windsurf (Devin Desktop), Zed, Roo Code, Factory Droid, Junie, Amp and Antigravity, and Claude Code for Cline. Kiro needs the folder copied by hand.
Pinned to commit 3544423, the one we checked.
From your project's root folder:
tmp="$(mktemp -d)" &&
git clone -q --depth 1 --filter=blob:none --no-checkout https://github.com/AgriciDaniel/claude-blog.git "$tmp" &&
git -C "$tmp" fetch -q --depth 1 origin 354442348815a7f0327077ad89af2c43cf4b4ab4 &&
git -C "$tmp" sparse-checkout set -- brain/.raw/sources/claude-blog-skill/skills/blog-rewrite &&
git -C "$tmp" checkout -q 354442348815a7f0327077ad89af2c43cf4b4ab4 &&
mkdir -p .claude/skills &&
mkdir .claude/skills/blog-rewrite &&
cp -R "$tmp"/brain/.raw/sources/claude-blog-skill/skills/blog-rewrite/. .claude/skills/blog-rewrite/ &&
rm -rf "$tmp"If Claude Code was already running and this created the skills folder, run /reload-skills.
Pinned to commit 3544423, the one we checked.
Skills in the Claude apps belong to your account rather than to a project.
Make blog-rewrite.zip, with the skill folder at the top level:
tmp="$(mktemp -d)" &&
git clone -q --depth 1 --filter=blob:none --no-checkout https://github.com/AgriciDaniel/claude-blog.git "$tmp" &&
git -C "$tmp" fetch -q --depth 1 origin 354442348815a7f0327077ad89af2c43cf4b4ab4 &&
git -C "$tmp" sparse-checkout set -- brain/.raw/sources/claude-blog-skill/skills/blog-rewrite &&
git -C "$tmp" checkout -q 354442348815a7f0327077ad89af2c43cf4b4ab4 &&
out="$(mktemp -d)" &&
cp -R "$tmp"/brain/.raw/sources/claude-blog-skill/skills/blog-rewrite "$out"/blog-rewrite &&
(cd "$out" && zip -qr - blog-rewrite) > blog-rewrite.zip &&
rm -rf "$tmp" "$out"In Claude, open Customize > Skills, select +, then + Create skill > Upload a skill, and choose blog-rewrite.zip.
On Free, Pro and Max plans, turn on Code execution and file creation (Create and edit files in newer settings) under Settings > Capabilities.
Pinned to commit 3544423, the one we checked.
From your project's root folder:
tmp="$(mktemp -d)" &&
git clone -q --depth 1 --filter=blob:none --no-checkout https://github.com/AgriciDaniel/claude-blog.git "$tmp" &&
git -C "$tmp" fetch -q --depth 1 origin 354442348815a7f0327077ad89af2c43cf4b4ab4 &&
git -C "$tmp" sparse-checkout set -- brain/.raw/sources/claude-blog-skill/skills/blog-rewrite &&
git -C "$tmp" checkout -q 354442348815a7f0327077ad89af2c43cf4b4ab4 &&
mkdir -p .agents/skills &&
mkdir .agents/skills/blog-rewrite &&
cp -R "$tmp"/brain/.raw/sources/claude-blog-skill/skills/blog-rewrite/. .agents/skills/blog-rewrite/ &&
rm -rf "$tmp"Codex picks up new skills on its own; restart it if this one does not appear.
Pinned to commit 3544423, the one we checked.
From your project's root folder:
tmp="$(mktemp -d)" &&
git clone -q --depth 1 --filter=blob:none --no-checkout https://github.com/AgriciDaniel/claude-blog.git "$tmp" &&
git -C "$tmp" fetch -q --depth 1 origin 354442348815a7f0327077ad89af2c43cf4b4ab4 &&
git -C "$tmp" sparse-checkout set -- brain/.raw/sources/claude-blog-skill/skills/blog-rewrite &&
git -C "$tmp" checkout -q 354442348815a7f0327077ad89af2c43cf4b4ab4 &&
mkdir -p .cursor/skills &&
mkdir .cursor/skills/blog-rewrite &&
cp -R "$tmp"/brain/.raw/sources/claude-blog-skill/skills/blog-rewrite/. .cursor/skills/blog-rewrite/ &&
rm -rf "$tmp"Pinned to commit 3544423, the one we checked.
From your project's root folder:
tmp="$(mktemp -d)" &&
git clone -q --depth 1 --filter=blob:none --no-checkout https://github.com/AgriciDaniel/claude-blog.git "$tmp" &&
git -C "$tmp" fetch -q --depth 1 origin 354442348815a7f0327077ad89af2c43cf4b4ab4 &&
git -C "$tmp" sparse-checkout set -- brain/.raw/sources/claude-blog-skill/skills/blog-rewrite &&
git -C "$tmp" checkout -q 354442348815a7f0327077ad89af2c43cf4b4ab4 &&
mkdir -p .github/skills &&
mkdir .github/skills/blog-rewrite &&
cp -R "$tmp"/brain/.raw/sources/claude-blog-skill/skills/blog-rewrite/. .github/skills/blog-rewrite/ &&
rm -rf "$tmp"In a running Copilot CLI session, run /skills reload.
Or install it with gh skill, which also installs the commit we checked. Needs GitHub CLI 2.90 or later.
gh skill install AgriciDaniel/claude-blog brain/.raw/sources/claude-blog-skill/skills/blog-rewrite/SKILL.md@354442348815a7f0327077ad89af2c43cf4b4ab4 --agent github-copilot --scope projectPinned to commit 3544423, the one we checked.
From your project's root folder:
tmp="$(mktemp -d)" &&
git clone -q --depth 1 --filter=blob:none --no-checkout https://github.com/AgriciDaniel/claude-blog.git "$tmp" &&
git -C "$tmp" fetch -q --depth 1 origin 354442348815a7f0327077ad89af2c43cf4b4ab4 &&
git -C "$tmp" sparse-checkout set -- brain/.raw/sources/claude-blog-skill/skills/blog-rewrite &&
git -C "$tmp" checkout -q 354442348815a7f0327077ad89af2c43cf4b4ab4 &&
mkdir -p .gemini/skills &&
mkdir .gemini/skills/blog-rewrite &&
cp -R "$tmp"/brain/.raw/sources/claude-blog-skill/skills/blog-rewrite/. .gemini/skills/blog-rewrite/ &&
rm -rf "$tmp"In a running session, run /skills reload.
Or use Gemini CLI’s own installer. Installs the latest version, not the one we checked.
gemini skills install https://github.com/AgriciDaniel/claude-blog.git --path brain/.raw/sources/claude-blog-skill/skills/blog-rewrite --scope workspacePinned to commit 3544423, the one we checked.
Codex, Cursor, Copilot, VS Code, Gemini CLI, OpenCode, Goose, Amp and Zed all read .agents/skills; Claude Code and Kiro list only their own folders.
From your project's root folder:
tmp="$(mktemp -d)" &&
git clone -q --depth 1 --filter=blob:none --no-checkout https://github.com/AgriciDaniel/claude-blog.git "$tmp" &&
git -C "$tmp" fetch -q --depth 1 origin 354442348815a7f0327077ad89af2c43cf4b4ab4 &&
git -C "$tmp" sparse-checkout set -- brain/.raw/sources/claude-blog-skill/skills/blog-rewrite &&
git -C "$tmp" checkout -q 354442348815a7f0327077ad89af2c43cf4b4ab4 &&
mkdir -p .agents/skills &&
mkdir .agents/skills/blog-rewrite &&
cp -R "$tmp"/brain/.raw/sources/claude-blog-skill/skills/blog-rewrite/. .agents/skills/blog-rewrite/ &&
rm -rf "$tmp"Or use the skills CLI from skills.sh. Installs the latest version, not the one we checked. The skills CLI reports installs to skills.sh unless you set DISABLE_TELEMETRY=1.
npx skills@1.7.4 add AgriciDaniel/claude-blog --skill blog-rewriteWhat it can touch
From the files and frontmatter at commit 3544423. This is how much a skill can do, not whether it is risky.
What it can touch: Scripts or outside hosts
Runs shell commands
Its instructions or files give the agent commands to run on your computer.
Names web addresses
It mentions outside web addresses the agent may visit. We list them but don't follow them.
Pattern check
Pattern check: nothing flagged · commit 3544423 · 27 Oct 2026
We checked every text file in this skill, at commit 3544423 on 27 Oct 2026, against 45 published patterns such as download-and-run commands, hidden text and credential access. We don't run the skill, we don't read the web pages it points to, and we can't judge everything its instructions might lead an agent to do. In published tests, pattern checks like this one missed most malicious skills. Read the skill before you install it — especially anything it asks you to download or run.
How the check worksReport an incorrect finding
Outside links we did not follow
- https://www.gartner.com
Format check
Each agent reads SKILL.md a little differently. We check the file against each one's published rules; we don't run the skill in any agent.
Agent Skills specPasses with warnings
The open format from agentskills.io, held to what the strictest agents enforce, so one folder loads everywhere.
- Warning
Fields outside the spec: user-invokable and argument-hint (read by Claude Code and VS Code). Uploads to the Claude apps and API, and the spec's validator, reject the file; most agents ignore these fields. O1
Fix: Delete them for a portable skill, or keep them if you only target the agents that read them.
- Warning
Claude CodePasses
Claude Code reads its own extra fields, ignores unknown ones, and still loads a skill whose frontmatter is broken, without its fields.
- Note
Claude Code ignores fields it doesn't know: user-invokable. O1
Fix: Check the spelling against Claude Code's field list, or delete them.
- Note
Claude apps & API uploadFails
Uploading to claude.ai or the Claude API, or packaging with Anthropic's script, accepts only the six spec fields and stops on anything else.
- Error
Upload and packaging fail on fields outside the spec: user-invokable and argument-hint. O1
Fix: Delete them, and keep your own data under metadata as text values.
- Note
The description is 795 characters. The claude.ai Help Center says 200 at most, though Anthropic's API docs and validator allow 1,024. D4
Fix: If the claude.ai upload refuses it, trim the description to 200 characters.
- Error
OpenAI (Codex & API)Passes with warnings
Codex finds SKILL.md by its exact name and needs a description; OpenAI's Skills API checks the frontmatter against the spec and caps uploads.
- Warning
Fields outside the spec: user-invokable and argument-hint. Codex ignores them; OpenAI doesn't say whether its upload accepts them. O1
Fix: Delete them, or move your own data under metadata as text values.
- Warning
VS Code & CopilotPasses
VS Code reads skills one folder below .github/skills, .claude/skills or .agents/skills and falls back to the folder name when the name is missing or differs; GitHub's Copilot docs require the exact name SKILL.md.
- Note
VS Code ignores fields it doesn't support: user-invokable. O1
Fix: Delete them unless another agent you target reads them.
- Note
SKILL.md
Files
1 file
| Path | Size |
|---|---|
| SKILL.md (opens in a new tab) | 18.7 KB |
More from AgriciDaniel/claude-blog
blog
AgriciDaniel/claude-blog
Full-lifecycle blog engine with 31 sub-skills, 12 templates, 100-point scoring, and 5 agents. Routes requests to the right sub-skill: writing, rewriting, analysis, outlines, audits, schema, charts, images, repurposing, AI citation SEO, FLOW prompts, topic clusters, and multilingual publishing. Optimized for Google rankings, E-E-A-T, and AI citations. Supports any platform. Use when the user asks to create, revise, analyze, plan, translate, localize, audit, or repurpose blog content, or invokes a /blog subcommand. Do not activate merely because the word "blog" appears in an unrelated coding, theme-debugging, database, log-analysis, or definition request.
- Runs shell commands
- Reaches the network
- +1 more
Pattern check: Nothing flaggedMIT · 2.6k repo stars · Updated 13 Oct 2026
blog
AgriciDaniel/claude-blog
Full-lifecycle blog engine with 31 sub-skills, 12 content templates, 5-category 100-point scoring, and 5 specialized agents. Routes user requests to the right sub-skill: writing, rewriting, analysis, outlines, audits, schema, charts, images, repurposing, AI citation SEO, FLOW framework prompts, topic-cluster execution, and multilingual publishing. Optimized for Google rankings around the May 2026 Core Update, E-E-A-T, and AI citations as one SEO discipline. Supports any platform (WordPress, Next.js MDX, Hugo, Ghost, Astro, Jekyll, 11ty, Gatsby, HTML). Use when user says "blog", "write a blog", "blog post", "blog strategy", "content brief", "editorial calendar", "blog audit", "blog optimization", "topic cluster", "multilingual blog", "FLOW framework", or any /blog subcommand. Sub-skill descriptions cover narrower triggers.
- Runs shell commands
- Reaches the network
- +1 more
Pattern check: Nothing flaggedMIT · 2.6k repo stars · Updated 9 Jul 2026
blog-analyze
AgriciDaniel/claude-blog
Score one blog post (or a folder of posts) on a 5-category 100-point scale covering content quality, SEO, E-E-A-T, technical elements, and AI citation readiness. Runs the deterministic analyzer first, then adds judgment and prioritized Critical/High/Medium/Low fixes. Advisory style diagnostics never infer authorship or affect the score. Exports markdown, JSON or table; works with MDX, markdown, HTML or a URL. Use when the user asks to analyze, score, rate or check the quality of specific posts ("analyze blog", "blog score", "check blog quality", "rate this post"). For a site-wide health check (orphan pages, cannibalization, stale content, schema across all posts) use blog-audit instead.
- Runs shell commands
Pattern check: Nothing flaggedMIT · 2.6k repo stars · Updated 12 Oct 2026
blog-analyze
AgriciDaniel/claude-blog
Audit and score blog posts on a 5-category 100-point scoring system covering content quality, SEO optimization, E-E-A-T signals, technical elements, and AI citation readiness. Includes AI content detection (burstiness, phrase flagging, vocabulary diversity). Supports export formats (markdown, JSON, table) and batch analysis with sorting. Generates prioritized recommendations (Critical/High/Medium/Low) with specific fixes. Works with any format (MDX, markdown, HTML, URL). Use when user says "analyze blog", "audit blog", "blog score", "check blog quality", "blog review", "rate this blog", "blog health check".
- Runs shell commands
Pattern check: Nothing flaggedMIT · 2.6k repo stars · Updated 9 Jul 2026
blog-audio
AgriciDaniel/claude-blog
Paid Gemini TTS audio for a finished blog post: summary, full read-aloud, or two-speaker dialogue, with an MP3 and an HTML5 embed. Asks for explicit consent before the first paid call. Runs only on an explicit request: /blog audio, "generate audio for this blog post", "narrate this blog post", "audio version of this post", or "podcast version of this post". Not for general speech or dictation questions.
- Runs shell commands
- Reaches the network
- +2 more
Pattern check: 1 item to reviewMIT · 2.6k repo stars · Updated 13 Oct 2026
blog-audio
AgriciDaniel/claude-blog
Generate audio narration of blog posts using Google Gemini TTS. Supports summary narration, full article read-aloud, and two-speaker podcast/dialogue mode with 30 voice options. Outputs MP3 with HTML5 audio embed code. Works standalone via /blog audio or internally from blog-write. Falls back gracefully when API key is not configured. Use when user says "blog audio", "narrate blog", "audio version", "text to speech", "tts", "podcast mode", "read aloud", "audio narration", "voice", "narration", "generate audio".
- Runs shell commands
- Reaches the network
- +1 more
Pattern check: Nothing flaggedMIT · 2.6k repo stars · Updated 9 Jul 2026