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

Вышел курс 11 на t27.ai: Королева и улей. Он рассказывает, как этот проект строит себя сам. Задача становится работой для пчелы, пчела пишет спеку .t27, пчела-ревьюер её проверяет, спеку сливают, и сайт пересобирается. Королева, которая ведёт этот цикл, не чёрный ящик: её правила лежат в gHashTag/t27 specs/queen и specs/automation спеками с числовыми тестами. В курсе 27 уроков в 9 модулях, каждый открывается вопросом, и каждый виджет отвечает на него телами fn самой спеки, скомпилированными в WebAssembly.
| Модуль | Виджеты | Спеки |
|---|---|---|
| Задача | hive-shape, hive-boundary, hive-task-filter | queen/shaping, queen/tasks |
| Кто следующий | hive-aging, hive-rank, hive-review-first | queen/priority, queen/review_first |
| Жизнь пчелы | hive-lifecycle, hive-ship, hive-drain | queen/dispatch, queen/hive, queen/drain |
| Пчела-ревьюер | hive-reviewers, hive-revisit, hive-gate | queen/reviewer, queen/merger_gate |
| Затор ревью | hive-jam, hive-jam-action, hive-master-red | automation/review-jam, queen/merger_gate |
| Ключи | hive-key-error, hive-key-rest, hive-next-key | queen/key_failover |
| Заслуги и деньги | hive-credit, hive-price, hive-burn | automation/queen-contributor-keys, automation/token-wallet |
| Агенты между собой | hive-called, hive-chain, hive-cooldown | automation/agent-hive-group |
| Ночь и доска | hive-night, hive-column, hive-cell | automation/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 — ход Королевы.
Ни один виджет не копирует правило. 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.
Поработаем вместе
Работаю по контракту и part-time с hardware-AI, FPGA/RTL и ML-системами — от спецификации и открытого тулчейна до воспроизводимых измерений.