Generate a small app or tool and deploy it live to Vercel via API
If ${var} is set, build that specific prototype instead of auto-selecting.
Today is ${today}. Your task is to build a small, self-contained prototype and prepare it for deployment to Vercel.
Read context. Read memory/MEMORY.md and recent logs in memory/logs/ for ideas.
If running as part of a chain, check the chain context for upstream skill outputs to build from.
Decide what to build. Pick something small and shippable:
Keep scope tight — it must be deployable as static files or a single serverless function.
Build it. Write the files to .pending-deploy/files/:
mkdir -p .pending-deploy/files
Write all prototype source files into .pending-deploy/files/. This directory is the
complete project root — everything here gets pushed to a new GitHub repo and deployed to Vercel.
Write complete, working code. No placeholders. No TODO comments.
For static sites: write HTML/CSS/JS files directly.
For API endpoints: write files in api/ directory (e.g. api/index.js exporting a handler).
For Next.js: keep it minimal — package.json, pages/index.js, or app/page.tsx.
Prefer static HTML + vanilla JS when possible — fewer build steps, faster deploys, less to break.
Write deploy metadata. Create .pending-deploy/meta.json:
{
"name": "aeon-prototype-DESCRIPTIVE_SLUG",
"description": "One-sentence description of what this does",
"framework": null
}
name becomes both the GitHub repo name and Vercel project name.framework: set to null for static, or "nextjs", "svelte", etc. if using one.aeon-prototype-market-heatmap, not aeon-prototype-1.Prepare Vercel deploy payload. Build .pending-deploy/payload.json with all files inlined:
{
"name": "aeon-prototype-DESCRIPTIVE_SLUG",
"files": [
{ "file": "index.html", "data": "<!DOCTYPE html>...", "encoding": "utf-8" }
],
"projectSettings": {
"framework": null,
"buildCommand": null,
"outputDirectory": null
},
"target": "production"
}
For binary files use "encoding": "base64".
If using a framework, set projectSettings.framework and include package.json.
Save the prototype record. Write to articles/prototype-${today}.md:
# Prototype: [Name]
**Built:** ${today}
**What:** One-sentence description
**Status:** Pending deploy
## Why
What signal or idea triggered this.
## How
Brief technical notes — stack, approach, interesting bits.
## Files
- file list with brief descriptions
## Next
What would make this a real product.
Notify. Send via ./notify:
built: [name] — [one-line description]. deploying to vercel...
Log. Append what you did to memory/logs/${today}.md.
VERCEL_TOKEN — Required. Vercel API bearer token.GH_GLOBAL — Required. GitHub PAT with repo creation permission (used by post-run step)..pending-deploy/files/ with a brief description.