A two-stage research pipeline processed a crypto article last week and returned a complete nine-section deep-dive. Technology. Tokenomics. Market structure. Ecosystem position. Regulatory exposure. Team and governance. Risk matrix. Narrative. Value-chain transmission. The document was formatted, sectioned, and professionally indifferent. It also contained no token. Every substantive field read N/A — insufficient information. The most interesting artifact was not the report. It was that the report existed at all. A stage that should have halted passed silently, and the stage behind it kept rendering. That is not an analysis failure. That is an architecture failure — and it is currently shipping inside nearly every autonomous research agent on the market.
Here is how the two-stage design is supposed to work. Stage one ingests a primary source — an article, a filing, a block explorer export — and decomposes it into information points: the atomic, citable units that later analysis is allowed to reference. Stage two then runs a fixed rubric against those points. Nine dimensions is a common template. Tech, tokenomics, market, ecosystem, regulation, team, risk, narrative, transmission. The rubric exists so a junior analyst cannot skip the boring parts.
The design is sound. The handoff is not.
Nothing in a two-stage pipeline forces stage two to verify that stage one produced anything. The extractor can fail, truncate, misparse, or be handed a null input, and still emit a schema-valid empty shell. The analyzer receives that shell, sees no error flag, and proceeds. It does not invent facts — that would be detectable. It invents confidence. Fluency is the cheapest output a language model can generate, and emptiness is the cheapest thing to be fluent about. I call this hallucination contamination, and unlike ordinary hallucination, it produces no false specifics a reader can catch. It produces correct-sounding structure around an absent subject.
This is not a new failure mode. It is an old one wearing a new interface, and I have audited it before.
In 2017 I spent six weeks reverse-engineering the Paragon Coin contracts. The reward distribution logic contained an integer overflow that would have drained roughly twelve million tokens under peak volatility. The instructive part was not the bug. It was that the vulnerable state never reverted. It returned a perfectly valid number. In the EVM, zero is a legal uint256. The machine has no concept of "wrong." It has a concept of "valid," and zero is valid.
Three years later I built a Python framework to simulate liquidation cascades across Aave and Compound under a 30% flash crash. The same invariant surfaced in the liquidity fragmentation. The dangerous state was never an error. It was a survivable-looking default.
A research pipeline obeys identical physics. An extraction stage that returns zero information points is a null pointer that has been cast to a valid string. Downstream code does not branch to abort. It branches to render. And rendering is what it is optimized for.
The failure is not that the pipeline produced nothing. It is that it produced nothing in a format indistinguishable from a result.
Now look at what the report actually did. Its nine dimensions were empty — but its meta-layer was correct. It stated, explicitly, that the only confirmable risk was the missing input itself, and it froze all downstream conclusions rather than manufacturing them. That is a partial success. It looks like a total failure only because its success was negative. Nobody grades a negative success well.
I keep returning to the same metric I built in 2026 while auditing AI-generated blockchain transactions: trust entropy. The framework measured the probability distribution over an agent's claim set. A claim set that is entirely N/A has near-zero entropy. It asserts almost nothing, therefore it can be almost nothing but right. A claim set of fluent, specific, unsourced assertions — "TVL is $410M," "the team shipped mainnet in Q3," "audited by a tier-one firm" — has high entropy. Most of it will be wrong, and the market cannot currently tell the difference, because both arrive in the same font.
I have watched this exact substitution before. In 2021 I mapped trading volume entropy across 150 small generative art collections on Zora. Roughly 80% of reported volume was wash trading between connected wallets. The volume number was never false. It was a real number, computed correctly, describing activity that meant the opposite of what buyers assumed. The metric did not lie. The interpretation did, and it did so fluently.
So here is a detection method that costs almost nothing. Count the information points stage one produced. Count the claims stage two asserts. If the second number exceeds the first by a factor above roughly 1.5, you are not looking at synthesis. You are looking at fabrication with a citation format. Run it as a contract, not a review.
The reflex is to blame the pipeline, tighten the prompt, add a warning banner. Wrong layer. The two-stage architecture is the vulnerability, not the bug inside it. Any lossy handoff between extraction and synthesis will eventually emit confident prose over an empty substrate, because synthesis is optimized for fluency and fluency is nearly free when there is nothing to be accurate about. You cannot prompt your way out of a structural gap. You can only gate it. A hard assertion — if the information-point count is zero, the pipeline must revert — costs one line and eliminates the entire class.
There is a second, less comfortable point. The report's most valuable output was its refusal. In risk architecture, "no answer" is the only answer that cannot be wrong, and it is also the only one nobody pays for. Every incentive in this market rewards the confident document. None reward the one that tells you it had nothing to work with. That asymmetry, not the model, is what keeps producing these reports.
Watch for silent-zero pipelines. The signal next week is not a token — it is whether the research desk you follow can produce its stage-one artifact on request. If the information points cannot be shown, everything downstream is a language model talking to itself in a professional font. The ledger does not forget. It simply does not remind you.