People see a neighborhood problem, like a broken streetlight or a pothole, and don't know which city agency fixes it. You drop a pin, and PorchLight finds which San Francisco agency fixes it, with a link to the source.
What I did
At the one-day hackathon, I directed three AI coding agents to build it: Cline, Cursor and Claude Code.
What the agents did
The agents built all of it. Cline wrote the core that finds the right agency for a pin, Cursor set up the project, and Claude Code made most of the other changes.
How it was checked
Automated tests of the main steps, a live run on Composio's real service, and demo pins checked against SF.gov sources.
Result
Third place at the hackathon. The code is public.
RISE
A reading app in open beta, built as a team project
Let a book be read as a timed stream, with images, sound and moving visuals, not only as a typeset page.
What I did
I owned its Composer feature, which lets ChatGPT write a reading for RISE to play. I made the product calls, directed the AI agents that built it, and tested it by hand. In a live ChatGPT session I reported what worked and what didn't, for example that the model couldn't see an on-screen marker.
What the agents did
AI agents, mostly Claude, wrote most of the code.
How it was checked
Automated tests, including browser tests and real video encoding, run in its GitHub workflows.
It's an art project: seven pieces drawn from math, live in the browser.
What I did
I made the pieces with Claude. Gyre, for example, draws moving 3D trails of light from math equations.
What the agents did
Claude collaborated on all seven pieces, and one is Claude's self-portrait.
How it was checked
No automated tests.
Result
Published online. Gyre runs in any browser.
How I work with AI
I decide what gets built, direct the AI agents that build it, and check their work.
I don't write code by hand; the agents do. Each project above names which ones.
Specify
I decide what to build and give each agent a clear task.
Direct
Directing AI agents is a lot like coordinating people: each one needs a clear role, a shared goal, enough context and a clean handoff. I use Claude Code, Cursor, Cline and Codex.
Check
I don't take an agent's word that the tests pass. In the agent system my team uses, a change is accepted only if our own automated checks pass.