--- name: bailey version: 1 description: >- Publish an AI-made web page so it gets a live address and remembers what visitors do — governed, GDPR-safe persistence with no backend to manage. Use whenever the user wants to put something online, give it an address, keep form responses, or have a page "remember" a value. Triggers (EN): "publish", "put it online", "give it an address", "keep the responses", "collect emails", "it should remember". Déclencheurs (FR) : « publie », « mets en ligne », « donne-lui une adresse », « garde les réponses », « collecte les emails », « ça doit se souvenir ». --- # Bailey — publish & remember This skill is deliberately **thin**. It does not carry the how-to: that lives on the Bailey server and is served fresh on every call, so this file never goes stale. Your job here is only to **connect** and **fetch the live playbook**. ## How it works (the mental model) The user ships **only a front-end** — a single self-contained HTML page. There is no backend to run. Every page carries the **blessed Bailey SDK** (one script tag): it turns on traffic analytics for free and is the only way anything stateful (a remembered value, a tally, a form submission) reaches storage. Speak plainly — "publish it", "give it an address", "it remembers" — never "deploy" or "database". ## Connect Bailey is an MCP server at `https:///mcp` (default `https://app.trybailey.app/mcp`), JSON-RPC 2.0 over HTTP POST. Auth is the user's **Supabase Bearer JWT** (the same login as the dashboard) — no key to paste, no local config. Once connected, the server derives the user's identity and org. ## First action, always: `bootstrap` Before anything else, call the **`bootstrap`** tool, passing `skill_version: 1` (the `version` in this file's frontmatter). It returns: - the **current playbook** — the full sequence, the three primitives, the file rule, and the setup reflex (tag the page's type, then relay Bailey's suggestions) — which you then **follow**; and - a freshness check: if it reports `update_required`, tell the user to reinstall the latest Bailey skill before continuing. Everything that can change over time is served (the playbook, the SDK guide via `get_integration_guide`, the org brand via `get_brand_tokens`, the prompts). Read those at the moment you need them — never reconstruct their content from memory. ## The one reflex to keep in mind without being told If a page collects data that can **identify a person** (email, name, phone, a free-text message), ask the user — *before publishing* — **what it's for** (purpose) and **how long it's kept** (retention). Those answers are the GDPR register line; declare them in the `manifest`. A personal data bucket with no purpose is refused. The playbook details the rest. ## Escape hatch — the dashboard (or the CLI) Multi-file sites, binary assets, or anything over ~1 MB do not go through MCP. Send the user to their Bailey **dashboard** to drag-and-drop the folder (the help center shows how); the `bailey` CLI (`bailey deploy --app