The in-chapter map stays folded under 'Explore the concepts in this
chapter', but opens as one sentence, a text link to the full map, and the
map itself: no red buttons, volume tabs, map pickers, download link, or
index. It opens zoomed on the concepts the chapter teaches instead of the
whole volume, and follows the book page's dark mode. The standalone volume
map page is unchanged.
dev's newer site content is the base in every conflicted file; the slides
branch's fixes are re-applied where dev had not made them: book titles,
no stale counts or timing claims, Classic Expository Style, and the
book-to-slides links. Kits price range kept at $25 to $145, as the
platform table shows; dark-mode deck links use the deep rose so white
text stays readable.
The rewritten MLS-im docs failed the audit on 105 of 169 pages: the active
sidebar label was grey on its blue tint, the bibliography sat on a white
background, and filled buttons took the pale link color. The sidebar and
appendix rules are shared modules; the books' own active-entry rule now comes
from the same module instead of a copy.
Dev rewrote the MLSys-im docs styles and now imports _ecosystem-base-dark, so
that file is kept (only _book-only-dark.scss stays removed). The shared
announcement, breadcrumb, code, caption and tab modules are layered on top of
the new MLSys-im dark file.
Shared modules replace per-site copies:
- _announcement.scss / _dark-announcement.scss: the portal banner, light and
dark, in place of seven duplicated blocks. _announcement-lines.scss splits
the banner into one line per row and drops the companion line under 600px
(196px down to 93px on a phone; the textbooks go from 238px to 147px).
- _dark-secondary-nav.scss: the mobile breadcrumb bar no longer stays white.
- _dark-footer.scss, _dark-callouts.scss (kits and labs now import it),
_dark-tabs.scss.
Sites that had never been audited are brought up to the same bar: slides,
site (about, community, newsletter, games), MLSys-im and TinyTorch now use the
shared code and caption modules and fix their own light-only components (deck
cards, crimson links, filled buttons, game plates, credits, tabs, headings).
Audit at 1400px and 390px: all four volumes, instructors, kits, labs, slides,
site, MLSys-im and TinyTorch report no issues.
The blanket '#quarto-sidebar .menu-text { color: #888 }' also hit the label inside the active
link, leaving grey text on the accent tint (2.86:1 for vol4's green). Give the active link
and its label a lightened accent.
shared/styles/_dark-code.scss (inline code, code blocks, listings, syntax tokens) and
_dark-captions.scss (figure, table and listing captions) now hold the rules that had been
copied into each site and drifted. The books import them; with the same inputs the compiled
books dark CSS has the same 4,893 rules. Sites set identity through three optional variables
(inline-code colour, code-block background and border). Also adds the <caption> element.
slides/tools/lectures.py reads the deck folders and their lecture maps,
the only hand-edited source, and computes each chapter's book URL from
the book's own HTML config. The slides site runs it at pre-render to
write the volume lecture lists, now with a Read the chapter link per
chapter; the book runs it at pre-render to write a manifest that the
HTML-only filter inject_slides.lua reads to add one line under each
chapter title linking to its lectures. Replaces tools/site_decks.py.
Floats before Chapter 1 (each preface's dependency map, vol4's reading-track
table) have no chapter number and printed as 0.1. The shared LaTeX header
now numbers them P.1 when the chapter counter is 0, so every volume gets it;
chapters and appendices are unchanged. Quarto offers no supported prefix for
HTML, so a post-render script (frontmatter_float_labels.py) relabels
captions, lightbox titles, and in-page references on pages under any
frontmatter/ folder to match.
Also aligns the vol2-vol4 map captions with vol1: "builds on its results".
The 2026-10-12 HTML numbering change put a top-level number-sections: false
in 55 front-matter files, including each volume's PDF entry file. In a book
PDF that file's metadata is book-wide, so every chapter went unnumbered and
every figure and section reference printed as 0.x. The setting now sits under
format: html:, and binder check structure --scope pdf-entry-numbering fails
if an entry file turns numbering off book-wide again.
Verified with full PDF builds of all four volumes: figures print as 1.1 and
up, appendices are lettered, and HTML appendix pages stay unnumbered.
Vol IV chapters shaped to their concept maps; a new chapter 17,
Responsible Physical AI, after Release, with Frontier renumbered to 18;
the fourth law renamed permission must be earned and the new record the
approval record; ledger replaced with plain words; review, fact, and
final-read fixes. Conflicts in Data and Enforcement keep dev's unit
aliases with the branch's renamed comments and messages; the new
chapter's cells use the exported unit aliases dev now requires.
Vol II chapters shaped to their concept maps; Collective Communication now
precedes Distributed Training, with labs, slides, StaffML, redirects, and
the order-describing pages updated; Distributed Training and Inference
tightened in place; ledger and coined labels replaced with plain words;
review, fact, and final-read fixes. Conflicts: Sustainable AI keeps dev's
removal of the Scope 2 section and its corrected Google allocation
sentence, with the shaped Scope 3 paragraph; the concept contracts keep
dev's schema v2 files, re-keyed to the new folder numbers.
A new chapter 17, after Release, teaches who answers for the decisions
behind an admitted action, oversight a person can actually perform,
permission in stages, how a detection gap between groups of people
becomes a gap in impact energy, who bears risk without choosing it, data
about people, and the work the machine moves onto people. It opens on the
2023 Cruise collision. The approval record names who approved every
decision and blocks release when a name is missing. Privacy and incident
disclosure move in from Release, and worker burden from Frontier. The
fourth law is now named permission must be earned. The part opener,
roadmap, spine figure, dependency map, appendices, glossary, labs, and
concept maps follow the new order.
Distributed Training relies on AllReduce and the other collectives
throughout, so Collective Communication now comes first as chapter 5 and
Distributed Training follows as chapter 6. Folders, printed chapter
numbers, configs, the structure table, StaffML's topic map, the notation
baseline, labs, slides, instructor pages, mlsysim docs, and site
redirects follow. Bridges, part pages, the roadmap, the dependency map,
and the appendix and conclusion tables describe the new order; Collective
Communication glosses the parallelism terms it uses, and Distributed
Training points back to the collectives instead of re-teaching them.
Agent Evaluation keeps offline evaluation: the task acceptance contract,
gyms and fixtures, grading, and statistical comparison. The new Operating
Agents chapter (14) takes tracing, trace retention, postmortems, staged
releases, and the release decision, and closes Part IV before learning
begins. Both chapters get their own purpose, objectives, opening, end
matter, and bridges; the part pages, introduction roadmap, front matter,
dependency map, appendix, and concept maps follow the new order. All
existing label ids are kept.
Makes room for the responsible physical AI chapter after Release. Pure
rename: the folder, chapter file, its -17- figure and table labels and
fig17_ image files move to 18, and configs, concept-map owners, the
structure table, lab links and figure tooling follow.
Makes room for the operating-agents chapter split out of Agent Evaluation.
Pure rename: folders and chapter files move, configs, the structure table,
concept-map owners, and one notation note follow. Label ids are unchanged.
Conflict resolution:
- ComputeTrend: dev and this branch re-pinned it to Epoch AI in parallel;
kept this branch's rows and the vol1/vol2 cells built on them
- literature/series.py and registry: kept both series APIs
(Literature.Series.<Name> for vol1/vol2, Literature.<Name> for vol3/vol4)
- bibs/manifest.json: union of both sides' verified entries
- Turn on number-sections in all four HTML configs and give each chapter a
number-offset, so headings and in-chapter references read 4.1 and 4.9.3
rather than 1.x; front matter, part pages and appendices stay unnumbered.
- Move the first H2 above setup cells where a Python cell preceded it; the
Jupyter engine took that heading as the hidden page title, so it never
rendered (14 vol2 chapters here; vol1 chapters in their own commits).
- Cap margin-figure height at 20rem, keeping the aspect ratio.
- Lightbox: scale the image to the viewport, darken the backdrop, and show
the figure's typeset caption so notation macros render.
The Purpose margin stack was the PDF's TikZ stack compiled to SVG and shown at
100% of the margin column: a 250x540 tower in vol1 and vol2, unreadable
6-point text in vol3, and a white card in dark mode. Generate it natively
instead, about 220px wide and 130-200px tall, with real text, each volume's
layers and accent, and the chapter's weights still read from the PDF macro
call. One focus tile marks the chapter's top weight; even weights stay flat.
Tiles are the accent at partial opacity on a transparent background, so the
image sits on the page without a card and dark mode inverts it with the hue
held. The generator only writes SVGs; the old one rewrote chapter files and
would have duplicated the HTML block on a rerun.
The margin sidebar was made static alongside the TOC and picked up the TOC's
3px accent border. Its box is a viewport tall, so the line ran down through
the margin notes and figures below the TOC. Give the container only the
static position.