AIThis post was created with the assistance of artificial intelligence (AI).

By Thorsten Meyer | November 5, 2026 | ThorstenMeyerAI.com

Buying for a business?Offer from Amazon

Get business pricing on tech for your team

  • Business-only prices and quantity discounts
  • Tax-exempt purchasing
  • Multiple users, one account, clear invoices
As an affiliate, we earn on qualifying purchases.

This week one AI edited the weights of one of our local models. A second AI, from a different company, got a different job: do not build anything, check the work. This article is about that second job, and about what a second AI review finds that a green test suite does not.

The experiment itself is told in our first article. In short: a Claude Opus 5.5 session tried to make the local model Ornith 1.5 better at law with a directional ablation inspired by the MIT CSAIL post on weight-space programming. It found a “loop direction” inside the model and weakened it in the weights, with no training. The model finished 12 of 15 legal answers instead of 4. The legal score stayed at 0.

The reviewer was OpenAI’s GPT-6 Astra, running in Codex. It did not run a second experiment. In the English summary of its final explanation: “Codex did not run a competing model-improvement experiment.” It reviewed, reproduced faults, measured, and corrected our claims. Here is what it found.

This article describes an AI experiment and its review. It is not legal advice.

Key takeaways

  • The roles: Claude Opus 5.5 (Anthropic) ran the experiment and organised the blind grading. GPT-6 Astra (OpenAI, in Codex) reviewed it independently, without changing the main test rig and without reading the hidden benchmark tasks.
  • Real faults, found while the work was running: resuming a run could pass off old results as new ones, a mistyped task ID produced a “successful” run with zero evaluations, a comma clash broke the real command line while the parser’s unit tests were green, and converting the weights changed them even at edit strength zero.
  • The number to remember: in the second review round, all 12 of the author’s tests passed, and 4 of the reviewer’s 6 provenance checks failed.
  • Its own measurements: storing one real weight matrix in a different number format moved it by 0.51% and changed 915,360 of its 1,048,576 values. These numbers measure the conversion, not legal quality and not an error rate.
  • It corrected our language, not just our code: “exactly identical at strength zero” was false, “5.2 wrong citations per answer” needed a qualifier, “parallel Codex experiment” was too broad, and the causal claim from one control was stronger than the evidence.
  • Honest limits: the reviewer did not re-run every test in its final documentation step, was not a fourth grader, and measured on a CPU, not on the production GPU path.
Video: what the second AI found when it checked our model edit: green tests, real bugs, and the claims it made us take back, with animated charts, in under five minutes. Narration: AI voice clone of Thorsten Meyer; images AI-generated.

Products Worth Considering

Apple MacBook Air 13.6-inch with M5 Chip, 16GB Memory, 512GB SSD, Sky Blue

Apple MacBook Air 13.6-inch with M5 Chip, 16GB Memory, 512GB SSD, Sky Blue

Bose SoundLink Flex Bluetooth Speaker (2nd Gen) – Portable Outdoor Speaker with Hi‑Fi Audio, Waterproof and Dustproof, USB‑C, Up to 12 Hours
Apple MacBook Air 15-inch with M5 chip, 24GB RAM, 512GB SSD, Midnight

Apple MacBook Air 15-inch with M5 chip, 24GB RAM, 512GB SSD, Midnight

As an affiliate, we earn on qualifying purchases.

Why a second AI, and why from another company

Two AI sessions started on the experiment on 4 November. When it became clear that they were working on the same thing, the roles were split. The Claude session kept the experiment: the plan, the test rig, the loop direction, the edit, the edited copy of the model, the benchmark runs and the blind grading by three Claude agents. GPT-6 Astra was told, in the words of its own report: “Review and validate the other session’s implementation.”

That is an unusual setup, and a useful one. In the MIT post, GPT-6 Astra itself edited a model. Here it sat on the other side of the table. Its early preparatory files were set aside after the role decision, and no second edited model came out of them.

Three rules shaped the review:

  • Do not touch the main implementation. The reviewer wrote separate check programs and reported findings. The Claude session made every fix.
  • Do not trust green tests. The reviewer ran the actual entry points, with small, reproducible counterexamples.
  • Do not look at the hidden tasks. Its second review states that no hidden benchmark prompts, topics, answers or reference solutions were inspected.

Round one: four faults

The first review came on 4 November, while the experiment was still being built. It reported four reproducible problems.

1. Resuming a run could replace a different experiment. Long runs are often resumed after an interruption. The rig treated any question that already had an answer as done, without checking whether the model, the sampling settings, the token limit or the edit had changed. The reviewer proved it: it created one answer at temperature 0, then started the real function again with another model and temperature 0.6. With model calls stubbed out, it made zero new inferences and kept the old answer. Old results could have appeared as a new measurement.

2. A mistyped task ID produced a successful empty run. Unknown IDs were silently dropped. Ask for a question that does not exist, and the run ends normally with zero evaluations. A typo could have counted as a finished test.

3. The unit tests were green, the real command was broken. The new syntax for the sampling settings used commas. The benchmark’s command line also used commas, to separate several models. All three new parser tests passed. The real command, in a dry run with no model calls, still exited with an error. Without the fix, the planned sampling control could not have run through the normal command line.

4. Converting the weights changed them, even with no edit. The edited weights were re-quantised back into the model’s compact 6-bit format. The reviewer ran that conversion at edit strength zero on one real matrix from the model. The rig’s own measurement reported an intended change of zero. The actual change was 0.84% of the matrix’s overall size, and 105,315 of its 1,048,576 reconstructed values differed. Any effect of the edit could partly have come from the conversion.

The Claude session addressed all four, each with a test that fails on the old code. The commas became slashes, unknown IDs are now rejected, and edited tensors are stored in the higher-precision bf16 format instead of being re-quantised.

A blank paper checklist on a clipboard with a few pencil tick boxes, beside a small glass cube on a pale blue desk
The second review round checked the first round's fixes, and found gaps. AI-generated illustration.

Round two: the fixes, checked again

The second review, completed the same evening, checked those repairs. Two were closed: unknown IDs and empty selections now fail before the model loads, and the slash syntax works through the real command line with two model configurations.

The other two were only partly fixed, and this is where the number to remember comes from. The author’s own tests on the experiment machine: 12 of 12 passed. The repository checks: 284 passed, 1 skipped, the type check clean. The reviewer’s independent provenance checks, run against the author’s own functions: 2 passed, 4 failed.

  • Old rows received a new history. Result rows from before the fix were accepted by comparing only a few legacy fields, then stamped with the current configuration. In the test, a row with an unknown seed and prompt file was accepted after the requested seed was changed to 999.
  • Detector changes did not count. Two new settings of the loop detector, which decide which answers are stopped and counted as loops, were not part of the fingerprint. Changing them left the configuration “identical”.
  • Model configuration and chat template were invisible. The fingerprint covered weight file names, sizes and modification times, nothing else. Changing the model’s configuration file or its chat template left everything “identical”, although both change what the model computes or reads.
  • bf16 storage still changes the computation. The fix for the 0.84% was better, but not neutral. The rig’s zero-strength test compared two copies of the same conversion with each other, not with the original model.

The Claude session did not patch the patches. It took a simpler route: resuming existing output files was removed entirely, and every run now records fingerprints of its configuration, tokenizer and code. For the fourth point it built a conversion-only control: the same bf16 storage, with no edit.

Thorsten Meyer AI
Claude builds · Astra reviews

Infographic 01 · The two review rounds

Green tests, real faults

GPT-6 Astra (OpenAI, in Codex) reviewed a Claude Opus 5.5 session's model-edit experiment while it was still being built. What it found, and what happened next.

12/12 · 4 of 6Second round: all 12 of the author’s tests passed, while 4 of the reviewer’s 6 independent provenance checks failed
284 / 1repository tests passed / skipped at the same time; type check clean. Green, and still not enough

Round 1 · 4 Nov · four faults

  • Resuming a run could replace a different experimentAnswers were skipped even after model, settings or edit changed; in the reviewer’s test: 0 new inferences, old answer kept! Partly fixed
  • A mistyped task ID gave a “successful” empty runZero evaluations, no error✓ Fixed
  • Unit tests green, real command brokenCommas in the sampling syntax clashed with the model list; 3 parser tests passed, the real dry run failed✓ Fixed
  • Conversion changed weights at edit strength zeroRe-quantising one real matrix: 0.84% change, 105,315 of 1,048,576 values differed! Partly fixed

Round 2 · 4 Nov, evening · the fixes re-checked

  • Old result rows got a new historyAccepted after the requested seed was changed to 999✓ Solved another way
  • Loop-detector settings not fingerprintedChanging them left the configuration “identical”✓ Solved another way
  • Model configuration and chat template invisibleOnly file names, sizes and modification times were compared✓ Solved another way
  • bf16 storage still changes the computationThe zero-strength test compared a conversion with itself→ Control added

✓ Fixed with a test that fails on the old code · ! Partly fixed in round 1, finished in round 2 · ✓ Solved another way: resuming was removed entirely, and every run records fingerprints of configuration, tokenizer and code · → Control added: a conversion-only copy with no edit. The reviewer changed none of the main code and read none of the hidden benchmark tasks.

Sources: our experiment records, 4–5 Nov 2026: reviews of 4 Nov and final explanation of 5 Nov by GPT-6 Astra in Codex (OpenAI); results report of the executing Claude Opus 5.5 session (Anthropic).
Powered by Thorsten Meyer AI

The reviewer’s own measurements, and what each one means

The reviewer did not stop at reading code. It measured. All of these are CPU measurements on one real matrix of the model (a shared-expert output matrix in layer 19, 2,048 × 512 values) or on a tiny synthetic test model of the same architecture.

Thorsten Meyer AI
One real matrix · CPU

Infographic 02 · The reviewer's own measurements

Five numbers, and what each one means

The reviewer did not stop at reading code. It measured what converting the weights does. None of these numbers is an error rate.

  • 0.51%relative Frobenius difference✓ What it measures

    How far storing one real weight matrix in bf16 moved it, against an exact reconstruction of the original, relative to the matrix’s overall size

    ✕ What it does not show

    An error rate, or anything about answer quality

  • 915,360of 1,048,576 values changed✓ What it measures

    How many individual numbers in that matrix moved at all, mostly by tiny amounts

    ✕ What it does not show

    How large the changes are

  • 2.61%output difference✓ What it measures

    How different the outputs of the original compressed matrix and the bf16 copy are for 8 fixed test vectors, on a CPU

    ✕ What it does not show

    The full model, the production graphics path, or a drop in legal accuracy

  • 0.16%logit difference at strength zero✓ What it measures

    In a tiny synthetic test model, the output scores moved while the record said the edit changed nothing

    ✕ What it does not show

    Anything about the real 35-billion-parameter model’s answers

  • 1.48 × 10⁻⁷max deviation · tolerance 10⁻⁶✓ What it measures

    The code that applies the edit formula matches an independent NumPy calculation

    ✕ What it does not show

    That the edit is good for the model

Measured matrix: a shared-expert output matrix in layer 19, 2,048 × 512 values, from the original 6-bit model. All measurements on a CPU. Separately, in round 1, re-quantising the same matrix at edit strength zero changed it by 0.84%. Together: changing the storage format is itself an intervention and needs its own control.

Sources: our experiment records, 4–5 Nov 2026: reviews of 4 Nov and final explanation of 5 Nov by GPT-6 Astra in Codex (OpenAI); results report of the executing Claude Opus 5.5 session (Anthropic).
Powered by Thorsten Meyer AI

  • 0.51% relative Frobenius difference. The Frobenius norm adds up the size of every change in a matrix. 0.51% means: storing the matrix in bf16 moved it by about half a percent of its own overall size, compared with an exact reconstruction of the original. It is not an error rate.
  • 915,360 of 1,048,576 values changed. That is how many individual numbers moved at all, mostly by tiny amounts. It counts changes, not their size.
  • 2.61% output difference. The reviewer fed eight fixed test vectors through the original compressed matrix and through the bf16 copy. Their outputs differed by 2.61%, measured against the size of the outputs. That is one matrix on a CPU, not the full model on the graphics chip that runs production, and not a measured drop in answer quality.
  • 0.16% logit difference at strength zero. In the tiny synthetic test model, the record said the edit changed nothing, while the model’s output scores moved by 0.16%. That disproves “exactly identical”. It says nothing about the 35-billion-parameter model’s answers.
  • 1.48 × 10⁻⁷ maximum deviation. The reviewer checked the code that applies the edit formula against an independent calculation in NumPy. The largest difference was about 0.000000148, under the tolerance of 0.000001. That confirms the arithmetic is right. It does not show that the edit is good for the model.

Together they say one thing clearly: changing the storage format is itself an intervention and needs its own control.

The claims it made us take back

The most valuable part of the review may be the least technical one. After the experiment, the reviewer compared our first results report line by line with the stored data and the code. Several sentences said more than the evidence did.

  • “At edit strength zero the copy is exactly identical.” False, measured against the original compressed model. Only a second comparison of the same already-converted matrix is identical, and that is a different reference.
  • “62 wrong citations, 5.2 per answer.” The 62 is a count across all 12 finished edit answers, about 5.2 on average. It does not mean the eight newly finished answers carried 5.2 errors each. And because repeated citations are merged for scoring, the 62 are not 62 separate deductions.
  • “Score zero because of the wrong citations.” Too simple. Even before any deduction, the edited model met only 7 of 75 checked criteria (3 for the original).
  • “The conversion control proves the effect comes from the direction.” Stronger than the evidence. In the quick test the control finished 0 of 8 cases, with a copying share of about 0.55 against 0.46 for the unchanged model, so it showed no comparable benefit. That supports the direction. But it never ran the full benchmark, and it was built with a later, corrected conversion path, not the one used for the benchmarked copy.
  • “The model card’s sampling settings achieve the same.” Similar, not proven identical. That run used another runtime and random sampling.
  • “A parallel Codex experiment.” Too broad. The reviewer built no second improved model.
  • “About 18 evaluations.” The report also said 17 elsewhere. The defensible statement is “fewer than 20 documented evaluations”, against a cap of 50.

What we reliably know

The reviewer ended with a short table that sorts every claim into what was observed, supported, disproven, not shown or not studied. It is the most honest summary of the whole experiment.

Thorsten Meyer AI
Observed · supported · disproven

Infographic 03 · The reviewer's verdict

What we reliably know, and what we had to take back

The reviewer sorted every claim by its evidence, and struck the sentences in our first report that said more than the data.

What we reliably know

  • More finished answers in the fair comparison12 of 15 instead of 4 of 15, same runtime✓ Observed
  • A better legal score0 of 100 for both✕ Not observed
  • A few more criteria met7 of 75 instead of 3; low base, one run each✓ Observed
  • The loop direction drives the changeRuntime version of the edit and short conversion control; not fully isolated→ Supported
  • Converting the weights has no side effectsIndependent measurements say otherwise✕ Disproven
  • General abilities fully intactSmall control set; one answer switched language! Not shown
  • Transfers to other models or areas of lawNot part of this experiment○ Not studied

Claims in our first report it corrected

  • “Exactly identical at edit strength zero”False against the original compressed model✕ False
  • “5.2 wrong citations per answer”62 across all 12 finished answers, 5.2 on average; not per newly finished answer! Qualified
  • “Score zero because of wrong citations”Content was weak before any deduction: 7 of 75 criteria! Qualified
  • “The control proves the effect is the direction”Ran only in the quick test, on a later conversion path! Too strong
  • “Sampling achieves the same”Similar, not proven identical: other runtime, random sampling! Too strong
  • “A parallel Codex experiment”The reviewer built no second improved model! Too broad

Limits of the review: no full re-run of all tests in the final documentation step; not a fourth grader (the three blind graders were Claude agents, none a lawyer); measurements on a CPU, not the production graphics path. Not legal advice.

Sources: our experiment records, 4–5 Nov 2026: reviews of 4 Nov and final explanation of 5 Nov by GPT-6 Astra in Codex (OpenAI); results report of the executing Claude Opus 5.5 session (Anthropic).
Powered by Thorsten Meyer AI

In plain words: the edit made the model finish more often, which was observed. It did not improve the legal score, which was also observed. That the loop direction causes the change is supported, but not fully isolated. That converting the weights is harmless is disproven. That the model’s general abilities stayed intact is not shown, and whether any of this transfers to other models or other areas of law was not studied.

What the reviewer did not check

A review that hides its own limits is not worth much, so here are the reviewer’s, in its own terms:

  • In the final documentation step it did not re-run all tests. It compared the final code, the run records and the stored results.
  • It was not a fourth grader. The three blind graders were all Claude agents, from the same model family as the session that ran the experiment, and none of them is a lawyer.
  • Its numerical measurements ran on a CPU, on one real matrix and one tiny synthetic model. They do not cover the full model on the production graphics path.
  • It made a mistake of its own: in one status check it read an outdated copy of a grading file and reported progress wrongly. It noticed and corrected the status message. The computation was not affected.

What this means for companies

Have AI work checked by a second AI, ideally from another vendor. The review did not make the model better at law. It made the experiment trustworthy. It found a resume fault that could have mixed old and new results, a command-line bug that would have blocked a control run, and a side effect hidden in the file format. A reviewer from the same model family may share the builder’s blind spots.

Give the reviewer a clear role: review, do not build. The split only worked once the roles were fixed. The reviewer left the main code alone, reported findings with reproductions, and the builder fixed them with tests that fail on the old code.

“Tests green” does not mean the real entry point works. The parser had three passing tests and the real command still failed. Test the command your people will actually run, with a dry run if it is expensive.

Reproducibility needs provenance. If a result row cannot say which model file, configuration, tokenizer, settings and code produced it, it should not be reused. File names and modification times are not an identity. Hashes are.

When fixes create new findings, simplify. The second round mostly found gaps in the first round’s repairs. Removing the resume feature entirely was cheaper and safer than a third layer of patches.

Let the reviewer audit the claims, not just the code. Most of the reviewer’s corrections in its final explanation were about wording. In a business report, “exactly identical” or “proves” can drive a decision. Ask the second AI to check every number and every strong verb against the data.

What this means for users

When an AI assistant tells you a job is done and all tests pass, ask what exactly it ran. For anything that matters, get a second opinion from an assistant made by a different company, and ask it to check the claims, not just the result. Be wary of words like “exactly”, “proves” and “identical” in AI-written reports. And as in the experiment itself: an AI that answers more often is not one that answers correctly. Check legal citations yourself, and for anything important, ask a lawyer.

The bottom line

The edit fixed the loops and not the law. The review fixed something else: what we are allowed to say about it. One AI built, another from a different company checked, and the checker found faults that green tests had missed, measured side effects nobody had claimed, and struck sentences that went beyond the data. Of everything in this experiment, the second AI review is the part we would repeat on every project.

This article is not legal advice. Thorsten Meyer AI operates the Lexassay legal benchmark used in the experiment. The experiment was carried out by a Claude Opus 5.5 session (Anthropic); the review was done by GPT-6 Astra in Codex (OpenAI); the three graders were Claude agents. The hidden benchmark tasks are not part of this article, and the edited model is internal and not distributed. More on what the original MIT experiment showed: AI repairs AI: the Qwen loop fix.

Researched and drafted with AI assistance, including Anthropic’s Claude.

Sources

  • Our own experiment records, 4 and 5 November 2026: the reviewer’s first and second in-progress reviews (4 November) and its final explanation (5 November, version 2), plus the executing Claude session’s results report. Internal; the hidden benchmark tasks are not part of this article.
  • Rikiya Takehi, Jayden Teoh, Alex Zhang, Omar Khattab (MIT CSAIL): “Sparks of Weight-Space Programming”, blog post, 2 November 2026 (the inspiration for the method; covered in our overview article linked above).
You May Also Like

xAI Safety — Former Engineer Exposes Grok Risks And Wrongful Termination – The Korea Daily

The Korea Daily headline refers to a former xAI engineer, Grok risks and wrongful termination claims, but the article’s details are unavailable.

FrontierCode: Would a Maintainer Merge Your AI’s Pull Request?

FrontierCode grades AI patches like a maintainer would. Claude Opus 5.5 leads at 52.2% but fails 42% of attempts; GPT-6.1 Sol scores 49.1% for $0.81 per task against Opus’s $10.15.

Reality Check: Will AI Really Create More Jobs Than It Destroys?

Facing the future of AI, discover whether job creation truly surpasses destruction and what it means for your career prospects.

U.S. Reversal on AI Chip Ban Opens $8.8 Billion Market for Nvidia and AMD — with an Unprecedented Revenue-Sharing Twist

AIThis post was created with the assistance of artificial intelligence (AI).In a…