Plan and Phases
Roll-up status for crystal-robots, in the same shape as Ollama-Codex's own "Plan and Phases" page: one line per phase, its status, and what still rolls up under it. Full detail, decisions and the dated change log live in docs/PLAN.md; this page is the summary a stakeholder can read without the history. Unscheduled work that has not been slotted into a phase lives on Backlog. As of 2026-09-11 this roll-up is also mirrored as a Fossil ticket tree for the Agent Console (OCX-PLAN marker, plan ticket 0e791860fb).
Roll-up
Core language, battlefield and primary hosting: done and hardened. A robot written in the language subset parses, checks, interprets and compiles to WASM identically; it battles on a CROBOTS-accurate field; the whole thing is served through Fossil + CGI as the primary deployment and has been through several rounds of maintainer review. What is left is secondary hosting, the teaching-layer emitters, a time-sensitive badge-hosting demo target, and a handful of cross-project or coordinator-owned items (see Backlog).
Phases
| Phase | What | Status |
|---|---|---|
| 0 | Stabilize the baseline (wasmer pin, spec skip, stub retirement) | Done |
| 1 | Language front end: the progressive multipass tokenizer | Done |
| 2 | Reference interpreter, Host seam, Checker |
Done |
| 3 | Battlefield simulation ported from the CROBOTS C source | Done |
| 4 | WASM back end, differential specs vs. the interpreter | Done |
| 5 | Fossil + CGI hosting (primary) | Done, in active maintenance |
| 5b | Direct hosting (-p PORT) and static export (-s DIR) |
Not started (secondary) |
| 6 | Teaching layers: derivation view, dot/crystal/riscv emitters, language reference |
Partial — derivation view (pass-by-pass trace) ships on every source page; the three emitters and the CROBOTS manual port are not started |
| 7 | GitLab to Fossil migration and housekeeping | Done per the coordinator's 2026-09-11 answers (ci.sh, ignore-glob, build-docs, README, permissions) |
| — | Badge-hosted (aarch64) teacher demo (not yet numbered) | Open, time-sensitive — see below |
Phase 5 in active maintenance
Phase 5 does not "close": every merge to trunk gets a maintainer review pass, and this session fixes what comes back in the next work unit (injection, resource limits, permission gates, correctness bugs, most recently a row-parsing regression in the saved-robots listing on 2026-09-11). That loop is expected to continue and is not itself a backlog item.
Badge-hosted (aarch64) teacher demo — time-sensitive
Surfaced 2026-09-11 while building the ticket tree: pre-existing ticket
cd7ded1952 (opened 2026-09-10 by the maintainer) asks for a BeagleBadge
(aarch64 Armbian) deployment serving the overview, parse page and
saved-robot wiki gallery — pure Crystal + fossil-extroot, no wasmer needed
— for a "mid-September" teacher demo (ocx milestone 98e14097), with
POST /battle's WASM execution deferred on the badge. This had not made
it into docs/PLAN.md or this page until now, and no badge-hosting work has
happened in this session. Needs the coordinator/maintainer to confirm the
demo date and priority given how close "mid-September" now is to today.
Tracked as milestone 79245b8153 with three work tickets (compat check,
deploy, acceptance), all flagged design_input=yes.
Open engineering question
Whether WASM-compiled robots can join the battlefield depends on whether
wasmer 4's runtime tolerates a fiber switch inside a host callback (the
env.tick import would need to block on the scheduler channel the same
way an interpreted robot's fiber does). Spiking this is Backlog item 1;
until it lands, WASM robots compile and run standalone but do not battle.