друга половина
Речі, які я побудував, бо хотів, щоб вони існували.
PANTHEON є основною роботою. А ось що дають ті самі інстинкти, коли за результат ніхто не платить: справжнє небо на робочому столі, ефемериди без залежностей і термінал, який уміє малювати. Дисципліна та сама; змінюються лише ставки.
GNOME Shell · GPL-2.0 · ★3
TerraFirma: справжнє небо поверх ваших шпалер.
Не анімація неба. Справжнє небо, обчислене з ефемерид для вашої широти, довготи й годинника.
Гарячий цикл навмисно вимірюваний
Проєкція та атмосфера живуть у skymath.js, який нічого не імпортує з GNOME Shell. Про файл, що може працювати лише всередині сесії, можна тільки здогадуватися; той, що працює автономно, можна заміряти за часом. Ця межа має те саме обґрунтування, що й purity lint, який тримає ядро PANTHEON поза шаром застосунку.
Зоряний каталог та ефемериди належать третім сторонам і зазначені в NOTICE.md. Задайте дату, потім подивіться вгору: для такого роду програм це єдиний тест, що має значення.
Чому гарячий цикл довелося винести → · TerraFirma на GitHub ↗
виокремлено й опубліковано
Три пакети, що з цього виросли.
Той самий підхід, що й у шести пакетах PANTHEON: збудувати річ, знайти частину, яка справді придатна для повторного використання, винести її та опублікувати окремо на її власних умовах. Усі три під MIT і встановлюються вже зараз.
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-бітний рендер за самою побудовою є силуетом.
skymaths v0.1.2 · MIT
Позиційна астрономія без залежностей: Сонце, Місяць, планети, сутінки, схід і захід. Виділено з ефемерид TerraFirma, а потім виправлено: поліном Espenak–Meeus, який там використовувався, опубліковано лише для 1900–1920, а його застосовували до 1986, що давало −534 секунди для 1950 року проти виміряних +29. Виявлено завдяки перевірці за опублікованим альманахом, а не за самим собою.
Це працює на цьому сайті: у темному режимі фоном є небо над Кардіффом у ніч Персеїд, 13 серпня 2026 року, обчислене у вашому браузері: 5,044 зорі в їхніх справжніх кольорах, фаза Місяця і планети там, де вони були. Прокрутіть, щоб розвернутися.
npm i skymaths · npm ↗ · код ↗
starwheel v0.2.3 · MIT · ★4
Жива планісфера у вашому терміналі: реальні положення зірок для вашого місця і хвилини, намальовані на braillecanvas. Мій репозиторій з найбільшою кількістю зірок, і той, що навчив мене: виправлення, яке зсуває опубліковані пікселі, двічі не буває тим самим. Тут воно навмисно обмежує ітерації там, де споріднене виправлення обрізає.
/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 і проходив кожен поріг: запобіжник, що відмовляв у відкритий бік. Тепер суддя, який кидає виняток, зависає або повертає нісенітницю, дає явну невдалу оцінку, яка за замовчуванням блокує.
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", бо перенесення рядка є межею слова.
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 ночі.
Кожне виправлення вище з'явилося однаково: спершу відтворити дефект, виправити межу, а не симптом, потім довести, що новий тест падає, коли баг повертають. Тест, який не може впасти, не є доказом.
на чому це працює
Стек нудний. Межа ні.
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 свідомо поза стеком, бо він лежить нижче двох шарів одночасно, і контракт каже про це прямо, а не викривляється.
Саме через цю межу шість компонентів вдалося вийняти й опублікувати як окремі бібліотеки, виокремлення здебільшого зводилося до переміщення файлів, яким ніколи не дозволялося сягати донизу. Довга версія, разом із тим, де я помилився →
Та сама людина, ті самі правила, нижчі ставки.
Ніхто не проводить аудит шпалер. Вони побудовані саме так тому, що це єдиний відомий мені спосіб будувати: виміряти, винести придатну до повторного використання частину, опублікувати разом із нею її обмеження й звірити цифри з чимось поза програмою.
Запитайте про будь-яку частину цієї роботи.
- Яку роль шукає Isaac?
- Що з цього працює в продакшені?
- Покажіть справжній баг, який він знайшов і виправив