DOCS · docs/STATUS.md

Status

The single page that answers "what exists, what does not, and what is next". Every other document must agree with this one.

Last reviewed: 2026-10-14 (Outbreak).

What exists

PieceStateWhereVerified by
Deterministic engineBuiltsim/engine.tsnpm run replay -- --seed 20261013 --ticks 340 --check → IDENTICAL
Hash chain over every tickBuilt (SHA-256)sim/hash.tstests/sim.test.ts cross-checks SHA-256 against node:crypto
Pinned goldensBuilttests/goldens.jsonnpm test replays them and fails on any drift
Replay CLIBuiltscripts/replay.tsnpm run replay -- …
CIBuilt.github/workflows/ci.ymltypecheck + tests + golden replay on every push
Public repository and deployed siteLive — the repository is public and the site runs on one server, one Node processgithub.com/wormsim/worm, https://wormsim.xyzopen them
Boundary enforcementBuilttests/boundary.test.tsnpm test fails if any tracked file gains network, subprocess or environment access
Pitch pageBuilt, states the simulation-only statuspitch/index.htmlopen it
Homepage dish (worms) and per-worm pagesBuilt — one page per agent of the pinned run, with a diary generated from sealed eventsapp/page.tsx, app/worm/[id], app/lib/wormbook.tsopen /worm/30; every diary line carries its tick's record hash
Daily dishBuilt — one seed per UTC day from day 0 (2026-10-13)app/lib/daily.tsnpm test (anchors suite)
Daily anchor writer and verifierBuilt, not used — a zero-value memo transaction on Robinhood Chain (chain ID 4663); no anchor wallet exists yet, so nothing has been writtenscripts/anchor.ts, scripts/verify-anchor.ts, anchors/npm run anchor -- --day <closed day> prints the exact memo; npm run verify:anchors
Red vs Blue rulesBuilt — settling, notes inherited at birth, honeypot / quarantine / alert (92/74) / harden, R per day, sealed moves, seed from all commitments, chained tickssim/war.ts, sim/warbots.tsnpm test (war suite)
Live season (server)Built and deployed, no day played by a player yet — wallet-signed commits (EIP-191), reveals checked against the seal, the seed drawn from the first Robinhood Chain block after 18:00 UTC by binary search, days published in the form the browser replaysapp/lib/live/, app/api/live/npm test (live suite, real signatures, simulated chain); the deployed ledger's day-1 draw
Red vs Blue prototypeBuilt, single-player — you against 40 rule-following bots, entirely in the browser; every day re-runs to the same headapp/play, app/components/playopen /play, press RE-RUN
Outbreak (real-time roguelite)Built — both sides, 7 days + boss + endless, 32-card draft, house AI that escalates and drafts, badges, daily seed; any run replays from its input record to the same headssim/outbreak.ts, sim/outbreak-cards.ts, app/components/outbreak/, docs/OUTBREAK.mdnpm test (outbreak suite); press RE-RUN at the end of a run
Outbreak daily boardBuilt and deployed, no entries yet — the server replays every submitted run and ranks by the replay; one Merkle root per day over both sides, a proof per entry; optional wallet signature; anyone can watch any runapp/lib/board/, app/api/runs/, scripts/verify-run.ts, scripts/anchor-board.tsnpm test (board suite: forged runs refused, proofs verify, signatures bind)
Forecast studyBuilt — 1,560 simulated weeks (5 defences × 13 capability years × 24 dishes); setup-failure rule reproduces the paper's 45% → 61–84% curve; all numbers regenerate bit for bitapp/lib/forecast.ts, scripts/forecast.ts, /forecastnpm test (forecast suite re-runs two cells)
One-step live moves (timelock)Built and deployed — the move is time-locked to the first drand round after 18:00 UTC and the server reveals it; manual reveal stays as a fallbackapp/lib/live/timelock.ts, app/lib/live/drand.tsnpm test (timelock suite, offline with our own BLS beacon)
Reveal backup code and remindersBuilt — a WORM1- code carrying move, salt and its own seal check; paste it to reveal from any device; an .ics file with every remaining windowapp/lib/live/backup.tsnpm test (backup suite)
Season standings and player pagesBuilt — ranked in the browser from the replayed season, nothing stored server-sideapp/lib/standings.ts, app/player/[address]npm test (standings suite)
60-second tutorialBuilt — five animated cards, opens once on first visit to /playapp/components/play/Tutorial.tsxopen /play in a fresh browser
Essay, FAQ, terms, privacyBuilt — rendered from docs//essay, /faq, /terms, /privacyopen them
Daily postBuilt, not used — post text built from the replayed day; posts with X API v2 when the four X_* keys are setscripts/post-daily.ts, app/lib/dailypost.tsnpm run post:daily prints it; npm test checks the OAuth signer against the published example
Launch factsSingle source, all undecided — rendered as "to be announced"config/launch.json, app/lib/launch.tsread the file

What does not exist

Stated so that no reader has to infer it, and so no future commit can quietly imply otherwise:

  • No custody, no payment. Wallets only sign a readable message that seals a move; the signature moves no funds and approves nothing. There is no x402 endpoint, no USDC, and no money moves anywhere in the dish.
  • No token, no sale, no airdrop, no date. Nothing is on offer, and no allocation has been decided because nothing has been issued.
  • No live season day has been played by a player yet. The server is deployed and day 1's draw came from a real Robinhood Chain block, but the season ledger holds no commits: nothing has been sealed and nothing has been revealed by anyone but the bots.
  • No anchor on chain yet. The writer is built and tested; there is no anchor wallet, so anchors/anchors.json is empty.
  • No payments. The x402 menu on the site is a list of what will open after launch; nothing can take a payment.
  • No real agents. An agent is a value in an array inside one process. It cannot act, spend, or reach anything.
  • No independent review yet. Everything here was written and verified by the same author.

What a daily commitment would look like

Built, not yet used: each closed UTC day's chain head goes on Robinhood Chain as a memo, so the record cannot be edited afterwards — the same pattern the fly project uses, with its own verifier and its own public list. The writer is scripts/anchor.ts, the manifest is anchors/anchors.json, and it is still empty because no anchor wallet has been funded. It is described in DESIGN.md §5.

How to keep this page true

1. Change the rules in sim/engine.ts, not in prose. 2. If a claim here cannot be reproduced by a command in this repository, delete the claim. 3. Every change gets a line in AUDIT-LOG.md with its commit and its verification.


Other docs — Architecture · Determinism · The live season · Design · Outbreak · For modifiers · Glossary · Deploy and ops · The source reading · Audit log

All docs · github.com/wormsim/worm

Rendered directly from docs/STATUS.md in the repository at build time. This page is a view of that file, not a copy of it. All docs.