ai-seo Skill Review: 36,458 Bytes and One Table I Couldn't Reproduce
The ai-seo skill's SKILL.md is exactly 500 lines and 36,458 bytes, and the line count looks deliberate. A commit from October 19 is titled "fold the dated-facts check into visible pricing to stay at 500 lines." The file lives in Corey Haines's marketingskills repo: 55,840 GitHub stars, MIT license, 52 skill folders.
I did not run it. This review is the source, the issue tracker, a Hacker News search, and one check of its headline research claim against the paper it cites. Where I'm doing arithmetic, I say so.
TL;DR / Key Takeaways
- The ai-seo skill in coreyhaines31/marketingskills is a 36,458-byte, 500-line SKILL.md, about 9,115 estimated tokens (bytes ÷ 4), plus 15 reference files totalling 118,159 bytes, about 29,540 estimated tokens.
- The ai-seo skill's frontmatter description is 1,004 bytes (about 251 estimated tokens) with 30 quoted trigger phrases; all 52 skill descriptions in marketingskills total 40,961 bytes, about 10,240 estimated tokens.
- The marketingskills repository has 55,840 GitHub stars, 8,264 forks and an MIT license (Copyright 2025 Corey Haines); the ai-seo SKILL.md has 53 commits since 2026-02-19, and 32 of them landed between September 22 and October 19, 2026.
- The ai-seo skill lists "Cite sources" first at +40%, but Table 1 of the GEO paper (arXiv 2311.09735) gives Quotation Addition the largest gain, about +42.6% on the word-count metric by my arithmetic, with Cite Sources at about +27.7%.
- Public discussion of the marketingskills repository is thin: three Hacker News submissions in January 2026 drew 1 to 2 points and 0 comments each; the useful evidence is GitHub issues #599 and #524, both closed with fixes.
What the skill actually says
It's an AI-search playbook: audit where a brand gets cited, restructure content for extraction, fix crawler access, add machine-readable files, monitor. SKILL.md holds the core workflow and a routing table to 15 reference documents, opened only when a question needs them. It first looks for .agents/product-marketing.md and reads it instead of re-asking.
Three lines show its stance. On purpose:
"Traditional SEO gets you ranked. AI SEO gets you cited."
It also says "one run is an anecdote, not a measurement" and wants each query run 3 to 5 times per platform. On Google, it quotes Google's own guide, "Don't break your content into tiny pieces for AI to better understand it", and then, a few hundred lines later, says to "Keep key answer passages to 40-60 words." The skill reconciles this by engine: for Google, "optimize for people and core Search, full stop"; for ChatGPT, Claude and Perplexity, add extractable structure. The catch is what that rests on, covered below.
The habit I like most is the evidence ladder: official documentation first, then controlled experiments, then vendor datasets, then practitioner case studies. It also admits that "no well-documented study isolates a schema lift on AI citations." Step 4 of the audit splits crawlers into search discovery (OAI-SearchBot, PerplexityBot, Claude-SearchBot), user-triggered retrieval (ChatGPT-User, Claude-User) and model training (GPTBot, ClaudeBot). That wasn't always so (issue #599 below).
Checking the GEO table
Pillar 2 of the skill presents a table headed "The Princeton GEO research (KDD 2024, studied across Perplexity.ai)" ranking nine methods. I downloaded the paper (Aggarwal et al., KDD '24, arXiv 2311.09735) and recomputed from its Table 1. The no-optimization baseline on the word-count metric is 19.5.
| Method | Skill's table | Paper Table 1, word-count metric (my arithmetic) |
|---|---|---|
| Cite sources | +40% | +27.7% (24.9 vs 19.5) |
| Add statistics | +37% | +32.8% (25.9) |
| Add quotations | +30% | +42.6% (27.8) |
| Fluency optimization | +15-30% | +28.7% (25.1) |
| Keyword stuffing | -10% | -8.7% (17.8); subjective-impression average +4.7% (20.2 vs 19.3) |
The aggregate holds up. The paper's summary says the top three methods achieved "30-40% on the Position-Adjusted Word Count metric and 15-30% on the Subjective Impression metric." The per-method ordering doesn't: in Table 1, Quotation Addition leads and Cite Sources sits next to Fluency. The paper also calls keyword stuffing "little to no improvement," not active harm. And Table 2 shows Cite Sources moving a rank-1 source by -30.3% and a rank-5 source by +115.1%. The skill reports the 115% for low-ranking sites; a search of SKILL.md and the references found no mention of the rank-1 drop, which is the number a top-ranked site needs.
I can't tell where the skill's per-method figures come from.
What it costs you in context
This is arithmetic from file size (bytes ÷ 4 ≈ tokens), not a measured session cost, and I didn't run the skill. SKILL.md alone is about 9,115 estimated tokens. With its largest reference, platform-ranking-factors.md, that's 52,560 bytes, about 13,140. Loading all 15 references would be 154,617 bytes, about 38,654, though the skill tells the agent to open only the relevant ones. The 17,529-byte evals.json isn't mentioned in SKILL.md, so it shouldn't enter context.
The less obvious cost is the catalog. The ai-seo description is 1,004 bytes (30 quoted trigger phrases). If your host lists every installed description in context, all 52 descriptions add up to 40,961 bytes, about 10,240 estimated tokens, before any skill fires.
On safety: I read SKILL.md line by line and pattern-scanned the references and eval JSON for shell, credential and exfiltration language. No scripts; the only shell lines are two curl header checks in the LinkedIn reference.
| File | Bytes | Est. tokens (bytes ÷ 4) |
|---|---|---|
SKILL.md | 36,458 | 9,115 |
references/platform-ranking-factors.md | 16,102 | 4,026 |
references/content-patterns.md | 12,949 | 3,237 |
references/citations-vs-recommendations.md | 12,839 | 3,210 |
references/agent-defaults.md | 9,344 | 2,336 |
references/linkedin-ai-citations.md | 8,747 | 2,187 |
references/agent-readiness.md | 8,425 | 2,106 |
references/positioning-and-consensus.md | 7,283 | 1,821 |
references/format-volatility.md | 7,269 | 1,817 |
references/prompt-portfolio.md | 6,326 | 1,582 |
references/okf.md | 5,952 | 1,488 |
references/answer-accuracy.md | 5,705 | 1,426 |
references/multilingual-and-commerce.md | 4,880 | 1,220 |
references/youtube-ai-citations.md | 4,478 | 1,120 |
references/ai-attribution.md | 4,302 | 1,076 |
references/content-types.md | 3,558 | 890 |
evals/evals.json (not referenced by SKILL.md) | 17,529 | 4,382 |
| SKILL.md + 15 references | 154,617 | 38,654 |
| Whole directory, 17 files | 172,146 | 43,037 |
What the community reports
Public discussion is thin. Three Hacker News submissions in January 2026 got 1 to 2 points and no comments, and in the places I checked (GitHub, Hacker News, skills.sh) I found no write-ups with before-and-after citation results. The signal is the tracker. Of the 40 most recent issues, four name ai-seo: #648, #646, #599, #524. Issue #646 was opened by the maintainer ("positioning and consensus lessons from AEO practitioner podcast"), so some content is practitioner-sourced, which the skill's own evidence ladder ranks last.
| Source | Date | What was reported | Link |
|---|---|---|---|
| GitHub issue #599 (pjthegiant) | Opened 2026-09-26, closed 2026-10-03 | The skill's robots.txt advice treated training crawlers (GPTBot, ClaudeBot, Google-Extended) as citation bots; the issue cites vendor docs for separate search bots. Closed in 7 days; the current file splits the three purposes. | #599 |
| GitHub issue #524 (Namine4) | Opened 2026-08-23, closed 2026-10-02 | Relative links to ../../tools/* died after the recommended npx install, which copies only the skill folder. Took 40 days; the current ai-seo file uses an absolute GitHub URL. | #524 |
| GitHub PR #280 (serg0x) | Opened 2026-04-27, closed 2026-05-18 | Proposed removing the llms.txt recommendations. The maintainer declined: "They still apply (AI engines pull from llms.txt where available) even though the spec hasn't been formally adopted." | #280 |
| GitHub issue #594 (Tradelord223) | Opened 2026-09-22, closed 2026-10-03 | Not ai-seo, but a repo-wide staleness signal: the video, ad-creative and image skills still recommended OpenAI models with announced shutdown dates. Closed in 11 days. | #594 |
| Hacker News | 2026-01-22 to 2026-01-29 | Three submissions of the repo or its seo-audit page: 1, 1 and 2 points, 0 comments. | item 46720299 |
The dissent: PR #280. The maintainer's reply is an assertion and the PR had no description, so I can't say what evidence it relied on. I found no independent data either way on whether engines read llms.txt, and the skill's matching line, "They parse llms.txt", has no citation.
The skills.sh page for ai-seo shows "Installs 147.9K" and passes from three scanners (Gen Agent Trust Hub, Socket, Snyk). The scraped text doesn't say whether that count is per skill or repo-wide, so treat it as rough.
How to install it
Commands from the repo README, checked this run (the single-skill cp is my adaptation of its skills/* example):
# one skill, via the skills CLI
npx skills add coreyhaines31/marketingskills --skill ai-seo
# target Claude Code explicitly
npx skills add coreyhaines31/marketingskills --skill ai-seo -a claude-code
# whole repo as a Claude Code plugin (all 52 skills)
/plugin marketplace add coreyhaines31/marketingskills
/plugin install marketing-skills
# manual copy of just this skill
git clone https://github.com/coreyhaines31/marketingskills.git
cp -r marketingskills/skills/ai-seo .agents/skills/
Copy the whole folder, not just SKILL.md: the skill reads references from the installed directory, and issue #524 shows what happens to anything linked from outside it.
Where it earns its keep, and where it doesn't
It earns its keep on an audit. The crawler split matches how the vendors document their bots (per the sources cited in #599), the routing table keeps heavy references out of context until needed, and the evidence ladder beats most SEO advice. For a content or product site that wants a checklist of what an agent can and can't read, the audit plus agent-readiness.md is the useful part.
The real problems: the non-Google advice rests on unsourced claims (engines "parse llms.txt"; 40 to 60 words as "optimal for snippet extraction"); the research table doesn't reproduce from its own source and omits the rank-1 penalty; and it's a snapshot of a fast-moving topic. SKILL.md bakes in dated figures (BrightEdge in February 2026, Profound in July 2026, a ChatGPT 5.6 shift in August 2026), warns they drift, and was edited 32 times in four weeks. A hand-copied folder stays frozen.
It's also heavy: about 9,115 estimated tokens to start, roughly 13,000 with one big reference, even for "should I block GPTBot?" For Google AI Overviews alone, the skill's own text says optimize for people and core Search. Install ai-seo alone, and verify any statistic before it reaches a client.
FAQ
What does the ai-seo skill do?
It's a playbook for getting content cited by AI search engines: visibility audit, content restructuring, crawler access checks, machine-readable files such as llms.txt, and monitoring. SKILL.md is 36,458 bytes and 500 lines, routing to 15 references totalling 118,159 bytes.
How much context does the ai-seo skill use?
By file-size arithmetic (bytes ÷ 4), SKILL.md is about 9,115 tokens, about 13,140 with the largest reference, and about 38,654 with all 15. Estimates, not measured session costs.
How do I install the ai-seo skill?
Run npx skills add coreyhaines31/marketingskills --skill ai-seo, adding -a claude-code for Claude Code. The plugin route (/plugin marketplace add coreyhaines31/marketingskills, then /plugin install marketing-skills) installs all 52 skills.
Are the GEO percentages in the ai-seo skill accurate?
Partly. The roughly 30 to 40% headline matches the paper's summary. Per-method figures don't match Table 1 by my arithmetic: Quotation Addition leads at about +42.6%, while the skill lists Cite Sources first at +40%. It also omits the -30.3% change for rank-1 sources.
Skill by Corey Haines and contributors, MIT licensed (Copyright 2025 Corey Haines). Source: github.com/coreyhaines31/marketingskills, read at commit e85f3cb. Review date: October 22, 2026. Quoted lines are short excerpts for review purposes. Byte sizes come from a shallow clone; token figures are file-size arithmetic (bytes ÷ 4), not measurements, and nothing here was run through any API. Community reception shifts over time, so check the issue tracker for the current state.