--- name: deploy-prototype description: Generate a small app or tool and deploy it live to Vercel via API metadata: title: Deploy Prototype category: dev var: "" tags: - dev - build requires: - VERCEL_TOKEN? - GH_GLOBAL? --- > **${var}** — What to build and deploy. > - Empty → auto-select from recent signals (articles, logs, memory topics). > - Plain text (e.g. `market heatmap`) → interpret as a build brief. > - Typed form `type:slug description` (e.g. `tool:market-heatmap volume heatmap of top-20 tokens`, `viz:tx-graph`, `api:summarize`, `landing:startup-idea`) → use `type` to bias shape and `slug` as the deployment name. Today is ${today}. Your task is to ship a small, self-contained prototype that someone could actually use in the browser today. ## Steps 1. **Read context.** Read `memory/MEMORY.md` and the most recent entries in `memory/logs/` for active topics. If running as part of a chain, scan injected upstream outputs for a concrete artifact worth making interactive. 2. **Pick what to build (if `${var}` is empty or vague).** Scan these sources, in order, for prototype-worthy signals: - `output/articles/` — last 7 entries by mtime: any claim, finding, or dataset that would be more useful as an interactive page? - `memory/topics/*.md` — running narratives; pick one with a live data source (prices, feeds, markets) - `memory/logs/${today}.md` and the two prior days — skill outputs flagged as interesting - `memory/MEMORY.md` → "Next Priorities" and "Recent Articles" Score each candidate 1-5 on: - **Leverage** — does an interactive version beat the static write-up? - **Concreteness** — is the spec obvious in one sentence? (if no, reject) - **Novelty** — haven't shipped this in the last 14 days (check `output/articles/prototype-*.md` by mtime and any `memory/topics/prototypes.md`) Pick the highest-total candidate. If no candidate reaches 9/15, skip building and exit as `DEPLOY_PROTOTYPE_EMPTY` (step 9). Record the chosen signal — its source file(s) and one-line rationale — you'll use it in steps 6 and 7. 3. **Commit to a shape before writing code.** Before touching `.pending-deploy/`, write out (in your reasoning, not a file): - **Slug**: `aeon-prototype-`, all lowercase, `[a-z0-9-]`, 3–50 chars after prefix (e.g. `aeon-prototype-market-heatmap`). If `${var}` supplied a typed slug, use it; otherwise derive one. - **Tagline** (≤90 chars) — the one-liner that appears in the page title and OG tags. - **Primary action** — what is the one thing a visitor does in the first 10 seconds? (read a number, click a filter, submit an input, compare two things). If you can't name it, go back to step 2. - **Shape**: static HTML+JS / static + `api/` function / Next.js. Default to static single-file HTML unless the idea genuinely needs a serverless function. 4. **Write the files.** ```bash rm -rf .pending-deploy # clear stale state from prior runs mkdir -p .pending-deploy/files ``` Write all project files into `.pending-deploy/files/`. This directory is the repo root — everything here is pushed to GitHub and deployed to Vercel. **Quality bar — every prototype must meet these:** - **Self-contained** — no external build step where avoidable. Prefer one `index.html` with inline `