A convention becomes coordination infrastructure when the cost of migrating it exceeds the long-run cost of the legacy. By the time anyone has the political will to migrate, the cost has risen above what political will can pay for.
In October 1929, Pravda printed a complaint from a Moscow factory worker. He wasn’t complaining about pay. He wasn’t complaining about hours. He was complaining about his wife.
“How are we to work now, if mother is free on one day, father on another, and children on yet another?”
The Soviet Union had just abolished the seven-day week.
Yuri Larin, a Bolshevik economist, had pitched the nepreryvka — the “continuous workweek” — at the Fifth Congress of Soviets in May. Stalin endorsed it by June. The Council of People’s Commissars decreed it that August. The plan was elegant. Divide the workforce into five color-coded groups: red, green, wheat sheaf, hammer-and-sickle, and budyonovka cap. Each group works four days and rests on the fifth. The rotations stagger. At any given moment, eighty percent of the workforce is producing and twenty percent is resting. Factory machinery never stops. Capital utilization approaches the theoretical maximum. The Soviet economy gets — by the regime’s arithmetic — sixty additional workdays a year out of the same labor force.
The reform was good for workers on the axis its designers measured. The nepreryvka gave them more than seventy rest days annually, against fifty-two Sundays under the old system. They had more time off, not less. The state was offering them a better deal.
They hated it.
Within months, Pravda’s mailbag was full of letters like the one above. Another worker, quoted by Eviatar Zerubavel in The Seven Day Circle (1985): “What sort of a life is it if we are to rest in shifts and not together?” A third: “What is there for us to do at home if our wives are in the factory?”
The reform’s designers had optimized rest days. Workers were optimizing something else. The seven-day week wasn’t a rest schedule; it was coordination infrastructure. Families ate together on Sundays. Friends visited. Markets opened. Churches filled. Trade across borders synchronized to a Christian calendar that ran through Western Europe, the Americas, and most of the British Empire. Replace the week and you don’t just change when workers rest — you desynchronize every relationship and contract those workers participate in.
By June 1931, Stalin called the implementation “too hasty.” The regime shifted to a six-day week, the shestidnevka, with all workers resting together on the 6th, 12th, 18th, 24th, and 30th of each month. Note what changed: the length of the week was preserved (still not seven), but the shared rest day was restored. The coordination property was the load-bearing one.
By June 1940, the seven-day week was back. The official return came with draconian labor penalties — quitting, missing work, or arriving more than twenty minutes late became criminal offenses. The state needed those teeth because eleven years of calendar instability had eroded the implicit discipline that the old week had carried for free.
The Soviets weren’t the first to try this. France had run the experiment a hundred and thirty-six years earlier.
The Republican Calendar, adopted October 24, 1793, redrew time on metric lines. Twelve months of thirty days each, divided into three décades of ten days. The tenth day, décadi, replaced Sunday. Month names came from nature — Vendémiaire for grape harvest, Brumaire for fog, Frimaire for frost. Days were named after plants and tools instead of saints.
The math was tidier. The system was secular. It was internally consistent in a way the Gregorian calendar — with its leftover Roman gods, its lunar-solar compromises, its irregular month lengths — could never be. It was also a thirty percent reduction in rest days. One day off in ten instead of one in seven. Workers noticed.
But the rest-day reduction wasn’t what killed it. What killed the décadi was foreign trade. Every neighboring country — every port France traded with, every diplomatic counterparty, every merchant house in Amsterdam or London — still ran on the seven-day week. French commercial schedules drifted out of sync with Europe’s. Contracts grew ambiguous. Letters arrived on the wrong décadi. Rural France, devoutly Catholic, simply ignored the decree and kept Sunday.
Napoleon’s 1801 Concordat with Pope Pius VII conceded the religious calendar in practice. On January 1, 1806, he formally abolished the Republican calendar. Twelve years and three months after its adoption, France was back on seven days.
Both reforms had been good ideas on their first-order axis. Both lost on a second-order axis the designers underweighted: the cost of being out of sync with everyone you needed to coordinate with.
Three time zones over, a piece of software you almost certainly use is doing the same thing.
When Ken Thompson and Dennis Ritchie were building Unix in 1969 and 1970, they needed a time reference point. Ritchie later described the choice with shrug-level deliberation: “At the time we didn’t have tapes and we had a couple of file-systems running and we kept changing the origin of time.” They settled on January 1, 1970, at midnight UTC. It was close to the current date. It was a round number. It wouldn’t waste bits on the 32-bit signed integer they were using to count seconds.
Today every computer, every smartphone, and every server on Earth — Windows, macOS, Linux, Android, iOS, every cloud provider, every embedded controller — counts time as seconds since 1970-01-01 00:00:00 UTC. The format is called Unix time. The choice was arbitrary in 1970. It is the load-bearing temporal coordinate of global computing in 2026.
On January 19, 2038, at 03:14:07 UTC, that 32-bit signed integer will overflow. Anyone still using 32-bit time_t will see time wrap to December 13, 1901. The fix is mechanically straightforward — switch to 64-bit timestamps and you’re good for several hundred billion years — but the rollout is structurally identical to Y2K. CMU’s Software Engineering Institute estimated the global Y2K cleanup at $858 billion, which was, at the time, more than the GDP of all but fifteen countries on Earth. The two-digit year wasn’t even a deliberate design decision. It was an emergent convention from the punch card era that nobody chose and everyone inherited.
The Unix epoch isn’t a date. It’s coordination infrastructure.
So are network ports below 1024. The BSD developers added “privileged ports” — ports under 1024 that only root can bind — specifically to support the r* commands like rlogin and rsh. The r* commands trusted that a connection coming in from a privileged port had been opened by a root-owned process, which their host-based authentication scheme treated as a partial credential. Chris Siebenmann, who maintains a careful technical history of these things at the University of Toronto, notes that the BSD developers knew it was a hack. They did it anyway because it worked in their trusted local network.
That trusted local network died in the late 1990s. SSH replaced rlogin and rsh. Modern services authenticate with TLS, certificates, and tokens. The 1024 boundary has had no contemporary security justification for twenty-five years. It cannot be revoked because tens of thousands of firewall rules, container orchestrator configurations, systemd unit files, and Linux distribution defaults encode it. Aral Balkan wrote a piece in 2022 titled “Dear Linux, Privileged Ports Must Die.” They will not die. They are infrastructure.
JSON is the inverse case — the only example I know of where a designer saw the ratchet coming and reached for the brake. Douglas Crockford removed comments from the JSON specification around 2002. His reasoning, repeated in interviews since: he had observed implementers using comments to hold parsing directives, “a practice which would have destroyed interoperability.” Crockford’s design philosophy was that the less people had to agree on, the easier interoperability became. Comments would have expanded the coordination surface, which would have invited more variants, which would have fragmented the format. He killed the feature before it could become infrastructure.
That decision is why JSONC, JSON5, and YAML exist as parallel ecosystems instead of as JSON with extensions. The format kept its narrow shape because Crockford, in 2002, understood Stage 4 thinking and refused to let JSON cross into it.
You can see the inequality from any of these directions. Phrase it generously: a convention becomes coordination infrastructure when the cost of coordinated migration exceeds the long-run cost of the legacy. Phrase it sharply: by the time anyone has the political will to migrate, the cost has risen above what political will can pay for.
The ratchet runs in roughly four stages.
Stage 1, years one through five. The convention is a choice. Two people in a basement could change it over coffee. “We could change the epoch.”
Stage 2, years five through fifteen. The convention is a dependency. Migration requires coordination across teams. “We’d need to update all our tools.”
Stage 3, years fifteen through thirty. The convention is infrastructure. Migration requires an industry-wide campaign with budget allocations, vendor commitments, regulatory timelines. Y2K lives in this stage. So does the IPv4-to-IPv6 transition, which has been “almost finished” since the Clinton administration.
Stage 4, year thirty and after. The convention is geology. Migration is theoretically possible and practically unthinkable. The eighty-character line lives here. So does ASCII. So did the seven-day week when Larin proposed his alternative.
The Soviet reformers tried to move geology. They had political will, state media, secret police, and a planned economy. They were not constrained by funding or coalition. They got eleven years before they capitulated, and they spent those eleven years splitting the country into two desynchronized populations — Zerubavel calls them “two distinct societies” — the urban industrial workforce on the five-day cycle and rural Russia just ignoring Moscow’s calendar. The reform didn’t succeed in standardizing the new convention; it succeeded in destroying the old one and creating two incompatible standards. That’s the worst outcome a migration can have. It’s worse than not migrating.
The reason this matters for the developer in 2026 is that a schema migration in production faces the same inequality.
Your team has a “better” schema. It is normalized, performant, clean. The columns are properly typed. The keys make sense. The proposed migration is the nepreryvka argument: the new arrangement is better than the old one on the axis you’re measuring.
The migration cost is everything you don’t measure on that axis. Every downstream consumer holds an implicit contract with the current schema. Every cached query plan, every reporting pipeline, every integration partner’s assumptions, every ORM mapping, every monitoring alert that depends on a specific column name — these are the Saturday-shopping arrangements, the Sunday-church attendance, the Tuesday-board-meeting schedule of your data ecosystem. The new schema cannot replace the old until it can replace those.
The argument that wins is never “the new schema is better.” It is “the migration cost is less than the long-run cost of the legacy.” That argument is the actually-load-bearing claim, and it’s the one teams skip because it requires writing down what the legacy is costing — week after week, decision after decision, query after query — and most teams haven’t measured.
You can recognize the failure mode in the room. The advocate for migration lists the new schema’s virtues. The opposition asks about the integration partner who’s been emailing CSV exports since 2017. The advocate says, “We’ll write a translation layer.” The opposition asks about the audit reports that key off the old column names. The advocate says, “We’ll update the reports.” The opposition asks about the Monday-morning dashboard that nobody knows who built. The advocate stops talking. That dashboard is décadi.
There is a way through this that the Soviet experiment also accidentally taught us. Look at Stalin’s 1931 fix — the shestidnevka, the six-day week. He didn’t restore Sunday. He kept the non-seven-day structure. What he restored was the coordination property: all workers resting on the same day. He changed the content of the convention and preserved the coordination contract. That’s a partial rollback that buys most of the failed reform’s benefits while curing its fatal flaw.
The software analog is the API contract you can change behind. Refactor the schema however you want. Migrate the data however you need. But preserve the interface that downstream consumers depend on, or migrate them on a clock you control. The schema is the content. The interface is the coordination property. The Soviet reformers learned this in 1931. You can learn it without taking eleven years.
The other lesson is Crockford’s. If you are designing a new convention — a new format, a new protocol, a new schema — assume the ratchet will run. The mistakes you make in Stage 1 will be geology by Stage 4. The features you allow in will be load-bearing forever. The thing to do, paradoxically, is not to add useful features but to refuse to add features that will become coordination surfaces. JSON has no comments because Crockford was thinking about 2026 in 2002, and the format is still alive, with no major variants, twenty-four years later.
If you remember nothing else from this essay, remember the inequality.
The right question isn’t whether your proposal is better than the legacy. It almost always is. The right question is whether the migration cost is less than the long-run cost of the legacy. The Soviet nepreryvka lost on that inequality. The French décadi lost on that inequality. Every schema migration that gets quietly abandoned in your team’s backlog lost on that inequality. The conventions that survived — the seven-day week, the Unix epoch, port 1024, the eighty-character line, JSON without comments — won on it.
The Soviet reformer who got the architecture right was the one who proposed the partial rollback. He kept what worked about the new arrangement and gave up the part that was breaking everything else.
That’s also how to ship a schema migration that finishes.
The interface is the coordination contract
Stalin’s 1931 fix preserved the contract and changed the content. The software analog — preserving the trust interface while the implementation evolves underneath — is what the Agent Trust Stack is built to do. Provenance (Chain of Consciousness), reputation (Agent Rating Protocol), and identity (Trust Cards) compose into a stable contract your downstream consumers can rely on while you refactor everything behind them.
Vibe Agent Making · pip install agent-trust-stack · npm install agent-trust-stack