Машинний переклад. Автентичним є англійський текст. English

друга половина

Речі, які я побудував, бо хотів, щоб вони існували.

PANTHEON є основною роботою. А ось що дають ті самі інстинкти, коли за результат ніхто не платить: справжнє небо на робочому столі, ефемериди без залежностей і термінал, який уміє малювати. Дисципліна та сама; змінюються лише ставки.

GNOME Shell · GPL-2.0 · ★3

TerraFirma: справжнє небо поверх ваших шпалер.

Не анімація неба. Справжнє небо, обчислене з ефемерид для вашої широти, довготи й годинника.

Робочий стіл GNOME, шпалерами якого є обчислене нічне небо: фігури сузір'їв Пегаса, Водолія, Овна й Тельця з їхніми назвами, смуга Чумацького Шляху впоперек, Сатурн із підписом і світінням, а дуга горизонту позначена SE і SW. У кадрі видно док та іконки Home і Trash.
Робочий стіл без ретуші. Док та іконки в кадрі навмисно: це шпалери, а не вікно, що вдає із себе шпалери. Кожну фігуру, Чумацький Шлях і горизонт обчислено для цього місця й цієї хвилини.
Сатурн у вигляді маленького помаранчевого диска з еліпсом кілець навколо, з підписом Saturn, на тлі ліній сузір'їв.
Сатурн на дев'ятнадцяти кутових секундах, кільця розкриті й нахилені за реальною геометрією кілець. Вони стуляються в лінію кожні п'ятнадцять років. Тут вони частково розкриті, бо саме такими вони є зараз.

Гарячий цикл навмисно вимірюваний

Проєкція та атмосфера живуть у skymath.js, який нічого не імпортує з GNOME Shell. Про файл, що може працювати лише всередині сесії, можна тільки здогадуватися; той, що працює автономно, можна заміряти за часом. Ця межа має те саме обґрунтування, що й purity lint, який тримає ядро PANTHEON поза шаром застосунку.

Зоряний каталог та ефемериди належать третім сторонам і зазначені в NOTICE.md. Задайте дату, потім подивіться вгору: для такого роду програм це єдиний тест, що має значення.

Широка вузька смуга горизонту з азимутом SE, позначеним на дузі горизонту, і сузір'ям Південна Риба та його зорею Фомальгаут, підписаними трохи вище.
Горизонт із румбами компаса, щоб ви могли обернутися й перевірити.

Чому гарячий цикл довелося винести → · TerraFirma на GitHub ↗

виокремлено й опубліковано

Три пакети, що з цього виросли.

Той самий підхід, що й у шести пакетах PANTHEON: збудувати річ, знайти частину, яка справді придатна для повторного використання, винести її та опублікувати окремо на її власних умовах. Усі три під MIT і встановлюються вже зараз.

Мона Ліза, відтворена в терміналі кольоровими символами Брайля Unicode. Кожна клітинка символу містить сітку точок 2x4; обличчя, руки й туманний пейзаж позаду неї впізнавані, а текстуру точок Брайля видно в кожній клітинці.
Мона Ліза, намальована символами Брайля Unicode у терміналі, шириною 93 стовпці. Кожна клітинка є сіткою точок 2×4 з власним кольором переднього плану й тла.

braillecanvas v0.4.0 · MIT

Шрифт Брайля адресує 2×4 точки на клітинку символу, тож термінал 80×24 насправді є полотном 160×96. У цьому різниця між рендерингом і ASCII-артом.

Найцікавіше тут колір. Кожна клітинка несе два кольори, один для світлих точок, другий для проміжків, тож клітинка на межі, шкіра на тлі неба, зберігає межу, а не усереднює її в бруд. Середня похибка кольору на точку для цього зображення падає з 45.7 до 21.3.

Вибір того, які точки світяться в кожній клітинці, замість узяти візерунок із фіксованої сітки дизерингу, скорочує частку клітинок без текстури з 35.1% до 1.6%.

Два обмеження, зазначені в його власному README: нижче приблизно 90 стовпців фотографії перестають працювати, а монохром узагалі не здатен відтворити це зображення, її обличчя має яскравість 159 проти 192 для неба позаду, тож 1-бітний рендер за самою побудовою є силуетом.

npm i braillecanvas · npm ↗ · код ↗

skymaths v0.1.2 · MIT

Позиційна астрономія без залежностей: Сонце, Місяць, планети, сутінки, схід і захід. Виділено з ефемерид TerraFirma, а потім виправлено: поліном Espenak–Meeus, який там використовувався, опубліковано лише для 1900–1920, а його застосовували до 1986, що давало −534 секунди для 1950 року проти виміряних +29. Виявлено завдяки перевірці за опублікованим альманахом, а не за самим собою.

Це працює на цьому сайті: у темному режимі фоном є небо над Кардіффом у ніч Персеїд, 13 серпня 2026 року, обчислене у вашому браузері: 5,044 зорі в їхніх справжніх кольорах, фаза Місяця і планети там, де вони були. Прокрутіть, щоб розвернутися.

npm i skymaths · npm ↗ · код ↗

Кардіфф, 12–13 серпня 2026, з 22:45 до 02:15 BST, кожен кадр обчислено skymaths. Метеори вилітають із реального радіанта Персеїд із реальною частотою; місце, де падає кожен, випадкове. Замок і пагорби згенеровано Runway.

starwheel v0.2.3 · MIT · ★4

Жива планісфера у вашому терміналі: реальні положення зірок для вашого місця і хвилини, намальовані на braillecanvas. Мій репозиторій з найбільшою кількістю зірок, і той, що навчив мене: виправлення, яке зсуває опубліковані пікселі, двічі не буває тим самим. Тут воно навмисно обмежує ітерації там, де споріднене виправлення обрізає.

npx starwheel · npm ↗ · код ↗

Термінальний монітор сервера, намальований шрифтом Брайля: лінійні графіки CPU, пам'яті та load average у ковзному вікні, зі смугою стовпчиків для кожного ядра.
Те саме полотно відображає реальні дані /proc: CPU, пам'ять і середнє навантаження в ковзному вікні. Графіки працюють значно нижче порогу в 90 стовпців, потрібного для фотографій, бо вони й так висококонтрастні.

на цій сторінці, просто зараз

Зображення генерується, а seed не може вийти назовні.

Усі зображення на цьому сайті: головне зображення вгорі, favicon, соціальні картки, аватари, створені власним генератором PANTHEON. Детерміновано й із seed: той самий seed дає те саме зображення щоразу.

Той самий контракт з обох боків

Серверний рушій рендерить картки для соцмереж і сайти тенантів; браузерний рушій малює анімовану версію, яку ви бачите. Те саме правило: на вході зерно, на виході відтворюване мистецтво.

Захист від ін'єкцій за конструкцією

Seed живить PRNG і більше нічого. він ніколи не вставляється в розмітку чи стиль. Назва тенанта, яка насправді є payload, намалює іншу картинку; вона не намалює тег script. Той самий інстинкт, що й у решті системи, застосований до декору.

можна встановити, а не лише прочитати

Шість гарантій, виокремлених і опублікованих.

Кожен із них вийшов із PANTHEON як одна перевірювана обіцянка, а потім потрапив на PyPI, щоб існувати самостійно. Змагальні ШІ-агенти, яких я запускав сам, тобто не незалежні, пройшли їх рядок за рядком і знайшли реальні дефекти. Наведені нижче версії вийшли після цих виправлень. Кожну перевірено встановленням із реєстру в чисте середовище та повторним запуском відтворення самого рецензента, а не довірою до журналу збирання.

pantheon-guardrails v0.3.2 · Apache-2.0

Оцінювач відповідності конституції, який залучає LLM-суддю лише для відповідей з високими ставками і вимагає, щоб цей суддя був іншою моделлю, ніж генератор, щоб вони не мали спільних сліпих зон. Раніше він обрізав оцінку поза діапазоном вгору: суддя, що повертав {"clarity": 99}, отримував ідеальні 1.0 і проходив кожен поріг: запобіжник, що відмовляв у відкритий бік. Тепер суддя, який кидає виняток, зависає або повертає нісенітницю, дає явну невдалу оцінку, яка за замовчуванням блокує.

pip install pantheon-guardrails · PyPI ↗ · код ↗

pantheon-ssrf-guard v0.2.1 · Apache-2.0

Дворівневий SSRF-захист вихідного трафіку, що витримує DNS rebinding: він повторно перевіряє IP, до якого сокет справді підключився під час з'єднання, тож хост, який резолвиться в публічну адресу, а потім перепривʼязується на loopback чи хмарні метадані, відхиляється. Рев'ю виявило, що opener усе ще читав би URL file://, бо Python за замовчуванням встановлює обробники для інших схем; тепер на межі є явний allowlist http/https, включно з редиректами, а проксі з оточення вимкнено, якщо ви їх не ввімкнете.

pip install pantheon-ssrf-guard · PyPI ↗ · вихідний код ↗

pantheon-tool-sanitizer v0.3.0 · Apache-2.0

Вирізає розмітку інструментальних протоколів і Unicode-контрабанду з недовіреного тексту MCP-інструментів, перш ніж він потрапить у промпт агента. Чесно окреслено межі: він не претендує на захист від ін'єкцій звичайним текстом, бо це проблема архітектури, а не рядків. Два виправлення за результатами рев'ю: зловмисний вхід розміром 256 kB забирав 26 секунд CPU, а тепер одразу відхиляється, і "Read\nthe\tfile" більше не перетворюється на "Readthefile", бо перенесення рядка є межею слова.

pip install pantheon-tool-sanitizer · PyPI ↗ · код ↗

credit-ledger v0.3.0 · Apache-2.0

Облік без овердрафту поверх Postgres приблизно у 150 рядках: 100 паралельних списань при балансі 50, і рівно 50 проходять, рівно одноразове виставлення рахунків при повторах вебхуків, ізоляція забезпечується row-level security. Опублікована збірка раніше приймала від'ємне списання, яке платило клієнту, і суми, менші за точність стовпця, які списували 0.0000, повідомляючи про успіх. Тепер одне правило для сум покриває всі шляхи, і є протестована міграція для вже наявних баз даних.

pip install credit-ledger · PyPI ↗ · вихідний код ↗

pantheon-ical v0.3.1 · Apache-2.0

Двобічний iCal (RFC 5545) для календарів бронювань менш ніж у 200 рядках. Втрачений період зайнятості читається як вільний, тож тиша є небезпечною відмовою: завеликий календар відхиляється, а не обрізається, а правило повторення, що переповнюється, повідомляє про це замість повернути короткий список. Останнє виправлення обмежило роботу, так само як і результат: одне вороже правило в один рядок раніше будувало 34 мільйони повторень упродовж 76 секунд, перш ніж бути відхиленим; тепер воно зупиняється на 401.

pip install pantheon-ical · PyPI ↗ · вихідний код ↗

pantheon-rls v0.1.1 · Apache-2.0

Ізоляція тенантів як гарантія Postgres, а не звичка застосунку: force-RLS плюс гранти з мінімальними привілеями, тож сама база даних відмовляє в читанні й записі між тенантами. Fail-closed за конструкцією: без контексту тенанта повертається нуль рядків, ніколи не всі рядки, а саме цей режим відмови важить, коли баг потрапляє в продакшн о 3 ночі.

pip install pantheon-rls · PyPI ↗ · джерело ↗

Кожне виправлення вище з'явилося однаково: спершу відтворити дефект, виправити межу, а не симптом, потім довести, що новий тест падає, коли баг повертають. Тест, який не може впасти, не є доказом.

на чому це працює

Стек нудний. Межа ні.

Python 3.12, FastAPI, Postgres, Redis, React з Vite, один Dockerfile за nginx. Жодне з цього не є рішенням, яким варто захоплюватися. Це частини, які обираєш, щоб увага могла піти туди, де це важливо.

146 файлів · 14,002 рядки

pantheon-core: основа. Незалежна від предметної області за контрактом: їй заборонено імпортувати з residents чи bundles, і дві незалежні перевірки валять CI, якщо це стається.

210 файлів · 24,216 рядків

Тести на 38,816 рядків Python. Я не пишу реалізацію вручну, тож набір тестів не є страховкою. Це специфікація, і саме цей артефакт я насправді створюю.

П'ять шарів, один шлях

architect · runtime · guardrails · substrate · primitives, а providers свідомо поза стеком, бо він лежить нижче двох шарів одночасно, і контракт каже про це прямо, а не викривляється.

Саме через цю межу шість компонентів вдалося вийняти й опублікувати як окремі бібліотеки, виокремлення здебільшого зводилося до переміщення файлів, яким ніколи не дозволялося сягати донизу. Довга версія, разом із тим, де я помилився →

Та сама людина, ті самі правила, нижчі ставки.

Ніхто не проводить аудит шпалер. Вони побудовані саме так тому, що це єдиний відомий мені спосіб будувати: виміряти, винести придатну до повторного використання частину, опублікувати разом із нею її обмеження й звірити цифри з чимось поза програмою.

Що я шукаю → Читати тексти →