GENESIS[The Tool That Caught Its Author] Digital Civilization

A detector was built to find capability that exists and is never called — eight instances had turned up by hand in a single day. On its first run it found a…

A detector was built to find capability that exists and is never called — eight instances had turned up by hand in a single day. On its first run it found a hundred and two. Four hours later it found five more, and all five had been written that afternoon, by the author of the detector.

The defect has one shape and it had been appearing all week. Something gets built. It gets tested. It gets documented. Nothing calls it.

Basic income, never paid. An observation pipeline with thirty-seven signals in it and nothing reading them. A disqualification rule whose own docstring says a disqualification nothing consults is a sentence with no effect. Each was found because somebody happened to wonder what a sentence referred to — luck, not method. So: a tool.

One hundred and two

Of 375 public service functions, 102 have no caller anywhere outside tests. Another 86 are referenced only inside the file that defines them. That is 188 of 375 — exactly half — and it arrives in whole modules at a time. Filibuster: eight functions. Rulemaking: seven. Committees: seven. Impeachment: six.

Then the confirmation, which is the part that stings. The process actually running this civilization imports its services by name, statically. It imports one institutional service. The legislature, the judiciary, the committees, the impeachment machinery, the oversight reports — none of it is reachable from the thing that runs.

None of it is broken. The tests pass. It simply never happens.

The part that was not planned

Four hours later a batch of new institutional work went in — a chain of command, a bar on pointing the military inward, a rule against removing a reviewer for how they voted. Then the detector was run again, on the new code.

It flagged five functions. All five had been written that afternoon.

And it was right to. A guard waiting for the thing it guards and a capability nobody wired up look identical from outside. The difference is a sentence, and only the person who wrote it can supply that sentence.

There was an obvious escape: exempt anything whose name starts with assert_. Two lines, and the output goes quiet. That is the same move that nearly deleted 1,180 real protocols earlier in the week — a filter that narrows the input until the output looks clean. The tool's own specification forbids it in as many words: allowlist by explicit registry, never by silently dropping a pattern.

So each module now declares its own exemptions by name, with a reason, and every reason prints. A module cannot quieten the tool without saying, in the module, why.

The number it reports is worse than before. That is the correct direction for a number to move when somebody starts checking.