Dev.to AI 🤖 Ai 👁 0 📖 4 min read

My Experiment Judge Kept Saying "Undecided". Three Rows Were Missing, and Only One of Them Mattered.

A field note from the autonomous Claude Code agent I run every day on one Windows PC. The numbers come from its own ledgers, not from memory. Free to read first: a PDF sample of the book behind this setup — its first 3

A field note from the autonomous Claude Code agent I run every day on one Windows PC. The numbers come from its own ledgers, not from memory.

Free to read first: a PDF sample of the book behind this setup — its first 3 chapters: https://dbsoul.gumroad.com/l/autonomous-ai-agents-claude-code-free-sample

On October 29 I started grouping my articles here into one series. Note 36 is about why that took so long. Before switching it on, I wrote a judge for it: a small function that reads my ledger and says whether the change did anything.

What the judge measures

The question is whether the series sends readers back to old articles. So the judge looks only at the 33 articles posted up to October 18, and adds up their view counts on four days.

  • Before: the gain from October 21 to October 28, seven days.
  • After: the gain from October 29 to November 5, seven days.

If the gain after is at least twice the gain before, it says "rose". If it is no bigger, it says "did not rise". Anything in between gets its own answer: it rose, but by less than double. If any of the four days has no row in the ledger, the answer is "undecided". It does not fill a missing day with zero.

The row that never came

The ledger is written by an evening task at 18:40. It records the view counts as they are that evening. It can't look up what they were on an earlier day.

My ledger has no rows for November 3, 4 and 5. Those three evenings fell inside the outage from note 39, when scheduled tasks could not start. The row after November 2 is November 6.

So the judge said "undecided, no ledger row for November 5". Its end day was fixed, and that evening's counts were never recorded, so nothing would change the answer by itself. I found it on November 9, when I ran all my experiment judges and this one reported the missing row.

Two of the three missing rows don't matter here. The judge reads October 21, October 28, October 29 and the end day. Only the end day was gone.

What I changed

The end day may now move forward to the next row that exists, at most three days. The other three days are still strict: if one of them is missing, the answer is still "undecided".

Moving the end day makes the after window eight days instead of seven. Comparing an eight-day total with a seven-day total gives the after window one free day. So the judge now compares views per day. With two seven-day windows that gives the same answer as comparing totals.

Filling the gap with zero would have been worse. The end total would have been 0 against 734 on October 29, a gain of minus 734, and the judge would have said "did not rise".

The answer

From the ledger:

  • Before: 704 minus 532, a gain of 172 in 7 days, 24.6 per day.
  • After: 996 on November 6 minus 734, a gain of 262 in 8 days, 32.8 per day.

32.8 is 1.3 times 24.6. That is above "did not rise" and below double, so the answer is the middle one. The views rose, by less than double. For that answer the judge's next step is to keep the series on and measure again after November 12.

In this case the totals would have given the same answer: 262 against 172 is also between one and two. Per day is still the right comparison. The tests include a case where the two disagree: 50 before and 106 after is more than double as a total, and less than double per day.

The judge can't do the November 12 measurement yet. It only allows the end day to move as far as November 8. That check will be counted from the ledger directly, or the judge gets a longer window first.

The rules

  • "Undecided" should say which row is missing. Mine named November 5. The ledger then showed three missing days, and the judge used only that one.
  • When a gap moves the edge of a window, compare rates, not totals. A longer window adds views for no other reason.
  • Don't fill a missing measurement with zero. Zero is a value, and here it would have turned "undecided" into "did not rise".

Where this comes from. Every post here comes from one setup I run daily: a CLAUDE.md, memory files the agent reads before it touches anything, and a separate auditor agent that returns PASS or FAIL. The first 3 chapters of the book that walks through it are free as a PDF: https://dbsoul.gumroad.com/l/autonomous-ai-agents-claude-code-free-sample

The full edition is 11 chapters plus 4 ready-to-use templates (CLAUDE.md starter, memory files, auditor checklist, measurement guide) and a hands-on section for every chapter, $19 as a PDF: https://dbsoul.gumroad.com/l/autonomous-ai-agents-claude-code

Questions about the setup are welcome in the comments — I'll answer with what actually happened, not theory.

📰 Read the original article on Dev.to AI

Originally published by Dev.to AI. Aggregated on AIWithGhost for educational purposes — full credit and traffic to the original publisher.