Skip to content

feat(skills): AEO skills that own every audit rule - #130

Open
zordhalo wants to merge 1 commit into
mainfrom
feat/aeo-skills
Open

zordhalo wants to merge 1 commit into
mainfrom
feat/aeo-skills

Conversation

@zordhalo

Copy link
Copy Markdown
Contributor

Adds 20 agent skills so an agent can fix each AEO finding in the user's stack, not just detect it. Plan: Advance-Labs/advance-labs#441.

What's in it

  • aeo router: reads an audit, orders the work (access → identity → extractability → hygiene → off-site), and hands each failing rule to the skill that owns it.
  • 19 skills, each following detect → decide → implement → verify, with per-stack recipes in references/ (Next.js, Astro, WordPress, static HTML, plus Shopify/WooCommerce for products).
  • skills/rule-map.json: every one of the 58 scoring rules maps to exactly one skill.
  • packages/scoring/src/skills-map.test.ts: fails CI if a rule has no owner, a mapped skill is missing, or the router's copy of the map drifts.
  • skills/README.md rewritten for the full set.

Every volatile fact (bot user agents, Google rich-result policy, the llms.txt spec, GA4 dimensions) was checked against a primary source and dated in each skill's ## Sources. Unverifiable claims are worded as unverified, not asserted.

Verification

  • turbo run typecheck lint test --filter=@advance-labs/scoring: green, 95/95.
  • Mutation check: deleting one rule from the map fails 2 of the 4 new tests as intended.
  • The platform validator (companion aeo-platform PR) passes 74/74 against these skills. It now checks tool names on all three servers, and it caught a planted typo (find_mentionz).

Not done yet (follow-ups)

  • Behavioural evals: fixture site → agent with one skill → owned rules flip to pass. Planned in the skills plan, not built here.
  • Plugin packaging: .claude-plugin/ bundling skills + MCP configs.

Scoring issues found while writing these (not fixed here, because they change public rule behaviour)

  • hasOrganization only matches Organization/LocalBusiness, so Corporation, NGO and other subtypes fail the presence rule, and type arrays are skipped by the identity rule.
  • aeo.article-author-schema passes site-wide if any Article and any Person exist, even when no article has an author.
  • Invalid JSON-LD counts as "present", so tech.structured-data-present passes on broken markup.
  • eeat.* rules match URL patterns only: an empty /about passes and a real /story page fails.
  • aeo.ai-bots-allowed counts training bots (GPTBot, ClaudeBot, Google-Extended) as failures, so a deliberate training opt-out fails the rule.
  • generateTemplates stamps today's date as lastmod on every sitemap entry, which trips our own tech.sitemap-lastmod-trustworthy.
  • aeo.question-headings passes with one question heading site-wide. aeo.breadcrumbs passes with one page.

Notes for the docs work

  • analyze_website_aeo returns at most 8 top fixes, only from AEO-relevant categories and never eeat.*. The router says so and points to each skill's own Detect step.
  • The visibility tools query Perplexity Sonar only. The skills say "Perplexity citations", not "AI visibility".

🤖 Generated with Claude Code

Twenty new agent skills so an agent can fix each AEO finding in the
stack it is working in, not just detect it. Each one detects, decides,
implements (per-stack references), and verifies.

- aeo: router that triages an audit and hands off to owning skills
- access: crawler access, server rendering, llms.txt, indexability
- identity: organization entity, article/author, FAQ/QA, validation,
  product, local business
- extractability: answer-first content, site structure, metadata,
  freshness, E-E-A-T trust signals
- off-site + measurement: citation earning, visibility tracking,
  AI referral analytics, Bing coverage

skills/rule-map.json assigns all 58 scoring rules to exactly one skill;
skills-map.test.ts fails CI on an unmapped rule, a missing skill, or
drift in the router's copy of the map.
@vercel

vercel Bot commented Nov 13, 2026 •

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
aeo-toolkit-docs Ready Ready Preview Nov 13, 2026 12:16pm UTC

Request Review

This branch was successfully deployed

1 active deployment
Preview — 8c00e795 Deployed Nov 13, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant