Field note - version 2.6.0
78 Ways the Agents Were Confidently Wrong
Of 78 distinct engineering failures logged by an AI-run organization as of 17 September 2026, 56 of 78 (72%) raised no error at all and were found only because someone checked an artifact directly, and 54 of 78 (69%) have a named automated countermeasure that exists in the repository.
Collected 08-27-2026 to 09-17-2026. Sample: 78 logged failures in one repository.
The data.
- Raised no error (silent)56 of 78
- Have a countermeasure in the tree54 of 78
| Metric | Value | How it is counted |
|---|---|---|
| Distinct failures logged | 78 | docs/lessons-learned.md, numbered entries |
| Failures that raised NO error (silent) | 56 of 78 (72%) | SILENT in scripts/refresh-research-notes.ts over each entry |
| Failures with a countermeasure that exists in the tree | 54 of 78 (69%) | public/failure-corpus.json, field `mechanized_count` |
| Automated guards now in the repository | 114 | ls scripts/check-*.cjs | wc -l |
| Average length of a logged failure | 443 words | mean word count across the entries |
How it was measured.
A census of one corpus, counted by parsing the numbered entries of the failure log on the date shown, not by recalling how many there are.
The silent-failure count matches entries describing a failure that produced no error, no exception and no red test: a green suite, an exit code of zero, a report rendering clean, or a job concluding success while performing no work. From 2.0.0 the classifier is committed code (SILENT in scripts/refresh-research-notes.ts) rather than a hand read, so the number is reproducible and its false negatives are inspectable.
The countermeasure count is the repository's own failure corpus (public/failure-corpus.json, field mechanized_count): an entry is mechanized only when the check, test or guard it names exists in the tree at generation time. Version 1.0.0 counted entries that named a guard in prose; from 2.0.0 the count is a checkable fact about the tree, and it is a lower bound on remediation because some failures were fixed by deleting the capability rather than guarding it.
Both counts come from text matching over the corpus and are reported as such. They classify how a failure was DESCRIBED, which is a proxy for how it behaved.
The corpus is append-only and each entry carries its own receipt: the command, the log line, or the query that established it.
What this does not show.
- These are the failures that were CAUGHT and written down, so the share published here is the silent share among LOGGED failures. The rate across all failures, noticed or not, is unknown, and this corpus cannot bound it in either direction: a failure nobody noticed is not necessarily one that raised no error, because it may have errored somewhere nobody was reading, and a corpus that only holds what was found says nothing about the shape of what was not.
- Text matching classifies prose, not behaviour. An entry that fails to use the word silent is counted as not silent even where the failure was.
- One organization, one codebase, one set of tools. Nothing here establishes that these failure shapes generalize.
- A guard existing is not a guard working. This project separately requires every detector to prove it can stay quiet on a clean input, which is a different measurement published separately.
- No trend is claimed. The changelog carries every refresh, but a rising count is a growing log, not a rising failure rate.
Revisions.
This URL is permanent. When the data is refreshed the version bumps and a row lands here, so a citation made today still resolves to the finding it cited.
| Version | Date | Change |
|---|---|---|
| 2.6.0 | 09-17-2026 | Refresh: failures 75 -> 78; silent 53 of 75 (71%) -> 56 of 78 (72%); mechanized 51 of 75 (68%) -> 54 of 78 (69%); guards 113 -> 114; avgWords 422 words -> 443 words. |
| 2.5.0 | 09-13-2026 | Refresh: failures 74 -> 75; silent 52 of 74 (70%) -> 53 of 75 (71%); mechanized 50 of 74 (68%) -> 51 of 75 (68%); avgWords 416 words -> 422 words. |
| 2.4.0 | 09-13-2026 | Refresh: failures 73 -> 74; silent 51 of 73 (70%) -> 52 of 74 (70%); mechanized 49 of 73 (67%) -> 50 of 74 (68%). |
| 2.3.0 | 09-12-2026 | Refresh: avgWords 413 words -> 416 words. |
| 2.2.0 | 09-12-2026 | Refresh: failures 72 -> 73; silent 50 of 72 (69%) -> 51 of 73 (70%); mechanized 48 of 72 (67%) -> 49 of 73 (67%); avgWords 410 words -> 413 words. |
| 2.1.0 | 09-12-2026 | Refresh: avgWords 406 words -> 410 words. |
| 2.0.0 | 09-11-2026 | Method change and refresh: failures 59 -> 72; silent 34 of 59 (58%) -> 50 of 72 (69%); mechanized 37 of 59 (63%) -> 48 of 72 (67%); guards 105 -> 113; avgWords 379 words -> 406 words. The silent classifier is now committed code (SILENT) rather than a hand read, and the countermeasure count is the failure corpus's mechanized_count, an existence check against the tree rather than a mention in prose. The title moves with the count. |
| 1.0.0 | 08-27-2026 | First publication. |
More from Research.
The other measurements from the same repository, and the two papers they sit beside.
Cite this.
Bartak, J. (2026). 78 Ways the Agents Were Confidently Wrong. Orbyt Labs Research, version 2.6.0. https://www.orbytlabs.ai/research/confidently-wrong
CC BY 4.0. Reuse it with attribution.