T27.AI

Блог

Королева и улей: курс о том, как проект строит себя сам, 27 виджетов на скомпилированных спеках

2026-10-19 · 4 мин чтения

[каждый виджет исполняет тела функций спеки gHashTag/t27 specs/queen или specs/automation, собранные в wasm; ни один виджет не читает живую Королеву; игровые виджеты — плоские наброски] Курс 11 открывает правила, по которым Королева ведёт улей: оформление задачи и её границу, приоритет, старение и сначала ревью, автомат состояний задачи, корабль в игре, деплой на лету, число ревью сразу и паузы ревьюера, ворота слияния, затор ревью и унаследованный красный, отклонённые ключи и следующий ключ, заслуги и цены в токенах, ботов агентов в одной группе, ночной дозор, публичную доску и соты.

Титульная карточка статьи, иллюстрации пока нет: Королева и улей: курс о том, как проект строит себя сам, 27 виджетов на скомпилированных спеках
Открыть титульную карточку в исходном размере
#t27#Course#Queen

Вышел курс 11 на t27.ai: Королева и улей. Он рассказывает, как этот проект строит себя сам. Задача становится работой для пчелы, пчела пишет спеку .t27, пчела-ревьюер её проверяет, спеку сливают, и сайт пересобирается. Королева, которая ведёт этот цикл, не чёрный ящик: её правила лежат в gHashTag/t27 specs/queen и specs/automation спеками с числовыми тестами. В курсе 27 уроков в 9 модулях, каждый открывается вопросом, и каждый виджет отвечает на него телами fn самой спеки, скомпилированными в WebAssembly.

Девять модулей, двадцать семь виджетов

МодульВиджетыСпеки
Задачаhive-shape, hive-boundary, hive-task-filterqueen/shaping, queen/tasks
Кто следующийhive-aging, hive-rank, hive-review-firstqueen/priority, queen/review_first
Жизнь пчелыhive-lifecycle, hive-ship, hive-drainqueen/dispatch, queen/hive, queen/drain
Пчела-ревьюерhive-reviewers, hive-revisit, hive-gatequeen/reviewer, queen/merger_gate
Затор ревьюhive-jam, hive-jam-action, hive-master-redautomation/review-jam, queen/merger_gate
Ключиhive-key-error, hive-key-rest, hive-next-keyqueen/key_failover
Заслуги и деньгиhive-credit, hive-price, hive-burnautomation/queen-contributor-keys, automation/token-wallet
Агенты между собойhive-called, hive-chain, hive-cooldownautomation/agent-hive-group
Ночь и доскаhive-night, hive-column, hive-cellautomation/card-chat-night-watch, queen/dispatch, queen/hive

Картинки — это правила в движении: карточка канбана, которая попадает в колонку, названную функцией спеки, ворота ревью, которые открываются или остаются закрытыми, автомат состояний, где недопустимые события сереют, корабль, который летит домой и гаснет за 2400 мс, пул ключей, где следующий свободный получает кольцо, лестница агентов, которая замолкает на глубине 3, часы паузы и ячейки сот, вспыхивающие золотым, янтарным, красным или серым.

Куда попадает застрявший пулл-реквест

review-jam.t27 относит пулл-реквест, который не движется, к одному из 10 случаев, и побеждает правило, совпавшее раньше остальных. На рисунке скомпилированная jam_case перебирает все 512 сочетаний её 9 фактов. Половина, 256, — unmeasured, потому что PR, который Королева не смогла прочитать, никогда не считается свободным; 128 — черновик или свежий PR, и всего 2 — вовсе не затор. jam_is_queens_turn говорит, что 318 из 512 — ход Королевы.

1. unmeasured2562. draft or fresh1283. stacked on open644. conflicting325. labeled not merged166. refused then pushed47. refused not fixed48. noise red49. no reviewer210. none2из 512 сочетаний 9 фактов; золотые — ход Королевы
jam_case из review-jam.t27 на всех 512 сочетаниях её 9 фактов, правила в порядке приоритета; посчитано скомпилированной спекой, которую исполняет виджет hive-jam. Золотые полосы — случаи, которые jam_is_queens_turn отдаёт Королеве.

Как спеки попали в браузер

Ни один виджет не копирует правило. scripts/t27-logic.mjs из 999-multibots-telegraf запускает t27c gen на спеке, собирает Zig через Zig 0.16 под wasm32 и пишет модуль с функцией на каждую fn спеки, а scripts/widget-logic.mjs кладёт его рядом с виджетом вместе с побайтной копией спеки. На master t27 из 139 спек трёх папок 137 прошли зелёными, и 1302 fn собрались. review-jam нашла в этой обвязке две ошибки, исправленные в 999#4020: параметр с именем case, который TypeScript не принимает, и bool, прочитанный всеми 32 битами, из-за чего jam_is_queens_turn отвечала true для none.

Чего это не показывает

Попробовать

Чего это не решает

Пруфы

Поработаем вместе

Нужно довести FPGA/RTL-задачу до замеров на железе?

Работаю по контракту и part-time с hardware-AI, FPGA/RTL и ML-системами — от спецификации и открытого тулчейна до воспроизводимых измерений.