Sheet 05.7 — Field note

How it was built

Two projects in eleven days, built through Claude Code with one loop, four steps, and a person who writes the issues and says merge. The counts from the session transcripts, what the review caught, and what the person did.

Published
Reading time
4 min read
Drawn by
E. Knuth

Between 2 September and 13 September I shipped two projects. Receipts, an investigation agent with an outcome grader, took five days. Clip Portal, a clip search with an eval, took six and is still going. Both were built through Claude Code. I typed 313 turns across both. 291 of them were under 200 characters. 56 were the word merge.

The loop

Every issue runs the same four steps.

  1. Start. An orchestrator session reads the project notes, the last handoff, and the Linear issue. It marks the issue in progress, branches, and hands the whole spec to one implementer subagent on the model the issue is labeled for. The orchestrator does not write the code.
  2. Implement. Sonnet or Opus, by label. Opus gets design, ground truth, and writing. Sonnet gets well-specified implementation. The implementer commits on the branch. It never pushes, never touches the browser, never posts to Linear.
  3. Review. A fresh subagent with no memory of writing the code reads the diff through two lenses. Lens one is correctness, and a finding has to come with a reproduction or it is filed as a question. Lens two is a front-end lead’s read: is the thing more direct, faster, more honest about where an answer came from.
  4. Close. After I say merge. Squash, mark done, post the status update, write the log entry with the PR number and the models, leave a handoff for the next session.

The four steps are skills checked into each repo. Two hooks sit under them. One refuses any shell command that adds a key-shaped line or names the secrets file. It refused 38 commands on Clip Portal. The other runs lint after every commit and says so when it is red.

What the counts say

From the session transcripts, counted by a script that is itself in each repo and tested against its own output.

ReceiptsClip Portal
days56
orchestrator sessions1615
subagent sessions5476
tool calls5,10711,651
shell commands3,2548,314
edits by the orchestrator133
edits by subagents6801,050
my turns146167
turns under 200 characters132159
times I said merge3224
times I corrected the voice64

The orchestrator made one edit on Receipts in five days. The implementers made 680. That is the shape the loop is meant to have. Clip Portal’s 33 are mostly log entries and the plan file at close.

The Clip Portal transcript directory only holds sessions from 8 September on, so its column is a window on the later half. Compaction drops tool calls from long sessions. Both columns are floors.

What the review caught

On Clip Portal, at the point I counted, 24 issues had landed and the reviewer was the same model on all of them. The 21 entries that state a count list 292 findings, twelve labeled blocking and fourteen more marked fix before ready. One issue’s review is a fair sample of the kind. It added tracing across three runtimes. The review found that the container’s auto-instrumentation was set up after the framework had cached the middleware it patches, so it never turned on and reported success anyway. It found spans that started before a slow call and ended after it with no guard, so a failed query lost the span naming the failure. It found that sampling rolled independently in each runtime, which left about four traces in a hundred whole. All four were fixed before merge.

The loop has a miss on record too. A search timeout went from eight seconds to fifteen on the strength of one measurement, and the change shipped. The budget that measured itself is what the trace said about it.

What the person does

I write the issues, with context and acceptance. I answer the review’s questions. I make the design calls and the spending calls, and I say merge. The browser work against the live site happens in the orchestrator session with me watching, because the subagents are not allowed near a browser. And I correct the prose.

The models changed during the project. Every log entry names which one ran which step, so a reader can see what Sonnet built and what Opus built and judge it. The full counts for Receipts are in its repo. Clip Portal’s are on its log.

END OF SHEET

More on the drawing board