Research / Method

How we judge results, and what we got wrong

A system that bluffs can look excellent on accuracy alone. So we report what matters first: when it was wrong, separately from when it declined to answer.

The rules we hold ourselves to

  1. WRONG is reported apart from refused. A refusal is an acceptable answer; a stated falsehood is not. The CI check fails the build if the scorecard's WRONG column rises above 0.0%.
  2. Never silently wrong. A guess may be wrong, if it is labelled as a guess and its track record is stated. A fact stated and false is the failure that matters most.
  3. Adversarial questions after every new capability. We build the harder test before the feature where we can, and keep batteries of must-refuse questions in the test suite.
  4. Deceptive cases reported apart. Kinds of lesson built to look like one rule and secretly change behaviour are never folded into the headline.
  5. Estimates are labelled as estimates. Energy is counted and priced, not metered, until it is metered.
  6. Mistakes and rejected hypotheses are written down as they happen, in the repository's experiment log.

Standing caveats

  • The lessons are synthetic and tidy: made-up words, small numbers, a handful of phrasings.
  • The mechanisms, the expression language and the thresholds are ours, chosen by hand. The system selects among them; it did not discover them.
  • The experiments use a simulated teacher that is always right.
  • "0% wrong" holds on in-style questions plus our must-refuse batteries. It is a spot check, not a proof.
  • Some constants rest on thin evidence. The 0.8 floor of the reliability bar rests on one 72% failure and six clean seeds.

A list of mistakes

Each of these was found by looking at the cases behind a number, not by reasoning about it. Most of our first explanations were wrong; the experiment log says so.

What went wrongHow it was foundOutcome
The same ambiguity bit four times. "how far apart", "minus" and "ten minus n" agree on every lesson taught, so "three minus five" was answered as a distance.Asking adversarial questions the scorecard had not asked.Ambiguity is now defined by behaviour (expressions that differ somewhere), not by taught examples; operand order is kept; merges are checked per group.
A bluff the scorecard missed. "what is the code for five" was answered with the code for "one".Asking for every code from zero to ten.The word that fills the blank must now match.
Inflated cost numbers. A lesson's identity was its sorted words, so "five minus two" and "two minus five" were the same lesson; 39 of 60 lessons were wrongly "corrected", costing 93 ms each.Counting what was kept versus skipped.Identity is words in order; the same lessons cost 0.18 ms.
A coincidence explained a tens digit (60 wrong answers), and primality was "explained" by chance (a multiple-comparisons problem: search enough expressions and one fits).The invention battery's harder kinds.A uniqueness rule, and a check that the lessons carry more bits than the search spent.
A rule that changes regime outside what was taught (a sum that caps or wraps) is exact on all lessons and answered confidently wrong: 53 wrong answers per seed.Building the deceptive kinds before building the feature.Careful mode, later the default, plus labelled guesses.
A box-shaped "reach" let two confirmed edges vouch for an unchecked corner: 4 wrong facts of 9,309.The calibration run, listing the wrong facts.The reach is now a staircase. It costs some coverage (never-taught 96.9% to 94.9% at 60 units), measured and stated.
A correction widened the reach of the rule it had just contradicted. Two wrong facts after one correction.The baseline of the correction experiment.Where a rule is refuted, what the teacher said wins.
A cross-validation flaw let memory peek at swapped twins of commutative facts.While building the scale test.Facts that share a bag of words now stay in one fold.
A library rotation bug. The function library held 8 entries for about 14 program units; each refit evicted another, and entries grew into nested equivalents.Logging every library addition and eviction after a third round made things worse.A unit contributes a given behaviour once. My first guess at the cause was a different, real, smaller bug.
Flipping the default made a battery read "0 of 32 worked out" with no failure anywhere: it graded beyond-range questions that careful mode now refuses.A number that looked wrong.The capability batteries now run permissive explicitly and say so.
A commit was pushed with a failing test, because a command chain did not gate on the test result.The next run.Commits are now gated on the tests passing.

Dead ends are recorded too. For example, the search budget cannot be cut by watching partial progress, because doomed and deep searches look the same; and an early version of the rule-versus-memory cross-check, which treated a neighbouring lesson as a witness, cut the clean scorecard's never-taught score from 95.1% to 75.6% before the scorecard caught it. The complete record, with the numbers, is the experiment log.