878 concepts (+71 net), 2,020 relationships (+326, -25, 25 reworded), 27
redefinitions, 67 alias sets, 33 background tags, 6 moves; guides 16 roles,
24 symptoms, 7 paths; gaps: attention-FFN disaggregation closed, verifiable
ML computation and reasoning-trace monitoring declared. Coverage judgments
updated for the new concepts and a blind held-out checklist added
(OSDI/NSDI/EuroSys/ASPLOS 2026, 202 papers, 22.3% covered, 96.5% homed).
Symptoms now declare the quantity they are measured by (`quantities`), so a
symptom's own metric no longer poses as a cause; the compiler, the StaffML
loader, and the explorer accept a check or lever that touches a cause or the
quantity and reject a quantity listed in another bucket.
README and CHANGELOG record the method, the numbers, and the open author
decisions.
Roles, production symptoms, and learning paths load from
shared/concepts/ml-systems-guides.yml. Every subject and concept must
exist, and every symptom check and lever must share a relationship with
one of the symptom's causes.
- Repair 16 unquoted YAML flow-mapping comma splits (key: null) across 6 sources and 9 relationships in ml-systems-field.yml and 1 source in ml-systems-framework.yml that truncated published scope, predicate, conditions, and role strings.
- Remove 2 case-insensitive duplicate aliases within the same concept (mlsys.matrix-unit and mlsys.kv-cache-eviction).
- Update 13 covered topics in courses-and-standards-2026.yml and mlsys-papers-2025-2026.yml whose subject field disagreed with the home of their cited concepts.
- Harden field_graph.py, framework.py, taxonomy_coverage.py, and taxonomy_agreement.py (with regression tests) to reject unknown keys, within-concept duplicate aliases, concepts with fewer than two relationships, disconnected concept graphs, and covered checklist topics whose subject disagrees with their concept homes.
Three independent reviewers (gpt-6.1-sol, gemini-4-argon-high,
claude-opus-5-5) reviewed 0.2 through different lenses; the merged set
was cross-checked item by item by all three before acceptance, and ten
more concepts came from StaffML questions that could not be tagged.
- 63 concepts and 148 relationships (798 concepts, 1,679 relationships)
- 15 definitions revised against their existing relationships; aliases
added to 9 more; TPOT and inter-token latency separated
- PII de-identification moved to Q3.3, inference compute estimate to F1.2
- Gaps: four closed, emerging substrates narrowed to photonic compute,
attention-FFN disaggregation added
- Coverage judgments name the covered mechanism (GRPO, 1F1B, denial of
wallet); AccelOpt out of scope like TritorX
A leftover build-output folder (books/vol1/02_ml_systems/, untracked HTML)
beside the renamed 02_system_paradigms/ made v1/02 ambiguous, so
concepts build and check failed in the main checkout. Count a folder as a
chapter only when it contains <folder>.qmd, and add a regression test.
The page moves from site/explore/ to site/taxonomy/, matching its title,
its nav label, and the identifier namespace the taxonomy already used.
/explore/ keeps unlisted noindex redirect stubs, with relative targets
so they resolve on both the live site and the dev preview subpath.
The binder now holds the folder and the public address in one place
(concept_graph.SITE_DIR and PAGE_URL), and the generated page data carries
the address so the on-page citation reads it instead of repeating it.
The dev preview rewrites links inside taxonomy/ like the other subsites.
A merge script that reused list objects emitted 30 anchors into
ml-systems-framework.yml, which StaffML's hardened loader rejects. Rewrite
the file in full (same data) and make the concepts build fail on aliases.
The framework compiler now accepts a groups tier and nested readable codes
(L4.4), resolves chapter pointers to titles and clean published URLs, and
rejects scope notes that cite a row or area that does not exist. The field
compiler enforces a controlled relation vocabulary, rejects duplicate concept
pairs, and keeps retired concept identities pointing at a replacement.
Each build writes public downloads (CSV, JSON, SKOS Turtle, GraphML, BibTeX)
to site/explore/downloads. `binder concepts coverage` scores recorded
checklists and fails when a judgment cites a concept that no longer exists.
Chapter URLs now use the flattened published form (/volN/<chapter>/...).