agentleFS
AI-XLabs-InnovationAI-XLabs-Innovation/launchranked-agent/skills/seo-article/SKILL.md

seo-article

Skill0 starsChanged 35 days agoMITView on GitHub

Writes an SEO article for the user's website and publishes it with LaunchRanked's MCP tools. Gets keyword ideas with real search volume, difficulty and intent, builds a brief from the pages that rank now and the site's own pages, writes the draft from that brief, runs LaunchRanked's quality checks until it passes, and publishes it to the site's CMS (WordPress, Webflow, Shopify, Framer, Wix, Ghost, Notion, GitHub, a webhook or LaunchRanked's hosted blog) once the user confirms. Use when the user asks for a blog post or article for their site, a content plan or keyword ideas, a brief for a keyword, a check of a draft against LaunchRanked's rules, or to publish an article through LaunchRanked. Needs the LaunchRanked MCP server and a site on the user's LaunchRanked account. Not for technical SEO audits.

2 other projects use a version of this.

Adopted by

Most recently taken up by

  • Other versions2 projects use a version of this.

    Word for word · 0

    None found.

    Edited · 0

    None found.

    Wrote their own version · 2

    1. kronus-tech/kronus★ 4same name
    2. yori44/claude-skills★ 0same name

    How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.

  • In this repository2 other files it gives its agents.

The file

Show its rules and text

We split this skill into the rules it gives an agent

21 rules. About 0 are common, 12 are distinctive, and 9 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈12

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 9

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Call get_account. Use the site the user named.

    line 32
  2. Very specific:

    Call list_articles to see what the site already has.

    line 38
  3. Very specific:

    They have a topic or keywords: check them with keyword_metrics.

    line 42
  4. Very specific:

    They want ideas: call plan_content with a few seeds drawn from what the site sells and who buys it.

    line 43
  5. Very specific:

    Call build_brief with the keyword, and an angle if the user has a reader or angle in mind.

    line 50
  6. Distinctive:

    If you can't open web pages in this client, say so.

    line 53
  7. Distinctive:

    Language and voice: write in the language the brief names ("Write in"), for its market.

    line 57
  8. Very specific:

    Call check_draft with all six fields.

    line 66
  9. Distinctive:

    Ask whether to publish it to the site, naming the domain.

    line 81
  10. Distinctive:

    Only a yes given after the user has seen the article counts.

    line 82
  11. Very specific:

    If the account can't publish (step 1), don't call publish_article.

    line 83
  12. Distinctive:

    No H1 (the title is the H1), at least 4 H2 sections, and no H3 before the first H2.

    line 103
  13. Distinctive:

    Before the first H2: a short intro paragraph, then a 25-70 word paragraph (about 40) that answers the search directly.

    line 104
  14. Very specific:

    No raw HTML. No placeholders or leftovers: the word "todo" in any case (write "to-do"), bracketed notes such as [insert …] or [source …

    line 105
  15. Distinctive:

    Every statistic (a percentage, an amount of money, "3 million", "2x", "5 times faster") has its source link in the same paragraph, list …

    line 110
  16. Distinctive:

    No first-hand testing claims: we tested, we've tested, we have tested, in our testing, in our tests, our tests, we tried, I tested, I …

    line 115
  17. Distinctive:

    Not a near-copy of the site's other articles, and a title clearly different from its existing pages and articles.

    line 119
  18. Very specific:

    Never call publish_article without the yes from step 6, and never twice for the same article.

    line 155
  19. Distinctive:

    Never invent keyword data, sources, statistics, quotes or facts about the user's product.

    line 157
  20. Distinctive:

    Never ask for passwords or API keys.

    line 158
  21. Distinctive:

    If the tools aren't available, say so and explain how to connect them.

    line 166

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

SEO article with LaunchRanked

You write the article. LaunchRanked gives you what you can't get on your own: real keyword data, a brief built from the pages that rank now and the site's own pages, the quality checks Autopilot's articles pass, and publishing to the site's CMS at a safe pace. This is the skill LaunchRanked's SEO Skills plan is built around. The user's explicit instructions take priority over this workflow.

Tools

They come from LaunchRanked's MCP server. Some clients add a prefix to the names (for example mcp__launchranked__build_brief, or mcp__plugin_launchranked_launchranked__build_brief from the Claude Code plugin), and some load tools on demand, so search for them by name if you don't see them. Every tool below except get_account takes site: the site's domain as get_account lists it, such as example.com.

ToolUse it for
get_accountThe plan, the account's sites with the user's role on each, and this month's writing allowance.
list_articlesThe site's articles, newest first: title, status, publish date and live URL. Optional limit (1-100).
plan_contentKeyword ideas around seeds (1-10 short phrases buyers search; without seeds it starts from the site's planned topics), with searches a month, difficulty and intent. Leaves out topics the site already covers. Optional limit (5-50, default 25).
keyword_metricsSearches a month, difficulty, cost per click and intent for 1-50 keywords.
build_briefEverything for one article on a keyword (up to 80 characters and 10 words), with an optional one-sentence angle: what ranks now, questions and related searches, the site's pages to link, its articles on nearby topics, its facts, tone and house style, and the rules.
check_draftRuns every check publish_article enforces, without publishing anything.
publish_articleRuns the checks again and schedules the article on the site's CMS. This changes the user's live site.

check_draft and publish_article take the same fields: site, title, meta_description, slug, markdown (the body, without the title and without the FAQs) and faqs (a list of {"question", "answer"} objects).

Workflow

Go in order, and stop where the request stops: ideas end at step 2, a brief at step 3. If the user already has a draft, pick the site and go to step 5. For several articles, finish one (brief, write, check, approve, publish) before starting the next.

1. Pick the site

  1. Call get_account. Use the site the user named; if there are several and they didn't say, ask. With no sites, the user adds one at https://launchranked.com/app first. LaunchRanked reads a new site for a few minutes before these tools work on it.
  2. Tell the user early what the account allows, so nothing is a surprise at the end:
    • A free account gets 2 content plans, 10 keyword lookups and 2 briefs a month, plus draft checks, but can't publish. Publishing needs SEO Skills (formerly called Agent) or Autopilot, which includes it: https://launchranked.com/app/billing. On a free account you can still write and check the article, then hand it over to paste into the CMS.
    • On the SEO Skills free trial (get_account shows "SEO Skills (free trial)"), a smaller allowance applies until the first payment, including 2 published articles. See Allowances below.
    • Viewer access to a site allows everything except publishing. The site's owner can make the user an editor.
    • A site shared with the user runs on its owner's plan and allowance.
  3. Call list_articles to see what the site already has. Don't repeat a topic it covers, and link its published articles where they fit.

2. Choose the keyword with the user

  • They have a topic or keywords: check them with keyword_metrics. Put every phrasing worth comparing in one call: a call counts as one lookup however many keywords it has.
  • They want ideas: call plan_content with a few seeds drawn from what the site sells and who buys it. Ask the user if that's unclear. If the site has Search Console connected, the top queries in search_console_report make good seeds.
  • Show the best 5-10 in a table, exactly as the tool returned them: keyword, searches a month, difficulty, intent. A dash means no data. Never fill it in or estimate it.
  • Recommend one to three, each with a one-line reason: difficulty the site can realistically win (plan_content states the limit for the domain's age), real demand, and intent an article can serve. Informational searches suit articles, and commercial ones suit comparisons; transactional searches usually want a product or pricing page instead.
  • Let the user choose, and use the exact phrase they pick.

3. Build the brief and read what ranks

  1. Call build_brief with the keyword, and an angle if the user has a reader or angle in mind.
  2. Open the top three to five pages it lists under "What ranks now" with your web tools. Note what they all cover, what they miss and what they cite. If the brief has no search results, search the keyword yourself.
  3. Collect at least two external sources you have read that support specific points: official documentation, studies, and government or standards bodies first, then other publications.
  4. If you can't open web pages in this client, say so. Write from the brief and from material the user gives you, and cite only pages whose content you have seen.

4. Write the draft

  • Language and voice: write in the language the brief names ("Write in"), for its market. Follow the brief's audience, tone, "Avoid" list and house style.
  • Coverage: answer the questions people search (question headings work well), cover what the ranking pages cover, then add what they miss: steps, examples, and a table where a comparison helps. Use related searches where they fit naturally. Use the keyword, or a natural form of it, in the title, the answer paragraph and at least one H2, without stuffing it.
  • Links: 3-6 links to the site's own pages, picked from the brief's list or from published articles in list_articles, with anchor text that says what each page is.
  • Facts: every number, quote and claim comes from a source you read (linked in the same paragraph), from the brief's facts about the site (link the page each one comes from), or from the user. Never invent statistics, quotes, studies, customers, prices, features or results. Leave out what you can't source.
  • The site's product: mention it by name where it genuinely helps the reader, at most 7 times.
  • Then write the title, meta description, slug and 3 FAQs to the rules below.

5. Check, fix, check again

  1. Call check_draft with all six fields. It lists the failing checks (each with what to fix), the warnings and the passing checks.
  2. Fix every failing check, then check again. Repeat until it passes. Fix warnings too where you can; they don't block publishing.
  3. Fix the draft, never the facts: give an unsourced number its source or remove it, and replace a cited page that doesn't load with a working URL or another page you read.
  4. check_draft has no monthly cap, but allows about 12 checks a minute. If it asks you to wait, wait that long, then check again.

Fixes that aren't obvious from the message:

  • answer_paragraph: the last paragraph before the first H2 must be 25-70 words, with an intro paragraph above it.
  • internal_links_known: use a URL from the brief's list instead.
  • near_duplicate or title_cannibalization: the site already has this. Change the angle and the title, or go back to step 2.

6. Show the user and ask before publishing

Publishing changes the user's live site, so get a clear yes first.

  • Show the title, meta description, slug, word count, the check result with any warnings, and the full article.
  • Ask whether to publish it to the site, naming the domain. Say it goes out through the site's publishing connection at the site's next free slot.
  • Only a yes given after the user has seen the article counts. "Write and publish an article" at the start isn't one; an explicit "publish it without showing me" is.
  • If the account can't publish (step 1), don't call publish_article. Give the user the finished article (title, meta description, slug, body and FAQs) to paste into their CMS, and say what publishing through LaunchRanked needs.

7. Publish and report

  1. Call publish_article once, with exactly the fields that passed check_draft. It runs the checks again. If one fails now (a source can stop loading), nothing is published and the call doesn't count: fix the draft, pass check_draft, tell the user what changed, and publish when they agree.
  2. Each successful call schedules another article, so never call it twice for the same article. If a call errors or times out without a clear result, call list_articles before trying again: if the article is listed, it's scheduled.
  3. Report what the tool returned: when it goes live (a UTC time, or within a few minutes), through which connection, the final slug if it changed (a taken slug gets a number), and any warnings. Each site has a daily publishing limit, set from its domain's age unless the owner changed it, which the tool states, so the article may be scheduled for a later day. With a GitHub connection, it arrives as a pull request for the user to merge.
  4. The article is in the site's calendar in the LaunchRanked dashboard, where the user can move or delete it before it goes live. Don't call it live until list_articles shows its URL; offer to check later.

The rules check_draft enforces

A failing check blocks publish_article; the lighter rules come back as warnings. Follow all of them.

Fields

  • Title 25-60 characters; meta description 120-155 characters. Chinese, Japanese and Korean characters count as two.
  • Slug: lowercase letters and digits joined by single hyphens, such as how-to-price-saas, at most 75 characters.
  • Exactly 3 FAQs, in faqs only, not as a section in the body. Each question ends in "?", and each answer is 15-120 words.

Body

  • 1,200-2,000 words of Markdown, never under 1,200 or over 2,400 (over 2,000 is a warning). FAQs and code don't count. In Chinese and Japanese, two characters count as one word.
  • No H1 (the title is the H1), at least 4 H2 sections, and no H3 before the first H2.
  • Before the first H2: a short intro paragraph, then a 25-70 word paragraph (about 40) that answers the search directly.
  • No raw HTML. No placeholders or leftovers: the word "todo" in any case (write "to-do"), bracketed notes such as [insert …] or [source needed], lorem ipsum, example.com (even as an example), {{ }} and [S1]-style markers. Every link has text, and every code fence is closed.

Links and sources

  • At least 3 links to the site's own pages (3-6 is right). Links to pages LaunchRanked doesn't know fail, so use the URLs in the brief and the published articles in list_articles.
  • At least 2 links to external sources, and every external page linked must load. Pages that block automated checks come back as a warning: make sure those are right.
  • Every statistic (a percentage, an amount of money, "3 million", "2x", "5 times faster") has its source link in the same paragraph, list item or table row. Two or more without one fail; one is a warning.
  • YouTube links count as videos, not sources. Embed at most one video.

Words and claims (checked in English; follow them in every language)

  • No hype words, or their other forms: revolutionary, revolutionize, revolutionise, supercharge, unlock, unleash, game-changer, game changer, game-changing, seamless, seamlessly, leverage, leveraging, cutting-edge, cutting edge, next-level, world-class, best-in-class, skyrocket, turbocharge, elevate your, empower, harness the power, delve, fast-paced world, ever-evolving, ever-changing landscape, digital landscape, look no further, transformative, effortless, effortlessly, in conclusion, unparalleled, must-have, a testament to.
  • No first-hand testing claims: we tested, we've tested, we have tested, in our testing, in our tests, our tests, we tried, I tested, I tried, our team tested, hands-on test, we reviewed, in my experience, in our experience, we spent, after testing.
  • Years: none before last year and none in the future in the title, meta description or headings, and no "best tools of" framing with an old year in the body. Last year in the title, meta description or a heading is a warning: use this year or no year.

Duplicates

  • Not a near-copy of the site's other articles, and a title clearly different from its existing pages and articles.

Allowances

Counted per month on the site owner's account, and reset on the 1st (UTC). The SEO Skills free trial has its own allowance until the first payment. A call that fails or is refused doesn't count. get_account shows this month's use and limits.

AllowanceToolFree accountSEO Skills free trialSEO Skills or Autopilot
Content plansplan_content2230
Keyword lookupskeyword_metrics1010100
Article briefsbuild_brief2230
Articles publishedpublish_article0230
Draft checkscheck_draftNo monthly capNo monthly capNo monthly cap

Spend them only on what the user asked for: no extra plans or briefs in case they're useful.

When a tool says no

Pass the tool's message on in plain words: it explains the limit and, where there is one, the upgrade and its link. Don't retry in a loop, and never fill the gap with numbers or results of your own.

The message saysDo this
An allowance is used upSay when it comes back (the 1st, UTC, or on a free trial the first payment) and give the message's link. Offer what still works: keyword_metrics on the user's own ideas if lookups remain, writing from a brief you already have, or check_draft.
Publishing needs SEO Skills or AutopilotHand over the finished article to paste into the CMS, with the message's link.
Sign in to LaunchRankedThe connection isn't signed in. The user signs in (in Claude Code, /mcp, then launchranked).
The site isn't on this accountCompare the domain with get_account. Sites are added at https://launchranked.com/app.
LaunchRanked is still reading the siteTry again in a few minutes.
Keyword data or search results aren't availableSay so and try later. build_brief still works without them.
View access onlyPublishing needs edit access from the site's owner.
Not connected anywhere to publishIn the dashboard, the user opens the site's Settings, then Publishing, and connects WordPress, WordPress.com, Webflow, Shopify, Framer, Wix, Ghost, Notion, GitHub or a webhook, or turns on the hosted blog.
Publishing is pausedThe user resumes it in the site's Settings.
Too many draft checks in a minuteWait the seconds it gives, then check again.
Something went wrong on our sideTry once more after a minute, then tell the user.

Rules

  • Never call publish_article without the yes from step 6, and never twice for the same article.
  • Report only what the tools returned. Don't promise rankings, traffic, or how soon an article will show in search.
  • Never invent keyword data, sources, statistics, quotes or facts about the user's product.
  • Never ask for passwords or API keys. Sign-in happens in the browser.

Setup

The tools come from LaunchRanked's MCP server, https://launchranked.com/mcp, with sign-in to a LaunchRanked account (free to create). Steps for each client: https://launchranked.com/docs/mcp. With the Claude Code plugin, run /mcp, choose launchranked and sign in. The writing tools work in Claude, Claude Code, Cursor, Codex and other MCP clients, but not in ChatGPT.

The site has to be added in the LaunchRanked dashboard (https://launchranked.com/app), and publishing needs a connection in its Settings.

If the tools aren't available, say so and explain how to connect them. You can still write a draft if the user wants one, but don't present keyword numbers, checks or publishing as done.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.