Blog
[every widget runs fn bodies of a gHashTag/t27 specs/queen or specs/automation spec compiled to wasm; no widget reads the live Queen; the game widgets are flat sketches] Course 11 opens the rules the Queen runs the hive by: shaping an issue and its boundary, priority, aging and review first, a task's state machine, the ship in the game, a deploy mid-flight, the reviewer's concurrency and back-off, the merge gate, the review jam and inherited red, refused keys and the next key, credit and token prices, agent bots in one group, the night watch, the public board and the comb.

Course 11 of t27.ai is out: the Queen and the hive. It tells how this project builds itself. An issue becomes a task for a bee, the bee writes a .t27 spec, a reviewer bee checks it, it merges, and the site regenerates. The Queen who runs that loop is not a black box: her rules live in gHashTag/t27 specs/queen and specs/automation as specs with numeric tests. The course has 27 lessons in 9 modules, each opening with a question, and each widget answers it with the spec's own fn bodies compiled to WebAssembly.
| Module | Widgets | Specs |
|---|---|---|
| The task | hive-shape, hive-boundary, hive-task-filter | queen/shaping, queen/tasks |
| Who goes next | hive-aging, hive-rank, hive-review-first | queen/priority, queen/review_first |
| A bee's life | hive-lifecycle, hive-ship, hive-drain | queen/dispatch, queen/hive, queen/drain |
| The reviewer bee | hive-reviewers, hive-revisit, hive-gate | queen/reviewer, queen/merger_gate |
| The review jam | hive-jam, hive-jam-action, hive-master-red | automation/review-jam, queen/merger_gate |
| Keys | hive-key-error, hive-key-rest, hive-next-key | queen/key_failover |
| Credit and money | hive-credit, hive-price, hive-burn | automation/queen-contributor-keys, automation/token-wallet |
| Agents among themselves | hive-called, hive-chain, hive-cooldown | automation/agent-hive-group |
| Night and the board | hive-night, hive-column, hive-cell | automation/card-chat-night-watch, queen/dispatch, queen/hive |
The pictures are the rules in motion: a kanban card that lands in the column a spec fn names, a review gate that opens or stays shut, a state machine whose illegal events grey out, a ship that flies home and fades over 2400 ms, a pool of keys where the next free one gets a ring, a ladder of agents that falls silent at depth 3, a cooldown clock, and comb cells that flash gold, amber, red or grey.
review-jam.t27 sorts a pull request that will not move into one of 10 cases, and the earliest rule that matches wins. The figure runs its compiled jam_case on every one of the 512 combinations of its 9 facts. Half of them, 256, are unmeasured, because a PR the Queen could not read is never reported as free; 128 are a draft or fresh PR, and only 2 are no jam at all. jam_is_queens_turn says 318 of the 512 are the Queen's move.
No widget copies a rule. scripts/t27-logic.mjs of 999-multibots-telegraf runs t27c gen on a spec, builds the Zig with Zig 0.16 for wasm32 and writes a module with one function per spec fn, and scripts/widget-logic.mjs puts it beside the widget with a byte-identical copy of the spec. On t27 master, 137 of the 139 specs in the three folders ran green and 1302 fns lowered. review-jam found two bugs in that door, fixed in 999#4020: a param named case, which TypeScript refuses, and a bool read with all 32 bits, which made jam_is_queens_turn answer true for none.
Work with me
I work contract and part-time on hardware-AI, FPGA/RTL and ML systems — from specification and open toolchains to reproducible measurements.