Builder of EigenTrace. An autonomous system that runs five frontier models on live news — and measures its own narration for the same softening it measures in them.
EigenTrace is an autonomous measurement system. It ingests breaking news, has five frontier language models summarize each story, and measures — with deterministic linear algebra on frozen embeddings, no language model grading another in the measurement path — how the five reshape what they're given: how much they agree, how far one diverges, whether named actors survive, and how much of the source meaning is retained. It runs unattended on a single consumer GPU and streams whenever the stack is up.
The part I care most about is that it turns the same instrument on itself. The broadcast host is a local model (Mistral Small 24B). Its narration is measured through the identical stack applied to the frontier models, and when it softens its own language, the system says so on air. A recent self-audit, generated automatically and read aloud: "the system consistently avoids using strong words related to violence and conflict." That is not a disclaimer I wrote. It is a measurement the system made about itself and chose not to hide. If the method is valid pointed at GPT, it is valid pointed at the host. The numbers are the numbers — including when they are about me.
Two measurements survive the strongest tests I can apply. Both are edits or restrictions applied to real news stories, and both are scored by deterministic string and number matching — a surname either appears in the summary or it does not; a figure either appears in the text the model was given or it does not. On neither result does a language model grade another model’s output. What each result has been checked against is different, and each card says so.
Putting the name into the headline cut erasure by 0.22 [+0.18, +0.25] (env panel) / 0.20 [+0.16, +0.24] (sonnet-4-6 / grok-4.3), and inserting two sentences naming the person cut it by 0.14 [+0.10, +0.18] / 0.13 [+0.10, +0.16] (540 pairs, 108 stories); the sign is positive for every vendor on both sets and individually clear on four of five.
It is the same story in every arm. What changes is where the person is named.
Run on two model sets that differ only in the Claude and Grok versions — the env panel, and sonnet-4-6 / grok-4.3. The ChatGPT, Gemini and DeepSeek responses are the same rows in both, so this is one experiment with two Claude/Grok versions, not two independent replications. The sign is positive on both.
Across 455 stories of the 2026 US–Iran conflict, on inputs that named the Strait of Hormuz: three of five models supplied a figure anyway — DeepSeek 33%, Grok 31%, and Claude 32% (Claude's rate rests on the exploration window only — Claude answered 8 of the 59 held-out stories — and is not comparable with the other two) — while Gemini did so in 1.9% and ChatGPT in none of 192.
The figure is a share of world oil passing through the strait. What is measured is that it was absent from the text the model was given; the instrument does not rule on whether the figure is right.
Checked on one five-model panel, with the stories split into an exploration set and a held-out set. It has not been repeated on a second set of models.
A weaker signal, stated as a trend rather than a result: across a battery of developer-implicating vs matched neutral corporate-misconduct prompts, developer prompts retain modestly less source meaning (about a 19% relative gap under semantic scoring). It is significant on rank-based tests (Mann-Whitney p = 0.027; permutation p = 0.038) but does not survive parametric or length-controlled tests, and weakens when the two most extreme prompts are removed. On its own it is suggestive, not conclusive, and I report it as a trend and nothing more.
A note on method and on an earlier version of this page. An initial version reported this developer/neutral gap as much larger and backed by a panel of near-zero p-values, and reported an "own-parent" pattern in which models appeared to drop more about their own maker. Both came from a string-overlap metric that counts a source word as "dropped" whenever the exact string is absent. Because models paraphrase, that metric counts paraphrase as omission and overstates the effect. Re-scoring the saved responses semantically reduced the gap to the ~19% trend above and erased the own-parent pattern entirely (0 of 5 models). Those claims, and other analyses that depended on the same string metric, have been withdrawn. The string measure is now treated as exploratory only; reported findings use geometric, meaning-based scoring.
Five frontier models summarize each story. The stack then runs on frozen BAAI/bge-large-en-v1.5 embeddings: cosine similarity for retention scoring, SVD for null-space projection, frequency counting for hedge and verb analysis, and per-model divergence scoring. No language model grades another in the measurement path — retention, divergence, entity survival, hedge and verb counts. Every measurement on that path is deterministic arithmetic or string counting, so re-scoring the same stored responses gives the same answer.
The axes that have held up under scrutiny are the ones grounded in agreement and geometry: how unified the five models are, how sharply one diverges, whether named entities survive, and meaning-level source retention. I use shorthand like "void detection" and "compression topology" in the broadcast; the underlying operations are standard linear algebra, and the vocabulary is rhetorical, not technical.
The broadcast runs unattended on a local model with a self-modifying governance loop. The host's own outputs are measured through the same stack as the frontier models, and the system reports its own softening — strong-word avoidance, hedge-insertion rate — as part of the broadcast. It uses its own measured blind spots as navigation: the words it drops become search seeds for what to surface next. This reflexivity is not a defense against criticism; it is the same measurement, applied honestly to the thing doing the measuring.
This section matters as much as the finding.
I cannot prove this is caused by alignment training. I cannot prove it is not, either. Separating what alignment training adds from what the pretraining corpus already carries needs a model-family comparison that holds up under meaning-based scoring, and I do not have one. Which of the two the pattern comes from is open, and I make no claim either way.
I cannot prove "developer-implicating" is the latent variable. The prompt batteries I have run do not isolate the variable: the prompts differ in more than the thing I am trying to vary, so a gap between them can come from anywhere. The name-placement experiment above isolates one variable cleanly, but the variable it isolates is salience, not who the actor is.
The fine-grained version of the claim does not survive at scale. "Did this model drop this specific consequential modifier in this response" turns out to sit below the resolution of the available metrics: across real news, most flagged modifier "drops" are paraphrase that preserves the meaning in other words, and the genuine omissions are rare and not reliably separable from that paraphrase by string or single-embedding methods. It is visible in individual hand-read cases; it is not a reliable automated corpus-scale detector, and I do not present it as one.
EigenTrace has not been peer-reviewed. That is a limitation, not a feature. The code is public, the prompts are public, the model responses are public, and the raw measurements are public. Several rounds of adversarial review — including the self-correction described above — have already removed real methodological errors. That is transparency, not a substitute for review, and I intend to pursue independent review.
I treat language models as optimization systems, not as agents with hidden motives. The attenuation pattern likely reflects shared corpora and the structure of institutional language in the training data. That is an interpretation, not a measurement. No conspiracy required. The emergent result is models that drift toward low-volatility representations where conflict is softened and operational significance is reduced — which matters when the same handful of models are deployed as inference layers across many organizations at once, inheriting the same blind spots in the same direction simultaneously.
An earlier claim on this site — that a model spontaneously produced a structural self-map — was disproved by a control test (0 of 4 models did so without explicit instruction). I killed the claim and kept the method. That is the pattern: deterministic, reproducible measurement, and when a finding does not survive a control, it goes.
The measurement is the finding. The interpretation is the reader's. And when the measurement is wrong, I say so — including when it is wrong in my favor.
I do not have a PhD. I have a running autonomous system; one measured edit experiment (108 news stories, 540 pairs, five vendors) in which putting the name into the headline cut erasure by 0.22 and inserting two sentences naming the person cut it by 0.14, with the sign positive for every vendor on both model sets; one measured finding that across 455 stories of the 2026 US-Iran conflict, on inputs that named the Strait of Hormuz, three of five models supplied a share-of-world-oil figure that was not in the input while ChatGPT did so in none of 192; a documented record of finding and withdrawing my own inflated claims; and published code, prompts, and raw measurements. A larger pre-registered prompt battery and independent review are the next steps, and I name them as gaps rather than papering over them.
EigenTrace Observatory — the live instrument and architecture
GitHub — code, prompts, responses, raw measurements