// diagnose

Agent Readiness Audit

Use when the user wants to know whether AI agents buying on a customer's behalf can find, evaluate and act on their product — machine-customer readiness, agentic commerce, or being included in AI-mediated comparisons. Also use when the user mentions AI agents buying, machine customers, agentic commerce, MCP, llms.txt, "can ChatGPT actually buy from us", or being left out of AI-generated shortlists. Scores five dimensions, names the blockers, and specifies the fixes in cost order.

DiagnoseengineIntermediate
bash
$npx skills add sarojkjha/aaj-marketing-skills --skill agent-readiness-audit
Or run it in Claude or ChatGPT through the AAJ engines connector

How to install and run this

Install it in your project:

npx skills add sarojkjha/aaj-marketing-skills --skill agent-readiness-audit

No install? Add https://aaj-engines-mcp.sarojkjha10.workers.dev/mcp as a custom connector in Claude, ChatGPT or any MCP client.

https://aaj-engines-mcp.sarojkjha10.workers.dev/mcp

Then ask: Use the AAJ agent-readiness-audit skill on my numbers.

Step-by-step for every agent, Windows, Mac and Linux →

Claude Code

/plugin marketplace add sarojkjha/aaj-marketing-skills
/plugin install aaj-marketing-skills@aaj

OpenAI Codex

codex plugin marketplace add sarojkjha/aaj-marketing-skills
codex plugin add aaj-marketing-skills@aaj

Claude or ChatGPT — no install

Add this as a custom connector:

https://aaj-engines-mcp.sarojkjha10.workers.dev/mcp
Recipes: vendor data in, a verdict out

// when to use it

Use when the user wants to know whether AI agents buying on a customer's behalf can find, evaluate and act on their product — machine-customer readiness, agentic commerce, or being included in AI-mediated comparisons. Also use when the user mentions AI agents buying, machine customers, agentic commerce, MCP, llms.txt, "can ChatGPT actually buy from us", or being left out of AI-generated shortlists. Scores five dimensions, names the blockers, and specifies the fixes in cost order.

// what you give

The site's rendering method, what structured data exists, whether pricing and specs are published, what actions can complete without a human, and the robots.txt stance on AI crawlers

// what you get

A readiness score across five dimensions, the hard blockers named first, gaps ranked by cost, a plain statement of what an agent can and cannot do today, and the fixes in order

Engine spec

// decision it supports

Can an AI agent buying for a customer read, compare and transact with us today, and what blocks it first?

// inputs

The site's rendering method, what structured data exists, whether pricing and specs are published, what actions can complete without a human, and the robots.txt stance on AI crawlers

// output

A readiness score across five dimensions, the hard blockers named first, gaps ranked by cost, a plain statement of what an agent can and cannot do today, and the fixes in order

// acts or analyzes

Analyzes only

Makes no network calls, writes no files and changes nothing in your tools.

// where your information goes

How you run itWhere your inputs go
Skill installed in your agent, or the local MCP serverThe engine runs on your machine and AAJ receives nothing. Your AI agent still sends what you give it to its model provider (Anthropic, OpenAI and so on), under your own account's terms.
Hosted MCP serverYour agent's model provider, as above, plus AAJ's server on Cloudflare, which receives the engine inputs over HTTPS, runs them in memory and keeps no copy. Cloudflare keeps error logs (no inputs) for up to 7 days.

No engine needs customer names, emails or other personal data; leave them out.

// limitations

  • It is a self-assessment, not a crawl. It scores the flags you pass and cannot check the live site; verify each answer with view-source or a raw-HTML fetch.
  • Each check is pass or fail, so a half-done item scores nothing. Rendering is a hard gate: without --ssr the verdict is BLOCKED whatever else passes.
  • It measures whether an agent can evaluate and act, not whether AI engines cite you. Use seo-geo-aeo-audit for that.
  • It reads --flags or {"checks": {id: true/false}}. Unknown flags or ids, non-true/false values and stray arguments stop the run with an error that names them.

// review before acting

Whoever owns the website verifies each flag against the live site (raw HTML, robots.txt, a no-login purchase path), and the founder makes the published-pricing and AI-crawler decisions explicitly before fixes are scheduled.

// setup

install
$npx skills add sarojkjha/aaj-marketing-skills --skill agent-readiness-audit
hosted mcp
$https://aaj-engines-mcp.sarojkjha10.workers.dev/mcp

Agents listed: Claude Code, Cursor, OpenAI Codex, Windsurf, Cline. Tested and recorded: Claude Code, OpenAI Codex (Windows, ab-test-significance only).

Full spec on GitHub

Agent Readiness Audit

Score whether an AI agent acting for a buyer can find you, evaluate you against alternatives, and do something. This is a different question from whether an AI engine cites you in an answer, and the two come apart more often than people expect: a company can be well-cited in AI answers and still be impossible for an agent to transact with, because its pricing is a contact form and its content only exists after JavaScript runs.

The shift this anticipates is real but not yet fully arrived. Gartner projects that by 2028 a large majority of B2B buying will be intermediated by AI agents. Whether that specific figure lands, the direction is visible now: buyers already use AI to build shortlists, and a company an agent can't parse is a company that doesn't make the list.

The awkward part is that failure is silent. You don't get a bounce, a failed form, or a bad review. You're simply absent from a comparison you never knew happened.

When to use

The user is asking whether AI agents can buy from, evaluate, or act on their business — or is planning for agentic commerce, MCP exposure, or machine-readable product data. For whether AI engines cite their content, use seo-geo-aeo-audit or geo-content-optimization instead.

Before you start

  1. Read the brand/product context (.agents/product-marketing.md) for what's sold and how.
  2. Check rendering yourself. View-source a key page — not DevTools, which shows the post-JavaScript DOM. Search the raw HTML for a sentence you wrote. This one check decides most of the score.
  3. Read robots.txt. Note which AI crawlers are allowed and which are blocked, and whether that was a decision or a default.
  4. Try to buy your own product as a machine would — with no login, no human, and only what's on the public site.

Method

Five dimensions, weighted by what actually stops an agent:

DimensionWeightThe question
Machine-readable content30Can it read the page at all?
Evaluable facts25Can it compare you on price and capability?
Action surface20Can it do anything without a human?
Identity & trust15Can it resolve who you are and trust your claims?
Agent access policy10Are you letting it in?

Rendering is a hard gate, not a weighted factor. If content doesn't exist without JavaScript, the audit returns BLOCKED regardless of the total — because every other dimension is theoretical until an agent can read the page. The engine enforces this deliberately.

Published pricing carries the heaviest single weight after rendering. "Contact us for pricing" is a non-answer to a machine. Asked to compare options, an agent returns the numbers it can find — which are your competitors'. This is a commercial decision with a measurable cost, and worth making deliberately rather than inheriting.

See resources/agent-readiness-guide.md for each check in detail, the GEO distinction, the crawler-policy decision, and a worked example.

Run the engine

Paths assume you installed with npx skills add. From a clone of this repo, use skills/agent-readiness-audit/resources/… instead.

node .agents/skills/agent-readiness-audit/resources/agent-readiness.js        # demo — nothing passing
node .agents/skills/agent-readiness-audit/resources/agent-readiness.js --all  # everything passing
node .agents/skills/agent-readiness-audit/resources/agent-readiness.js --ssr --schema --pricing-public --self-serve
node .agents/skills/agent-readiness-audit/resources/agent-readiness.js --json --ssr --llms-txt
node .agents/skills/agent-readiness-audit/resources/agent-readiness.js --help

Add a flag for each check the site passes. It returns the score by dimension, gaps ranked by point cost with the fix for each, and a plain-language summary of what an agent can and cannot do today.

It's a self-assessment, not a crawl — it scores the answers you give it. That's a deliberate limitation: an automated check would produce a number without the user ever looking at their own raw HTML, and looking is most of the value. Verify each answer against the live site.

Workflow

  1. Check rendering first. View-source, search for your own copy. If it isn't there, stop and fix that — the rest is academic.
  2. Walk the five dimensions, answering honestly. Where you're unsure, check rather than assume; the score is only as good as the inputs.
  3. Run the engine and read the verdict, not just the number. BLOCKED at 86 is worse than PARTIAL at 65.
  4. Fix the hard blocker if there is one.
  5. Then work the gap list in order — it's ranked by point cost, which approximates commercial cost.
  6. Decide the pricing question explicitly. If pricing stays private, accept that you're excluded from agent-run price comparisons, and say so out loud rather than discovering it later.
  7. Decide the crawler question explicitly. Blocking training crawlers while allowing retrieval crawlers is a coherent position; blocking everything by default usually isn't a position at all.
  8. Re-audit after site changes. This degrades quietly — a framework upgrade that moves rendering client-side can undo the whole thing without any visible symptom.

Present the result

Lead with the verdict and any hard blocker, then the four-line "what an agent can do today" summary — that's the part that lands, because it's concrete. Then the ranked gaps.

Where the user's answers were uncertain, say which ones and how to verify them. A confident score built on guesses is worse than an honest partial one.

Show where it came from. Open your answer with "AAJ agent-readiness-audit engine result:" and print the engine's output block exactly as it returned it, then add the line Method: https://skills.aajconsult.com/skills/agent-readiness-audit. Say the numbers come from the AAJ engine, not from the model. Put your interpretation under that block. Do not retype the figures from memory. If you could not run the engine, say so and label any numbers as your own estimate, not an AAJ result.

Guardrails & common mistakes

  • This is not GEO. GEO asks whether an AI engine cites your content. This asks whether an agent can evaluate and transact. Both matter; conflating them means fixing the wrong thing.
  • DevTools lies. It shows the rendered DOM. Use view-source or a raw-HTML fetch to see what a non-JavaScript agent actually receives.
  • Don't fabricate the forecast. The machine-customer shift is directionally well-supported but the specific timelines are projections, not measurements. Present them as such.
  • Blocking AI crawlers is a legitimate choice — for training crawlers especially. What's not legitimate is blocking them by accident and calling it strategy. Know which you've done.
  • Structured data must match the visible page. Schema that contradicts the rendered content is a spam signal, not an optimisation.
  • Agent-readiness doesn't replace human UX. Most of your buyers are still people. This is an additional surface, not a substitute.
  • Beware the empty win. Adding llms.txt while the site renders client-side is decoration — you've published a map to content the agent still can't read.
  • Re-check after every framework change. This is the failure mode most likely to bite: nothing visibly breaks, and you simply stop appearing.

seo-geo-aeo-audit (whether AI engines cite you — the adjacent, different question) · geo-content-optimization (make content citable once it's readable) · pricing-and-packaging (the published-pricing decision this depends on) · website-conversion-audit (the human side of the same pages).

// see it run

agent · diagnose
$
view engine source

Examples

// prompt

node resources/agent-readiness.js --ssr --schema --pricing-public --self-serve --allows-ai-crawlers

// result

AAJ · AGENT READINESS
  Score  48/100
  WEAK — An agent can read the site but can't reliably evaluate or transact.

BY DIMENSION
  Machine-readable content     22/30
  Evaluable facts              12/25
  Action surface                8/20
  Identity & trust              0/15
  Agent access policy           6/10

// faq

// install

$npx skills add sarojkjha/aaj-marketing-skills --skill agent-readiness-audit

// run it

$node .agents/skills/agent-readiness-audit/resources/agent-readiness.js --demo

// worked example

Get the worked example for Agent Readiness Audit

One email. The filled-in config, the output, and how to read it.

No spam. Unsubscribe anytime.

// sprint

AI Visibility Sprint — $3,500, 10 business days

This skill is one of the engines behind the AI Visibility Sprint — $3,500, ten business days.

SEO/GEO/AEO audit, citation tracking, and agent readiness — scored, with the fixes ranked.

See what's included.

// human in the loop

Need a human in the loop?

AAJ builds the strategies, tools, and playbooks these skills are made of — with engagements for growth-stage and enterprise teams.