AVL conformance is intentionally layered so a site can become agent-readable in small, useful steps.
| Level | Required Signals | Purpose |
|---|---|---|
| L0 | @meta, @intent, and page-level discovery |
Agents can identify what a page is for. |
| L1 | L0 + @state |
Agents can read structured page data without scraping. |
| L2 | L1 + @actions |
Agents can understand available actions. |
| L3 | L2 + @context and @nav |
Agents can reason over meaning and traverse related views. |
- Response content type is
text/agent-view; version=1. @meta.vis present.@meta.routeis present.@meta.generatedis present.@intent.purposeis present.@intent.audienceis present.@intent.capabilityis present.
At least one discovery path is required for L0:
.agentURL suffix.Accept: text/agent-viewcontent negotiation.- HTML
<link rel="alternate" type="text/agent-view">. - HTTP
Linkheader. /agent.txtmanifest.
Recommended discovery stack:
/agent.txt/.agent- Per-page
/{path}.agent - HTML head alternate link.
- Crawlable body link or badge.
/llms.txtcompanion.
/agent.txt should include:
version.content-type.- producer/platform.
- discovery methods.
- route patterns.
- related companion resources where available.
- Public AVL documents must expose only public information.
- Authenticated AVL documents must inherit the same session and permissions as the human page.
@actionsmust only list actions available to the represented viewer.- External validation links must be user-initiated unless the plugin clearly discloses automatic calls.
The root package ships a first-party validator CLI:
npx @frontier-infra/avl validate https://example.com
npx @frontier-infra/avl validate https://example.com/pricing --level L2
npx @frontier-infra/avl validate-file ./samples/page.agent --jsonCheck groups:
document.*toon.*discovery.*manifest.*companion.*conformance.*
The initial validator checks required sections and fields, TOON list/table
shape, page-specific .agent discovery, /agent.txt, HTML discovery links,
and /llms.txt companion availability. Future versions should expand this
into schema, auth, action input, and provenance-specific checks.
Initial grammar and document fixtures live under:
specs/toon-grammar.md
specs/fixtures/valid/
specs/fixtures/invalid/
CMS plugins should verify:
/agent.txt./.agent./{path}.agent./llms.txtand/lm.txtwhere supported.- HTML discovery on public pages.
- Admin readiness checks.
- No automatic external calls without disclosure.
The WordPress plugin currently implements this pattern and should be treated as the reference CMS adapter.