Repository navigation
feat(queen): feed the swarm from the roadmap, with a brief that says what the game is - #4855
Conversation
…what the game is The Queen answered "nothing to choose" against 497 open issues all day: the roadmap's stages 2-8 (#4544-#4550) had no task filed against them, and she files nothing herself. Tasks that pointed bees at files in other repositories (#4813-#4832) came back as empty branches, because a bee sees only this checkout. tools/queen/feed_roadmap.py files one port task per hand-written file, round robin across stages 1-7: one Boundary (the specs/port .t27 it creates), the source quoted verbatim behind a line-number gutter so the Queen cannot read a quoted comment as a heading or a criterion, the six acceptance commands of the stage-1 port issues, and docs/ROADMAP_BRIEF.md: the goal of the game (law L0, the eight stages, how progress is measured, how a turn is lost) and how to rewrite code into .t27, measured today with t27c test-report. Stage 8 is refused with its reason; stages 3 and 4 need ROADMAP_READ_TOKEN to read their private repositories. Ledgers moved in this commit: the census counts one more workflow file (63 -> 64), one more job (84 -> 85), two more run steps (278 -> 280; runner-run 257 -> 259) and three more "named a path but not quiet" (147 -> 150), all from queen-feed-roadmap.yml. check_pr_branch_filters classifies it, and also needs-boundary.yml and queen-export-push.yml: master carried 26 unclassified against a ceiling of 24. pusher.py dispatches the new feeder with the other two when the swarm is out of fuel. Closes #3977 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011vMJx1ZWk2hq58jyEecRBY
|
📓 NotebookLM Notebook linked to this PR
This notebook contains session context, decisions, and artifacts for this work. |
Every roadmap task quotes this brief, so every bee now reads where the game ends: after stage 8, the whole BrowserOS browser and every third-party dependency the stack runs in another language, rewritten in .t27. Not measured yet, and nothing is filed against it. Refs #3977 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011vMJx1ZWk2hq58jyEecRBY
|
📓 NotebookLM Notebook linked to this PR
This notebook contains session context, decisions, and artifacts for this work. |
PR DashboardGenerated at: 2026-09-27 05:45:50 UTC
Summary
Seal Status
|
#4787 replaced MERGE_CRITICAL with four new names and left the self-test spelling gate-topology.yml and untrusted-input-gate.yml, which are no longer in it. The probe tree never wrote those files, so "missing classified guard fails" unlinked a file that did not exist and the self-test crashed with FileNotFoundError on every tree, master included. The probes now take their names from MERGE_CRITICAL; all nine pass. Refs #3977 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011vMJx1ZWk2hq58jyEecRBY
|
📓 NotebookLM Notebook linked to this PR
This notebook contains session context, decisions, and artifacts for this work. |
PR DashboardGenerated at: 2026-09-27 05:47:53 UTC
Summary
Seal Status
|
|
CI on this PR, as of
Generated by Claude Code |
One sector per UTC day, in turn over stages 1, 2, 5, 6 and 7, goes first in the feeder's round and gets two picks a turn. The ROADMAP tab computes the same sector from goals.json and draws the raid, and each side pins RAID_STAGES in its own test, so the board never names a raid the feeder is not running. Refs #3977 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011vMJx1ZWk2hq58jyEecRBY
PR DashboardGenerated at: 2026-09-27 06:14:32 UTC
Summary
Seal Status
|
|
📓 NotebookLM Notebook linked to this PR
This notebook contains session context, decisions, and artifacts for this work. |
The roadmap brief listed stage 9 as "not filed yet". Goal #4858 now holds what is measured of it: BrowserOS dev is 5.48 MB of source, the browser is Chromium 146.0.7680.31 fetched at build time, and the running services' lockfiles hold 2,187 npm packages, 650 crates and 35 Go modules. The feeder indexes stage 9 as refused, like stage 8, until stage 8 is done and the goal's questions are answered. The self-test pins the refused stages to 8 and 9, and task bodies now say "stage N of 9". Refs #4858 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011vMJx1ZWk2hq58jyEecRBY
|
📓 NotebookLM Notebook linked to this PR
This notebook contains session context, decisions, and artifacts for this work. |
PR DashboardGenerated at: 2026-09-27 07:50:57 UTC
Summary
Seal Status
|
BrowserOS pins Chromium 146.0.7680.31: its BASE_COMMIT is that tag's commit. Chromium's src at that tag, and the V8 and Skia commits it pins, were read from the GitHub mirrors and counted by the rules of trinity's roadmap-stack.mjs: - Chromium src: 1,144.7 MB - V8: 145.6 MB - Skia: 51.4 MB That is 1,341.7 MB in all, seven times the 192.2 MB the count holds for the whole stack. Blink (132.4 MB outside its tests) sits under the skipped third_party/, and the 258 other DEPS repositories are not counted. Refs #4858 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011vMJx1ZWk2hq58jyEecRBY
|
📓 NotebookLM Notebook linked to this PR
This notebook contains session context, decisions, and artifacts for this work. |
PR DashboardGenerated at: 2026-09-27 08:10:13 UTC
Summary
Seal Status
|
|
📓 NotebookLM Notebook linked to this PR
This notebook contains session context, decisions, and artifacts for this work. |
PR DashboardGenerated at: 2026-09-27 11:15:41 UTC
Summary
Seal Status
|
d102f08 to
02b75b3
Compare
|
📓 NotebookLM Notebook linked to this PR
This notebook contains session context, decisions, and artifacts for this work. |
PR DashboardGenerated at: 2026-09-27 11:18:38 UTC
Summary
Seal Status
|
A dry run of 14 tasks chose seven that no port could honestly finish: - three trios-doctor modules that are a single todo!() (check, heal and report); - two build scripts whose main only prints, and a cli command (lang.rs) whose run only prints; - trinity's gen_vsa.zig, which says it was generated from specs/vsa_simple/vsa.tri and is the same code as vsa.zig, filed beside it. A file is now passed over as "no decision" when its code, without comments, strings and tests, has no branch, loop, comparison, arithmetic or deciding builtin. Rust #[cfg(test)] modules and Zig test blocks are cut first: gen_hash_sha256.zig returns 32 zero bytes and only its test compares anything. "Generated from <spec>.tri" now counts as a generated header. Verilog is exempt, since a module is wiring and has criteria of its own. The same dry run now passes over 91 files as having no decision and 10 as generated, and its 14 picks all hold logic a test can assert on. They are filed as #4893-#4906. Refs #3977 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011vMJx1ZWk2hq58jyEecRBY
02b75b3 to
cadd1d9
Compare
PR DashboardGenerated at: 2026-09-27 11:23:40 UTC
Summary
Seal Status
|
|
📓 NotebookLM Notebook linked to this PR
This notebook contains session context, decisions, and artifacts for this work. |
Pull Request Checklist
feat(queen): ...Closes #3977; related roadmap goals: [roadmap] Stage 1: The swarm's own tools: Python and shell in t27 #4543 [roadmap] Stage 2: The Queen and her bees: api.t27.ai #4544 [roadmap] Stage 3: The app and the bot: app.t27.ai backends #4545 [roadmap] Stage 4: VIBEE services on Fly.io #4546 [roadmap] Stage 5: The Zig core: hand-written Zig becomes generated Zig #4547 [roadmap] Stage 6: trios Rust rings and trios-railway #4548 [roadmap] Stage 7: Silicon: Verilog from .t27 #4549 [roadmap] Stage 8: Interfaces: the open question #4550 [roadmap] Stage 9: Endgame: the browser and every dependency #4858docs/now/2026-09-27-the-roadmap-had-no-tasks-so-the-queen-had-nothing-to-choose.mdentry is addedpython3 tools/queen/feed_roadmap.py --self-testDescription
The Queen was healthy but idle.
chosen=null refusal="nothing to choose" candidates=497, with 0 running and 4 free slots.## Boundary, including the roadmap goals, which have none on purpose.ENOENTand left an empty branch.This PR adds a feeder for the roadmap and a brief that tells every bee what the game is.
tools/queen/feed_roadmap.pyfiles one port task per hand-written file, round robin across stages 1-7. Each task contains:specs/port/<repo>/<path>.t27it creates;docs/ROADMAP_BRIEF.md;docs/BEE_TOOLBELT.md.#. That would turn a quoted Python comment into a heading and a C comment line* ...into a bullet. The self-test quotes a hostile source and checks the body against twins of her boundary and criteria parsers.docs/ROADMAP_BRIEF.md, the goal of the game:docs/ROADMAP_BRIEF.md, how to rewrite code into.t27. Everything here was measured today witht27c test-reporton Zig 0.16.0:.t27idioms;ROADMAP_READ_TOKENis set (stages 3 and 4);todo!()stub, or code that only prints;Changes
tools/queen/feed_roadmap.py: the feeder, with--self-test,--dry-run,--stage,--when-idle --runway autoand--issues-json(offline dry runs only)f5d0f29): one sector per UTC day, in turn over stages 1, 2, 5, 6 and 7, goes first in the feeder's round with two picks a turn (RAID_STAGES,raid_stage). The ROADMAP tab on the site draws the same raid, and both sides pin the list in their tests. The dry run today picked stage 6.b5cb3db).devis 5.48 MB of source;27fedf7).BrowserOS pins Chromium 146.0.7680.31: its
BASE_COMMITis that tag's commit.Chromium's
srcat that tag, and the V8 and Skia commits it pins, were read from the GitHub mirrors and counted by the rules of trinity'sroadmap-stack.mjs:srcThat total is seven times the 192.2 MB the count holds for the whole stack.
Blink (132.4 MB outside its tests) and the 258 other DEPS repositories are not in it.
The brief, the NOW entry and [roadmap] Stage 9: Endgame: the browser and every dependency #4858 carry the figures.
cadd1d9).todo!();gen_vsa.zig, which says it was generated fromspecs/vsa_simple/vsa.triand duplicatesvsa.zig.#[cfg(test)]modules and Zigtestblocks count as tests:gen_hash_sha256.zigreturns 32 zero bytes and only its test compares anything.<spec>.tri" now counts as a generated header..github/workflows/queen-feed-roadmap.yml: runs hourly at :23;workflow_dispatchtakeslimit,stageanddry_rundocs/ROADMAP_BRIEF.md: the brief every roadmap task quotestools/queen/pusher.py: the new feeder joinsFEEDERS, so it is dispatched when the swarm is out of fuelscripts/ci/check_pr_branch_filters.py:needs-boundary.ymlandqueen-export-push.yml. Master carries 26 unclassified workflows against a ceiling of 24; this brings the count back to 24.tools/census/quiet.txt,shell.txt: re-blessed. The counts moved from 63 -> 64 workflow files, 84 -> 85 jobs and 278 -> 280 run steps, and 147 -> 150 "named a path but not quiet". Every change comes from the new workflow.docs/now/...: the entryTesting
A dry run over the real repositories, filed as #4893-#4906.
tools/toolbelt.py(Port tools/toolbelt.py (Python, 5 functions) to specs/port/tools/toolbelt.t27 #4900),tools/ci/check_specs_still_parse.py(Port tools/ci/check_specs_still_parse.py (Python, 7 functions) to specs/port/tools/ci/check_specs_still_parse.t27 #4897)queen-brief-shape.ts(Port gHashTag/BrowserOS:trios/agent-server/apps/server/src/api/services/queen-brief-shape.ts (TypeScript, 2 functions) to specs/port/browseros/trios/agent-server/apps/server/src/api/services/queen-brief-shape.t27 #4904) andqueen-lease.ts(Port gHashTag/BrowserOS:trios/agent-server/apps/server/src/api/services/queen-lease.ts (TypeScript, 6 functions) to specs/port/browseros/trios/agent-server/apps/server/src/api/services/queen-lease.t27 #4901)src/vsa_simple/vsa.zig(Port gHashTag/trinity:src/vsa_simple/vsa.zig (Zig, 6 functions) to specs/port/trinity/src/vsa_simple/vsa.t27 #4906) andsrc/tri/gen_relu.zig(Port gHashTag/trinity:src/tri/gen_relu.zig (Zig, 2 functions) to specs/port/trinity/src/tri/gen_relu.t27 #4905)trios-trinity-brain/src/phi.rs(Port gHashTag/trios:crates/trios-trinity-brain/src/phi.rs (Rust, 3 functions) to specs/port/trios/crates/trios-trinity-brain/src/phi.t27 #4893);trios-cli/src/cmd/status.rs(Port gHashTag/trios:crates/trios-cli/src/cmd/status.rs (Rust, 1 function) to specs/port/trios/crates/trios-cli/src/cmd/status.t27 #4896);trios-hdc/build.rs(Port gHashTag/trios:crates/trios-hdc/build.rs (Rust, 1 function) to specs/port/trios/crates/trios-hdc/build.t27 #4903).fpga/vivado/blinky.v(Port fpga/vivado/blinky.v (Verilog, 1 module) to specs/port/fpga/vivado/blinky.t27 #4894) andgf16_dot4.v(Port fpga/vivado/gf16_dot4.v (Verilog, 1 module) to specs/port/fpga/vivado/gf16_dot4.t27 #4895)Criteria checked against real ports. I wrote a
.t27for one generated Zig task and for one Verilog task, and ran each task's six commands exactly as printed. Each printed what the task says it should. The brief's example passest27c test-report3/3.Documentation
docs/ROADMAP_BRIEF.md(new)docs/now/2026-09-27-the-roadmap-had-no-tasks-so-the-queen-had-nothing-to-choose.mdReview Notes
ROADMAP_READ_TOKENsecret that can read them is set. Without it, each run names them and feeds the other stages.fix/queen-worker-provider-and-prompt-size, the branch the api.t27.ai service deploys from. The default branchdevhas notrios/.docs/BEE_TOOLBELT.md. The toolbelt saysfor i in 0..nis not the language, but with this compiler it compiles whennisusize. The brief says so, and I left the toolbelt alone.specs/port/tools/*.t27build. 7 do not parse, and 25 generate Zig that does not compile, althoughspec-statuscalls 24 of them IMPLEMENTED. That is why the brief insists that onlytest-reportis proof.tools/queen/queen_feed_port.pywith a*/5workflow. It files ports for this repository's own files only, in the same issue shape.docs/ROADMAP_BRIEF.mdand the pusher hook.gate-topologywas red on master too; it is fixed here (6989b14).duplicate-bodies,Corpus ratchet,Documented t27c subcommands existandcoveragefail on master too, including its latest pushb6beb8a(comment above).🤖 Generated with Claude Code
https://claude.ai/code/session_011vMJx1ZWk2hq58jyEecRBY