Матеріал на сайті
Вихідне питання
Що саме має відбутися, щоб написана Конституція стала робочою системою, і чи можна відтворити цей перехід у виконуваному коді?
Повна дослідницька основа цієї публічної адаптації доступна на Zenodo: «Конституція коду».
Дев’ять підключених вузлів запускають спільну конституційну систему
- state: Ізольовані штати
- actor: Ратифікаційні конвенти
- state: 9 підтверджених вузлів із 13
- artifact: Установлена Конституція
- state: Спільна конституційна система
- isolated produces conventions
- conventions produces nine
- nine produces constitution
- constitution produces network
Америка, що з’являлася на карті
У нашому проходженні Death Stranding Америка спочатку існувала як обіцянка на карті. Її обриси вже були знайомими, назви міст зберігалися, люди жили в укриттях, вантажі рухалися між окремими точками. Спільна система поставала лише в міру просування Сема. Ми діставалися чергової станції, відновлювали контакт, виконували роботу, отримували згоду на підключення — і одна ізольована ділянка ставала частиною UCA (United Cities of America). Карта змінювала колір, мережа розширювалася, а звичний контур країни поступово наповнювався чинними зв’язками.
Саме це переживання виявилося важливішим за сюжетну формулу про відновлення Америки. Гра дала відчути відмінність між територією, назвою та системою. Територія могла залишатися на місці. Назва могла пережити катастрофу. Система вимагала повторного з’єднання людей, вузлів, повноважень та інфраструктури. Кожне нове підключення підтверджувало, що спільний порядок існує тут, між тими, хто погодився ввійти до нього й отримав доступ до його можливостей.
UCA ID у такому досвіді сприймався як малий матеріальний знак великої архітектури. Картка, запис або статус в інтерфейсі повідомляли про належність до порядку, який іще продовжував складатися. За цим знаком стояла мережа, а за мережею — послідовність локальних згод. Америка вмикалася вузол за вузлом.
Стаття VII Конституції США здійснює схожий перший рух. Вона розташована наприкінці первісного тексту й відповідає на питання, з якого програмна система зазвичай починає життя: за якої події цей артефакт набуває сили та для кого саме він починає діяти?
Сім статей, сім збірок
Ця публікація відкриває цикл із семи матеріалів — по одному на кожну статтю первісної Конституції США. Дослідницькою основою слугує «Конституція коду», де політичну конституцію було перетворено на систему архітектурних питань: хто встановлює порядок, де виникають повноваження, як ухвалюються похідні норми, що забезпечує спадкоємність і яким чином система змінює саму себе. Новий цикл розгортає цю операцію у зворотному напрямку. Ми беремо кожну статтю Конституції США, збираємо з неї програмну модель і перевіряємо, чи зберігає модель вихідну структуру.
Порядок публікацій наслідує логіку складання. Стаття VII дає точку запуску, тому серія починається з кінця документа. Далі рух ітиме від основи системи до її робочих компонентів.
| Публікація | Стаття Конституції | Робоча функція у програмній моделі |
|---|---|---|
| 1 | VII | bootstrap() — ратифікація, поріг запуску та сфера дії |
| 2 | VI | rootOfTrust() — верховенство, зобов’язання, присяга й канонічний порядок |
| 3 | V | upgradeKernel() — пропонування, ратифікація та впровадження поправок |
| 4 | IV | federate() — взаємодія штатів, визнання актів і приєднання вузлів |
| 5 | III | resolve() — спір, юрисдикція, рішення та відновлення допустимого стану |
| 6 | II | execute() — виконавче повноваження, призначення, договори та спадкоємність |
| 7 | I | legislate() — вироблення спільних правил, бюджет і перелічені повноваження |
Такий маршрут дає змогу поступово додавати підсистеми. У першій публікації ще немає Конгресу як робочого конвеєра, президента як виконавчого контуру або суду як механізму розв’язання спору. Є документ, тринадцять потенційних учасників та умова, за якої нову архітектуру вважають установленою. Для першого запуску цього достатньо. Для робочої республіки знадобиться весь подальший цикл.
Остання стаття як точка входу
Стаття VII складається з одного речення. В оригіналі воно встановлює, що ратифікації конвентами дев’яти штатів достатньо для встановлення Конституції між штатами, які її ратифікували:
“The Ratification of the Conventions of nine States, shall be sufficient for the Establishment of this Constitution between the States so ratifying the Same.”
У програмному прочитанні це речення містить чотири самостійні параметри:
- Подія: ратифікація.
- Допустиме джерело події: конвент штату.
- Поріг: дев’ять унікальних штатів.
- Сфера результату: штати, що ратифікували цю редакцію.
Кожен параметр впливає на поведінку моделі. Звичайне голосування законодавчого органу штату не відповідає зазначеному каналу. Повторне повідомлення від одного штату не збільшує кількість учасників. Вісім ратифікацій залишають проєкт в очікуванні. Дев’ята ратифікація змінює статус документа. Дія нової системи поширюється між учасниками, які погодилися, а наступні ратифікації розширюють її сферу.
flowchart TB
A["Текст ухвалено Конвентом 1787 року"] --> B["Штати проводять ратифікаційні конвенти"]
B --> C{"Є дев’ять ратифікацій?"}
C -- "Ще ні" --> D["Проєкт очікує"]
C -- "Так" --> E["Конституцію встановлено між штатами, що ратифікували"]
E --> F["Починається перехід до федерального середовища виконання"]Ратифікаційні конвенти штатів накопичують дев’ять унікальних згод, після чого починається перехід до федеральної системи
- artifact: Точний конституційний артефакт
- actor: Конвенти штатів
- process: Унікальні згоди
- decision: Поріг: 9 штатів
- state: Перехід до федеральної системи
- state: Очікування наступної згоди
- artifact references conventions
- conventions produces unique
- unique validates threshold
- threshold produces transition: 9 або більше
- threshold rejects waiting: Менше 9
Історична послідовність підкреслює відмінність між установленням і фактичним запуском. Нью-Гемпшир став дев’ятим штатом, що ратифікував Конституцію, 21 червня 1788 року. Новий федеральний уряд почав роботу 4 березня 1789 року. Між цими датами тривав перехід: потрібно було провести вибори, зібрати органи влади, створити адміністративні процедури та перевести написану архітектуру в інституційне виконання. Національні архіви США описують саме цю послідовність.
Для програмного проєкту це знайоме розрізнення. Затверджена специфікація ще не є розгорнутим сервісом. Підписаний реліз іще не означає готовності інфраструктури. Успішна міграція схеми не гарантує, що користувачі отримали робочий інтерфейс. Стаття VII точно фіксує момент установлення, а історія додає подальші стадії переходу.
Чотири стани одного запуску
Перша версія моделі розрізняє чотири стани, які легко злити в одне слово «ухвалено».
| Стан | Конституційна форма | Програмна форма |
|---|---|---|
| Артефакт | Текст погоджено й підписано Конвентом | Збірку створено, і вона отримала ідентифікатор версії |
| Повноваження | Дев’ять конвентів штатів ратифікували текст | Виконано умову активації конкретної редакції |
| Сфера | Конституцію встановлено між штатами, що її ратифікували | Визначено набір вузлів, для яких версія є активною |
| Runtime | Органи та процедури починають фактичну роботу | Компоненти розгорнуто, з’єднано, і вони обслуговують запити |
Ця таблиця виражає головний результат першої публікації. Стаття VII реалізує перехід від артефакту до визнаної основи системи. Розгортання та робота компонентів належать наступному шару. Така межа робить модель корисною: функція отримує саме ту відповідальність, яку здатне підтримати її джерело.
stateDiagram-v2
[*] --> Proposed
state "Проєкт Конституції" as Proposed
state "Очікування порога" as Waiting
state "Встановлено між учасниками" as Established
state "Перехід до установ" as Transition
state "Федеральне середовище виконання" as Runtime
Proposed --> Waiting: 1–8 ратифікацій
Waiting --> Established: 9-та ратифікація
Established --> Established: новий штат ратифікує
Established --> Transition: організація запуску
Transition --> Runtime: установи починають роботуПроєкт долає поріг дев’яти ратифікацій, розширює коло учасників, а потім переходить до робочих установ
- artifact: Запропонований порядок
- state: 9 ратифікацій
- state: Установлено між штатами
- process: Наступні ратифікації
- state: Робочі інституції
- proposal produces threshold
- threshold produces established
- established produces expansion
- expansion produces runtime
Мінімальна виконувана модель
Метафора набуває ваги, коли витримує перетворення на поведінку. Тому кожна публікація циклу міститиме виконуваний прототип. Перша модель написана звичайною мовою JavaScript, використовує лише стандартні можливості мови та представляє статтю VII як чисту функцію: на вхід надходять рішення штатів, на виході постає стан конституційного запуску.
export const FOUNDING_STATES = Object.freeze([
'Delaware',
'Pennsylvania',
'New Jersey',
'Georgia',
'Connecticut',
'Massachusetts',
'Maryland',
'South Carolina',
'New Hampshire',
'Virginia',
'New York',
'North Carolina',
'Rhode Island',
]);
export const ARTICLE_VII_THRESHOLD = 9;
export function evaluateArticleVII(decisions) {
const knownStates = new Set(FOUNDING_STATES);
const ratifyingStates = new Set();
for (const decision of decisions) {
if (!knownStates.has(decision.state)) {
throw new TypeError(`Unknown founding state: ${decision.state}`);
}
if (decision.channel === 'state-convention' && decision.approved === true) {
ratifyingStates.add(decision.state);
}
}
const ratifiedBy = Object.freeze([...ratifyingStates]);
const established = ratifiedBy.length >= ARTICLE_VII_THRESHOLD;
return Object.freeze({
artifact: 'Constitution of 1787',
phase: established ? 'established' : 'proposed',
ratifiedBy,
establishedBetween: Object.freeze(established ? [...ratifiedBy] : []),
runtime: 'pending-implementation',
});
}Код зберігає чотири властивості статті. Set забезпечує унікальність штатів. state-convention фіксує допустиме джерело ратифікації. Константа ARTICLE_VII_THRESHOLD робить поріг явним. Поле establishedBetween пов’язує результат з учасниками, які прийняли документ. Поле runtime додане нашою інженерною моделлю й прямо залишає систему у стані переходу.
У цій точці програмна форма вже починає ставити корисні питання до інтерпретації. Чи слід відхиляти недопустиме голосування з помилкою, або ж зберігати його як подію, що не впливає на результат? Чи має порядок ратифікацій нормативне значення, чи слугує лише історичним журналом? Як засвідчується автентичність рішення конвенту? Яка структура приймає пізніше приєднання? Стаття VII дає основу поведінки, а реалізація змушує перелічити те, що залишається за її межами.
WARDEN: місце, де аналогія проходить випробування
У циклі з’являється окремий контур — WARDEN. Він належить нашій лабораторії та перевіряє якість перетворення Конституції на програмну форму. Його позицію навмисно винесено за межі модельованої федерації. Суд за статтею III буде учасником самої системи: він розглядає реальні спори, встановлює застосовне правило та надає засіб відновлення. WARDEN працює раніше й холодніше. Він зіставляє текст, заявлені інваріанти, код і тестові сценарії.
flowchart TB
A["Стаття VII: нормативний текст"] --> C["Інваріанти моделі"]
B["JavaScript: виконувана поведінка"] --> D["WARDEN"]
C --> D
D --> E{"Усі сценарії пройдено?"}
E -- "Так" --> F["Модель допускається до серії"]
E -- "Ні" --> G["Повернення до коду або тлумачення"]WARDEN зіставляє нормативні інваріанти з виконуваною моделлю та повертає розбіжності на перегляд
- source: Нормативні інваріанти
- artifact: Виконувана модель
- process: WARDEN
- state: Підтверджена відповідність
- state: Розбіжність
- human-decision: Людський перегляд
- norms references warden
- model validates warden
- warden validates pass
- warden rejects discrepancy
- discrepancy returns review
- review returns model
Для статті VII перша батарея WARDEN складається з чотирьох тестів:
import test from 'node:test';
import assert from 'node:assert/strict';
import { FOUNDING_STATES, evaluateArticleVII } from './article-vii.js';
const convention = (state) => ({
state,
channel: 'state-convention',
approved: true,
});
const eightConventionRatifications = FOUNDING_STATES.slice(0, 8).map((state) => convention(state));
const nineConventionRatifications = FOUNDING_STATES.slice(0, 9).map((state) => convention(state));
const eventsWithDuplicateAndLegislatureVote = [
...eightConventionRatifications,
convention(FOUNDING_STATES[0]),
{
state: FOUNDING_STATES[8],
channel: 'state-legislature',
approved: true,
},
];
test('вісім конвентів залишають проєкт в очікуванні', () => {
const result = evaluateArticleVII(eightConventionRatifications);
assert.equal(result.phase, 'proposed');
assert.deepEqual(result.establishedBetween, []);
});
test('дев’ять унікальних конвентів установлюють Конституцію', () => {
const result = evaluateArticleVII(nineConventionRatifications);
assert.equal(result.phase, 'established');
assert.equal(result.establishedBetween.length, 9);
});
test('рішення законодавчого органу й дублікат не збільшують кількість ратифікацій', () => {
const result = evaluateArticleVII(eventsWithDuplicateAndLegislatureVote);
assert.equal(result.ratifiedBy.length, 8);
});
test('установлення зберігає runtime у стані переходу', () => {
const result = evaluateArticleVII(nineConventionRatifications);
assert.equal(result.phase, 'established');
assert.equal(result.runtime, 'pending-implementation');
});Виконувана версія прототипу проходить усі чотири сценарії стандартною командою node --test. Сенс цього результату залишається скромним і точним: код реалізує вибрані інваріанти статті VII. Тести поки що не підтверджують історичної повноти моделі, юридичної коректності кожного майбутнього випадку або придатності всієї Конституції як програмної архітектури. Ці питання накопичуватимуться протягом семи публікацій.
Перший прогін, до слова, провалив три сценарії. Допоміжна функція тестів випадково отримала індекс елемента від Array.map() як значення approved, і вісім ратифікацій перетворилися на одну. Явна стрілкова функція виправила набір даних. WARDEN встиг упіймати звичайну помилку JavaScript до того, як ми підвищили її до статусу конституційної доктрини. Для випробувального контуру це гідне перше чергування.
WARDEN також зберігає походження кожного тесту. Інваріант «дев’ять унікальних штатів» виводиться з порога та природи учасників. Інваріант «рішення конвенту» випливає із зазначеного способу ратифікації. Інваріант сфери дії випливає зі слів про штати, які ратифікували документ. Розмежування встановлення й runtime є нашим інженерним тлумаченням, підтриманим історичною послідовністю. Така простежуваність дає читачеві змогу побачити місце кожного рішення та оскаржити його без містики навколо коду. Магічний штучний інтелект у цій ролі швидко перетворив би дослідження на оракула з добрим CSS; WARDEN отримує прозаїчнішу й кориснішу посаду випробувача.
Що стаття VII вже дає програмній архітектурі
Перша стаття циклу залишає чотири практичні висновки.
Умова запуску є частиною архітектури. Система потребує явної події, після якої конкретна редакція набуває повноваження. Репозиторій, тег релізу й розгорнуте середовище виражають різні стани.
Поріг має визначати сферу результату. Дев’ять згод установлюють спільний порядок між учасниками, які погодилися. У розподіленій системі аналогічний поріг вимагає відповіді на питання, які вузли прийняли новий стан і які гарантії діють для решти.
Джерело підтвердження має значення. Стаття VII визначає конвенти штатів. Тому програмна модель зберігає тип події разом із результатом. Просте поле approved: true втрачає походження повноваження й перетворює будь-яке доступне підтвердження на еквівалентне.
Успішна активація відкриває перехід. Після встановлення ще належить зібрати робочі компоненти. Архітектура зберігає цей розрив як окремий стан і тим самим робить міграцію спостережуваною.
Ці висновки вже виглядають придатними для програмного забезпечення. Вони застосовні до розподіленої конфігурації, керування релізами, багатостороннього погодження та запуску систем, де одна команда не має постійного root. Їхня цінність поки стосується протоколу встановлення. Наступні статті покажуть, чи здатна та сама модель витримати верховенство норм, зміну ядра, автономію вузлів, спір, виконання й вироблення спільних правил.
Де закінчується перший експеримент
Стаття VII особливо зручна для програмної адаптації завдяки стислості та процедурній формі. Вона визначає учасників, допустиму дію, поріг і сферу результату. Машина добре працює з такою структурою. Більша частина конституційного порядку влаштована складніше: повноваження перетинаються, слова потребують тлумачення, факти стають предметом спору, звичаї змінюють фактичну поведінку, а матеріальне виконання залежить від людей та установ.
Тому цей цикл оцінює адаптацію поступово. Кожна публікація додасть компонент і нові інваріанти. Деякі положення отримають ясну виконувану форму. Інші збережуться як обмеження, інтерфейси або питання, які програма здатна зареєструвати, але не розв’язати самостійно. Підсумкова оцінка з’явиться після статті I, коли модель отримає повний первісний контур.
Перший результат залишається обнадійливим. Остання стаття Конституції справді поводиться як точка входу. Вона приймає локальні рішення, досягає заданого порога, визначає сферу нової версії та переводить систему у стан розгортання. Орел поки ще сидить у завантажувачі, зате завантажувач проходить тести.
Висновок
Наш досвід Death Stranding дав цій моделі простий образ: спільна система з’являється на карті через послідовність визнаних підключень. Стаття VII перетворює схожий рух на конституційний протокол. Текст уже існує, штати ухвалюють рішення через спеціально визначений механізм, дев’ята згода встановлює нову редакцію між учасниками, а потім починається робота з перетворення основи на чинні інституції.
У коді цей протокол зберігає поріг, походження рішення, унікальність учасників, сферу дії та окремий стан runtime. WARDEN підтверджує вибрані інваріанти й залишає спірні місця видимими. Цього достатньо для першого запуску й достатньо мало для чесного продовження.
Наступна публікація перейде до статті VI. Після підключення системі знадобиться власний root of trust: спосіб визначити верховний корпус правил, зберегти попередні зобов’язання та пов’язати посадових осіб із конституційним порядком. Америка з’явилася в мережі. Тепер мережа має зрозуміти, чому вона довіряє.
Продовжити дослідження з ШІ
Сайт формує цей розділ із незалежного набору питань constitution-runtime.article-vii.bootstrap, збереженого в супровідному каталозі constitution-runtime-01-article-vii-questions.yaml. Кожне питання містить власний предмет та інтерпретаційну рамку, тому його можна повторно використати в іншій публікації або траєкторії розмови без копіювання цієї статті.
Рекомендований маршрут: досвід підключення → умова запуску → сфера дії → виконувана модель → WARDEN → межі моделі. Контракт відповіді ШІ, умови відкриття гілок, візуальні опори та локалізовані формулювання визначено в каталозі питань.
Маршрут розмови про статтю VII від досвіду підключення до меж програмної моделі
- artifact: Стаття VII
- state: Досвід підключення
- state: Поріг запуску
- state: Сфера дії
- state: Виконувана модель
- state: WARDEN
- human-decision: Межі
- root produces experience
- experience produces activation
- activation produces scope
- scope produces model
- model produces warden
- warden produces limits
Відомості про публікацію
Автори: Sam Starling, Oksana Dubinetska
Контекст проєкту: Zhovten Games / IRONCREED
Повне дослідницьке джерело: «Конституція коду» — DOI 10.5281/zenodo.21894242
Репозиторій дослідження: FOP-Oksana-Dubinetska/code-constitution
Історичні матеріали: текст Конституції США; ратифікація та запуск федерального уряду; огляд статті VII
Пов’язані публікації: статті VI–I циклу «Конституція, що виконується»
Редакція публікації: 0.2 · 13 серпня 2026 року