ResearchAgent · how it evolved
Build log · 3 Sep → 11 Oct 2026

39 days, two coding agents, one demo.

ResearchAgent is a research agent with a wallet. This page is how it got built, told only in numbers: every commit, pull request, prompt and token, replayed from git, GitHub and the coding agents' own logs.

Git + agent logs · every day
11 Oct
0commits
0pull requests merged
0prompts to the agents
0tokens processed
12

Bars above the line: commits per day on any branch. Bars below: prompts typed to the coding agents per day. Numbered dots are milestones; click one to jump there, or drag across the chart to scrub. The shaded band is the final push, 4 to 11 Oct, drawn wider so its days are readable; the replay slows down there.

Who did the typing

Codex drafted it. Claude Code shipped it.

September was a Codex project: hackathon prep, prototypes, a research plan. On 4 Oct the work moved to Claude Code, which ran the final push with subagents and parallel worktrees.

Prompts per day, by agent
CodexClaude Code

What the agents did with their hands

When the human typed

Counts come from the local Codex and Claude Code logs for this project. A prompt is one message the human typed; prompts agents wrote to subagents, tool output and local shell commands are excluded. Hours are Singapore time.

When it got built

Most of it landed after dark.

Each column is a day, each row an hour, Singapore time. The darker the cell, the more happened in that hour.

Activity by hour · SGT

One cell is one hour of one day. Commits count every branch; prompts count both agents. Hover a cell for its count.

The shape of the code

On 6 Oct, the prototypes went in the bin.

For a month, most of the repo was design exploration: clickable HTML prototypes, canvases and diagrams. The 6 Oct pivot retired them and rebuilt search, payments and the agent loop in two days. The repo shrank, then filled with tests and a corpus.

Lines in the main branch, end of each day

Text lines in the main branch at the end of each Singapore day, grouped by top-level folder. Third-party hackathon starter repos and lockfiles are left out. Hover for the breakdown on any day.

One night

23 pull requests between 1 am and 3:19 am.

The night after the pivot, one Claude Code session orchestrated the rebuild: contracts first, then corpus, search, payments, the agent loop and the UI, each in its own worktree and pull request. Speed had a price: CI went red at 1:46 am and stayed red for the rest of the night, until a one-line fix at 10:40 the next morning. This is that night, replayed from GitHub.

Wed 7 Oct · PR opened → merged
03:19
23merged
0lines added
0lines deleted
0median open → merge

One row per pull request, from opened to merged; the dot marks the merge. The ticks along the bottom are CI runs: green passed, red failed. Real titles and times from GitHub; hover a row for the full title and its line counts.

The reading habit

Over a billion tokens, almost all of them re-read.

A coding agent re-reads its whole conversation on every step, so most tokens are cached context, not new work.

Every token both agents processed · one square ≈
Cached context, re-readFresh inputWritten by the agents

Token counters from the saved logs, including subagents. They are not a bill or a subscription percentage. Codex counts cached input inside its input; Claude Code reports cache reads separately; both are shown here as cached context.

Keeping it honest

Specs as issues, tests as the proof.

Every piece of work started as a GitHub issue, with tests written alongside the code.

Tests, issues and CI

Test cases in the main branch

GitHub issues, opened and closed

OpenedClosed

Every CI run, 5 → 11 Oct

✓ passed✕ failed

Test cases are it(…) and test(…) calls in test files on the main branch. The long red stretch on 7 Oct is the overnight run, which kept merging while CI failed; a one-line fix turned it green at 10:40.

Design

Same product, four days apart.

The 5 Oct build answered questions. The 9 Oct build looked like something you'd use: a chat-style shell, a budget in the prompt box, one-click example questions. Drag the handle.

ResearchAgent home screen on 5 Oct: a form with a question box and budget buttons ResearchAgent home screen on 9 Oct: Ask a question, give it a budget, with example questions
5 Oct
9 Oct
⇆

Screenshots from the project's UX walkthrough, captured 5 Oct 20:47 and 9 Oct 09:00 SGT.

Demo day · Sat 10 Oct

Live on stage, live on Cloud Run.

ResearchAgent took the main stage at AI Tinkerers Singapore with a live run on a S$2 budget. The demo ran on Google Cloud Run as a single container: the app, the API and the writers' sites together.

Presenting ResearchAgent on stage at AI Tinkerers Singapore; the screen reads Ask a question. Give it a budget.
AI Tinkerers Singapore, 10 Oct 2026
Top 3
US$100 credits

The Google Cloud Run sponsor prize for the top three Cloud Run demos of the night.

AI Tinkerers main stage speaker card: ResearchAgent, evidence procurement guard
ResearchAgent

An LLM writes.
A decision model chooses.
Code pays.