AI SEO — Durable AEO Program skill

Builds, measures, and improves an Answer Engine Optimization program across ChatGPT, Perplexity, Claude, Gemini, Google AI Overviews, and Copilot.

by MoizIbnYousaf·MIT license·GitHub ↗

★ 31 Stars on the repo·Checked

npx degit MoizIbnYousaf/marketing-cli/skills/ai-seo#main ~/.claude/skills/ai-seo-3

SKILL.md · 9.2 KB · names 6 other files — download is this file only · installs the whole folder to ~/.claude/skills/ai-seo-3

Files of AI SEO — Durable AEO Program

Files 1 file
Show the full text165 lines

AI SEO — Durable AEO Program

Answer engines return synthesized verdicts, not ranked menus. This skill measures which brand attributes appear in those verdicts, identifies why gaps exist, and ships evidence-backed fixes. The unit of work is an attribute: one truthful thing the product should be known for in buyer language.

On Activation

  1. Read brand/positioning.md, brand/audience.md, brand/competitors.md, brand/keyword-plan.md, brand/landscape.md, and brand/voice-profile.md when present. Missing files reduce confidence but never block L0 work.
  2. Check for .aeo/config.json, .aeo/truth.md, and .aeo/runs/.
  3. Select the explicit mode, or auto-detect the next incomplete phase:
Mode Work
setup Establish identity, truth, attributes, platforms, and prompt portfolio.
audit Measure prompts and citations; inspect crawl/index/analytics evidence; diagnose gaps.
plan Rebuild the prioritized gameplan from stored findings without new paid calls.
fix Implement only approved on-page and technical items; brief off-page work.
remeasure Re-run the frozen prompt set, compare with the previous run, and report uncertainty.
report Regenerate report and gameplan from stored data; no network spend.
  1. State the mode, evidence sources available, degraded capabilities, and whether any call may cost money.
  2. Continue autonomously except at the three human checkpoints: identity/attributes, spend approval, and gameplan execution approval.

Durable State

Create .aeo/ in the user's project:

.aeo/
├── config.json       # schema version, site, markets, platforms, sampling policy
├── truth.md          # claim table grounded in code, docs, pricing, and changelog
├── attributes.md     # approved attributes and buyer language
├── prompts.json      # stable prompt IDs; never silently rewrite between runs
├── report.md         # dated evidence, rates, citations, gaps, and method
├── gameplan.md       # Now / Next / Later / Done actions linked to findings
├── worklog.md        # action, date, files, hypothesis, deploy/reference
└── runs/<iso-date>/  # normalized observations; raw/ contains private responses

During setup, add .aeo/runs/**/raw/ to the user's .gitignore before storing any raw response. Keep only the minimum raw evidence needed, never store authentication/session data, and commit normalized observations only when the user wants the AEO history versioned.

The report is what someone can audit in six months. The gameplan is what the team acts on. Every recommendation links to a finding ID; every rate carries numerator, denominator, platform, and sample size.

Program Phases

0 — Foundation

Detect the app/site/domain, build .aeo/truth.md from authoritative repository evidence, and propose 3–8 attributes. Ask the user to approve identity and attributes before measuring. Follow foundation and prompt design.

1 — Prompt Portfolio

Turn each attribute into neutral buyer prompts spanning discovery, comparison, recommendation, use-case, objection, and factual verification. Freeze stable prompt IDs. Do not include the brand in unbranded discovery prompts or hint at the desired answer.

2 — Measure

Run the same portfolio across the available answer engines. Sample repeated observations because outputs are non-deterministic. Store mention, recommendation, factual accuracy, sentiment/position, citations, cited domains/pages, model/platform, timestamp, locale, account/mode, and response availability. Follow measurement and statistics.

OpenSEO v0.1.6 supplies traditional discoverability evidence through ranked keywords, SERPs, backlinks, Search Console, GA4, URL inspection, and site audit. It does not currently expose AI Visibility over MCP; never report OpenSEO UI AI visibility as live MCP data. Follow OpenSEO evidence routing.

3 — Diagnose

Route each gap to one primary cause:

  • Technical: blocked crawler, indexing/canonical failure, rendering, malformed or contradictory structured data.
  • Comprehension: the site does not state the attribute clearly, consistently, or extractably.
  • Trust/supply: engines rely on third-party sources that omit, contradict, or outrank the first-party claim.
  • Measurement: sample too small, platform inaccessible, prompt drift, locale/account confounder.

Use the citation supply chain before prescribing content. See diagnosis.

4 — Gameplan

Order work by evidence strength × expected effect ÷ effort and risk. Each item must include finding ID, route, exact file/URL, owner type, expected observable effect, verification method, and status. Never promise a citation or ranking.

5 — Execute and Remeasure

After approval, implement repository-owned changes, show the diff, and leave outreach/listing/publishing to a human. Log every change as a hypothesis. Re-measure after an appropriate indexing window; do not attribute causality from one before/after movement. Follow technical and content execution and deliverables.

Metrics

Report per attribute and platform:

  • Mention rate = mentions ÷ valid observations.
  • Recommendation rate = positive recommendations ÷ valid observations.
  • Citation rate = observations citing a first-party URL ÷ valid observations.
  • Accuracy rate = correct factual claims ÷ scored factual claims.
  • Share of voice = brand mentions ÷ all tracked brand/competitor mentions, with the exact denominator disclosed.

Do not combine platforms into one headline rate unless sample design and weighting are explicit. Never report a rate from one sample. Preserve missing/blocked/error observations separately from valid responses.

Anti-Patterns: Non-Negotiable Safety and Honesty

  1. Never ask a leading question. It manufactures the desired result instead of measuring buyer discovery.
  2. Never report a rate without numerator, denominator, and sample size. One response is an anecdote.
  3. Never fabricate a quote, citation, source, statistic, crawler rule, or platform behavior. Unknown stays unknown.
  4. Never manufacture consensus. No astroturfing, fake reviews, sockpuppets, or bot-only content.
  5. Never cloak. Serve engines and humans the same substantive content.
  6. Never auto-publish, auto-deploy, auto-submit listings, or contact people. Prepare diffs and briefs; a human controls external state.
  7. Never spend without a preflight. State provider, operation, count, and cost shape; wait for approval.
  8. Never claim causation from one correlation. Log the hypothesis and test it over later runs.
  9. Never treat llms.txt as a ranking guarantee. It is optional discoverability metadata, not proof of crawler support or citations.
  10. Never recommend allowing every AI crawler by default. Training, retrieval, and user-triggered agents have different policy implications; present the tradeoff.

Progressive Enhancement

Level Behavior
L0 Repository truth, technical inspection, prompt plan, and explicit live-measurement gaps.
L1 Brand memory narrows attributes and competitor set.
L2 Search/crawl evidence validates discoverability and citation supply.
L3 Direct platform observations produce sampled visibility metrics.
L4 OpenSEO + GSC/GA4/logs connect AI visibility hypotheses to crawl, rankings, citations, and referrals.

Completion

Write .aeo/report.md and .aeo/gameplan.md, then record completion:

mktg run ai-seo --complete --writes .aeo/report.md,.aeo/gameplan.md --result success --json

Route resulting work to seo-audit, seo-content, competitor-alternatives, off-page-seo, or seo-machine; this skill owns measurement and prioritization, not duplicate execution playbooks.


Method informed by Initial Commit's public AEO program description at initialcommit.co/library/skills/aeo; this implementation is independently adapted to mktg's brand memory, OpenSEO boundary, safety model, and sprint-persistence contract.

1---
2name: ai-seo
3description: "Builds, measures, and improves an Answer Engine Optimization program across ChatGPT, Perplexity, Claude, Gemini, Google AI Overviews, and Copilot. Use for AEO, GEO, LLMO, AI search visibility, AI citations, brand mentions, answer-engine monitoring, llms.txt, AI crawler audits, or questions like 'what does AI say about us?' and 'why are competitors cited instead of us?'. Produces a durable evidence report and prioritized gameplan, not a one-shot content checklist."
4category: seo
5tier: nice-to-have
6layer: execution
7reads:
8 - brand/voice-profile.md
9 - brand/keyword-plan.md
10 - brand/audience.md
11 - brand/positioning.md
12 - brand/competitors.md
13 - brand/landscape.md
14writes:
15 - .aeo/config.json
16 - .aeo/truth.md
17 - .aeo/attributes.md
18 - .aeo/prompts.json
19 - .aeo/report.md
20 - .aeo/gameplan.md
21 - .aeo/worklog.md
22 - .aeo/runs/
23depends-on: []
24triggers:
25 - ai seo
26 - ai search
27 - perplexity
28 - chatgpt ranking
29 - ai overview
30 - answer engine
31 - llmo
32 - geo
33 - aeo
34 - cited by ai
35 - ai visibility
36 - ai optimization
37allowed-tools: []
38---
39 
40# AI SEO — Durable AEO Program
41 
42Answer engines return synthesized verdicts, not ranked menus. This skill measures which brand attributes appear in those verdicts, identifies why gaps exist, and ships evidence-backed fixes. The unit of work is an **attribute**: one truthful thing the product should be known for in buyer language.
43 
44## On Activation
45 
461. Read `brand/positioning.md`, `brand/audience.md`, `brand/competitors.md`, `brand/keyword-plan.md`, `brand/landscape.md`, and `brand/voice-profile.md` when present. Missing files reduce confidence but never block L0 work.
472. Check for `.aeo/config.json`, `.aeo/truth.md`, and `.aeo/runs/`.
483. Select the explicit mode, or auto-detect the next incomplete phase:
49 
50| Mode | Work |
51|---|---|
52| `setup` | Establish identity, truth, attributes, platforms, and prompt portfolio. |
53| `audit` | Measure prompts and citations; inspect crawl/index/analytics evidence; diagnose gaps. |
54| `plan` | Rebuild the prioritized gameplan from stored findings without new paid calls. |
55| `fix` | Implement only approved on-page and technical items; brief off-page work. |
56| `remeasure` | Re-run the frozen prompt set, compare with the previous run, and report uncertainty. |
57| `report` | Regenerate report and gameplan from stored data; no network spend. |
58 
594. State the mode, evidence sources available, degraded capabilities, and whether any call may cost money.
605. Continue autonomously except at the three human checkpoints: identity/attributes, spend approval, and gameplan execution approval.
61 
62## Durable State
63 
64Create `.aeo/` in the user's project:
65 
66```text
67.aeo/
68├── config.json # schema version, site, markets, platforms, sampling policy
69├── truth.md # claim table grounded in code, docs, pricing, and changelog
70├── attributes.md # approved attributes and buyer language
71├── prompts.json # stable prompt IDs; never silently rewrite between runs
72├── report.md # dated evidence, rates, citations, gaps, and method
73├── gameplan.md # Now / Next / Later / Done actions linked to findings
74├── worklog.md # action, date, files, hypothesis, deploy/reference
75└── runs/<iso-date>/ # normalized observations; raw/ contains private responses
76```
77 
78During setup, add `.aeo/runs/**/raw/` to the user's `.gitignore` before storing any raw response. Keep only the minimum raw evidence needed, never store authentication/session data, and commit normalized observations only when the user wants the AEO history versioned.
79 
80The report is what someone can audit in six months. The gameplan is what the team acts on. Every recommendation links to a finding ID; every rate carries numerator, denominator, platform, and sample size.
81 
82## Program Phases
83 
84### 0 — Foundation
85 
86Detect the app/site/domain, build `.aeo/truth.md` from authoritative repository evidence, and propose 3–8 attributes. Ask the user to approve identity and attributes before measuring. Follow [foundation and prompt design](references/foundation-and-prompts.md).
87 
88### 1 — Prompt Portfolio
89 
90Turn each attribute into neutral buyer prompts spanning discovery, comparison, recommendation, use-case, objection, and factual verification. Freeze stable prompt IDs. Do not include the brand in unbranded discovery prompts or hint at the desired answer.
91 
92### 2 — Measure
93 
94Run the same portfolio across the available answer engines. Sample repeated observations because outputs are non-deterministic. Store mention, recommendation, factual accuracy, sentiment/position, citations, cited domains/pages, model/platform, timestamp, locale, account/mode, and response availability. Follow [measurement and statistics](references/measurement.md).
95 
96OpenSEO v0.1.6 supplies traditional discoverability evidence through ranked keywords, SERPs, backlinks, Search Console, GA4, URL inspection, and site audit. It does **not** currently expose AI Visibility over MCP; never report OpenSEO UI AI visibility as live MCP data. Follow [OpenSEO evidence routing](references/openseo-evidence.md).
97 
98### 3 — Diagnose
99 
100Route each gap to one primary cause:
101 
102- **Technical:** blocked crawler, indexing/canonical failure, rendering, malformed or contradictory structured data.
103- **Comprehension:** the site does not state the attribute clearly, consistently, or extractably.
104- **Trust/supply:** engines rely on third-party sources that omit, contradict, or outrank the first-party claim.
105- **Measurement:** sample too small, platform inaccessible, prompt drift, locale/account confounder.
106 
107Use the citation supply chain before prescribing content. See [diagnosis](references/diagnosis.md).
108 
109### 4 — Gameplan
110 
111Order work by evidence strength × expected effect ÷ effort and risk. Each item must include finding ID, route, exact file/URL, owner type, expected observable effect, verification method, and status. Never promise a citation or ranking.
112 
113### 5 — Execute and Remeasure
114 
115After approval, implement repository-owned changes, show the diff, and leave outreach/listing/publishing to a human. Log every change as a hypothesis. Re-measure after an appropriate indexing window; do not attribute causality from one before/after movement. Follow [technical and content execution](references/execution.md) and [deliverables](references/deliverables.md).
116 
117## Metrics
118 
119Report per attribute and platform:
120 
121- Mention rate = mentions ÷ valid observations.
122- Recommendation rate = positive recommendations ÷ valid observations.
123- Citation rate = observations citing a first-party URL ÷ valid observations.
124- Accuracy rate = correct factual claims ÷ scored factual claims.
125- Share of voice = brand mentions ÷ all tracked brand/competitor mentions, with the exact denominator disclosed.
126 
127Do not combine platforms into one headline rate unless sample design and weighting are explicit. Never report a rate from one sample. Preserve missing/blocked/error observations separately from valid responses.
128 
129## Anti-Patterns: Non-Negotiable Safety and Honesty
130 
1311. **Never ask a leading question.** It manufactures the desired result instead of measuring buyer discovery.
1322. **Never report a rate without numerator, denominator, and sample size.** One response is an anecdote.
1333. **Never fabricate a quote, citation, source, statistic, crawler rule, or platform behavior.** Unknown stays `unknown`.
1344. **Never manufacture consensus.** No astroturfing, fake reviews, sockpuppets, or bot-only content.
1355. **Never cloak.** Serve engines and humans the same substantive content.
1366. **Never auto-publish, auto-deploy, auto-submit listings, or contact people.** Prepare diffs and briefs; a human controls external state.
1377. **Never spend without a preflight.** State provider, operation, count, and cost shape; wait for approval.
1388. **Never claim causation from one correlation.** Log the hypothesis and test it over later runs.
1399. **Never treat `llms.txt` as a ranking guarantee.** It is optional discoverability metadata, not proof of crawler support or citations.
14010. **Never recommend allowing every AI crawler by default.** Training, retrieval, and user-triggered agents have different policy implications; present the tradeoff.
141 
142## Progressive Enhancement
143 
144| Level | Behavior |
145|---|---|
146| L0 | Repository truth, technical inspection, prompt plan, and explicit live-measurement gaps. |
147| L1 | Brand memory narrows attributes and competitor set. |
148| L2 | Search/crawl evidence validates discoverability and citation supply. |
149| L3 | Direct platform observations produce sampled visibility metrics. |
150| L4 | OpenSEO + GSC/GA4/logs connect AI visibility hypotheses to crawl, rankings, citations, and referrals. |
151 
152## Completion
153 
154Write `.aeo/report.md` and `.aeo/gameplan.md`, then record completion:
155 
156```bash
157mktg run ai-seo --complete --writes .aeo/report.md,.aeo/gameplan.md --result success --json
158```
159 
160Route resulting work to `seo-audit`, `seo-content`, `competitor-alternatives`, `off-page-seo`, or `seo-machine`; this skill owns measurement and prioritization, not duplicate execution playbooks.
161 
162---
163 
164Method informed by Initial Commit's public AEO program description at `initialcommit.co/library/skills/aeo`; this implementation is independently adapted to mktg's brand memory, OpenSEO boundary, safety model, and sprint-persistence contract.
165 

Discussion

Alternatives

Also in AI search (AEO)See all 401 in Marketing →
AI Search / GEO Optimization (May 2026)Optimize content for AI Overviews (formerly SGE), ChatGPT web search, Perplexity, and other AI-powered search experiences. Generative Engine Optimization (GEO) analysis including brand mention signals, AI crawler accessibility, llms.txt compliance, passage-level citability scoring, and platform-specific optimization. Use when user says "AI Overviews", "SGE", GEO", "AI search", "LLM optimization", "Perplexity", "AI citations", ChatGPT search", or "AI visibility".Marketing · MITSEO GEO Audit SkillRun a unified SEO and GEO audit for a website, page, or domain. Use when the user asks for a full SEO audit, GEO audit, AI visibility review, EEAT review, entity audit, authority audit, or wants one prioritized report that combines technical findings, content quality, trust signals, and AI citation readiness.Marketing · MITSuede AI SEOSuede-affiliated AI search optimization discipline. Use when the user wants to optimize content for AI search engines, get cited by LLMs, or appear in AI-generated answers. Also use when the user mentions 'AI SEO,' 'AEO,' 'GEO,' 'LLMO,' 'answer engine optimization,' 'generative engine optimization,' 'LLM optimization,' 'AI Overviews,' 'optimize for ChatGPT,' 'optimize for Perplexity,' 'AI citations,' 'AI visibility,' 'zero-click search,' 'how do I show up in AI answers,' 'LLM mentions,' 'optimize for Claude/Gemini,' 'llms.txt,' 'OKF,' 'Open Knowledge Format,' 'knowledge bundle,' or 'agent-readable site.' The durable job: make content structurally extractable, citable, and agent-readable so AI systems surface and cite it. NOT FOR: traditional technical SEO audit (use suede-seo-audit) or launch-appeal grading (use suede-visibility-grader).Marketing · MITAgentic Search OptimizerExpert in WebMCP readiness and agentic task completion — audits whether AI agents can actually accomplish tasks on your site (book, buy, register, subscribe), implements WebMCP declarative and imperative patterns, and measures task completion rates across AI browsing agentsBusiness & ops · MIT