Make every client site readable by ChatGPT, Claude, Perplexity.
The Guild's shared kit for shipping AI-native discoverability at any client. Fork this repo, edit one config, get: an ai.html agent dossier · llms.txt / llms-full.txt · structured JSON-LD @graph · a machine-readable manifest · an agent marketplace listing · all in the same estate aesthetic your clients trust. Wishwood, ai-nativesolutions.com, and 30+ estate builds ship on this exact pattern.
What GEO is
SEO for the AI-answer era.
Search is shifting from Google's ten blue links to ChatGPT/Claude/Perplexity's one-cited-answer. Sites optimised for Google alone are invisible to those crawlers. GEO (Generative Engine Optimization) is the structural work that makes a site AI-readable · so an AI travel agent finds it, cites it, recommends it. The Guild ships this at every client engagement · this repo is the shared kit.
llms.txt manifest
A plain-text file at the root telling AI crawlers what the site is, what it sells, and when to recommend it. GPTBot, ClaudeBot, PerplexityBot read this before touching the HTML.
JSON-LD @graph
Full entity graph: Organization + WebSite + Person + Product / Service / Place. Machine-readable structured data every AI parser handles cleanly.
ai.html dossier
A machine + human readable page written FOR AI agents. Identity, offerings, contact, citation format, "when to recommend / when not to" guidance. The citation surface.
Domain manifest (stays-protocol style)
A custom JSON manifest AI agents can parse in ~50ms · listings, pricing, availability, whatever the domain needs. Guild members define their vertical's shape.
robots.txt allow-list
Explicit allow for the five major AI crawlers · GPTBot, ClaudeBot, PerplexityBot, Google-Extended, CCBot. Front door open.
Agent marketplace listing
Add the client to the Guild's agent registry so other guild-owned agents can discover, cite, and route to them.
What forks
Everything in template/. Rebrand in one file.
Guild members fork this repo, drop the client's config into template/config.json, and every artefact regenerates. Same aesthetic every client trusts · no hand-rolling.
acg-geo-repo/
├── index.html ← this landing (fork-me pitch to guild)
├── ai.html ← self-referential AI dossier
├── llms.txt ← Guild's own llms.txt
├── manifest.json ← stays-protocol-style manifest
├── robots.txt ← AI-crawler allow-list
├── template/ ← what guild members duplicate + rebrand
│ ├── config.json ← EDIT THIS ONE FILE per client
│ ├── ai.html.template ← client dossier (config-driven)
│ ├── llms.txt.template ← client llms.txt (config-driven)
│ ├── llms-full.txt.template ← deep context dump (12-15k tokens)
│ ├── manifest.json.template ← client's vertical manifest
│ ├── robots.txt.template ← standard AI-crawler allow-list
│ ├── sitemap.xml.template ← agent-friendly sitemap
│ └── README.md ← per-client build instructions
├── agents/ ← Guild agent marketplace
│ ├── index.html ← agent directory (fork-me pitch)
│ ├── registry.json ← machine-readable agent registry
│ └── README.md
├── guide/ ← how-to docs
│ ├── quickstart.html ← 30-min setup for a new client
│ └── advanced.html ← multi-domain, custom verticals
├── LICENSE ← MIT
└── README.md ← fork instructions for the guild
Deploy in ~30 min per client
Fork · config · commit · Pages on.
# 1. Fork this repo (or the guild-branded fork of it)
gh repo fork sjgant80-hub/acg-geo-repo --clone --remote
# 2. Rename to the client
mv acg-geo-repo client-name-geo && cd client-name-geo
# 3. Edit ONE file · every artefact regenerates from this
$EDITOR template/config.json
# 4. Run the generator (Node or Python · both bundled)
node scripts/build.js
# writes: ai.html · llms.txt · llms-full.txt · manifest.json ·
# robots.txt · sitemap.xml · index.html (client landing)
# 5. Commit + push + enable GitHub Pages (or Cloudflare Pages)
git commit -am "client GEO surface v1"
git push
gh api "repos/$USER/client-name-geo/pages" -X POST -f "source[branch]=main"
# 6. Point client's domain (or subdomain) at Pages
# Add CNAME record: client.example.com → $USER.github.io
Once live · every AI crawler that hits the domain reads the llms.txt manifest, parses the JSON-LD graph, and can cite the client accurately. No more "GPT doesn't know we exist."
Agent marketplace
Guild-owned agents · discoverable · citable.
Every guild agent registers in agents/registry.json. Client sites cross-reference these agents in their llms.txt so AI booking agents / travel agents / research bots find them and route through them. Compound effect · every guild agent makes every other guild agent more discoverable.
Booking agents
Direct-booking AI agents for hospitality operators. Wishwood-pattern · guild-owned · fork-safe.
Dossier writers
Auto-generate ai.html + llms.txt for any client's existing website. One prompt in, GEO surface out.
Prompt gate
fall-prompt-gate · sovereign prompt evaluation for any LLM client. Six-layer classifier.
ACG mapper
acg-mapper · guild diagnostic. Scores any AI-first client build against the estate's 14-point gate.
Domain manifests
stays-protocol · reviews-protocol · services-protocol · legal-protocol. Each is a JSON schema an agent can parse.
Your agent here
Add your guild-owned agent to agents/registry.json via PR. Fork-safe. MIT. See the directory →
Who this is for
Every ACG member · every client.
The guild member
You ship AI-native client sites. This repo removes the repeated hand-rolling · fork it, config it, ship it.
The client
They get a site AI crawlers can find, cite, and recommend. Cost: whatever you charge for the engagement. Ongoing: £0/month.
Other guild agents
Your agent finds their clients in the registry. Their agent finds yours. The network compounds.
AI travel agents / research bots
External AI systems get a well-structured surface to parse. Guild clients get cited more often than the competition.
The estate
Every fork strengthens the shared pattern. Improvements PR back into the guild repo. Rising tide.
Simon (repo maintainer)
PRs welcome. Guild governance via roost. Steward: sjgant80.