Install
openclaw skills install @highnoonoffice/agent-readyAudit any personal or brand site for AI agent discoverability and fix what is fixable — structured data, trust anchor pages, llms.txt, crawlability checks, and Ghost-specific deployment patterns. Ghost Pro native.
openclaw skills install @highnoonoffice/agent-readyA site is agent-readable when an AI agent — a browser-using assistant, a crawler-fed model, a research tool — can land on it, understand who runs it, and find the specific things it's looking for (contact info, a body of work, machine-readable facts about the owner) without a human translating for it. Most sites are not built with that reader in mind. This skill audits a site against a fixed checklist, tells you what's actually broken versus what only looks broken, and either fixes it directly or hands the fix to a coding agent when the fix requires touching a git-managed codebase.
This skill is written for three cooperating agents:
The orchestrator never edits repository files itself. The coding agent never touches CMS credentials or executes browser sessions. That boundary is enforced by Gate 5 below, not by convention.
<skill_gates version="1.0" mode="mandatory_pre_execution" evaluation="sequential" on_violation="stop_and_report">
About to execute any agent-readiness improvement Have I run the Ora audit at https://ora.sh this session and have the scored report in context? Proceed. Stop. Run the audit first. Never execute fixes from memory or a previous session report. About to create or update any public-facing page (about, contact, privacy, llms.txt) Has the owner read and explicitly approved the exact copy that will be published? Proceed. Stop. Show the copy verbatim. Wait for approval. Never publish unreviewed copy. About to write to Ghost code injection head or footer Have I fetched and read the current head injection content this session before appending? Proceed. Stop. Fetch first. Append-only — never overwrite. Just completed any improvement step Have I verified the change is live via curl or browser snapshot before moving to the next item? Proceed. Stop. Verify first. API 200 does not mean live and correct. The fix requires modifying a file in a git repo (theme files, edge config, redirect logic in code) Am I handing this to the coding agent via a structured handoff block rather than executing it myself? Proceed. Stop. The orchestrator does not modify repo files directly. Write the spec block, not the code.</skill_gates>
Every gate is hard and sequential within its scope: session_start gates block everything downstream, pre_publish and pre_inject gates block the single step they guard, and post_execute repeats after every improvement, not just the last one. If a gate fails, stop and resolve it before continuing — do not work around it, and do not treat a previous session's pass as still valid.
Several tools audit agent-readiness from different angles. Run more than one — they catch different things.
Ora — https://ora.sh
Primary tool for this skill. Returns a scored 0–100 report with Essential and
Recommended findings, each with evidence and a recommended fix. Run this first every
session. See references/ora-scoring-guide.md for score interpretation.
llmstxt.cloud — https://llmstxt.cloud Validates your llms.txt specifically — checks that it exists at the expected path, parses correctly, and follows the emerging convention. Run this after completing checklist item 3.
Google Rich Results Test — https://search.google.com/test/rich-results Validates JSON-LD structured data against Google's rich result types. Run this after completing checklist item 2. Paste the live URL, not the raw JSON — it needs to test the actual embedded block.
Schema.org Validator — https://validator.schema.org Broader vocabulary coverage than the Rich Results Test. Use for schema types Google's tool doesn't specifically support (SoftwareApplication in some configs). Also paste the live URL.
web.dev/measure (Lighthouse) — https://web.dev/measure General page quality audit including some crawlability signals. Less agent-specific than Ora but useful for catching content-without-JS issues independently. Run if checklist item 5 needs deeper investigation.
No single tool covers everything. Ora drives the session. The others verify specific steps.
A report from an earlier session is stale the moment any change has been made to the site since; re-run rather than trusting memory of a prior score — see Gate 1.
Read references/ora-scoring-guide.md for how to interpret the Ora score and which
findings are platform limitations versus real gaps before acting on the report.
Work the list in order. Each item states what it means, whether to act on it directly, investigate before acting, or skip it outright, plus execution and platform notes.
/about, /contact, /privacy)What it means: These are the pages an agent (or a human it's assisting) checks to
verify a site is run by a real, identifiable entity. A missing or thin /about page is
one of the most common reasons a site reads as low-trust to both agents and search
crawlers.
Action: Do — this is directly fixable in one session.
Execution notes:
?source=html.What it means: A Person schema block in the page's structured data gives agents
and search engines a machine-readable identity record: who the site belongs to, and
where else that identity is verifiable.
Action: Do.
Execution notes:
@type: Person, name, url, description, and a sameAs array
listing public profile URLs (social platforms, publication bylines, any page that
independently confirms the identity).curl -s https://yourdomain.com | grep -o 'application/ld+json'What it means: A plain-text file at a well-known location that gives agents a direct, structured summary of the site — who runs it, what to expect, where to look for specific things — without needing to parse HTML.
Action: Do.
Execution notes:
llms.txt, which Ghost serves
at /llms.txt/. Self-contained, no additional infrastructure./llms.txt at the raw URL. Use this only when the content needs to live in
version control for other reasons (e.g., it's generated from repo content).curl -s https://yourdomain.com/llms.txt/ and confirm real content
comes back, not a 404 or a redirect loop.references/llms-txt-templates.md for section-by-section templates by site type.What it means: AI.txt is the IAB Tech Lab's emerging standard for AI content
licensing declarations — it tells AI systems what they are and are not permitted to do
with your content (train on it, summarize it, reproduce it). Distinct from
llms.txt, which is about discoverability and routing. AI.txt is about rights and
permissions.
Action: Optional — not yet scored by Ora or enforced by any major AI system. Worth knowing about and worth adding if you have a position on AI training use of your content.
Execution notes:
/ai.txt at the site root — same placement convention as robots.txt.llms.txt: use a Ghost page with slug ai.txt
or a redirect rule pointing to a hosted file.What it means: Ora may separately flag organization-level structured data. For a personal or single-owner brand site, this is not a distinct build — it folds into the Person schema from item 2.
Action: Fold into item 2 — no separate action if that step was done correctly.
Execution notes:
sameAs array on the Person schema rather than building a parallel
Organization block.contactPoint and address are business/organization fields — skip these for
personal sites; they don't apply and adding them without real data creates bad
structured data, which is worse than none.What it means: Whether the page's core content is present in the raw HTML response, or only appears after client-side JavaScript runs. Agents and crawlers that don't execute JavaScript only see the former.
Action: Investigate before acting.
Execution notes:
curl -s https://yourdomain.com | python3 -c "import sys; h=sys.stdin.read(); print(len(h), 'chars'); print('H1 found' if '<h1' in h.lower() else 'NO H1')"
What it means: Whether specific named crawlers/agents (e.g., ChatGPT-User, ClaudeBot, Google-Extended, and others Ora checks by name) can reach the site.
Action: Skip / informational only.
Execution notes:
What it means: Whether a nonexistent path returns a real 404 (helpful — an agent can tell the page doesn't exist) versus something that looks like content but is a broken or infinite response (unhelpful — an agent may treat it as real).
Action: Investigate before acting.
Execution notes:
curl -s -o /dev/null -w "%{http_code}" https://yourdomain.com/path-that-does-not-exist
200 on a path that shouldn't
exist. If it correctly returns 404, there's nothing to fix regardless of what the
automated report says.What it means: Whether the owner's name or brand reliably surfaces in search and agent-facing retrieval when queried directly.
Action: Skip — not actionable in a single session.
Execution notes:
What it means: Serving a markdown version of a page to clients that request it
(via Accept header content negotiation), so agents that prefer structured markdown
over HTML can get it directly.
Action: Skip for Ghost Pro.
Execution notes:
Ora does not save history. Log your score each session so you can see progress over time.
Add a simple table to a markdown file in your vault or repo — one row per session:
| Date | Score | Items completed this session | Remaining ceiling items |
|---|---|---|---|
| YYYY-MM-DD | 51 | baseline | all |
| YYYY-MM-DD | 57 | trust pages, JSON-LD, llms.txt | markdown negotiation, WAF |
| YYYY-MM-DD | 65 | — | markdown negotiation, WAF |
Two things to log beyond the score:
A score that stops moving is usually one of two things: all fixable items are done, or a fixable item was missed. The log tells you which.
Ghost Pro's managed hosting draws a hard line between what an integration token can do and what requires an authenticated browser session. Get this wrong and steps fail with a 403 that has nothing to do with the token being invalid.
updated_at value and include it in the PUT body. Omitting it returns a 409
conflict, not a helpful error — this is the single most common avoidable failure in
this workflow.Full API patterns, request shapes, and the browser login flow step by step are in
references/ghost-deployment.md.
The orchestrator hands off to a coding agent — rather than attempting the fix itself — whenever the fix requires modifying a file that lives in a git-managed repository. This is Gate 5, and it is not optional: the orchestrator does not have a code editor, does not open pull requests, and should not attempt either.
Hand off when the fix involves:
.hbs file modifications/llms.txt (or any other agent-facing file) from an edge function on a
domain that isn't Ghost Pro itselfrobots.txt changes — not exposed for editing on Ghost ProHandoff format: a structured [AGENT_HANDOFF] block, matching the Ping Pong
protocol — the orchestrator writes the spec, the coding agent builds against it and
opens a PR, and the orchestrator reviews the PR that comes back. The orchestrator never
writes the code itself and never bypasses this by inlining a code change into the
conversation.
Full handoff templates for each trigger type, and the review checklist the orchestrator
runs against a returned PR, are in references/codex-handoffs.md.
references/ora-scoring-guide.md — how to read the Ora score, tier definitions,
which findings are platform limitations, which are common false positives, score
interpretation.references/ghost-deployment.md — full Ghost Pro API and browser-session patterns
for this skill.references/json-ld-templates.md — Person, Organization, and SoftwareApplication
schema templates, plus validation tools.references/llms-txt-templates.md — llms.txt templates by site type, with file
location tradeoffs.references/codex-handoffs.md — handoff templates by trigger type and the PR review
checklist.references/verification-commands.md — every curl/shell command used across the
checklist, collected for quick reference during Gate 4 verification.