Research, draft, validate, and hand off one source-grounded long-tail article through an approved CMS or static-site adapter.

MIT-0Auto-check passedWriting & Content

Install SEO Blog Writer

skills CLI
$ npx skills add jeremylongshore/tons-of-skills-marketplace --skill seo-blog-writer -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install jeremylongshore/tons-of-skills-marketplace seo-blog-writer --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/jeremylongshore/tons-of-skills-marketplace.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/productivity/publishing-skills/skills/seo-blog-writer .claude/skills/seo-blog-writer && rm -rf skills-src

Use ~/.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/

Facts

Skill name
seo-blog-writer
GitHub stars
2.8k
Token cost
~2.6k tokens
SKILL.md length
1,139 words
Files
3 (incl. references)
Skills in repo
3,342
Repo updated
First seen
Licence
MIT-0

At a glance

Research, draft, validate, and hand off one source-grounded long-tail article through an approved CMS or static-site adapter.

  • Works in 12 steps: Parse the topic and flags. Reject an… → Check existing titles, slugs, canonical… → Research the topic with current sources.… → …
  • Turning a confirmed topic into publish-ready editorial content
  • SKILL.md covers Overview, Prerequisites, Tool Discipline and Instructions, plus 10 more sections
  • Runs JavaScript scripts from its folder

What it does

SEO Blog Writer is an agent skill from jeremylongshore/tons-of-skills-marketplace. Research, draft, validate, and hand off one source-grounded long-tail article through an approved CMS or static-site adapter. Use when turning a confirmed topic into publish-ready editorial content. Trigger with "write an SEO blog post" or "draft an article about this topic".

Its SKILL.md is about 2.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files, including reference files (for example `references/decorate.js` and `references/glossary-schema.md`). Compatibility notes: Designed for Claude Code; claims require current sources, and CMS writes, schedules, publication, destructive edits, and credential use require content-owner…

It sits in Writing & Content, covering Blog and article writing, Source-grounded notebooks and Static sites and blogs. The repository describes itself as: Model-agnostic agent-skills platform with a harness-free canonical layer, verified adapters, and the ccpi package manager. Explore at tonsofskills.com. The licence is MIT-0.

When your agent uses it

  • Turning a confirmed topic into publish-ready editorial content
  • With write an SEO blog post
  • Draft an article about this topic

Example prompts

  • “write an SEO blog post”
  • “draft an article about this topic”
  • “/seo-blog-writer”

Requirements

  • Python 3
  • Node.js
  • Compatibility (from SKILL.md): Designed for Claude Code; claims require current sources, and CMS writes, schedules, publication, destructive edits, and credential use require content-owner approval
  • Pre-approved tools (allowed-tools): Read, WebSearch, WebFetch, Write, Edit, Bash(python3:*)

Workflow steps

12 steps, taken from the first numbered list in SKILL.md.

  1. Parse the topic and flags. Reject an empty or overly broad topic. Default to --target static --draft; treat --publish and --publish-at as…
  2. Check existing titles, slugs, canonical URLs, and intent. Stop or narrow the angle when the proposed post would cannibalize existing…
  3. Research the topic with current sources. For each material claim, record URL, publisher, date, retrieval date, supported statement, and…
  4. Define the reader's problem, desired outcome, exclusions, format, and claim boundary before drafting. Do not invent metrics, quotes…
  5. Build an outline that answers the primary question early, then supports it with logically ordered sections. Headings should describe…
  6. Draft in the approved voice. Distinguish fact from inference, date volatile claims, use code only when tested or clearly labeled…
  7. Add internal links only when they improve the reader's path. Verify external links, use descriptive anchor text, and record sponsorship or…
  8. Add FAQ, breadcrumb, article, or how-to structured data only when the visible page and site implementation satisfy the applicable Google…
  9. Produce a safe slug, title, description, canonical suggestion, social image brief, accessible alt text, taxonomy, and publication…
  10. Run the pre-publish checks: source coverage, link validity, HTML structure, code safety, accessibility, disclosure, spelling, duplicate…
  11. Write the local bundle and present a review summary. Require approval for the final title, claims, media, links, disclosures, and target…
  12. If approved, invoke the selected adapter with least-privilege credentials. Create a draft first when the platform supports it; publish or…

What it can do on your machine

Read from SKILL.md and the folder at commit cfae287. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Read
    • WebSearch
    • WebFetch
    • Write
    • Edit
    • Bash(python3:*)

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships script files (JavaScript), which the agent can run.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • developers.google.com
    • docs.ghost.org
    • developer.wordpress.org
    • cheatsheetseries.owasp.org

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

  • Compatibility

    Designed for Claude Code; claims require current sources, and CMS writes, schedules, publication, destructive edits, and credential use require content-owner approval

    From compatibility in the SKILL.md frontmatter.

Context cost

SEO Blog Writer loads about 2.6k tokens when it runs, and up to ~4.5k if it reads all its reference files. Until then it costs about 73 tokens; SKILL.md has 1,139 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~73
When it runs · the whole SKILL.md, loaded when a task matches
~2.6k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~4.5k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from jeremylongshore/tons-of-skills-marketplace at commit cfae287, republished under its MIT-0 licence (© jeremylongshore). 1,139 words, ~2,594 tokens.

Download SKILL.mdSave it as .claude/skills/seo-blog-writer/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
seo-blog-writer
description
Research, draft, validate, and hand off one source-grounded long-tail article through an approved CMS or static-site adapter. Use when turning a confirmed topic into publish-ready editorial content. Trigger with "write an SEO blog post" or "draft an article about this topic".
allowed-tools
Read, WebSearch, WebFetch, Write, Edit, Bash(python3:*)
compatibility
Designed for Claude Code; claims require current sources, and CMS writes, schedules, publication, destructive edits, and credential use require content-owner approval
argument-hint
[topic] [--target static|ghost|wordpress] [--draft|--publish|--publish-at ISO-8601]
version
2.3.0
author
AutomateLab <hello@automatelab.tech>
license
MIT-0
tags
seo, content-writing, source-verification, structured-data, publishing
model
inherit
effort
high

Source-Grounded SEO Blog Writer

Overview

Turn one approved long-tail topic into a reviewable article bundle: research notes, clean draft, metadata, structured-data recommendations, link inventory, and an adapter handoff. The default is local draft output; live publication is never inferred.

Optimize for reader usefulness and accurate extraction, not keyword stuffing or synthetic authority. Structured data must describe visible page content and does not guarantee rankings or AI citations.

Prerequisites

  • A specific topic, intended reader, search intent, locale, brand voice, and review owner
  • Current first-party sources plus independent sources where comparison or risk claims need them
  • Existing site inventory for internal links and cannibalization checks
  • A writable local draft directory
  • For CMS delivery, an approved target and credentials supplied through environment variables or the platform's secret store
  • For optional local validation scripts, Python 3 and dependencies already approved by the owner

Tool Discipline

Use Read to inspect the editorial brief, brand guidance, and existing coverage. Use WebSearch for discovery and WebFetch to verify current sources. Use Write or Edit for local draft artifacts. The scoped Bash(python3:*) authority is only for reviewed local validation and approved adapter scripts with quoted paths and environment-provided credentials; never echo secrets or place them in prompts, URLs, drafts, fixtures, logs, or receipts.

Instructions

  1. Parse the topic and flags. Reject an empty or overly broad topic. Default to --target static --draft; treat --publish and --publish-at as explicit, mutually exclusive owner instructions.
  2. Check existing titles, slugs, canonical URLs, and intent. Stop or narrow the angle when the proposed post would cannibalize existing coverage.
  3. Research the topic with current sources. For each material claim, record URL, publisher, date, retrieval date, supported statement, and confidence. Prefer official documentation for product behavior and primary data for numbers.
  4. Define the reader's problem, desired outcome, exclusions, format, and claim boundary before drafting. Do not invent metrics, quotes, prices, versions, customer stories, or observed results.
  5. Build an outline that answers the primary question early, then supports it with logically ordered sections. Headings should describe reader tasks or decisions, not mechanically repeat keywords.
  6. Draft in the approved voice. Distinguish fact from inference, date volatile claims, use code only when tested or clearly labeled illustrative, and include limitations where a reasonable reader could be misled.
  7. Add internal links only when they improve the reader's path. Verify external links, use descriptive anchor text, and record sponsorship or affiliate disclosures required by policy.
  8. Add FAQ, breadcrumb, article, or how-to structured data only when the visible page and site implementation satisfy the applicable Google schema requirements. Never mark up hidden, invented, or unsupported content.
  9. Produce a safe slug, title, description, canonical suggestion, social image brief, accessible alt text, taxonomy, and publication timestamp. Keep the canonical host and author identity configurable.
  10. Run the pre-publish checks: source coverage, link validity, HTML structure, code safety, accessibility, disclosure, spelling, duplicate intent, and metadata consistency. Sanitize generated HTML according to the target platform.
  11. Write the local bundle and present a review summary. Require approval for the final title, claims, media, links, disclosures, and target state.
  12. If approved, invoke the selected adapter with least-privilege credentials. Create a draft first when the platform supports it; publish or schedule only when the explicit approved state matches the request.
  13. Re-fetch the CMS record after mutation. Record its ID, state, canonical URL, scheduled time, and content checksum without storing credentials.

Bundle Contract

The default static handoff contains:

text
tmp/blog-drafts/<slug>.research.md
tmp/blog-drafts/<slug>.draft.html
tmp/blog-drafts/<slug>.metadata.json
tmp/blog-drafts/<slug>.receipt.json

The metadata should include title, slug, description, canonical suggestion, author, tags, source URLs, review state, target adapter, desired publication state, and checksums. Keep secrets outside the bundle.

Adapter Safety

  • Static site: validate the destination is inside the approved repository and refuse path traversal or silent overwrite.
  • Ghost: use the configured Admin API origin and an environment-provided Admin key; verify the response belongs to the same origin.
  • WordPress: use HTTPS, an environment-provided application password, and the minimum account role required for the requested state.
  • Other CMS: document endpoint, authentication, retry, idempotency, sanitization, and rollback behavior before first use.

Never install packages, create accounts, change permissions, delete posts, rotate credentials, or publish through a new adapter without owner approval.

Show full SKILL.md (452 more words)Show less

Authentication

Ghost uses an Admin API key provided through the operator's secret store or environment and sent only to the configured Ghost origin. WordPress uses an application password or another owner-approved WordPress authentication method over HTTPS. Static output uses no network credential. Adapter scripts must read credentials at runtime, redact request diagnostics, refuse unexpected origins, and never serialize authentication material into the bundle.

Approval Boundaries

Require explicit approval before live publication, scheduling, updating an existing post, uploading assets, destructive replacement, using affiliate claims, or making regulated advice. Human review is mandatory for legal, medical, financial, safety, security, and reputationally sensitive content.

Output

Return:

  • local bundle paths and checksums
  • concise article and audience summary
  • source-to-claim coverage and unresolved claims
  • metadata, structured-data types, internal/external link counts, and disclosures
  • validation results and review decisions
  • adapter target, CMS ID, resulting state, canonical URL, or explicit reason no mutation occurred
  • rollback or correction instructions for any live change

Error Handling

ConditionResponse
Required claim lacks a current sourceRemove or qualify the claim; do not fill the gap from memory.
Sources materially disagreeDescribe the disagreement, date each position, and require editorial judgment.
Draft duplicates existing search intentStop publication and propose consolidation, redirect, or a narrower angle.
Validation or sanitization failsKeep the local draft, report exact failures, and do not invoke the CMS adapter.
CMS request times out or returns an unknown resultQuery by idempotency key or draft slug before retrying to avoid duplicates.
Publish succeeds but verification failsPreserve the CMS ID, stop further mutation, and offer owner-approved rollback or correction.
Credential appears in outputStop, redact the artifact, rotate the exposed credential, and audit logs before continuing.

Examples

Create a local draft from a verified brief:

text
request: "How to diagnose webhook signature failures" --target static --draft
sources: 4 verified, 2 primary
bundle: tmp/blog-drafts/diagnose-webhook-signature-failures.*
claims needing review: 1 performance statement removed
mutation: none

Schedule through an approved CMS adapter:

text
request: same approved bundle --target ghost --publish-at 2026-09-15T14:00:00Z
review: approved by content owner
result: cms_id=post_918; state=scheduled; canonical=https://blog.example.com/example/
verification: state and timestamp re-fetched; credentials absent from receipt

Verification

  • Re-fetch decisive sources and confirm each material claim is supported and current.
  • Parse the HTML and confirm one title, logical headings, descriptive links, valid language, and alt text for meaningful images.
  • Confirm structured data matches visible content and validates for the selected type.
  • Confirm the target, desired state, canonical host, author, slug, and scheduled time match the approved metadata.
  • After CMS mutation, independently retrieve the record and compare its state and checksum with the approved bundle.
  • For a live post, verify the canonical page, rendered metadata, links, images, and structured data without assuming immediate sitemap or search indexing.

Resources

Next Steps

Route the bundle through editorial review, then publish through the approved adapter. Schedule a source-freshness review for volatile claims and update or retire the article when its evidence changes.

© jeremylongshore, MIT-0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 2 other files (references) in plugins/productivity/publishing-skills/skills/seo-blog-writer of jeremylongshore/tons-of-skills-marketplace.

  • SKILL.md
  • references/decorate.js
  • references/glossary-schema.md

Open the folder on GitHubat commit cfae287

Compare with similar skills

SEO Blog Writer 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.

SEO Blog Writer compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
SEO Blog Writer this skilljeremylongshore/tons-of-skills-marketplace2.8k—~2.6kAutomated safety check: PassMIT-0
Figurevectorize-io/hindsight48k—~1.9kAutomated safety check: PassMIT
Blog Post ProcessorJustin3go/justin3go.com172—~1.5kAutomated safety check: PassCustom licence
Blog Cost Chartsakitaonrails/my-skills220—~2kAutomated safety check: PassNone
Sidecar Websitemarcus/sidecar1.1k—~1.7kAutomated safety check: PassMIT
Publishone-ie/one131—~940Automated safety check: PassCustom licence

Similar skills

  • Figure

    vectorize-io/hindsight

    Draw an animated figure (boxes, arrows, moving data) as one self-contained SVG for a GitHub README, PR, issue or blog post.

    48k GitHub stars~1.9k tokensUpdated today
    Writing & ContentAuto-check passed
  • Blog Post Processor

    Justin3go/justin3go.com

    Process Chinese blog posts for the justin3go.com VitePress blog: rename to English slug, add frontmatter and AI summary, and translate to English.

    172 GitHub stars~1.5k tokensUpdated 19 days ago
    Writing & ContentAuto-check passed
  • Blog Cost Charts

    akitaonrails/my-skills

    Generate dark-themed cost-vs-score bubble scatter charts and score/(costtime) value-ranking bar charts for a blog post comparing LLM benchmark results (or any dataset with a score/cost/time shape)…

    220 GitHub stars~2k tokensUpdated today
    Writing & ContentAuto-check passed
  • Sidecar Website

    marcus/sidecar

    Writing and maintaining the Sidecar Docusaurus documentation site, including page structure, doc authoring, blog posts, styling, images, and deployment workflow.

    1.1k GitHub stars~1.7k tokensUpdated 2 days ago
    Writing & ContentAuto-check passed
  • Publish

    one-ie/one

    Put words on this site — a blog post, a docs page, a product, or a live page from ONE's editor.

    131 GitHub stars~940 tokensUpdated 13 days ago
    Writing & ContentAuto-check passed
  • Blog

    AgriciDaniel/claude-blog

    Full-lifecycle blog engine with 31 sub-skills, 12 content templates, 5-category 100-point scoring, and 5 specialized agents.

    2.3k GitHub starsUsed in 1 repo~8.6k tokens
    Writing & ContentAuto-check: warnings

More from jeremylongshore/tons-of-skills-marketplace

All 3,342 skills in this repo
  • Performing Security Code Review

    jeremylongshore/tons-of-skills-marketplace

    Execute this skill enables AI assistant to conduct a security-focused code review using the security-agent plugin.

    2.8k GitHub starsUsed in 2 repos~1.3k tokens
    Auto-check: notes
  • Adapting Transfer Learning Models

    jeremylongshore/tons-of-skills-marketplace

    Build this skill automates the adaptation of pre-trained machine learning models using transfer learning techniques.

    2.8k GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Agent Context Loader

    jeremylongshore/tons-of-skills-marketplace

    Execute proactive auto-loading: automatically detects and loads agents.md files.

    2.8k GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Aggregating Performance Metrics

    jeremylongshore/tons-of-skills-marketplace

    Aggregate and centralize performance metrics from applications, systems, databases, caches, and services.

    2.8k GitHub stars~1.2k tokensUpdated today
    Auto-check passed
  • Analyzing Capacity Planning

    jeremylongshore/tons-of-skills-marketplace

    Execute this skill enables AI assistant to analyze capacity requirements and plan for future growth.

    2.8k GitHub stars~947 tokensUpdated today
    Auto-check passed
  • Analyzing Database Indexes

    jeremylongshore/tons-of-skills-marketplace

    Process use when you need to work with database indexing. An agent skill from jeremylongshore/tons-of-skills-marketplace.

    2.8k GitHub stars~2k tokensUpdated today
    Auto-check passed

Questions about SEO Blog Writer

What does SEO Blog Writer do?

Research, draft, validate, and hand off one source-grounded long-tail article through an approved CMS or static-site adapter. SEO Blog Writer is an agent skill from jeremylongshore/tons-of-skills-marketplace. Research, draft, validate, and hand off one source-grounded long-tail article through an approved CMS or static-site adapter.

When should I use SEO Blog Writer?

SEO Blog Writer fits situations like: turning a confirmed topic into publish-ready editorial content; with write an SEO blog post; draft an article about this topic.

How do I install SEO Blog Writer in Claude Code?

Run `npx skills add jeremylongshore/tons-of-skills-marketplace --skill seo-blog-writer -a claude-code`. Or copy the skill folder (plugins/productivity/publishing-skills/skills/seo-blog-writer in jeremylongshore/tons-of-skills-marketplace) into .claude/skills/seo-blog-writer in your project. Claude Code loads it when a task matches its description.

How do I install SEO Blog Writer in Codex?

Run `npx skills add jeremylongshore/tons-of-skills-marketplace --skill seo-blog-writer -a codex`. Or copy the skill folder (plugins/productivity/publishing-skills/skills/seo-blog-writer in jeremylongshore/tons-of-skills-marketplace) into .agents/skills/seo-blog-writer in your project. Codex loads it when a task matches its description.

Can I use SEO Blog Writer in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add jeremylongshore/tons-of-skills-marketplace --skill seo-blog-writer -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/seo-blog-writer, .gemini/skills/seo-blog-writer, .github/skills/seo-blog-writer and .opencode/skills/seo-blog-writer in your project.

What does SEO Blog Writer need to run?

Going by SKILL.md and its folder, SEO Blog Writer needs JavaScript for the scripts in its folder. Our summary lists: Python 3; Node.js. Its frontmatter pre-approves these tools: Read, WebSearch, WebFetch, Write, Edit, Bash(python3:*). Compatibility (from SKILL.md): Designed for Claude Code; claims require current sources, and CMS writes, schedules, publication, destructive edits, and credential use require content-owner approval.

Does SEO Blog Writer access the network?

SKILL.md names 4 domains. As links in the text: developers.google.com, docs.ghost.org, developer.wordpress.org and cheatsheetseries.owasp.org. This is read from the text; nothing was executed.

Is SEO Blog Writer safe to install?

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.

What licence does SEO Blog Writer use?

SEO Blog Writer is published under the MIT-0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does SEO Blog Writer use?

About 2.6k tokens (SKILL.md is roughly 10k 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 2k tokens, read only when the agent opens those files.

What are the alternatives to SEO Blog Writer?

Skills that share tags, products or a category with SEO Blog Writer: Figure (vectorize-io/hindsight, 48k stars), Blog Post Processor (Justin3go/justin3go.com, 172 stars), Blog Cost Charts (akitaonrails/my-skills, 220 stars) and Sidecar Website (marcus/sidecar, 1.1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains SEO Blog Writer?

jeremylongshore (a GitHub user) maintains it in jeremylongshore/tons-of-skills-marketplace, which has 2,827 GitHub stars. The repository holds 3,342 skills in this directory. The repository was last updated on October 10, 2026.

Source: jeremylongshore/tons-of-skills-marketplace on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.