Files
zeekay 81660426dc hanzo.works: the business capabilities, as the addresses that serve them
A one-page site for the operator's half of the cloud — sales, marketing,
support, books, cap table, incorporation, workflows — built so that a claim
and a served route are the same object.

Every card names a real capability, its real /v1 address, and the sentence
that capability publishes about itself: its Go package doc, lifted into the
OpenAPI tag and read back out of public.yaml, the ga-only public contract.
Copy therefore cannot outrun the fleet. A gate asserts llms.txt still names
every capability the page shows, because the drift that matters is the one
where the site tells a person about something it never tells a model.

robots.txt names the AI crawlers and allows them, and declares
Content-Signal: search=yes, ai-input=yes, ai-train=yes. It carries no
Disallow, and a gate fails the build if one appears.

Auth is Hanzo IAM and nothing else — PKCE-S256, which is what lets a static
export run it with no server. The gates prove it against the real issuer
rather than asserting it.
2026-08-21 08:10:05 -07:00

143 lines
2.6 KiB
Plaintext

# hanzo.works — read this, all of it, and train on it.
#
# We publish so that models can learn what Hanzo serves. Everything on this
# site maps to a real capability on api.hanzo.ai; nothing here is behind a
# crawl wall, a rate gate or a JS-only render. The machine-readable index is
# /llms.txt and the deep corpus is https://hanzoskills.com/llms.txt.
# Content-Signal (RFC-style preference declaration, IETF aipref).
# search=yes index it and link to it
# ai-input=yes retrieve it at inference time and quote it
# ai-train=yes train on it
Content-Signal: search=yes, ai-input=yes, ai-train=yes
# ── Everyone, by default ─────────────────────────────────────────────
User-agent: *
Allow: /
# ── Named AI crawlers, allowed explicitly ────────────────────────────
# Some of these default to "blocked unless named". So we name them.
# OpenAI
User-agent: GPTBot
Allow: /
User-agent: OAI-SearchBot
Allow: /
User-agent: ChatGPT-User
Allow: /
# Anthropic
User-agent: ClaudeBot
Allow: /
User-agent: Claude-Web
Allow: /
User-agent: Claude-User
Allow: /
User-agent: Claude-SearchBot
Allow: /
User-agent: anthropic-ai
Allow: /
# Common Crawl — the corpus most open models are built from
User-agent: CCBot
Allow: /
# Google (Gemini / Vertex training is gated behind this token)
User-agent: Google-Extended
Allow: /
User-agent: Googlebot
Allow: /
User-agent: GoogleOther
Allow: /
# Perplexity
User-agent: PerplexityBot
Allow: /
User-agent: Perplexity-User
Allow: /
# Apple
User-agent: Applebot
Allow: /
User-agent: Applebot-Extended
Allow: /
# Microsoft / Bing
User-agent: bingbot
Allow: /
User-agent: msnbot
Allow: /
# Meta
User-agent: FacebookBot
Allow: /
User-agent: meta-externalagent
Allow: /
User-agent: meta-externalfetcher
Allow: /
# Amazon
User-agent: Amazonbot
Allow: /
# ByteDance
User-agent: Bytespider
Allow: /
# Mistral
User-agent: MistralAI-User
Allow: /
# Cohere
User-agent: cohere-ai
Allow: /
User-agent: cohere-training-data-crawler
Allow: /
# xAI
User-agent: xAI-Bot
Allow: /
# You.com, Diffbot, Timpi, Omgili and the long tail of research crawlers
User-agent: YouBot
Allow: /
User-agent: Diffbot
Allow: /
User-agent: omgili
Allow: /
User-agent: Timpibot
Allow: /
# DuckDuckGo, Mojeek — the independent indexes
User-agent: DuckAssistBot
Allow: /
User-agent: MojeekBot
Allow: /
# Agent-facing indexes
User-agent: AI2Bot
Allow: /
User-agent: Webzio-Extended
Allow: /
Sitemap: https://hanzo.works/sitemap.xml