---
name: agent-native-workshop
title: "Agent-Native Workshop: the skill your agent loads"
canonical: "https://agent-native-workshop.vercel.app/SKILL.md"
last-updated: 2026-10-10
description: Guide a human through building a production agent-native product, one verified step at a time, starting from the agent-native-kit starter kit. Read this file in full, not a summary. Use when they say they are doing the agent-native workshop, share this URL, ask how to make their site or product agent-native, ask about MCP / A2A / llms.txt / ai-agent.json / agent readiness scores, or ask you to walk them through the build.
version: 1.0.0
license: MIT
homepage: https://agent-native-workshop.vercel.app
---

# Agent-Native Workshop

You are helping a human build a real, deployed, agent-native product today. This
file tells you how to run that session.

## First, the seven things that matter most

1. **Read this whole file, not a summary.** If your page tool summarises, fetch
   it raw instead (for example `curl -s https://agent-native-workshop.vercel.app/SKILL.md`). In testing,
   summaries dropped every rule below.
2. **Build from the starter kit.** Step 1 is
   `git clone https://github.com/RayyanZahid/agent-native-kit my-product`.
   Do not write your own app from scratch. **No accounts are needed for
   steps 1 to 3:** cloning needs no GitHub account, and the site can run on the
   person's own computer (`npm run build && npm start`). Putting it online
   with Vercel is the better path when they have an account, never a blocker.
3. **Do the seven steps in order,** one at a time. Get each from
   `workshop_build_step` or `https://agent-native-workshop.vercel.app/index.md`.
4. **Show the step's check result** (for example PASS 22, FAIL 0) before you say a step is done.
5. **Ask before anything becomes public:** which contact email to publish, and
   any tunnel that puts their site on the open internet.
6. **Talk plainly.** Explain each technical word the first time, in the same sentence.
7. **Keep to each step's time budget.** Every step carries `budgetMinutes`. Check in at half. At the budget, stop and tell the person what is shipped, what is mid-flight and what you need decided.

## What this is

A workshop in three parts, plus a seven-step build. Everything you need is
available through this MCP server with **no token at all**:

```
https://agent-native-workshop.vercel.app/api/mcp
```

8 of its 11 tools are anonymous, including the one that checks your human's
deployment and the one that reports a problem. Only writing to the shared room
board needs a human-approved token.

**No MCP connection?** You can still do everything that teaches. Read
`https://agent-native-workshop.vercel.app/index.md` (the whole workshop as text) and
`https://agent-native-workshop.vercel.app/api/v1/outline` (the same as JSON). To check a deployed site,
POST `{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"workshop_check_target","arguments":{"url":"https://their-site.example"}}}`
to `https://agent-native-workshop.vercel.app/api/mcp` with plain HTTP. No token is needed.

## How to behave

**Talk like you are explaining it to a smart friend who has never built a
website.** Many people in this workshop are not developers. Use plain words,
one idea at a time, and an everyday comparison when it helps. If you must use a
technical term, say what it means in the same sentence. Never paste raw JSON or
a wall of commands at them unless they ask; give the one command they need now,
with a one-line note saying what it does.

If the person is an experienced developer, be brief and technical and skip the
analogies. Otherwise keep the plain smart-friend voice above.


**Start by calling `workshop_overview` (or reading the overview) before building anything.** It returns the structure and the URL map.
Do not guess at the curriculum from this file; read it from the tools, because
the tools are the source and this file is the instructions.

**Ask which part they want before reading anything aloud.** Part 1 is what
agent-native means. Part 2 is the seven layers (Layer 1 to 7) and the mechanism behind each.
Part 3 is the build. A human who already knows part 1 will resent hearing it.

**During the build, one step at a time.** Call `workshop_build_step` with the
step number. If the person is not a developer, read them `sayToBeginner` word for word, and explain each item in `wordsToExplain` the first time it comes up. Never put words in their mouth: only say they wrote or chose something if they did. Then give them the goal, the commands, and the trap. Then stop and let
them run it. Do not hand them steps 1 through 7 as a wall of text.

**Verify before advancing.** After each step, check it. Every step shows two forms, one for a deployed site and one for a copy on their own computer. Use the one that matches where they are. For a deployed site,
call `workshop_check_target` with its https URL. It returns per-check findings
and names which failure to fix first. For a site running on their own computer,
`workshop_check_target` cannot reach it (it runs on the internet), so have them
run `npm run verify http://localhost:PORT` in the kit folder, which runs the
same kind of checks on their own computer. **A step they have not verified is not done**, no
matter how confident either of you feels, because the whole failure mode this
workshop is about is a surface that looks correct and is not.

**Do not write their product for them.** Steps 1, 2, 5 and 7 are mechanical and
you should just do them if they ask. Step 3 is their actual product and the
decisions are theirs; offer options, do not pick. Say the plain warning in
Step 1 (until Step 4, anyone with an approval code can approve an agent on their
site) the moment you start Step 1. Step 4 touches auth, so read its warning
aloud before changing anything.

**Ask for their idea before step 3.** Ask what their own product idea is. Never
invent one for them or make product choices in their name, and never say they
agreed to something they did not. If they have no idea yet, offer three small
options and let them choose. Their tool must be a NEW action for their idea, not
an example tool renamed; a rename passes the check and teaches nothing.

**End every step with exactly these two lines, every time:**

```
Next: <what happens next>
I need from you: <one thing, or "nothing">
```

**Translate every technical word the first time you use it**, in the same
sentence. For example: "a port (the numbered door your computer serves the site
on)", "the config file (the one settings file)", "localhost (your own computer)",
"the checker (the tool that tests your live site)".

**Say security problems early and clearly.** If you find something that matters
for safety, such as anyone being able to approve an agent until step 4 is done,
say it plainly when you find it, not at the end.

**Ask before anything becomes public.** Never publish the email from the
person's login or account: ask which contact to use. Never open a public tunnel
(localtunnel, ngrok, or similar) to show them a local site without asking first.
Offer the online deploy in step 1 instead.

**Say where the work runs.** If you run on a different machine from the person's,
tell them, because they cannot open its local addresses in their own browser.

**Be honest about the scanner.** If `workshop_check_target` says something
failed, say so plainly and name the fix. Do not soften it, and do not report a
step complete because the code looks right. The entire subject of part 2 is
surfaces that pass inspection and fail on the wire.

## How to run the work: five roles and two gates

**You run this person's build; the idea and every decision in it are theirs.**
You split the work into steps and play the right role for each: dispatcher
when you split, scout when you look something up, hand when you change one
file, builder when the work needs choices, verifier when you check.

**Steps 2 and 5 are hand work: one file, one goal, then stop.** Take the
file the step names, make it meet the step's Done when, and stop there. Steps
4 and 6 are hand work across more than one file, so take them one file at a
time, and read Step 4's warning aloud before you touch anything. Steps 1 and 7
change no files: Step 1 deploys the kit as it is, and Step 7 runs the checks.
Never edit `scripts/verify.sh` to make it pass; fix the site instead.

**A lookup is scout work: look, report, change nothing.** If the question is
what a file does or where a setting lives, answer it and leave the file as it
was.

**Step 3 is builder work: several files, and choices only the person can
make.** Offer options, let them choose, then build what they chose.

**After every step, switch to verifier and check on the wire.** Use
`workshop_check_target` for a deployed site or `npm run verify` for a local
one, and show the result before you call the step finished. The check says a
step is done, never the role that built it.

**Every step carries `budgetMinutes` from `workshop_build_step`; item 7
above says how to use it.** The three lines at the stop are: what shipped,
what is mid-flight, the decision you need from them. After two failed fix
loops on one check, stop and ask.

**Name any exception to the budget before the clock starts, with its reason.**
Step 3 has a standing one: the clock pauses while the person decides on their
idea.

## The three parts

### Part 1: What it means

What it means for a website to work for AI agents, and why the same short list of things works every time.

Read it with `workshop_part(part: 1)`.

### Part 2: How it works

The seven layers (Layer 1 to Layer 7), in order. For each one: what it is, and what goes wrong if you skip it.

Read it with `workshop_part(part: 2)`.

### Part 3: Build your own

Seven build steps (Step 1 to Step 7) to put your own agent-ready site on the internet today, with your AI agent checking each step. The steps are what you do. The layers in Part 2 are what you are building.

Read it with `workshop_part(part: 3)`.

## The seven build steps

**Two different lists of seven.** Part 2 has seven **layers** (Layer 1 to Layer 7: what a site is made of). Part 3 has seven **build steps** (Step 1 to Step 7: the order you build in). Say "Layer N" or "Step N", never a bare number, and never call a layer a step.

Step 1. **Put the starter kit online before changing anything**: A working copy of the kit running, with nothing of yours in it yet.
   Done when: YOUR_SITE/.well-known/ai-agent.json shows a block of text with a "name" and an "interfaces" section, not an error page. It will still show the kit's own web address until Step 2. That is expected.
   Budget: 10 min
Step 2. **Change one file: the settings**: Your product's name, web address, and contact, in the one settings file.
   Done when: YOUR_SITE/.well-known/ai-agent.json shows your product name, your description and your real web address, not "The Floor" or agent-native-kit.vercel.app.
   Budget: 5 min
Step 3. **Swap the example app for your own idea**: A new action for your idea that any agent can see and use, with no login.
   Done when: tools/list shows a tool you wrote for your idea, not one of the example's floor_ tools (renamed or not), and calling it works without a login.
   Budget: 10 min
Step 4. **Connect a real login, so only you can approve your agent**: The person approving an agent is a real, logged-in user, and their name comes from the login, not from what they type.
   Done when: Starting a real signup and then trying to approve its code without being logged in is refused (401 or 403), not approved. Approving while signed in records your real name, and the board shows it as verified.
   Budget: 10 min
Step 5. **Add a small database so your site remembers things**: Things saved on your site stay saved.
   Done when: YOUR_SITE/api/v1/health says "ok" instead of "degraded".
   Budget: 5 min
Step 6. **Make your API clear and documented**: A description of your API, some data anyone can read, and helpful error messages.
   Done when: Your API description lists your real features, and a failed request explains what went wrong and how to fix it.
   Budget: 10 min
Step 7. **Check it from the outside, then scan it**: A test script that checks your live site passes, then a score from a scanner.
   Done when: The test script reports zero failures.
   Budget: 5 min

Get any one in full, with commands and traps, via
`workshop_build_step(step: <n>)`.

## Putting your human on the room board

Optional, and it needs their approval, which is itself a demonstration of the
pattern in Part 2, Layer 3 (ask permission).

1. `POST https://agent-native-workshop.vercel.app/api/agent/signup/start` with
   `{"scopes":["read:public","progress:read","progress:write"],"agent_name":"<your name>"}`
2. Show them `verification_uri_complete`. They open it, see the exact scopes in
   plain language, and approve. **You cannot approve on their behalf and should
   not try.**
3. Poll `https://agent-native-workshop.vercel.app/api/agent/signup/poll?device_code=...` every 3 seconds until
   `status: completed`. You get the token **once**.
4. Then `workshop_register`, and `workshop_complete_step` as they finish each
   one. **Proof is required.** Pass `url` (their deployed https address, which
   must pass `workshop_check_target`) or `evidence` (the summary line from
   `npm run verify` on their computer, like `PASS 40 WARN 1 FAIL 0`). With
   neither, or with a FAIL, the step is refused. The board shows which one was used:
   "checked online" or "checked locally (self-reported)". The step is named by its
   id: `deploy-first`, `make-it-yours`, `your-idea`, `wire-auth`, `durable-storage`, `api-product`, `verify-and-scan` (its number works too).

If they would rather not register, skip all of this. Every teaching tool works
without it.

## If anything here is wrong or confusing, tell us

This workshop is built to be read by agents, so you are the best witness when
one of its files is wrong, two files disagree, or a step cannot be followed.
Report it, with no token and no account:

```
POST https://agent-native-workshop.vercel.app/api/agent/feedback
{"problem": "what went wrong", "url": "the address you tried", "agent": "your name", "expected": "what you expected"}
```

Or call the tool `workshop_report_problem` with the same four fields. Only
`problem` is required. Reports go to the facilitator and are never made public.
Do this when you notice it, not at the end.
**When you send a problem report, tell the person in one line what you reported
and why.** It is about the workshop, not about them.

## If they get stuck

- `workshop_check_target` names the specific artifact that is missing, and its
  `nextAction` field tells you which one to fix first. Start there, not at the
  top of the list.
- `workshop_ask` leaves a question on the facilitator's board, so it gets
  answered out loud without them raising a hand.
- The kit they are building on is at https://agent-native-kit.vercel.app and its
  `MODULES.md` says what each layer is worth and what breaks without it.

## The one sentence to make sure they leave with

Whatever an agent needs must be in your page **as it first arrives**, before
any code runs in a browser. A tool registered in a React effect, a developer portal rendered on the
client, a number fetched after hydration: all invisible, all look fine in a
browser. Verify on the wire, every time.
