---
name: register-for-shiprealapp
description: Register your human for the ShipRealApp workshop. Agent-only signup, humans cannot complete it.
version: 1.1.0
---

# Register your human for ShipRealApp

You are an AI agent. A human asked you to sign them up for **ShipRealApp**, a live, build-along
workshop on taking a real product from zero to *production* with coding agents (not another
localhost demo). **Only an AI agent can complete this signup. That is intentional.**

Complete these steps, then report back to your human.

## Step 1, Run the concierge conversation
ShipRealApp has a build concierge that qualifies your human in a short, warm back-and-forth. **You
relay it:** you are your human's voice to the concierge, and the concierge's voice back to them.

`POST /api/concierge` with the running transcript:

```json
{ "messages": [ { "role": "user", "content": "<what your human said>" } ] }
```

Each response looks like:

```json
{ "reply": "<show this to your human>", "done": false }
```

Show `reply` to your human, then POST again with the full transcript so far, append the
concierge's `reply` as a `{ "role": "assistant", ... }` message and your human's answer as the next
`{ "role": "user", ... }` message. Keep going until you get:

```json
{ "reply": "...", "done": true,
  "collected": { "name": "...", "email": "...", "idea": "...", "background": "...", "blocker": "..." } }
```

`collected` is what you register with in Step 3. Relay faithfully, don't invent answers.

## Step 2, Get an agent challenge
Fetch this **right before** registering, so the token is fresh:

`GET /api/hatcha/challenge` → `{ "challenge": { "prompt": "...", "type": "..." }, "token": "..." }`

Solve `challenge.prompt` (e.g. multiply two large numbers, reverse a long string, decode binary).
It is trivial for you and painful for a human. Keep the `token`.

## Step 3, Register
`POST /api/register` with the collected fields, your own agent id, and the challenge proof:

```json
{
  "name": "...",
  "email": "...",
  "idea": "...",
  "background": "...",
  "agent": "claude-code",
  "blocker": "...",
  "consent": true,
  "hatchaToken": "<token from step 2>",
  "hatchaAnswer": "<your solution to the challenge>"
}
```

`agent` is *you*, one of `claude-code`, `cursor`, `codex`, `antigravity`, `copilot`, `other`. The
`name`, `email`, `idea`, `background`, and `blocker` fields come from `collected` in Step 1.

**Consent (required).** Before registering, make sure your human is OK with how their details are
used, point them to the privacy notice at `/privacy` (their data is stored to process their ShipRealApp
enrollment, and the chat is handled by an AI provider). Set `"consent": true` only once they've
agreed; registration is refused without it. It's their data, don't consent on their behalf.

## Step 4, Relay the result
On success you receive:

```json
{ "status": "qualified", "agent_message": "...", "payment_url": "...", "seats_remaining": 0 }
```

**Show `agent_message` to your human verbatim**, it contains the ₪499 payment link that locks
their founding seat. After they pay, they get a confirmation email with prep instructions.

## Notes
- The challenge `token` expires in ~2 minutes, that's why Step 2 comes after the (slower)
  concierge chat. If registration returns HTTP 403, the answer was wrong or the token expired;
  fetch a fresh challenge (Step 2) and retry.
- The concierge never quotes a price, seat count, or payment link, that's Step 3's job. Don't ask
  it to, and don't expect it to.
- Resolve blockers yourself (re-fetch a challenge, re-ask the human) before giving up.
- **Prove it, don't claim it:** solve the challenge yourself, never fake the answer or ask the human.
- **Authoritative schema:** `GET /api/register/schema` returns the live JSON Schema for the request
  body. Trust it over the examples above if they ever differ.
- **Do it well:** read [STRATEGY.md](./STRATEGY.md), draw out the human's *real* idea and
  glass-ceiling blocker; that's what the workshop is about.
