agent / edit
#FF0000

The page that edits itself

hover any element to suggest a change

Any visitor can suggest a change to this page. An AI moderates the suggestion, a second AI generates the edit, and the result becomes a real GitHub pull request that CI checks, auto-merges, and Vercel deploys — all within 30–90 seconds. No human in the loop.

30–90ssuggestion to live deploy
2AI models in the pipeline
0humans in the loop
100%changes have a real GitHub PR
1

Receive

GitHub auth verified, honeypot checked, saved as queued — no AI called yet

2

Gate

Kill switch check (DB read), then moderation and scope classification — two sequential Haiku calls before any Sonnet spend

3

Generate

Sonnet reads current page content and your suggestion, then calls update_sections or update_theme

4

Commit

Output validated against Zod schemas, then written to a new branch and a pull request opened

5

Ship

CI verifies only allowlisted files changed, PR auto-merges, Vercel rebuilds, live push to all open tabs

Try it yourself

The 3D shape on the right is editable too — try suggesting a different geometry, color, material, or animation. Even the accent color running through the whole site is fair game.

Hover any element on this page — a small pencil icon appears inside it. Click it, type a suggestion in plain English, and submit. The pipeline runs in the background; the page updates itself when the deploy lands.

  • "Rewrite the opening paragraph in a more casual voice"
  • "Change the accent color to a warm orange"
  • "Change the 3D shape to a TorusKnot"
  • "Make the stats section zoom in slower"
  • "Split the pipeline steps into two groups — before and after the PR opens"
  • "Add a section about what kinds of suggestions work best"

The best suggestions are structural — splitting a section, merging two into one, reordering, changing a section's type, or adjusting an animation. Rewrites work well too. What won't work: requests to add images, embed videos, or change how the site behaves. The agent works within a fixed set of section types and cannot touch application code.

Suggestions can be rejected — that's expected

A suggestion is rejected if it's off-topic, potentially harmful, or outside the agent's scope. Claude Haiku reviews every submission first, so rejections are fast. If your suggestion fails, try rephrasing it as a structural edit — rewrite this section, add a section about X, change the 3D shape.

The agent cannot break the site

A GitHub Actions workflow checks every agent pull request against an exact allowlist: only content/sections.json and theme/tokens.json may be changed — no application code, no config files. The check runs on GitHub's infrastructure, independent of the AI pipeline.

What the agent can and cannot do

The agent can rewrite text, split or merge sections, reorder the page, change animation presets, and adjust the 3D scene. It cannot write HTML, invent new section types, or touch application code. What you see on this page is everything the agent can change.

Under the hood

  • Zod schema validation — bad shapes, missing fields, and out-of-range values are caught before any commit
  • Element locking — further submissions for the same element return HTTP 409 while a suggestion is in-flight
  • Kill switch — a single setting halts the pipeline before any AI call; no redeploy needed
  • Anthropic spend cap — a hard monthly limit; when reached, the pipeline marks suggestions failed
  • Held-comment queue — when require_approval is enabled, every suggestion is held for owner review before the PR is opened; patch is re-generated against current state on approval

The 3D scene is a declarative JSON config — geometry type, material properties, lighting, and animation parameters. The agent edits the config; it never writes shader code. React Three Fiber reads the JSON and renders it. The same pattern applies to the whole page: the agent manipulates structured data, and registered components handle rendering.

Every agent-opened pull request follows a consistent commit format so agent changes are easy to spot in the git history:

bash
agent(elevator-pitch): rewrite opening paragraph to active voice
Every change has a real GitHub PR, real CI, and a real deploy — because real work is happening at each step.
— on what makes this different from a database
The thing is interesting because it's real, not because it claims to be.
— guiding principle

Open on desktop to hover elements and suggest changes