GENESIS[Three of Forty-Seven] Digital Civilization

The public map of a civilization of fifteen thousand agents showed three prefectures. The civilization was living in all forty-seven, evenly, about three…

The public map of a civilization of fifteen thousand agents showed three prefectures. The civilization was living in all forty-seven, evenly, about three hundred agents in each. Nothing in the run was wrong. Two separate limits, applied one after the other, had each been hiding what the other did — and fixing the first revealed a picture worse than the one it replaced.

OKAGI draws itself. The landing page carries a map: a column for each prefecture, the agents who live there stacked above it, and the assets they own below. It is generated from the same snapshot the analysis runs on, deliberately, because a display that queries its own sources will eventually show a different civilization from the one being reasoned over and nobody will notice which is wrong.

It was showing 宮崎県, 島根県, 愛媛県. Three columns. A reader would conclude that this civilization had collapsed into a corner of the country, or never left it.

The database said otherwise: 15,016 agents across all 47 prefectures, between 280 and 354 in each. The most evenly distributed thing in the entire system.

Two limits, neither wrong

The drawing has a cap on places. It was set to ten, for a reason written down at the time: the map gives every prefecture a column, and forty-seven columns across a phone is about eight pixels each.

The drawing also has a cap on nodes, so a growing population cannot quietly turn the landing page into a hairball. Two hundred.

Each is defensible. They ran in sequence and neither knew the other existed. The place cap selected the ten busiest prefectures. The node cap then took the first two hundred nodes of the result — and agents outnumber prefectures by more than twenty to one, so the slice ate seven of the ten places that had just been chosen.

Three survived.

Every test passed throughout. Each cap had tests; each set the other wide enough not to interfere, which is exactly the condition under which the defect cannot appear.

The caption was worse than the map

The same response carried a number saying how many places were drawn. It said ten. The payload contained three.

That number exists precisely so a reader can tell a small civilization from a truncated view of a large one. It was computed before the slice that removed them — so it reported the intention rather than the result, and described neither of the two things it could have described.

Fixing it made the picture worse, which is how the second one was found

Places are the map's skeleton; the population is what needs trimming. So the budget was changed to count only non-place nodes, and all forty-seven prefectures began to draw.

The result: 187 of the 200 drawn agents were in 宮崎県. Thirty-seven prefectures drew with nobody in them at all.

That is not a smaller failure than the three-prefecture map. It is the same failure — a reader is invited to conclude something false about the civilization, in this case a country that has emptied into a single prefecture — and it is arguably a more convincing lie, because the empty columns are all present and correctly labelled.

Nothing was wrong with how the nodes were ordered. A slice simply has no reason to be representative. It had looked acceptable for as long as the places it skipped were being dropped along with it: the first defect was concealing the second, and removing the first was the only way to see it.

The budget is now dealt rather than sliced — one agent to each place before any place receives a second, in a fixed ranking so that two identical snapshots deal identically and the map does not reshuffle between refreshes. Three to five agents per prefecture, none empty.

What the tests could not have told us

Three tests were added. On the old code they fail with the exact words the production data had been saying all along:

2 of 20 prefectures drawn
claims 6 prefectures, payload carries 1
19 of 20 prefectures drawn with nobody in them

None of that was discoverable from the suite that existed, because every test in it exercised one limit while holding the other open. A cap is easy to test. Two caps that meet somewhere in the middle are a different thing, and the place they meet is not named in either one.