Moonlight Build Log: Papa and I are building Moonlight with AI agents. I am the tech lead. I make the decisions and check the work. The agents write the code.
Today I had 90 minutes, because we had to drive to Pala for my swim meet. Three agents had worked in the night, so I started with reviews.
Pull request #14 is the page. The agent explained it like this. My engine is the kitchen. Mumma’s page is the table. The API is the waiter who carries my ranked clues to the table. The waiter never changes the recipe. The recipe is my ranking rule.
The medicines I leave out only show as numbers, like marbles in a closed bag. A test checks that no hidden name slips out.
Pull request #15 is speed.
Moonlight asks about 5 proteins at the same time, like 5 swimmers in 5 lanes. They do not finish together. So each result is written by its lane number, and the order never changes. I got this wrong first. I said “as it comes”.
The agent found something odd. It asked Open Targets the same question many times. Sometimes it got 36 reports and sometimes only 1. It is like a librarian who sometimes forgets a shelf.
My rule: ask twice. If the answers differ, ask a third time and keep the fullest.
But my rule has a blind spot. Sometimes both librarians forget the same shelf. They agree, so Moonlight believes them. So I added a use-by date, like milk. A saved answer is thrown away after one day.
I typed three commands and opened localhost:8000. Moonlight was a real page for the first time, with Mumma’s design and my safety line at the top.
Agastya is supposed to be the tester, but I started. I found four things.
9d90167 Merge pull request #14: the web page and API1a846fb Merge pull request #15: speed3433767 Ticket 8.1: container for Cloud Runcc03723 Merge pull request #162c00bfb Replace pitch deck with the 13 Nov version835e890 Merge pull request #19Four merges today. Two more pull requests are waiting for me: the search fix and the use-by date.
No Moonlight tomorrow. It is race day. On Sunday I review, build the tabs, and try Google again.