Andrew Parra ES

Lab · Control room

Parra Plat

A live 3D town that works as the control room for all of Andrew’s projects. Every project is a building, and its agents only move when that project actually did something.

Status
Live · behind a password
Who uses it
Andrew. Without the password, the town shows counts only.
Built with
React 19 + Vite + Three.js · Node server on Render · Upstash Redis · GitHub API · Claude Code routines

Agents only move on real events

Example
on track station

Waiting for a real event. Nothing moves.

The STALE rule

More than 8 days old and every light dims and reads STALE.

“Agents walk to their stations only when the project reports something real.” Try it: with no event, nothing moves.

The problem

Andrew runs many separate projects, each with its own repo, host and keys. He needs one honest place to see what is really happening across all of them, without sharing code or credentials, and without dashboards that dress up inactivity as activity.

How it works

A plaza of buildings

One building per project. Its beacon shows weekly health: green, amber, grey, red. If the status file is more than eight days old, every light dims and reads STALE.

Floors that only move on real events

Inside each building, agents walk to their stations only when the project reports something real. Demo mode is labelled simulated everywhere.

Home and Studio floors

For products Andrew builds and also uses, Home shows his own account and Studio shows totals across users only, never one customer’s data.

Briefings

Click an agent for its briefing (to-dos, issues, recent activity) built from that project’s read-only data.

Goal checks

Plain server code, no model, runs yes/no uptime and job checks twice a day and records the results in git.

Hub buildings

A War Room for decisions, a Treasury for costs and an Armory for reviewed tools read the shared hub files.

Where AI fits

  • Scheduled Claude Code routines run unattended: nightly consolidation, a daily standup, a weekly health check with keep / fix / kill-candidate verdicts, and a monthly cost report.
  • They write only to the shared hub folder. The agents in the town are data-driven animations, not AI calls.

Guardrails

Keys never leave the server

A “keyring” proxy holds every project key and forwards only to an allowlist of read-only paths. The few write actions sit in a separate, tiny list.

Shared rules for every project

Missing data is UNKNOWN, never zero; demo or paper results are never shown as live; nothing goes public and nothing is spent without Andrew’s explicit yes.

Notify, never auto-fix

A failed goal check sends a notice. Nothing fixes itself or redeploys.

Reviewed tools only

Third-party skills and plugins need a review and a security scan before they are installed.

Engineering notes

A floor is a data contract

Alarms, chips and a board. A new project gets a room just by exposing that shape.

Server-side reads only

The town fetches every project through its own server, so no browser ever holds a key.

Hub data lives in git

Read fresh through the GitHub API, so hub-only updates never redeploy the town.