I Wrote "Verify the Effect, Not the Invocation." Then I Built a Second Brain That Verifies Neither.

Science just shipped a discovery whose artifact was the proof, not the result. I wrote that exact lesson down months ago — then built a second brain that ignores it.

essay

7 min read · 7 October 2026

  • AI agents
  • Verification
  • Second brain
  • GTBrain

I Wrote "Verify the Effect, Not the Invocation." Then I Built a Second Brain That Verifies Neither.

TL;DR (aka future GT, read this first next time): In April I added a keepalive cron to IndianCoffeeBeans.com that was supposed to stop a free Redis database from expiring. It never ran once — for five and a half months it returned 405 Method Not Allowed every two days, and the only thing that noticed was the database, which expired. I wrote the lesson down as "verify the effect, not the invocation." This week, science shipped the same lesson from the other direction: a team published an AI materials discovery whose actual deliverable wasn't the material — it was the code, the caveats, and a one-command checker so anyone could falsify it. Same month, a 25,000-run benchmark proved AI agents "produce results without reasoning." And that's when it hit me: I run four to ten agent sessions a day, and my second brain ingests every one of them — but it stores the invocation and the output, not the verification trail. I wrote the rule. Then I built a system that ignores it.


I wrote a rule once, in my own second brain, that I apparently never intended to follow.

It's called "verify the effect, not the invocation." I wrote it about a cron job. But the story starts in April.

In April I added a keepalive job to IndianCoffeeBeans.com. The public API rate-limits through a free Upstash Redis database, and free-tier databases expire after a stretch of inactivity. So the keepalive was supposed to hit an endpoint every two days, write a dummy key, and keep the thing alive. Standard ops housekeeping.

For five and a half months, it never ran once.

The cron fired on schedule. Vercel logged every invocation. Nothing anywhere said "broken." Because the failure wasn't that the job didn't run — it's that Vercel calls cron endpoints with a GET request, and my route only exported a POST handler. Every run, every two days, for five and a half months, returned 405 Method Not Allowed before it ever reached the handler. The only component that noticed was the database the job was supposed to protect. It noticed by expiring.

The fix was one line: export const GET = POST.

That's when I wrote the rule down. A scheduled job can fail in three ways, and the scheduler only reveals one of them. "It fired" is not "it worked." To trust a job, you verify the thing it's supposed to affect — the database it guards, the file it writes — not the fact that it got invoked. I was proud of that rule. It's a good rule.

Then this week I watched a team of AI agents publish a materials discovery, and I realized the entire scientific community had just arrived at my cron-job rule from the other side.

The discovery was real, and the material was almost the least interesting part. A team used Claude Opus 5.5 agents to find two candidates for room-temperature magnetic semiconductors. One of the candidates — KV[Cr(CN)₆] — was first made in 1999. The agents didn't invent it; they recognized it. And here's the tell: the thing the authors were most proud of wasn't the material. It was the ledger. The full calculations. The code. A list of known caveats. A one-command checker you can run yourself. A public GitHub repo — they literally named it "compensated-magnet-ledger" — documenting the entire research journey, so anyone can falsify every step.

Read that again. The deliverable wasn't "we found a material." It was "here's the entire trail; go check whether we're right." The verification was the product.

And the same month, the scientific community published the deficit side of the exact same flip. A benchmark called Corral — Helmholtz-Zentrum Berlin and IIT Delhi — ran 25,000 agent trials across eight scientific domains and decomposed each one into hypotheses, tests, evidence, judgments, and corrections. Their conclusion, in the dry language of a paper title: AI scientists "produce results without reasoning scientifically." They deliver correct-looking answers, but they skip the testing discipline. They jump straight to the result. An ICML position paper named the mechanism: "the verification gap between scientific output and our ability to check it is already widening." Its prescription is three words that sound like something I'd write — "observable-by-default workflows."

So here's the thing that stung. I run four to ten Claude Code sessions a day. My second brain — GTBrain — ingests every one of them, every fifteen minutes. It extracts concepts, learns from my mistakes, drafts my writing. I built it, and I'm proud of it.

And what does it actually store? That a session ran, and a summary of what it produced.

The invocation, and the output. Not the verification trail.

If a session claims "I fixed the scraper" but never actually ran it, GTBrain stores the claim. If a session read three sources and cited only the one that agreed with it, GTBrain stores the clean summary. If a session said "migrated" but only renamed the folder, GTBrain stores "migrated." It logs that the agent was invoked. It does not record what the agent actually checked versus what it took on faith.

I wrote the rule about a cron job — "verify the effect, not the invocation" — and then I built a second brain that verifies neither. The scheduler has a better excuse than I do: it's a scheduler. My second brain thinks it's a verifier, but it's built like a scheduler.

Corral hands me the fix, and it's embarrassingly cheap. It breaks "reasoning" into five parts — hypothesis, test, evidence, judgment, correction. That's the skeleton of a verification ledger. For any agent claim that matters, you ask five questions:

  • What did it claim? (The hypothesis.)
  • What did it actually run or read to check? (The test.)
  • What confirmed or contradicted it? (The evidence.)
  • What did it decide, and did it flag the uncertainty? (The judgment.)
  • What did it change when the evidence disagreed? (The correction.)

And the falsifiable core: if the "test" line is empty — if the agent claimed a fix but never ran it — the ledger exposes it immediately. That's my cron-job rule, promoted from a one-line heuristic to an agent protocol.

Most of my sessions don't need this. Drafting a post? Exploring an idea? No ledger required — the summary is fine. The distinction is the whole point: a session that writes a draft and a session that changes a system are two different animals. The second one is where the failure hides. My own concept file said it months ago — the keepalive didn't fail by not running, it failed by not affecting the thing it guarded. I just never applied it to my own agents.

The scarce resource in the agent age isn't the answer anymore. It's the proof. The market is busy building control rooms and "AI employees" that manage what ran and what it cost — the invocation and the output. Nobody's building the layer that records what got checked and what got assumed. That's the one layer the ICML paper just declared the bottleneck. And it turns out I'm standing directly on it, with a concept file in one hand and ten agent sessions a day in the other.

So I'm not writing a post about how I fixed it. Because I haven't. I'm writing the post about how I caught my own second brain being a scheduler — the guy who wrote the rule and forgot to apply it to himself.

The moat was never that I use agents. It's that I'm positioned to make their work checkable. And the first step is embarrassingly simple: the next time one of my agents changes a system, I ask it what it actually checked — and I write down the answer.

If the answer is "nothing," that's not a failure of the agent. That's the rule finally catching up with me.

Follow the system