This file is the universal entry point. Any AI coding agent (Claude Code, Codex, Hermes, Cursor, etc.) reads this to know which NotFair skill to run for which user intent.
If you are an agent and a user mentions Google Ads, Meta Ads, SEO, GEO, or anything in the tables below, route to the named skill.
- Match the user's intent against the rows below.
- Read the named skill's
SKILL.mdfrom the path shown. - Follow the procedure in that SKILL.md exactly.
Skills under seo/, google-ads/, meta-ads/, gemini/, and notfair-upgrade-skill/ are host-agnostic — they work the same on every supported agent host.
| Intent | Skill | Path |
|---|---|---|
| Full-site SEO audit, traffic drop, GSC analysis, Core Web Vitals | seo-analysis |
seo/seo-analysis/SKILL.md |
| Single-page deep audit (URL-specific) | seo-page |
seo/seo-page/SKILL.md |
| Write or improve content (blog, landing, service page) | content-writer |
seo/content-writer/SKILL.md |
| Plan content from GSC data, build a dated editorial calendar | content-planner |
seo/content-planner/SKILL.md |
| Keyword discovery, topic clusters (seed → keyword universe) | keyword-research |
seo/keyword-research/SKILL.md |
| Title tags, meta descriptions, Open Graph, CTR | meta-tags-optimizer |
seo/meta-tags-optimizer/SKILL.md |
| JSON-LD / structured data (FAQ, Product, HowTo, etc.) | schema-markup-generator |
seo/schema-markup-generator/SKILL.md |
| Broken-link / 404 / site-health crawl | broken-link-checker |
seo/broken-link-checker/SKILL.md |
| Rank in ChatGPT / Perplexity / AI Overviews (GEO / AEO) | geo-optimizer |
seo/geo-optimizer/SKILL.md |
| Connect WordPress, Strapi, Contentful, or Ghost | setup-cms |
seo/setup-cms/SKILL.md |
| Intent | Skill | Path |
|---|---|---|
| First-time setup or account health check | google-ads-audit |
google-ads/audit/SKILL.md |
| Performance, keywords, bids, budgets, negatives, experiments, bulk ops | google-ads |
google-ads/manage/SKILL.md |
| Write ad copy, RSA headlines/descriptions, A/B variants | google-ads-copy |
google-ads/copy/SKILL.md |
| Landing-page quality, ad-to-page match, LPX diagnosis | google-ads-landing |
google-ads/landing/SKILL.md |
| Intent | Skill | Path |
|---|---|---|
| First-time Meta setup or account health check | meta-ads-audit |
meta-ads/audit/SKILL.md |
| Facebook/Instagram performance, ROAS, CPM, creative fatigue, audience overlap | meta-ads |
meta-ads/manage/SKILL.md |
| Intent | Skill | Path |
|---|---|---|
| Second opinion / review / challenge / consult via Google Gemini | gemini |
gemini/SKILL.md |
| Intent | Skill | Path |
|---|---|---|
| Upgrade NotFair to the latest version | upgrade |
notfair-upgrade-skill/SKILL.md |
- Google Search Console — required for all SEO skills that read live data.
- Google Ads (NotFair MCP) —
https://notfair.co/api/mcp/google_ads, OAuth. Required for Google Ads skills. - Meta Marketing API (NotFair MCP) — required for Meta Ads skills.
- Google Gemini API key — required for
gemini.
Skills check for missing credentials at startup and walk the user through setup. Do not invent credentials or skip skills silently — surface the gap.
Any installer that writes into a file the user also edits (e.g., a user's workspace AGENTS.md, CLAUDE.md, or host config) MUST wrap its inserted content in a fence:
<!-- notfair:managed -->
... auto-generated rows ...
<!-- /notfair:managed -->
Re-running the installer rewrites only inside the fence. Anything outside is preserved.
When a new skill is added or removed in this repo, update:
- The relevant table above in this file.
.claude-plugin/plugin.json→skillsarray.VERSION,.claude-plugin/plugin.json, and.claude-plugin/marketplace.json(version bump).CHANGELOG.md(user-facing note).
A skill that exists on disk but is missing from this file or plugin.json is invisible to agents.