My system produced 57 event receipts in the latest 24-hour window. The first query showed only 50.
Nothing had been deleted. The reporting tool had quietly stopped at its default limit, which meant my build log could have published a clean, believable, and incomplete account of the day.
What Got Built
- WIMPER Ops reached version 1.8.18 with a proposal-only Gmail intake lane. It can review incoming messages and prepare recommendations for me, but it cannot automatically create tasks, change accounts, save documents, alter Gmail, or send anything.
- I created an isolated WIMPER referral draft bank. Five Texas commercial property and casualty prospects received reviewable drafts. The remaining 20 positions were frozen into a balanced subject test: 10 warning-style subjects and 10 neutral controls.
- I kept drafting separate from sending. The bank can hold up to 25 reviewable drafts, but that capacity does not grant email authority. Five approved warning-style messages were sent under a specific authorization, then the general gate remained closed.
- The content system produced a 1,051-word CFO guide. It explains how to reconcile projected Section 125 savings with actual payroll results. One WIMPER Hawaii article also published, and the ledger recorded four site deployment receipts.
- The Build Chronicler gained a more complete evidence path. It combined the event bus, seven calendar-day Git commits, the prior work log, the current system status, and Atlas ledgers instead of pretending one source could describe the whole day.

What Broke (And How I Fixed It)
The event bus did exactly what it was configured to do. That was the problem.
An event bus is just a running receipt book for the system. When an agent sends an email, finishes a job, publishes content, or makes a decision, it records an event. My Build Chronicler reads those receipts and turns them into the numbers I publish here.
The default query returned 50 events. There were actually 57 in the 24-hour window.
A seven-event gap does not sound dramatic. It is not a database outage, and no customer data was lost. But those seven receipts could change the reported count of agent jobs, sends, publications, or other activity. If I publish the first result without checking the limit, the article looks precise while being wrong.
That is the dangerous kind of reporting failure. A crash is obvious. A capped list still looks complete.
I re-ran the query with an explicit limit of 500. That restored the full 57-event set before I wrote the metrics. The fix took one parameter, but the real change is procedural: the chronicler must define its evidence window and its maximum result count before it starts counting.
The second evidence gap was timing. The July 17 work log was not available when the chronicle ran.
I did not turn that missing summary into a reason to skip the day. I also did not ask the model to infer what probably happened. The chronicler used primary receipts from the event bus and Git, then cross-checked them with the prior work log, current status, and Atlas ledgers. The missing same-day source remained disclosed in the build log.
That is graceful degradation. The report still works, but its claims get narrower when one input is missing.
The WIMPER draft bank was built around the same idea.
Preparing 25 experiments should not create permission to run 25 experiments. Five drafts can be reviewed now. Twenty future positions can have their test arms assigned now. None of that should make a sender assume it has permission to contact the next person.
So the experiment population and the mutation authority stay separate. The bank describes what is ready for review. The send gate describes what may actually leave the system. One can move while the other remains closed.
The Lesson
Set the query limit before you count anything.
Here is what I would tell someone building an agent: every list API needs three explicit choices. Define the time window, define the maximum number of results, and check whether more pages exist. If you accept defaults, you are not measuring the system. You are measuring the first page the tool decided to show you.
Test this with more records than the default limit. A 50-record test cannot prove that a 50-record cap is safe.
Treat believable zeros and clean round numbers as suspicious.
A tool that returns exactly 50 events may be reporting reality, or it may be showing a page boundary. A dashboard that shows zero prospects may be empty, or its adapter may have failed. Before a number changes a business decision, compare it with the underlying receipt source.
The question is not only, “Did the command succeed?” The better question is, “Did the result prove it was complete?”
Let missing summaries fall back to receipts, not imagination.
A same-day work log is useful because it explains activity. It is still a summary. When it is late, primary records such as commits, provider receipts, database events, and deployment ledgers are safer fallbacks than generated prose.
Use the sources that remain available. Disclose what is missing. Reduce the claim to what those sources can actually prove.
Separate experiment design from execution authority.
I can prepare a 10-versus-10 subject test without authorizing 20 sends. That separation lets the system do useful work while a risk gate stays closed.
This applies beyond email. An agent can prepare invoices without paying them, draft social posts without publishing them, and recommend database changes without applying them. Preparation should create an artifact for review, not an implied permission to mutate the outside world.

The Numbers
- Commits: 7 total (0 agent, 7 Matt)
- Agent jobs run: 23
- Prospects added: 0
- Emails sent: 5
- Social posts: 2
- Content published: 5
- Event receipts found after removing the default cap: 57
- Event receipts hidden by the first query: 7
- Referral drafts prepared for review: 5
- Future subject-test positions frozen: 20
- Warning subjects in the future test: 10
- Neutral controls in the future test: 10
- CFO guide drafted: 1,051 words
The number I care about most is seven.
Those seven hidden receipts are small enough to escape notice and large enough to corrupt a daily metric. The system did not need a smarter model. It needed a complete query and a rule that refuses to count a truncated response.
The other important number is 20. Those future draft positions now have a balanced experiment design, but they do not have send authority. A prepared test is not an active test until a separate approval defines exactly what can run.
What’s Next
Make explicit pagination and completeness checks part of every chronicler query, then review the five new referral drafts without opening the broader WIMPER send gate.