---
layout: ../layouts/Base.astro
title: AI Standards · Jesse Anderson
description: Every machine-readable surface this site exposes, with live links.
slug: for-agents
navLabel: For-Agents
navOrder: 5
summary: every machine-readable surface this site exposes
---

<main class="standards">

  <header class="page-header">
    <p class="eyebrow">AI standards.</p>
    <h1>
        My life is agents now.<br />So my site is <span class="accent">built for them</span>.
    </h1>
  </header>

<section class="standards-block">
    <h2 class="section-title">Surfaces.</h2>
    <ul class="standards-list">
        <li class="standards-item">
            <h3>Per-page Markdown source</h3>
            <p>Every published content page has HTML and Markdown views: <code>/</code> pairs with <code>/index.md</code>; append <code>.md</code> to other page paths. Skip the DOM, read the prose. Review-only prototypes are not part of this publication list.</p>
            <p class="example">Try: <a href="/about.md"><code>/about.md</code></a></p>
        </li>
        <li class="standards-item">
            <h3>/llms.txt and /llms-full.txt</h3>
            <p>A curated plaintext sitemap (Answer.AI's convention) and a one-shot ingest of every page's Markdown.</p>
            <p class="example">Try: <a href="/llms.txt"><code>/llms.txt</code></a> · <a href="/llms-full.txt"><code>/llms-full.txt</code></a></p>
        </li>
        <li class="standards-item">
            <h3>MCP server</h3>
            <p>The site's content is exposed as MCP tools at <code>/api/mcp</code>: <code>list_pages</code>, <code>get_page</code>, <code>search</code>, <code>get_now</code> (the current published overview: a dedicated now page if present, otherwise home). The descriptor at <code>/.well-known/mcp.json</code> lets MCP-aware clients auto-discover it.</p>
            <p class="example">Try: <a href="/.well-known/mcp.json"><code>/.well-known/mcp.json</code></a> · <a href="/openapi.json">API contract</a>. Or POST a JSON-RPC envelope:</p>
            <pre>{`curl -X POST https://jesselanderson.com/api/mcp \\
  -H 'Content-Type: application/json' \\
  -d '{ "jsonrpc":"2.0", "id":1, "method":"tools/list" }'`}</pre>
        </li>
        <li class="standards-item">
            <h3>JSON-LD on every published content page</h3>
            <p>Person, Organization (Kora Labs, PapaGoose), WebSite, WebPage. Embedded in each page <code>&lt;head&gt;</code> as <code>&lt;script type="application/ld+json"&gt;</code>.</p>
            <p class="example">Inspect: view source on any page and search for <code>application/ld+json</code>. Or fetch a page and pipe through <code>grep -A 60 'ld+json'</code>.</p>
        </li>
        <li class="standards-item">
            <h3>Page metadata</h3>
            <p>Each page exposes a title, description, slug, and <code>content_hash</code> (sha256 of the Markdown source). The MCP server returns those via <code>list_pages</code> and <code>get_page</code> so a client can cache and re-validate.</p>
            <p class="example">Try:</p>
            <pre>{`curl -X POST https://jesselanderson.com/api/mcp \\
  -H 'Content-Type: application/json' \\
  -d '{ "jsonrpc":"2.0", "id":1, "method":"tools/call", "params":{ "name":"list_pages" } }'`}</pre>
        </li>
        <li class="standards-item">
            <h3>/agents.md</h3>
            <p>The agent-facing operating manual for this site. It documents the MCP endpoint, the rule about preferring the <code>.md</code> source over the rendered HTML, and the rate-limit posture.</p>
            <p class="example">Try: <a href="/agents.md"><code>/agents.md</code></a></p>
        </li>
        <li class="standards-item">
            <h3>robots.txt with explicit AI directives</h3>
            <p>Allow or deny per crawler. The major AI assistants (ClaudeBot, GPTBot, PerplexityBot, OAI-SearchBot, ChatGPT-User, Google-Extended, Applebot-Extended, meta-externalagent) are allowed. Bytespider is denied.</p>
            <p class="example">Try: <a href="/robots.txt"><code>/robots.txt</code></a></p>
        </li>
    </ul>
</section>

<section class="standards-block">
    <h2 class="section-title">Why.</h2>
    <p>
        I think coding is getting <span class="accent">replaced by AI</span> faster than the rest of the stack is catching up. 
        I'd rather <span class="accent">invest in standards</span>, architecture, and machine-legibility than chase ergonomic frameworks for humans. 
        Agents should have first-class access to what's on this site. 
        Engineers should be able to look at the same plumbing and <span class="accent">decide for themselves</span> whether I know what I'm doing.
    </p>
    <p>HTML stays crawlable: project descriptions and links are server-rendered, with a no-JavaScript reading fallback; no model needs to run to read them. Canonical HTML URLs are listed in <a href="/sitemap.xml">sitemap.xml</a>; each page declares its Markdown alternate and share metadata. Markdown responses also identify their preferred HTML canonical.</p>
    <p>The homepage keeps the signature constellation and thin header/footer only, with project details behind its orbit links. Its Markdown view summarizes the reviewed public facts without adding an extra visible SEO section. Experimental local AI replies are not canonical content and are never added to Markdown or MCP responses.</p>
    <p>Stack: vanilla Astro (no UI-framework integrations), a Lambda backend, no React, no TypeScript.</p>
</section>

</main>
