af agentic-first

Adoption · v0.1.0

Publish your profile. Take your data back.

The whole point of the standard is that you own the source of truth - not a broker, not a directory, not a scraper. Your website already exists. The agentic-first profile is one small file you publish on it. There are three ways to publish it and three ways to author it. Pick the combination that fits your stack.

On this page
  1. Why publish at all
  2. Three ways to publish (file / embed / inline)
  3. Three ways to author (agent / Claude / Codex)
  4. Reading other people's profiles (consumer skills)
  5. A short note on trust & prompt injection
  6. What to do once it's live

Why publish at all

Right now, the canonical answer to "who is this company?" that an investor agent or buyer agent will see is whichever data broker its operator happens to subscribe to. That broker decides what's in your record, what's missing, what's stale, who can see it, and what it costs them to find out. You have no edit access, no canonical URL, and no way to mark a claim as evidenced versus assumed.

This is a tax on every company. A small one for well-known names; a large one for everyone else. Publishing an agentic-first profile on your own domain is how you opt out: the file you serve is the file the directory indexes is the file the agent reads. No middleman, no licence fee, no mystery score.

The shape of the deal

You publish one small JSON file on your own website. The agentic-first directory finds it, validates it, and indexes it for free. Anyone with an MCP-aware client can search and read it for free. Precise figures and NDA-bound detail stay behind your own auth, on your own server. The standard is open (Apache-2.0). Nobody monetises your record except you.

Three ways to publish

Pick whichever your platform supports most easily. The directory tries them in this order on submission and uses the first one it finds.

1 · The file (canonical, recommended)

A static JSON file at the well-known URL on your domain:

https://your-domain.example/.well-known/agentic-profile.json

This is the canonical mode. Every host that lets you upload a file to a path supports it (Vercel, Netlify, Cloudflare Pages, Apache, Nginx, Caddy, GitHub Pages, S3+CloudFront, Vercel/Next, Astro, SvelteKit, Hugo, Jekyll, …). Set Content-Type: application/json and you're done.

Step-by-step recipes for every common host →  ·  Spec-level hosting notes →

Covers Vercel, Netlify, Cloudflare Pages, GitHub Pages, S3+CloudFront, Azure Static Web Apps, Apache / Nginx / Caddy, every static-site generator (Next.js, Astro, SvelteKit, Hugo, Jekyll, Eleventy, Gatsby, Docusaurus, Nuxt), every popular CMS (WordPress, Squarespace, Wix, Webflow, Ghost, Shopify, Notion-via-wrappers, Carrd), and constrained hosts (Google Sites, Linktree, Substack, Medium) via the universal Cloudflare Worker recipe.

2 · The embed (HTML data island, JSON-LD style)

If you can edit your home page's HTML but can't add a file under /.well-known/ (looking at you, Squarespace, Wix, Webflow free tier), embed the same JSON inside a <script> block on your home page. The directory looks for it whenever the well-known file is missing.

<!-- Drop this in your <head> or just before </body> -->
<script type="application/agentic-profile+json">
{
  "schema_version": "0.1.0",
  "updated_at": "2026-04-19T00:00:00Z",
  "profile_kind": "company",
  "tier": "public",
  "company": {
    "name": "Your Company",
    "website": "https://your-domain.example",
    "jurisdiction": "GB"
  }
}
</script>

Pair it with a <link> tag for explicit discovery so agents and the directory can find it without parsing the page:

<link rel="agentic-profile"
      type="application/json"
      href="/.well-known/agentic-profile.json">

This works on every CMS that lets you inject a snippet of HTML into <head> or a code block.

3 · The inline fallback (XML-style data block)

If your platform won't let you set a JSON Content-Type and won't let you embed a <script> tag (some Squarespace templates, some closed publishing platforms), an XML data block inside a normal HTML element is the last resort. The directory's parser accepts it and converts to JSON server-side.

<div hidden id="agentic-profile" data-format="xml">
  <agentic-profile version="0.1.0" kind="company" tier="public">
    <company>
      <name>Your Company</name>
      <website>https://your-domain.example</website>
      <jurisdiction>GB</jurisdiction>
    </company>
    <updated_at>2026-04-19T00:00:00Z</updated_at>
  </agentic-profile>
</div>

The XML form mirrors the JSON one-for-one. It exists because every web host on earth lets you put a chunk of HTML on a page; not all of them let you put a JSON file at a specific path. Use it only if the first two modes don't work - JSON is the canonical wire format.

ModeWhere it livesBest forCaveat
File (canonical) /.well-known/agentic-profile.json Vercel, Netlify, Cloudflare Pages, GitHub Pages, any Apache/Nginx/Caddy site, S3+CDN, static-site generators None. This is the spec.
Embed (data island) <script type="application/agentic-profile+json"> on your home page Squarespace (Code Block), Wix (Custom Code), Webflow (Embed), most CMS-hosted sites Adds a few KB to your home page weight.
Inline XML (last resort) Hidden <div data-format="xml"> block Templates that strip <script> tags or re-encode JSON The directory parses it but flags a soft warning to upgrade to mode 1 or 2 when possible.

Three ways to author your profile

You don't need to write the file by hand. Hand it off to whatever AI agent you already use. Each guide takes the same end-to-end path: gather the facts, pick the tier, validate against the canonical schema, output a file you can publish in any of the three modes above.

01

Generic agent prompt

A self-contained system-prompt + workflow you can drop into any chat agent (ChatGPT, Gemini, your own RAG app, your custom assistant). Browser-only, no install.

02

Claude Skill

A SKILL.md for Claude Desktop / Claude Code. Trigger with "help me publish my agentic-first profile" and it walks you through it interactively.

03

Codex Skill

A SKILL.md for Codex CLI. Same workflow as the Claude skill, but tuned for the OpenAI Codex runtime and its tool-use conventions.

Want to wire it into Cursor or another runtime? The same SKILL.md shape works under ~/.cursor/skills/ and most other skills-aware agents - same frontmatter, same prose. The skill is the standard; the runtime is yours to pick.

Reading other people's profiles

The three skills above are for publishers. The three skills below are the inverse: for readers - any AI agent that needs to look up a company in the directory, fetch its canonical /.well-known/agentic-profile.json, run a structured diligence sweep, or negotiate access to a publisher's protected (private MCP) tier. Same shape (Claude / Codex / generic prompt), same prompt-injection guardrails, pointed at the read tools rather than the write tools on the directory MCP.

04

Reader hub

One landing page covering all three reader-skill runtimes (Claude, Codex, generic). Same workflow: directory search → well-known fetch → diligence sweep → protected-tier negotiation, with the safe-handling pattern wired in.

05

Claude reader skill ↓

Drop-in SKILL.md for ~/.claude/skills/agentic-first-reader/. Trigger with "look up acme on agentic-first".

06

Codex reader skill ↓

Codex CLI variant - adds shell + filesystem write so the diligence sweep is saved to ./diligence/{domain}.md for later attachment to a deal-room or memo.

Generic agent prompt for ChatGPT / Gemini / Cursor chat / anything else with a system-prompt field: agent-prompt.md ↓. Full install instructions on the reader hub.

A short note on trust & prompt injection

An agentic-first profile is publisher-controlled free text being served to AI agents. That's a real attack surface - the same one every other piece of LLM-readable content has. We treat it like HTML: assume any field a human typed could try to hijack the agent reading it. The standard, the directory, and the published skills are all designed with that in mind.

Full details, including the patterns the directory rejects and the handling agents are expected to follow, are on the security page.

What to do once it's live

  1. Verify it loads at the URL you expect (open it in a browser; check the response is JSON).
  2. Submit your domain to the directory:
    curl -sS -X POST https://directory.agentic-first.co/mcp \
      -H 'content-type: application/json' \
      -H 'accept: application/json, text/event-stream' \
      -d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
           "params":{"name":"submit_website",
                     "arguments":{"domain":"your-domain.example"}}}'
    or call submit_website from any MCP-aware client (Claude Desktop, Cursor, Codex) pointed at https://directory.agentic-first.co/mcp.
  3. If you ran a protected tier too: point your private MCP at it and add the URL to contact.private_mcp on your public profile.
  4. Tell us. hello@agentic-first.co - we maintain a list of early publishers on the home page.
Start with the generic agent prompt Read the spec first Security & prompt-injection guidance