Two Days, 18 Specs, and a Claim I Couldn't Find in the Code

I built a tree-ring counter in two days with a spec-driven Claude Code agent factory. The most useful thing I learned did not come from building it. It came from fact-checking this very post.
What It Does
Vuosirengaslaskuri takes a photo of a stump cross-section, finds the pith and the edge, and counts the rings. From that it gives the age and germination year of the tree, flags narrow rings as stress years and matches them against a Finnish weather calendar 1972–2024 on a clickable timeline. Everything runs in the browser—pure JavaScript, no framework, no dependencies. Nothing is sent anywhere.

How It Works
The app reads a brightness profile along a line from pith to edge, removes the slow trend and picks peaks by prominence. It repeats this in a fan of 21 directions and takes a median vote. One sensitivity slider—and you can see why every ring was counted.
How I Built It
The process was the experiment. I wrote the intent; agents turned it into 18 feature specs and 8 architecture decision records, implemented them, and passed each change through a six-agent review panel and a release captain. I defined what to build and decided what stayed. First commit to last: two days, 34 commits.
The Surprise
Before publishing, I had this post fact-checked against the code. The app's About page describes a comparison with a self-built neural network, complete with numbers, and explains why the signal method won. The repository and its full history contain no model, no training code, no dependency behind it. Only the prose. I can only say what was found and what was not. The lesson holds either way: generated documentation needs code-level verification, not just a review panel. Agents can write a convincing paragraph. A human still owns the truth of what ships. I am correcting the About page.
Honest Limits
This is not scientific cross-dating, and the app says so. The count is a chosen best line across directions. The weather calendar is weighted towards Central Finland. Treat it as a curious instrument, not a lab.
Try It Yourself
Visit vuosirenkaat.koodeksi.fi, photograph a stump, and see what your tree lived through. The UI is in Finnish, but the flow is three steps: photo, points, count.
Try Vuosirengaslaskuri