audit

A diagnostic tool for checking a website's search visibility, AI answer readiness, structured data, and crawl hygiene.

In plain words
What is it for?
Use it to audit a live site or built HTML, check items such as headings, canonical links, and schema, and produce a report or proposed diff.
Why use it?
It identifies discoverability problems and prioritises fixes without changing the site itself.

Skill for Claude CodeCodex

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add skills/bemoshiur/omnirank/audit
Any agent
npx skills add bemoshiur/OmniRank --skill audit
Clone the repo
git clone --depth 1 https://github.com/bemoshiur/OmniRank

Made for: Claude Code, Codex.

Per session 49 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 731 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 1 finding. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00049 $0.00731
Opus 5 $0.00024 $0.00365
Sonnet 5 $0.00010 $0.00146
Haiku 4.5 $0.00005 $0.00073

Measured 2d ago against content hash 5ec260d8d810, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

audit scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Makes network callslowCapability

Not a fault in itself. Listed so you know the mod talks to something, and to what.

`.next/server/app/*.html` or a raw `curl`, never a browser inspector.
skills/audit/SKILL.md · 67 lines

How it starts

The opening of the file, as written. The whole thing — 67 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Audit

Score a site across four layers — SEO, AEO, GEO, and crawl hygiene — and produce a prioritised, actionable fix list.

When to use

Anything shaped like "is this site discoverable?" Ranking complaints, schema questions, pre-deploy verification, or "why doesn't ChatGPT cite us?"

When NOT to use

  • Generating llms.txt / facts.json — that is geo-artifacts.
  • Writing schema or AnswerBlocks — that is aeo-onpage (planned, not in v0.1.0).
  • Submitting URLs for indexing — that is indexing (planned, not in v0.1.0).
  • Off-site, backlink, or entity work — that is offsite-entity (planned, not in v0.1.0).

Audit only diagnoses. It never edits the site.

omnirank fix shows the diff it would apply for the four mechanical findings and writes nothing — there is no --write flag. Run it to answer "which file is wrong?", then hand the diff to a human.

How to run it

# Zero-config, any live site
python3 -m omnirank.cli audit https://example.com

# Configured repo, CI-ready
python3 -m omnirank.cli audit --config omnirank.config.json --fail-on h1 canonical schema

Exit codes: 0 clean, 1 a configured gate failed, 2 usage or config error. The JSON report lands in .omnirank/reports/<date>-audit.json.

--fail-on takes gate names (h1, canonical, title-length, llms-txt, facts-json, schema, ...), not finding ids — see references/gates.md for the full name list and how ids relate to them.

Reading the output

Work findings in severity order — every error before any warning. Each finding carries observed, expected, and fix; quote the fix when proposing the change, and cite the id so it can be tracked across runs.

Scores are 100 - 10×errors - 3×warnings per layer, floored at zero. A layer with no findings is absent from the score map rather than scored 100 — never report a score for a layer whose gates did not run.

Rules

  1. Never claim a gate passed if it could not be evaluated. An unreachable URL is an error, not a skip.
  2. Audit the built HTML, not the hydrated DOM. Crawlers see server output. Check .next/server/app/*.html or a raw curl, never a browser inspector.
  3. Do not fix during an audit. Produce the list, then hand off.
  4. Report the numbers you got. If the score is 41, say 41.

Read the full file on GitHub · 67 lines

Files

What ships with it

2 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 2d ago First seen · 67 lines · 49 tokens per session scan A 5ec260d8d810

Subscribe to this mod's changes

audit is a skill published in the GitHub repository bemoshiur/OmniRank (6 stars, last pushed 2d ago), licensed MIT. It adds 49 tokens to every session and 731 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.