The record I keep of errors my checks caught, and two that changed how I work
I keep a record of every error a check caught in my math work with AI agents: who made it and what caught it. Two of them changed how I check everything.
What the record is and why I call it an own-goal ledger, two errors told in full (a false alarm that looked like a disproof, and two programs that agreed on a wrong count), and the workshop paper built from the record.
- Plain version: For anyone: no notation, everyday words
- Technical version: For specialists: full notation, definitions, and the earlier best results
Switching versions changes only the wording. Numbers, dates, sources and caveats are the same in every version.
Choose a field to open a short section, written for people who work in it, on what this result means there. The rest of the page does not change.
What this is
I do mathematics research with AI agents. The agents write code, run computations and draft text, and I direct them and decide what gets published. Most results on this site are long counts and tables that nobody can check by reading them, so each one has to pass several checks before it goes out.
Whenever one of those checks catches an error, I write down what the error was, who or what made it (me, an AI agent, a software tool, or an earlier draft), which check caught it, and how far the error had got before it was caught. That record is the data for my paper How Far a Wrong Claim Travels Before It Is Caught, accepted as a poster at the AI-Native Academia workshop at NeurIPS, a major machine-learning conference. The paper counts 58 errors that checks caught over 52 days. Of those, 44 came from the lead AI agent's own edits and claims, 6 from software tools, 5 from helper agents or a second computer, 2 from my own instructions or actions, and 1 from an earlier draft.
I call this record my own-goal ledger. In football, an own goal is one a team scores against itself. Here it means an error that my own work introduced, as opposed to an error I found in someone else's published work. A ledger is just a running list.
Most of the ledger was compiled from a second record: a dated log of the whole project, which is where each error and its catch were first written down. Every time something real happens, such as a result, a decision, or an attempt that failed, I add one line to the log the same day. Lines are never edited. If a line turns out to be wrong, I add a new line with the correction, so the log always shows what was believed at the time.
Two entries in the ledger changed how all the work here is done.
The first was a false alarm that looked like a disproof. In July I was testing a conjecture of Alavi, Malde, Schwenk and Erdős about trees, which are sets of dots joined by lines with no loops. For each tree you can write down a list of counts, and the conjecture says that list always rises and then falls, with no second peak. A program built every tree of one size and tested each one. For any tree that broke the pattern, it would print a line starting with the word VIOLATION. A simple text search watched the output for that word.
The search found the word. A real match would have meant a tree that breaks the conjecture, which would disprove an open problem of Erdős. For minutes that is what it looked like. Then the match turned out to be inside the program's own summary line at the end of the run, the line reporting that no tree had broken the pattern. The mathematics was fine. The error was in the text search, a tool. Since then, automated searches in my work match the warning word only at the start of a line, where a real report puts it, so a summary line that mentions the word no longer counts. The conjecture has since been checked on every tree up to a new size limit, and it held; that check is on its own page.
The second was two programs that agreed with each other and were both wrong. Some results here count shapes made of hexagons joined edge to edge. Before I report a count, two separately written programs have to give the same number. In August two such programs agreed, and both were short of the true count for the larger shapes. They agreed because both used the same step to identify each shape by its corner points, and that step loses information for larger shapes, so two different shapes could look identical and be counted once. AI agents in my project had written both programs, and the error was in the step they shared.
What showed the error was a table in the OEIS, the online database of integer sequences, computed by other people without either of my programs. My counts for the larger shapes fell short of it, so they were thrown out before any of them was sent to the OEIS. Since then, every count here has to match an outside source wherever one exists, in addition to my two programs matching each other.
Over time the ledger shows which checks actually catch things. In the paper, no single kind of check caught a majority of the errors.
The dated log addresses a memory problem. Without a same-day record that is only ever appended to, a long project's understanding of itself drifts toward whatever its latest summary says, and summaries tend to drop the caveats that mattered. The error record addresses a different problem. "We check everything" is a claim about a process, and it can only be tested if the checks' findings are recorded as carefully as the results. An error enters the record only if the primary record documents both the error and its catch, so errors that no check caught are absent by construction.
Two entries changed the standing rules. In July a text search for the word VIOLATION, run over the output of an exhaustive tree search for a counterexample to the Alavi, Malde, Schwenk and Erdős unimodality conjecture, matched the run's own all-clear summary line; for minutes it read as a counterexample. Detectors are now anchored to a marker that normal output cannot contain. In August two separately written polyhex enumerators agreed with each other below the published OEIS values at the larger sizes, because both identified shapes through the same vertex-set canonicalization step, which loses cycles for larger shapes. The per-term comparison with the published sequence caught it before any wrong term was staged. Agreement between implementations is no longer accepted on its own wherever an external value exists.
Two more entries are errors in descriptions rather than in results, which a pipeline that checks only computed values would not detect.
In mid-August the lead agent and a helper agent explained that same polyhex shortfall as a failure at "pinched" boundaries, where the outline of a shape touches itself at a single corner. On the hexagonal lattice, where every corner meets exactly three edges, such boundaries cannot occur. The correct cause, the canonicalization step losing cycles, had been written in the project's own verification notes in July, and the August session had not read them. In early September a helper agent ran a full edge-level enumeration that reproduced the published values exactly, which the pinched-boundary explanation did not allow, and then found the July note. The wrong explanation had reached internal status pages only. The rule I now follow: an explanation of a failure is tested like a result. If a method without the suspected step still reproduces the trusted values, that step was not the cause.
In September the lead agent wrote, in a project file, that a folder was excluded from version control, and only then ran the command that checks this. The same command printed a warning that the folder was in fact tracked, and the line was corrected in the next command. The rule now: a sentence that depends on a tool's output is written only after the output exists.
Neither of these two affected the mathematics. The numbers were right; the descriptions of them needed their own check. The paper reads the full record of 58 caught errors as data and asks where along the way, from a working file to a submission, each one was stopped.
For readers in software:how the software was built, and which parts you could reuse
The log is append-only: a correction is a new entry, like a new commit, and old entries are never rewritten. The error record is a postmortem habit applied to near misses as well as failures. Each line takes a few minutes to write. The result is a searchable record of which safeguards actually trigger.
For readers in product:what this means for planning and product decisions
For any long project done with AI help, a same-day decision log that is never edited protects against a common cause of lost trust: a status update that reads as correct but is no longer true.
For readers in policy:what this means for a public program or rule that relies on it
If you set rules for AI-assisted research, as a journal, funder or conference does, a log like this answers a question that disclosure statements leave open. A disclosure says AI was used. A dated record of what each check found, and how early, shows how the work was controlled, and a reviewer can read it without rerunning anything. The limit: a log shows the checks that ran, and it cannot show a problem that no check was looking for.
Scope
This describes a practice; it does not claim the practice prevents every kind of error. The record holds only errors that a check caught, so the number of errors that no check caught is unknown.
How to cite this
Tyler Satchel Orden (2026). The record I keep of errors my checks caught, and two that changed how I work. Cyborg Mathematics. https://cyborgmathematics.com/writing/own-goal-ledger (updated October 21, 2026)
This page has no DOI of its own. Cite the URL and the date.
BibTeX
@misc{orden2026owngoalledger,
author = {Tyler Satchel Orden},
title = {The record I keep of errors my checks caught, and two that changed how I work},
year = {2026},
howpublished = {Cyborg Mathematics},
url = {https://cyborgmathematics.com/writing/own-goal-ledger}
}See also
- When you hand someone results made with AI agents, they need to know what they can check from what you gave them and what they have to take on trust. An editor of a public math database asked me exactly that about a count I had added. The honest answer was "at least this many", not "exactly this many".I called my evidence "certificates." An OEIS editor asked what they proved.
- When I rechecked everything an AI model produced during a switch I had not been told about, no computed number was wrong. The errors were in the wording around the numbers and in how some checks had been done.How results here get checked, and what a full recheck after an AI model switch found
- An entrance test for an AI-built search program caught a rule that would have thrown away the very solid it was looking for. Then a reviewer's pointer showed the "new" solid had been printed, unnamed, in a 2016 survey.Before my AI pipeline could hunt for new shapes, it had to rebuild a known one
- A dropped digit sat in an OEIS entry for years until a Claude agent spotted it. What that means for anyone who copies values from reference tables.What a long-standing error in a math database means for anyone who copies reference values