# Agentic-SEO-Skill installs into nine IDEs in nine shapes, and its own description disagrees with its script count

> An MIT-licensed SEO skill for agent IDEs, split into 16 sub-skills, 10 specialist agents and a large pile of evidence collectors. The parts worth reading first are the number mismatch between 88 and 89 scripts, the dependency set that leaves Playwright optional, and the credential precedence rules in the env template.

**Bhanunamikaze/Agentic-SEO-Skill** — An LLM-first SEO analysis skill for Antigravity, Codex, Claude with 16 specialized sub-skills, 10 specialist agents, and 88 optional utility scripts used as evidence collectors.

- Repository: https://github.com/Bhanunamikaze/Agentic-SEO-Skill
- Stars: 946 · Forks: 149
- Language: Python
- License: MIT
- Published: 2026-09-10 · Updated: 2026-09-10 · Language: en
- Canonical page: https://hysenlabs.com/projects/bhanunamikaze-agentic-seo-skill

## The description says 88 scripts, the inventory says 89

Two published numbers do not match. The repository description advertises 88 optional utility scripts, while the inventory block reports `89` in `scripts/`, broken down as 88 Python files plus one shell validation helper. The headline line of the project page repeats the 89 figure. Rather than leave that to drift silently, the project checks it in CI alongside a second clock:

```bash
python3 scripts/validate_skill_inventory.py
python3 scripts/reference_freshness.py resources/references --max-age-days 90
```

The first script fails when the counts stop agreeing. The second fails when anything under `resources/references` ages past 90 days, which is a hard expiry on the guidance files themselves. Note the timing: the newest tag is v3.0.1 from 2026-05-14, while the last push to the default branch is 2026-07-23, so there are commits on main that no release has picked up.

## Nine IDEs, nine different install shapes

The compatibility table is not one install script with a flag. Claude Code and Codex CLI receive a skill directory under the user's home, at `~/.claude/skills/seo` and `~/.codex/skills/seo`. Antigravity IDE gets `<project>/.agent/skills/seo`, a project-scoped skill. Claude Cowork gets `<project>/.claude/skills/seo` and is explicitly meant to be committed to git, which makes it the one entry that changes what your repository contains. Cursor, Windsurf, Continue.dev, GitHub Copilot and Cline each receive two pieces: a rules or instruction file in that tool's expected format, plus a skills directory. The formats differ too, with an MDC rule for Cursor, a Windsurf rule, a slash-command prompt file for Continue.dev, `copilot-instructions.md`, and `.clinerules`. The repository also ships `install.sh` and `install.ps1`, so Windows is covered too.

## The distribution name exists, but py-modules is empty

The packaging metadata is thin in a way that matters if you plan to import it. `pyproject.toml` names the distribution `agentic-seo-skill` at version 3.0.1, declares MIT in a text license field, and then sets `[tool.setuptools] py-modules = []`. A setuptools build with an empty module list installs the name and nothing importable, so the way to use this project is the installed skill files and the scripts directory, not a library import. Runtime dependencies are correspondingly small: `beautifulsoup4>=4.12`, `lxml>=5.0` and `requests>=2.31`, which is what the HTML parsing scripts need. Everything else lives in extras. Tests resolve scripts as top-level modules through `pythonpath = ["scripts"]` under pytest with `testpaths = ["tests"]`.

## requirements.txt comments out what half the agents need

The plain requirements file lists the same three packages and then comments out everything else, including `playwright>=1.44`, `google-auth>=2.29`, `google-api-python-client>=2.125`, `pytest>=8.0` and `ruff>=0.5`. That is a defensible choice, but it means the default install cannot run the Visual Analysis agent, which is described as taking screenshots, checking above-the-fold and testing responsiveness through Playwright, nor the Search Console checker. The extras reflect that split: `dev`, `gsc`, `visual`, and an `all` group. Watch that last one, because `all` bundles pytest and ruff alongside the Google and Playwright packages, so a production install of `all` drags test tooling in with it. Python 3.10 is the floor, and ruff is configured for a 120 character line length.

## Credentials resolve in three layers, and every key is optional

The env template states the precedence outright: every key is optional, shell-exported variables always win over the file, and CLI flags such as `--api-key` always win over both. The file itself can sit in the repository root, in the directory where you run the scripts, or at `~/.agentic-seo/.env`, and `.env` is gitignored. What each key buys is specific. `PAGESPEED_API_KEY` unlocks the PageSpeed Insights endpoint used by the Core Web Vitals script; without it the public endpoint still answers but is heavily rate-limited. `GOOGLE_KG_API_KEY` covers the Knowledge Graph checker, and `GOOGLE_API_KEY` is offered as a single shared fallback for anyone whose key has both APIs enabled. `GITHUB_TOKEN` needs read-only scope, accepts `GH_TOKEN` as an alias, and falls back to `gh auth login`.

## Step one says scripts are optional, in a project made of scripts

The stated workflow is five steps: collect page evidence with `read_url_content` first and scripts optional, analyze with the model using explicit proof for every finding, apply confidence labels, prioritize by impact and effort, then produce a structured action plan. That first step sits awkwardly against a tree of 89 evidence collectors. The labels it asks for are `Confirmed`, `Likely` and `Hypothesis`, and the required rubric at `resources/references/llm-audit-rubric.md` is what makes those labels mean something, by fixing the evidence format as `Finding`, `Evidence`, `Impact` and `Fix`, and severity as `Critical`, `Warning`, `Pass` or `Info`. The collector scripts are best read as ways to fill the Evidence field cheaply rather than as the analysis itself.

## One command produces four artifacts, then a verifier prunes them

`audit_runner.py` is the entry point most people reach for, and it writes four outputs: JSON, HTML, `FULL-AUDIT-REPORT.md` and `ACTION-PLAN.md`. `generate_report.py` then turns findings into a self-contained browser dashboard for sharing. Between collection and reporting sits `finding_verifier.py`, whose job is deduplication, prioritization and validation, and the Verifier agent is described as a global step that suppresses contradictions before the final report is written. The collector layer is where the breadth is: `fetch_page.py` for crawler-header fetches with local HTML output, `parse_html.py` for titles, metadata, headings, links, images, schema and canonical signals, `indexability_matrix.py` for per-URL verdicts from robots, meta robots, canonicals, status and sitemaps, plus dedicated checkers for robots policy, sitemap limits and `lastmod` quality, image alt text and LCP candidates, and JSON-LD syntax.

## The skill tells you what to paste into your own repository description

One sub-skill, `seo github`, covers repository SEO, and the project page includes a ready-made About field string and a suggested topics list, both in plain text blocks. Writing those exact values into your own repository description is the intended move. That makes the mismatch in this repository's own description worth naming: it advertises 88 scripts while the inventory inside the same repository says 89. Three of the ten specialist agents exist only for GitHub work, a metadata and README analyst, a benchmark agent for query ranking and competitor intelligence, and a data agent for API and auth fallback plus traffic archival continuity, with `github_seo_report.py` producing a report and action plan for a repository.

## Conclusion

Adopt Agentic-SEO-Skill if you want SEO analysis driven by a rubric rather than improvised, and if you are willing to install it per IDE because the layouts differ. Before you trust a report, read one finding end to end and check the evidence line, since the workflow's first step says page reading tools come first and the scripts are optional. Install with the extras your chosen sub-skills need rather than the bare requirements file, set `PAGESPEED_API_KEY` if you care about Core Web Vitals, and expect the 90-day freshness check to be the thing that fails first in a repo you clone and forget. Verify the script count yourself against `scripts/`, because two different numbers are published for it.

## FAQ

### How many scripts does Agentic-SEO-Skill actually ship?

The inventory reports 89 files in `scripts/`, made up of 88 Python scripts plus one shell validation helper. The repository description says 88, so the two published figures disagree, which is what `scripts/validate_skill_inventory.py` is there to catch.

### Which IDEs can Agentic-SEO-Skill be installed into?

Nine, each with its own layout. Claude Code and Codex CLI get user-level skill directories under the home directory, while Cursor, Windsurf, Continue.dev, GitHub Copilot and Cline get a project rules or instruction file plus a skills directory in that tool's expected format.

### Do I need API keys to run Agentic-SEO-Skill?

Every key in `.env.example` is optional. Without a PageSpeed key the public endpoint still works but is heavily rate-limited. Shell environment variables beat `.env`, and CLI flags such as `--api-key` beat both, and `gh auth login` works as a fallback to `GITHUB_TOKEN`.

### What files does an Agentic-SEO-Skill audit produce?

`audit_runner.py` writes JSON, HTML, `FULL-AUDIT-REPORT.md` and `ACTION-PLAN.md`. The rubric at `resources/references/llm-audit-rubric.md` fixes the evidence format as Finding, Evidence, Impact and Fix, with severity levels of Critical, Warning, Pass and Info.

### How fresh do Agentic-SEO-Skill's reference files need to be?

CI runs `scripts/reference_freshness.py resources/references --max-age-days 90`, so anything under the references directory older than 90 days fails the check. The content sub-skill separately cites the September 2025 quality guidance.

## Sources

- [Bhanunamikaze/Agentic-SEO-Skill on GitHub](https://github.com/Bhanunamikaze/Agentic-SEO-Skill)
- [Issues](https://github.com/Bhanunamikaze/Agentic-SEO-Skill/issues)
- [License: MIT](https://github.com/Bhanunamikaze/Agentic-SEO-Skill/blob/main/LICENSE)
- [README](https://github.com/Bhanunamikaze/Agentic-SEO-Skill/blob/main/README.md)
- [Releases](https://github.com/Bhanunamikaze/Agentic-SEO-Skill/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/bhanunamikaze-agentic-seo-skill
