Agents search a data catalog for a table they need, do not find it, and fail silently in their own context. That failure is deleted. Nullspace keeps it.
Every data team has a list of tables people wish existed. It lives in Slack, in Jira, in somebody's head. It worked because the people asking were people, and people file tickets.
The ones asking now are agents. An agent hits a missing table, fails, and moves on. It does not file anything. The same want can recur three hundred times across an organisation without a single human ever learning it happened — and the more analytics you hand to agents, the more of your real demand becomes invisible.
Every company has a map of the data it has. Nobody has a map of what it needed and could not get.
A catalog is an inventory: it answers what do we have? So we asked what it structurally cannot answer — what do we not have, that somebody wanted? It cannot, because the moment of wanting happens outside it. The search returns nothing, and that is the end.
So every miss now materialises a ghost: a real DataHub dataset URN tagged
ghost, carrying a demand counter and edges back to every agent that
asked. Three agents in three separate contexts discover, for the first time, that
they wanted the same thing. Cross a threshold and a builder agent walks the backlog,
refuses out loud what the warehouse cannot answer, writes a dbt model for what
it can, and opens a real pull request. A human merges it. On merge the ghost goes
solid — real schema, real lineage, and the requesters become native Owners of the
table they caused to exist.
Then the part everyone forgets: the agents that were blocked stop being blocked, and none of them had to ask again.
Nobody has to install anything or change a line of their code. Every warehouse on earth already logs its own wish list, and deletes it weekly.
That is a want, a timestamp, the columns needed, and the service that needed them. We read the log. 2,405 real errors became 1,253 attributed requests across 41 tables that do not exist, ranked by how many independent agents are waiting.
The mechanic is a demand counter, a threshold and a code generator. DataHub could build it in a weekend, and if this is right, they should — which is why the proposal is upstream rather than kept.
What cannot be copied is what your agents needed and could not get, counted and attributed, compounding every day. You cannot buy last year's version of that, and you cannot catch up on it.
And one thing this will never claim: nobody should merge agent-written SQL unreviewed, and this does not ask you to. The agent's job is to turn three silent failures into a reviewable two-minute diff.