Blog Brief
Infrasity-Labs/dev-gtm-claude-skills
Generate detailed content briefs for blog posts with target keywords, content outlines, competitive analysis, recommended statistics, image and chart suggestions, word count targets, internal…
Write new blog articles from scratch optimized for Google rankings and AI citations.
$ npx skills add AgriciDaniel/claude-blog --skill blog-write -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install AgriciDaniel/claude-blog blog-write --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/AgriciDaniel/claude-blog.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/blog-write .claude/skills/blog-write && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "blog-write" agent skill from https://github.com/AgriciDaniel/claude-blog/tree/main/skills/blog-write into .claude/skills/blog-write/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "blog-write", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/AgriciDaniel/claude-blog/tree/main/skills/blog-writeType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add AgriciDaniel/claude-blog --skill blog-write -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install AgriciDaniel/claude-blog blog-write --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/AgriciDaniel/claude-blog.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/blog-write .agents/skills/blog-write && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "blog-write" agent skill from https://github.com/AgriciDaniel/claude-blog/tree/main/skills/blog-write into .agents/skills/blog-write/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "blog-write", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add AgriciDaniel/claude-blog --skill blog-write -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install AgriciDaniel/claude-blog blog-write --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/AgriciDaniel/claude-blog.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/blog-write .cursor/skills/blog-write && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "blog-write" agent skill from https://github.com/AgriciDaniel/claude-blog/tree/main/skills/blog-write into .cursor/skills/blog-write/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "blog-write", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/AgriciDaniel/claude-blog.git --path skills/blog-write--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add AgriciDaniel/claude-blog --skill blog-write -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install AgriciDaniel/claude-blog blog-write --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/AgriciDaniel/claude-blog.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/blog-write .gemini/skills/blog-write && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "blog-write" agent skill from https://github.com/AgriciDaniel/claude-blog/tree/main/skills/blog-write into .gemini/skills/blog-write/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "blog-write", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install AgriciDaniel/claude-blog blog-writeInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add AgriciDaniel/claude-blog --skill blog-write -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/AgriciDaniel/claude-blog.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/blog-write .github/skills/blog-write && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "blog-write" agent skill from https://github.com/AgriciDaniel/claude-blog/tree/main/skills/blog-write into .github/skills/blog-write/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "blog-write", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add AgriciDaniel/claude-blog --skill blog-write -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install AgriciDaniel/claude-blog blog-write --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/AgriciDaniel/claude-blog.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/blog-write .opencode/skills/blog-write && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "blog-write" agent skill from https://github.com/AgriciDaniel/claude-blog/tree/main/skills/blog-write into .opencode/skills/blog-write/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "blog-write", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
blog-writeWrite new blog articles from scratch optimized for Google rankings and AI citations.
Blog Write is an agent skill from AgriciDaniel/claude-blog. 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, evidence-backed explanations, 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"…
Its SKILL.md is about 5.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including reference files (for example `references/delivery.md`).
It sits in Writing & Content, covering AI search optimization, Blog and article writing and Markdown. The repository describes itself as: Claude Code blog skill suite: 30 sub-skills, 5 agents, 5-gate v1.9.0 Blog Delivery Contract, dual-optimized for Google rankings and AI citations. Active development at… The licence is MIT.
10 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 2500d4c. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
python3From the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
cdn.pixabay.comseerinteractive.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Blog Write loads about 5.6k tokens when it runs, and up to ~6.3k if it reads all its reference files. Until then it costs about 141 tokens; SKILL.md has 2,242 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from AgriciDaniel/claude-blog at commit 2500d4c, republished under its MIT licence (© AgriciDaniel). 2,242 words, ~5,585 tokens.
.claude/skills/blog-write/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Writes complete blog articles from a topic, brief, or outline. Every article follows the 6 pillars of dual optimization (Google rankings + AI citations).
Key references (paths relative to repo root; references live in the
main blog skill's references directory, not in blog-write/):
skills/blog/references/synthesis-contract.md: 6 LAWs for synthesis output (v1.8.0; applies whenever the article embeds research-synthesis prose)skills/blog/references/content-templates.md: Template selection guide and usageskills/blog/references/quality-scoring.md: 5-category scoring (Content 30, SEO 25, E-E-A-T 15, Technical 15, AI Citation 15)skills/blog/references/eeat-signals.md: Experience, expertise, authority, trust markersskills/blog/references/internal-linking.md: Linking strategy and anchor text rulesskills/blog/references/visual-media.md: Image sourcing and chart stylingskills/blog-write/references/delivery.md: delivery contract steps and summary template for this sub-skillDecide which of the FLOW 5 surfaces this post is meant to win. The choice shapes structure, length, citation density, and call-to-action. The 5 surfaces in 2026:
Most posts target surfaces 1, 2, and 3 by default. If the same query also
surfaces in a community (Reddit thread, YouTube comment), apply dual-surface
thinking: optimize the post for extraction AND plan a community echo (covered
in /blog repurpose).
For a deeper surface-by-surface workflow, see
skills/blog/references/flow-alignment.md and /blog flow find.
Select the appropriate content template from the 12 templates in
skills/blog/templates/ (the main blog skill owns the templates directory).
Auto-detect content type from the topic and search intent:
| Signal | Template |
|---|---|
| "How to...", process, steps | how-to-guide |
| "Best X", "Top N", list format | listicle |
| Client result, before/after, metrics | case-study |
| "X vs Y", comparison, alternatives | comparison |
| Broad topic, comprehensive guide | pillar-page |
| "Is X worth it", product evaluation | product-review |
| Opinion, prediction, industry take | thought-leadership |
| Expert quotes, multi-source collection | roundup |
| Code walkthrough, tool demo, technical | tutorial |
| Breaking news, algorithm update, event | news-analysis |
| Survey results, experiment, original data | data-research |
| Q&A, knowledge base, "What is X" | faq-knowledge |
Load the matching template: Read from skills/blog/templates/<type>.md
Adapt the outline - Use the template's section structure, heading patterns, and word count guidance to shape Phase 3's outline
Fallback - If no template clearly fits, use the generic outline structure in Phase 3 below. Inform the user which template was selected (or that none matched).
See skills/blog/references/content-templates.md for detailed selection criteria and intent mapping.
Spawn a blog-researcher agent (or do inline research with WebSearch):
[topic] study 2025 2026 data statisticsskills/blog/references/quality-scoring.md)javascript:, data:, and file: image URLsblog-chart (text-on-gradient with key stat)blog-image; prefer gemini-3.1-flash-image, then gemini-3.1-flash-lite-image or gemini-3-pro-image when available, and record the model IDskills/blog/references/visual-media.md for cover image sizing detailsskills/blog/references/visual-media.md)blog-image is available):blog-image sub-skillblog-notebooklm for source-grounded data from user-uploaded documentsblog-google youtube command or WebSearch site:youtube.com [topic] [year]skills/blog/references/video-embeds.md (min score 50/100)Create a structured outline before writing. If a template was loaded in Phase 1.5, adapt this skeleton to match the template's section structure:
# [Title as Question - Include Primary Keyword]
## Introduction (100-150 words)
- Open with the reader's problem, a useful finding, a concrete example, or an
optional verified statistic when evidence makes that the strongest hook
- Problem/opportunity statement
- What the reader will learn
> **Key Takeaways**
> - [Core finding with statistic and source]
> - [Second key insight or recommendation]
> - [Third actionable takeaway]
> (3-5 concise bullets when a summary helps this content type)
## H2: [Intent-Matched Heading]
- Clear section point with verified support where needed
- Supporting evidence
- [Image placement]
- Practical advice
- [EVIDENCE-BACKED EXPLANATION placeholder]
- [INTERNAL-LINK: anchor text → target description]
## H2: [Intent-Matched Heading]
- Answer-first paragraph
- [Chart: type + data description]
- Analysis and implications
- [EVIDENCE-BACKED EXPLANATION placeholder]
- [INTERNAL-LINK: anchor text → target description]
## H2: [Intent-Matched Heading]
- Answer-first paragraph
- Real-world example or case study
- [Image placement]
- [EVIDENCE-BACKED EXPLANATION placeholder]
## H2: [Intent-Matched Heading]
- Answer-first paragraph
- [Chart: type + data description]
- Step-by-step guidance
- [EVIDENCE-BACKED EXPLANATION placeholder]
- [INTERNAL-LINK: anchor text → target description]
## H2: [Intent-Matched Heading]
- Answer-first paragraph
- Forward-looking analysis
## [CTA Section or Inline Placement]
- See `skills/blog/references/cta-placement.md` for placement rules by content type
- Place CTA after value delivery, not at arbitrary positions
- Single focused CTA per post (266% more conversions)
- [CTA: contextual call-to-action matching article topic]
## Optional FAQ Section (only when real reader questions warrant it)
- [INTERNAL-LINK: anchor text → detailed content]
## Conclusion (100-150 words)
- Key takeaways (bulleted)
- Call to action
- [INTERNAL-LINK: anchor text → next logical content]Present the outline to the user for approval before writing.
Visual element pacing: Insert [IMAGE], [CHART], [VIDEO], or [CALLOUT] markers
every 300-500 words. Alternate types (no consecutive same-type). See
skills/blog/references/content-rules.md Visual Rhythm section and
skills/blog/references/cta-placement.md for CTA positioning.
When the researcher identifies chart-worthy data (3+ comparable metrics, trend data, before/after comparisons):
blog-chart sub-skill with: chart type, title, data values, source, platform format<figure> wrapperSee skills/blog/references/visual-media.md for chart type selection and styling rules.
Write the full article following these rules:
---
title: "[Clear title that identifies the page and matches search intent]"
description: "[Accurate, page-specific summary of the visible content]"
coverImage: "[URL from Pixabay/Unsplash/Pexels or generated SVG path]"
coverImageAlt: "[Descriptive sentence about the cover image]"
ogImage: "[Same as coverImage, or custom OG image URL]"
date: "YYYY-MM-DD"
lastUpdated: "YYYY-MM-DD"
author: "[Author name]"
tags: ["keyword1", "keyword2", "keyword3"]
---If the platform uses a different field name (e.g., image, hero, thumbnail),
adapt to match the project's existing frontmatter convention.
Immediately after the introduction (before the first H2 body section), add a summary box:
> **Key Takeaways**
> - [Core finding with verified support when needed]
> - [Second key insight or recommendation]
> - [Third actionable takeaway]Requirements:
State the point of important sections early, then supply the context and verified evidence the claim needs. Do not force statistics or fixed lengths.
Pattern:
## How Does X Impact Y in 2026?
[Stat from source] ([Source Name](url), year). [Direct answer to the heading
question in 1-2 more sentences, explaining the implication and what this means
for the reader.]Source record for material public statistics:
Record enough provenance for a reader or editor to verify the claim. Use the publication's citation style rather than forcing one sentence pattern.
Relevant date or study period. Include it where recency or the measured period changes the claim's meaning.
Identifiable source. Name the publisher and document title when needed to distinguish the source and place the citation close to the claim.
Retrievable support. Keep a stable URL. Add a retrieval date for changeable or undated sources, and record methodology or limitations when they affect interpretation.
FLOW quality bar (drop or replace): Public claims must use verified sources OR stay qualitative. If a statistic cannot be verified, drop it. If it is contradicted by a more recent source, replace it with the verified alternative. Do not soften vague language to keep an unsourceable number.
For evidence-led optimization prompts (CTR audit, quality follow-up, schema,
PAA rewording, ChatGPT visibility), see /blog flow optimize.
Use information-gain markers as optional drafting annotations when the article contains genuinely original data, transparent first-hand evidence, or distinctive sourced synthesis. The evidence itself helps readers; the marker is not a search-engine signal and earns no points by its presence.
Tag each with a comment or visible marker:
[ORIGINAL DATA] - Proprietary surveys, experiments, A/B test results, case
study metrics the author collected first-hand[PERSONAL EXPERIENCE] - First-hand observations, lessons learned from direct
involvement, "when we tried X, Y happened" narratives[UNIQUE INSIGHT] - Analysis others haven't made, contrarian perspectives
backed by data, novel connections between existing researchPlacement:
<!-- [ORIGINAL DATA] --> before the relevant paragraph> **Our finding:** [original observation backed by specific data]For important reusable claims, create a self-contained, evidence-backed explanation sized to the material.
Guidance:
Example:
[Verified source title], a [method or sample description] published on [date],
found [specific metric] for [audience or market] ([Source name](https://example.com/full-report),
retrieved YYYY-MM-DD). In practical terms, connect the evidence to one action
the reader should take before making a claim or changing a workflow.Do not pad explanations to a fixed length or add them solely to earn readiness points.
Mark internal linking opportunities throughout the article using placeholder notation. The user (or a follow-up pass) will resolve these to actual URLs.
Zone placement:
Format:
[INTERNAL-LINK: anchor text → target description]Example:
For a deeper dive into keyword clustering, see our
[INTERNAL-LINK: complete guide to keyword clustering → pillar page on keyword research methodology].Target 5-10 internal link zones per 2,000-word post. Use descriptive anchor text
(never "click here" or "read more"). See skills/blog/references/internal-linking.md for
anchor text rules and linking strategy.
Standard markdown:
MDX with Next.js Image (if detected):
Standard markdown/HTML:
<figure>
<svg viewBox="0 0 560 380" ...>...</svg>
<figcaption>Source: [Source Name], [Year]</figcaption>
</figure>MDX format:
<figure className="chart-container" style={{margin: '2.5rem 0', textAlign: 'center', padding: '1.5rem', borderRadius: '12px'}}>
<svg viewBox="0 0 560 380" ...>...</svg>
</figure>Embed YouTube videos using srcdoc lazy-loading pattern from skills/blog/references/video-embeds.md.
Include aria-label, noscript fallback for AI crawlers. Place after relevant H2, 500+ words apart.
Inline attribution (always):
In February 2026, Seer Interactive's AI Overview CTR tracker reported a 2.4% organic CTR on AI Overview SERPs ([Seer Interactive](https://www.seerinteractive.com/), retrieved YYYY-MM-DD).Add FAQ items only when user questions warrant them. Answers should be complete and concise; include verified statistics only when relevant.
FAQPage is optional entity markup only. Google FAQ rich results were fully retired for all sites on 2026-05-07, so do not make FAQ schema a core Google rich-result output or citation lever. Prioritize Article/BlogPosting + Person + Organization + BreadcrumbList; emit FAQPage only when the platform already supports it and the questions genuinely help users.
For MDX with an optional FAQSchema component:
<FAQSchema faqs={[
{ question: "Question?", answer: "Complete answer with support where needed." },
]} />For standard markdown:
## Frequently Asked Questions
### Question text here?
Answer completely, with source attribution where the claim needs it.Before delivering, verify:
agents/blog-writer.mdskills/blog/references/video-embeds.md)Before Phase 7, run the 5-gate delivery contract (via python3 scripts/blog_preflight.py plus a BLOCKING blog-reviewer agent) per skills/blog/references/blog-delivery-contract.md and the writer-specific checklist in skills/blog-write/references/delivery.md. Use python3 for local scripts. The user is never the first reviewer; the gates are.
On any block, capture <folder>/preflight-report.json, re-dispatch the blog-writer agent with the diagnostic as input, and re-run the gated steps. Maximum 3 iterations. On the 3rd failure, stop and present the failure diagnostic instead of the draft.
Present the completed article only after Phase 6.5 returns all gates passing. Include <folder>/preview/*.png screenshots and the compact completion summary described in skills/blog-write/references/delivery.md.
© AgriciDaniel, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file (references) in skills/blog-write of AgriciDaniel/claude-blog.
Open the folder on GitHubat commit 2500d4c
Blog Write next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Blog Write this skillAgriciDaniel/claude-blog | 2.3k | — | ~5.6k | Automated safety check: Pass | MIT | |
| Blog BriefInfrasity-Labs/dev-gtm-claude-skills | 139 | — | ~2.8k | Automated safety check: Pass | MIT | |
| SEO Aeo Blog Writerhenryalouf/ruflow | 156 | — | ~1.1k | Automated safety check: Pass | MIT | |
| Content Writeraaron-he-zhu/aaron-marketing-skills | 2.9k | — | ~3.6k | Automated safety check: Pass | Apache-2.0 | |
| Writerflaqai/backlink_skills | 752 | — | ~5.8k | Automated safety check: Pass | MIT | |
| Blog RewriteInfrasity-Labs/dev-gtm-claude-skills | 139 | — | ~4.5k | Automated safety check: Pass | MIT |
Infrasity-Labs/dev-gtm-claude-skills
Generate detailed content briefs for blog posts with target keywords, content outlines, competitive analysis, recommended statistics, image and chart suggestions, word count targets, internal…
henryalouf/ruflow
Writes long-form blog posts with TL;DR block, definition sentence, comparison table, and 5-question FAQ for SEO ranking and AEO citation.
aaron-he-zhu/aaron-marketing-skills
A skill your agent uses when the user asks to "write SEO content", "draft a blog post / landing page", "update outdated content", or "fix traffic/ranking decay"; two modes — new drafts pages with…
flaqai/backlink_skills
SEO-friendly article writing, audit, and humanization workflow for Markdown content.
Infrasity-Labs/dev-gtm-claude-skills
Rewrite and optimize existing blog posts for Google rankings (December 2025 Core Update, E-E-A-T) and AI citations (GEO/AEO).
huifer/claude-code-seo
AI 内容创作专家,生成高质量的 SEO 和 GEO 优化内容,支持多种内容类型和风格. An agent skill from huifer/claude-code-seo.
AgriciDaniel/claude-blog
Google API integration for blog performance: PageSpeed Insights, CrUX Core Web Vitals with 25-week history, Search Console performance, URL Inspection, Indexing API, GA4 organic traffic, NLP entity…
AgriciDaniel/claude-blog
Generate audio narration of blog posts using Google Gemini TTS.
AgriciDaniel/claude-blog
FLOW framework integration for bloggers. An agent skill from AgriciDaniel/claude-blog.
AgriciDaniel/claude-blog
Generate dark-mode-compatible inline SVG data visualization charts for blog posts.
AgriciDaniel/claude-blog
Query Google NotebookLM notebooks for source-grounded, citation-backed answers from user-uploaded documents.
AgriciDaniel/claude-blog
AI image generation and editing for blog content powered by Gemini via MCP.
Categories
Write new blog articles from scratch optimized for Google rankings and AI citations. Blog Write is an agent skill from AgriciDaniel/claude-blog. Write new blog articles from scratch optimized for Google rankings and AI citations.
Blog Write fits situations like: user says write blog; generate blog post.
Run `npx skills add AgriciDaniel/claude-blog --skill blog-write -a claude-code`. Or copy the skill folder (skills/blog-write in AgriciDaniel/claude-blog) into .claude/skills/blog-write in your project. Claude Code loads it when a task matches its description.
Run `npx skills add AgriciDaniel/claude-blog --skill blog-write -a codex`. Or copy the skill folder (skills/blog-write in AgriciDaniel/claude-blog) into .agents/skills/blog-write in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add AgriciDaniel/claude-blog --skill blog-write -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/blog-write, .gemini/skills/blog-write, .github/skills/blog-write and .opencode/skills/blog-write in your project.
Going by SKILL.md and its folder, Blog Write needs the command-line tools its instructions call (python3).
SKILL.md names 2 domains. In commands or code: cdn.pixabay.com and seerinteractive.com; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Blog Write is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 5.6k tokens (SKILL.md is roughly 22k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 717 tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Blog Write: Blog Brief (Infrasity-Labs/dev-gtm-claude-skills, 139 stars), SEO Aeo Blog Writer (henryalouf/ruflow, 156 stars), Content Writer (aaron-he-zhu/aaron-marketing-skills, 2.9k stars) and Writer (flaqai/backlink_skills, 752 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
AgriciDaniel (a GitHub user) maintains it in AgriciDaniel/claude-blog, which has 2,342 GitHub stars. The repository holds 39 skills in this directory. The repository was last updated on October 7, 2026.
Source: AgriciDaniel/claude-blog on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.