Roadmap
Almanach covers 19 simulation-author-facing scenerystack/* libraries across 9 top-level categories (getting-started, guides, api, patterns, styling, accessibility, examples, cookbook, meta) — 423 pages as of this writing. Run npm run coverage:status at any time for a live count broken down by category/library and frontmatter status.
This document does not itself write the content. It explains the taxonomy so a new page lands in the right place, and lists the concrete work still open so a contributor (human or agent) can pick something up instead of guessing.
Taxonomy
getting-started/,patterns/,styling/,accessibility/,guides/,examples/, andmeta/are flat folders, one file per concept.api/is subfoldered by library:api/axon/,api/dot/,api/scenery/, etc. — one directory perscenerystack/*subpath.docs/.vitepress/sidebar.tsrenders each subfolder as its own collapsible group automatically.cookbook/holds short, task-oriented "how do I…" recipes, one recipe per page, that recombine APIs documented elsewhere rather than introducing new ones. Narrower thanexamples(a full worked scenario) and more concrete thanpatterns(an architectural convention).
Full rationale and the frontmatter schema (library, prerequisites, sourceRefs, and the 4-stage status enum) live in the Authoring Guide — read that before writing a page, this document is about what's covered and what's missing, not how to write a page.
In-scope libraries (confirmed against the installed scenerystack package's exports map and source): axon, dot, kite, scenery, sun, scenery-phet, joist, twixt, tandem, phetcommon, tambo, bamboo, vegas, mobius, nitroglycerin, utterance-queue, phet-core, query-string-machine, tappi. adapted-from-phet, alpenglow, assert, brand, chipper, init, perennial, sim, splash are internal build/branding/rendering-primitive concerns and are out of scope — don't create api/<one of these>/ folders for them.
Coverage depth is intentionally uneven: the libraries most simulation authors touch daily (axon, dot, kite, scenery, sun, scenery-phet, joist, twixt, tandem, phetcommon) go deepest; libraries like mobius, nitroglycerin, and tappi have only first-pass coverage of their most central classes. Almanach documents "the classes and patterns a simulation author actually reaches for," not every export — scenery and scenery-phet alone have several hundred exports each, most of them internal helpers, string modules, or image/audio assets that don't warrant their own page.
How to contribute a page
- Read the Authoring Guide and the Page Template.
- Run
npm run coverage:statusto see per-category/library page counts and which pages are stillstub/draft, and check Open work below for known gaps. - If you're adding coverage for a class not yet documented, verify it actually exists and matches your description by checking https://scenerystack.org/reference/ or introspecting the installed
scenerystackpackage — don't invent plausible-sounding names. - Create the file with
status: stubfirst if you're not finishing it in one pass — this reserves the topic for parallel contributors without claiming false completeness. - Write the page following the Authoring Guide's conventions (one concept, a real runnable snippet, cross-links). Move
statustodraft, thencompleteonce you're confident, citingsourceRefsfor anything you had to look up. - Run
npm run generate(frontmatter + cross-link validation) andnpm run build(adds dead-link checking) before considering a page done.
There is no separate checklist to tick — progress is read directly from frontmatter status values across the tree via npm run coverage:status. Don't hand-maintain a duplicate progress list; it will drift.
Open work
- Independent verification pass: 182 pages are
status: completebut haven't yet had an independent pass cross-check their technical claims against real SceneryStack source (status: verified). Highest concentrations:api/scenery-phet/*,api/sun/*, andcookbook/*.npm run coverage:statusprints the live count — pick a library folder or category cluster and verify 5–10 pages at a time. - Cross-link gaps:
npm run coverage:statusreports live counts for pages missingprerequisitesorsourceRefs(most remainingsourceRefsgaps aremeta/*pages, which intentionally don't cite SceneryStack source).relatedis fully populated across the tree. - Re-verification against newer
scenerystackreleases: Almanach's content was checked againstscenerystack@3.0.0; see SceneryStack Version Compatibility Notes for what to do once a newer major version ships. - Deeper class-level coverage: each in-scope library has more real exports than Almanach documents (internal helpers and asset modules aside). Find genuine gaps by introspecting the installed package (read its
src/<lib>.tsbarrel file, or inspect https://scenerystack.org/reference/) and cross-checking against what's already documented before adding a page. - The 5
meta/*pages (authoring-guide,faq,glossary,page-template, this file) stay atcompleterather thanverified— that status is about checking claims against SceneryStack source, which doesn't apply to pages that are about Almanach itself.