agent-readiness-audit
Audit agent readiness by script: AI-crawler rules, product schema, no-JS HTML, feeds. \"can AI agents use our site\"
Install / Use
npx skills add indranilbanerjee/digital-marketing-pro --skill agent-readiness-auditInstalls into whichever agent you are using.
SKILL.md
Installable skill definition
Quality Score
Category
MarketingSupported Platforms
Our assessment of agent-readiness-audit
agent-readiness-audit scores 86/100 on our quality scale, 400th of 567 Marketing skills we index.
Its SKILL.md is 15 KB long, well organised into 12 sections with 1 code example: a thorough specification that gives an agent plenty to work with.
It has 832 GitHub stars, a meaningful sign that others use it.
Maintenance, license and trust
- The repository was last updated 37 days ago, so agent-readiness-audit is actively maintained.
- It is released under the MIT license, a permissive license that allows use, modification and commercial use with attribution.
- Its trust signals score 100/100, with no cautions. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.
agent-readiness-audit compared with similar skills
All 4 of these similar skills score higher than agent-readiness-audit; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| agent-readiness-audit (this skill)by indranilbanerjee | 86 | 832 | 37d ago | SKILL.md |
| Agent-Reachby Panniantong | 100 | 97.3k | 6d ago | CLAUDE.md |
| headroomby headroomlabs-ai | 100 | 75.4k | 1d ago | CLAUDE.md |
| Scraplingby D4Vinci | 100 | 87.6k | today | MCP Server |
| crawl4aiby unclecode | 100 | 85.5k | today | MCP Server |
Frequently asked questions
- How do I install agent-readiness-audit?
- Run
npx skills add indranilbanerjee/digital-marketing-pro --skill agent-readiness-audit. The install tabs above show the steps for each supported agent. - Which AI agents does agent-readiness-audit work with?
- It is written for Claude Code, as a SKILL.md file. Other agents that read the same format can often use it too.
- Is agent-readiness-audit safe to use?
- It is MIT-licensed and scores 100/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is agent-readiness-audit still maintained?
- The repository was last updated 37 days ago, so agent-readiness-audit is actively maintained.
Skill content
View source on GitHubname: agent-readiness-audit description: "Audit agent readiness by script: AI-crawler rules, product schema, no-JS HTML, feeds. "can AI agents use our site"" argument-hint: "[site URL, or paths to robots.txt / HTML / feed exports]"
/digital-marketing-pro:agent-readiness-audit
Script location. If your host does not set
${CLAUDE_PLUGIN_ROOT}, the scripts are in this plugin'sscripts/folder, next toskills/. Run them with Python 3.10 or newer:python, orpython3wherepythonis not found (macOS, many Linux systems).
Purpose
Answer one question with evidence: can AI agents and AI crawlers use this site? Concretely, the audit checks five things:
- AI crawlers are allowed to reach the content.
- The content is in the HTML the server sends, so it does not depend on JavaScript running.
- Structured data says what the page is.
- The product feed is complete enough for AI shopping surfaces.
- Optionally, the site exposes agent tools (WebMCP).
Every check is deterministic and runs in scripts/agent-readiness-audit.py. The skill adds interpretation and the brand's policy decisions on top of the script's output; it never replaces that output with judgment.
What the primary sources say (checked 2026-10-04)
From Google's AI optimization guide (last updated 2026-07-10):
- No special files. Under the heading "Mythbusting generative AI search", Google lists "LLMS.txt files and other 'special' markup". It says "You don't need to create new machine readable files, AI text files, markup, or Markdown to appear in Google Search (including its generative AI capabilities), as Google Search itself doesn't use them." This skill never recommends llms.txt for Google.
- Structured data: "Structured data isn't required for generative AI search, and there's no special schema.org markup you need to add." The audit checks JSON-LD because it powers rich results (merchant listings, organization info), not because AI features require it.
- JavaScript: "Google is able to process content within JavaScript as long as it isn't blocked." The no-JS check is a robustness test: content that is already in the server HTML can be read by every crawler and agent, whether or not it runs JavaScript.
- Agents: browser agents may analyze screenshots, inspect the DOM structure, and interpret the accessibility tree. Hence the accessibility-basics check. Google names the Universal Commerce Protocol (UCP) as an emerging protocol.
AI crawler tokens (each verified on the vendor's own page)
| Token | Vendor | Role in the audit | What blocking it means (vendor's words, paraphrased) | Source |
|---|---|---|---|---|
| OAI-SearchBot | OpenAI | search: must be allowed | Site not surfaced in ChatGPT search features | OpenAI bots |
| ChatGPT-User | OpenAI | user fetch: must be allowed | User-initiated visits. OpenAI: robots.txt "may not apply" to these | same |
| OAI-AdsBot | OpenAI | ads: must be allowed if the brand runs ChatGPT Ads | Validates the safety of pages submitted as ChatGPT ads | same |
| GPTBot | OpenAI | training: policy | Content excluded from foundation-model training | same |
| Claude-SearchBot | Anthropic | search: must be allowed | Content not indexed for Claude's search results | Anthropic |
| Claude-User | Anthropic | user fetch: must be allowed | Claude can't retrieve the page for a user's question. Anthropic honors robots.txt for all three of its bots | same |
| ClaudeBot | Anthropic | training: policy | Future content excluded from training datasets | same |
| PerplexityBot | Perplexity | search: must be allowed | Not surfaced or linked in Perplexity results (Perplexity says it is not used for model training) | Perplexity bots |
| Perplexity-User | Perplexity | user fetch: must be allowed | Perplexity says this fetcher "generally ignores robots.txt rules" | same |
| Google-Extended | Google | training: policy | Controls use for Gemini training and grounding. It "does not impact a site's inclusion in Google Search nor is it used as a ranking signal", and it has no separate user-agent string | Google crawlers |
| Applebot-Extended | Apple | training: policy | Controls use in Apple foundation-model training. It does not crawl, and pages that disallow it "can still be included in search results" | Apple |
"Policy" means that blocking training crawlers is the brand's choice. The audit reports it as info unless the brand sets --training-policy allow|block, in which case a mismatch fails the check.
Inputs
All checks run offline on files the user exports. The script fetches over the network only with --fetch.
- robots.txt:
--robots FILE, or--site URL --fetch. Add--path /products/(repeatable) to test the paths that matter, beyond/. - Server HTML:
--html FILE(repeatable). Save it as the server sends it, for example withcurl -L URL > page.html, not "Save as" from a browser, which saves the post-JavaScript DOM. Add--expect "Product name"(repeatable) for text that must be in that HTML, such as a product name or price. - Merchant Center feed export:
--feed FILE(TSV, CSV, or RSS/Atom XML withg:attributes). - Agentic-commerce product feed (optional):
--acp-feed FILE. Accepts the JSONL "OpenAI format" or the Google-compatible CSV/TSV (spec). - WebMCP (optional, experimental):
--webmcp. - Brand policy:
--training-policy either|allow|block. The default,either, reports training-crawler rules without judging them.
Process
-
Load brand context. Read
~/.claude-marketing/brands/_active-brand.json, then~/.claude-marketing/brands/{slug}/profile.json.- From the profile, take the domain, whether the brand sells products (feed checks apply), and any stated AI-training policy (sets
--training-policy). - If no brand exists, ask: "Set up a brand first (/digital-marketing-pro:brand-setup)?" or proceed with the inputs the user gives.
- From the profile, take the domain, whether the brand sells products (feed checks apply), and any stated AI-training policy (sets
-
Collect inputs. Ask for exports first. If the user only has a URL, confirm they want a live fetch before using
--fetch. -
Run the audit.
python "${CLAUDE_PLUGIN_ROOT}/scripts/agent-readiness-audit.py" \ --robots robots.txt --path /products/ \ --html home.html --html product.html --expect "Acme Anvil" \ --feed products.tsv --acp-feed openai-feed.jsonl --webmcp \ --training-policy either --format json > "${CLAUDE_PLUGIN_DATA}/{brand}/seo/agent-readiness/{date}/02-audit.json"Live variant, used only when the user agreed to network access:
python "${CLAUDE_PLUGIN_ROOT}/scripts/agent-readiness-audit.py" --site https://example.com --fetch \ --page https://example.com/products/anvil --format jsonExit codes:
0: no check failed (warnings allowed)1: at least one check failed2: bad input (nothing to audit, a missing or unparseable file, a bad flag)
On
2, fix the input and re-run. Do not interpret a partial run. -
Interpret each check. Report the script's status per check:
pass,warn,fail,infoorskipped.- robots_ai_crawlers: a blocked search, user-fetch or ads bot is a fail. Name the bot and quote what blocking it costs, from the table above.
- structured_data:
- an unparseable JSON-LD block is a fail
- a Product without
offersis a warn, because merchant-listing rich results require name, image and offers (Google) - no Organization markup anywhere is a warn
- FAQPage is fine to keep, but Google shows FAQ rich results only for "well-known, authoritative government and health websites" (Google)
- no_js_render: a fail when visible text is below the floor (
--min-text, default 250 characters), when an app-shell root (#root,#__next,#app, ...) holds little text, or when an--expectphrase is missing from the server HTML. - accessibility_basics: warn only. Covers a missing
<html lang>, images without alt, unlabelled inputs, and unnamed buttons. - merchant_feed:
- Fail conditions:
- any required attribute is missing:
id,title,description,link,image_link,availability,price(product data spec) - an
availabilityvalue is outsidein_stock,out_of_stock,preorder,backorder - a
native_commerce(checkout_eligibility)value is not TRUE/FALSE
- any required attribute is missing:
native_commerce: report how many products opt into checkout on Google. Only listings withnative_commerce(checkout_eligibility)= TRUE show the "Buy" button. The feature is for select merchants, with products eligible in the US, Canada and Australia (Merchant Center help; UCP guide). The account-level return policy and customer-support contact can't be checked from a feed, so list them as manual checks.- Conversational attributes (
question_and_answer,document_link,related_product,item_group_title,variant_option,popularity_rank) are optional (help). Report their coverage; never fail on them.
- Fail conditions:
- acp_feed: optional. If supplied, missing required fields are a fail. Report the
is_eligible_search/is_eligible_checkoutcounts. - webmcp: always
info. WebMCP is a Chrome origin trial (from Chrome 149) and "under active discussion and subject to change" (Chrome docs). Report the declarativetoolname/tooldescriptionforms and the inlineregisterToolcalls found. Recommend nothing beyond "optional experiment".
-
Decide policy questions with the user, not for them. Two are the brand's call: whether to block training crawlers, and whether to opt products into checkout on Google. Present the trade-off and the source.
-
Prioritize fixes. Use the script's
recommendationsarray as the backbone.- Order by impact: blocked answer engines → content missing from server HTML → broken JSON-LD → feed required attributes → everything else.
- Route the work: rendering to
/digital-marketing-pro:tech-seo-audit, markup to/digital-marketing-pro:entity-audit, and visibility follow-up to/digital-marketing-pro:aeo-geo.
Numbered output convention
All outputs go to ${CLAUDE_PLUGIN_DATA}/{brand}/seo/agent-readiness/{YYYY-MM-DD}/:
00-input.md domain, which exports were supplied, fetch yes/no, training policy
01-inputs/ the robots.txt, HTML and feed files actually audited (for reproducibility)
02-audit.json raw script output
03-findings.md per-check status, findings, sources (with the 2026-10-04 check date)
04-policy-decisions.md training-crawler stance, checkout opt-in decision — with rationale
05-fix-plan.md prioritized fixes with owners and the skill each routes to
PLAN.md one-page summary: verdict, top 3 fixes, re-audit date
Quality scorecard
| Gate | Pass when |
|---|---|
| script_ran_clean | Exit code 0 or 1 (never 2). A 2 means the inputs were wrong, not the site |
| inputs_are_server_html | 00-input.md states the HTML was captured as served (curl or
Truncated for display — read the full file on GitHub.
Related Skills
Agent-Reach
97.3kGive your AI agent eyes to see the entire internet. Read & search Twitter, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu — one CLI, zero API fees.
headroom
75.4kCompress tool outputs, logs, files, and RAG chunks before they reach the LLM. 20% fewer tokens for coding agents, 60-95% fewer tokens for JSON, same answers. Library, proxy, MCP server.
Scrapling
87.6k🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl! Don't be shy, join here: https://discord.gg/EMgGbDceNQ and follow here for daily tips and tricks: https://x.com/Scrapling_dev
crawl4ai
85.5kOpen-source web crawler and scraper for LLMs and AI agents: any website into clean, LLM-ready Markdown. Run it yourself, or use Crawl4AI Cloud with one key.
Languages
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
