StaffML is a static site and cannot run MLSysIM, so its numbers lived in a
hand-copied table that cited a deleted mlsysim/core/constants.py. Five
devices had drifted: Jetson Orin NX showed its FP16 rate under an INT8
label, the A17 Pro listed 100 GB/s against 51.2 GB/s, B200 memory was 192
against 180, TPU v5p had the wrong year, and every ESP32-S3 field was off.
scripts/export_mlsysim_data.py now reads the MLSysIM registries straight
from the repo and writes src/data/mlsysim.json, which hardware.ts serves.
Each row records the registry entry it came from. Interconnect and latency
values move to MLSysIM's measured or sourced figures (NVLink B200 0.5 us,
InfiniBand XDR 5 us, 100GbE 50 us, Hopper HBM 273 ns). The cross-US fiber
row stays local because MLSysIM has no route distance. The simulator's
flops_per_token is 6 x parameters, now labeled as training cost.
Latency comparisons such as "4.5 minutes" wrapped onto two lines in the
narrow column, raw latencies showed noise digits (272.82 ns), and the
ESP32-S3's 80 MB/s bandwidth rounded to "0 GB/s".
The design grammar catalog is no longer maintained. Remove design-grammar/
and everything that consumed it:
- StaffML: the /framework route, its CSS module and pop-in keyframes, the
generated designGrammar.ts, the sync script and its predev/prebuild
hooks, the modal a11y test, and the Framework entries in the nav, the
ecosystem bar, and the screenshot/responsive audit route lists.
- CI: design-grammar leaves the staffml-validate-dev sparse checkouts; the
comment that explained why it was needed goes with it.
- The contributors config, its README section, the root README project
bullet, the citation-packet scopes, the bib style baseline entries, the
periodic-table ignore rule, and the repository map.
interviews/ held StaffML and nothing else, so the directory now carries the
product's name. Three names inside it repeated that prefix, and now line up
with vault/, vault-cli/, and paper/:
interviews/staffml/ -> staffml/app/
interviews/staffml-vault-worker/ -> staffml/vault-worker/
interviews/staffml-vault-types/ -> staffml/vault-types/
Every repository path moved with it: workflow paths: triggers and variable
fallbacks, pre-commit hooks, .gitignore, contributor tooling, vault-cli path
joins, the app's tsconfig mapping to the shared types, and the docs.
Left alone on purpose:
- the published /interviews/ redirect to /staffml/ and the gh-pages subsite
lists that protect it; those are URLs, not repository paths
- package and worker names (staffml-vault-worker, @staffml/vault-types) and
the vitest job name, which branch protection may key on
- question YAMLs and generated track JSON, which are content-addressed.
Three questions carry an older corruption, "recall @interviews/vault/
questions/...", that predates this change
- the applied D1 migration 0001 and the vault CHANGELOG, which are history
codegen-hashes.txt is re-recorded; the three pinned artifacts changed only in
path strings. vault-cli: 97 passed, codegen --check clean.
interviewer.py's __main__ loader was one parent short and pointed at a
corpus.json that never existed; it now resolves staffml/app/src/data/
corpus.json. tools/validate_playbook.py and generate_interview_flashcard.py
still expect per-track directories that no longer exist; they point at the
new root but remain dead.
The GitHub repository variables STAFFML_ROOT, VAULT_DIR, and VAULT_CLI_DIR
still name the old paths and must change when this reaches origin.