The sidebar entry pointed to https://mlsysbook.ai/tinytorch/INSTRUCTOR.html
which 404s — INSTRUCTOR.md lives in tinytorch/ but is not part of the
TinyTorch Quarto project (tinytorch/quarto/), so it never gets rendered
or published.
Point at the canonical GitHub source instead until the TinyTorch site
is updated to publish the instructor guide as a real page.
Adds the Tier B (lite) versioning pattern to all three Quarto-only
sites in one commit — they have identical shape, so fragmenting would
add review burden without isolation benefit.
For each project:
- workflow_dispatch inputs: release_type/description/site_only/
explicit_version/confirm. Same shape as Tier A workflows so
operators see one consistent UI across the monorepo.
- New `prepare:` job calls _release-prepare.yml with tier=B and the
project's previous_tag_pattern.
- New manifest emit step before deploy: hashes the project's content
directory (excluding _build, .quarto, etc.) and writes
release-manifest.json into the build output. URL convention
matches the deploy path: /kits/, /labs/, /instructors/.
- New create-tag job: tags <project>-v<release_id> on success.
Tier B intentionally skips AI-generated release notes — the
description plus auto-generated commit list (where available) is
sufficient given the rapid iteration cadence and lower citation
stakes than book/staffml/tinytorch/mlsysim.
- Quarto _quarto.yml: <meta name="release-manifest"> in
include-in-header and shared/release/release-pill.html in
include-after-body.
No changes to Marimo notebook structure (labs), Quarto build commands,
PDF builds, or any project's content files.
The Resources sidebar in instructors/_quarto.yml advertised a "Labs
Instructor Guide" pointing at /labs/INSTRUCTOR_GUIDE.html, but no such
file exists anywhere in the labs/ source tree — so the link has always
404'd. Playwright smoke against the live instructor site picks this up
as a hard broken link.
Drop the entry. If a labs instructor guide is authored in the future,
re-add with a real href.
- Replace inline Google Fonts <link> tags in all 8 site configs with
a single `- file: shared/config/site-head.html` reference, so fonts
(Inter 400-800, JetBrains Mono) and Font Awesome are inherited from
one shared file instead of duplicated across every _quarto.yml
- Add missing Inter weight 800 (was only in site-head.html, not configs)
- Add carousel CSS + JS for MLSys·im landing page (arrows, dots, slides,
auto-rotation, keyboard nav) — fixes non-functional < > buttons
All 7 public-facing Quarto sites now have consistent announcement
bars with icon: megaphone, type: primary, position: below-navbar.
Previously only tinytorch, labs, kits, book, and mlsysim had them.
- instructors: remove Outfit display font, use Inter for headers like
all other sites. Remove redundant @import and h1-h4 font override.
- mlsysim: replace site-specific logo.svg with ecosystem shield logo
- tinytorch: replace TinyTorch-specific logo with ecosystem shield logo
All Quarto sites now have identical navbar: same shield logo, same Inter
font stack, same dark mode toggle, same shared responsive behavior.
Tested: Quarto metadata-files merge DOES inherit responsive properties
(background, pinned, collapse, collapse-below) from navbar-common.yml.
Local configs only need logo, search, title, and site-specific left: items.
Removed 4 redundant lines from each of: mlsysim, labs, kits, instructors, site.
Single source of truth: shared/config/navbar-common.yml
Add TinyML (HarvardX edX Professional Certificate) as a peer of
Vol I and Vol II in the slides subsite. PDFs are served from the
tinyMLx/courseware repo via JS base URL pattern — zero binary
bloat in this repo.
- slides/tinyml.qmd: module-based catalog (5 chapters, 43 sections)
with human-readable titles and textbook cross-references
- slides/tinyml/README-edx-original.md: original edX curriculum map
- slides/styles.css: module-card, section-list, team-box components
- slides/index.qmd: TinyML card alongside Vol I/II
- slides/_quarto.yml: navbar dropdown + sidebar entry
- instructors/tinyml-syllabus.qmd: 10-12 week semester plan
- instructors/_quarto.yml: navbar + sidebar entry
- .github/workflows/slides-publish-live.yml: package TinyML ZIPs
from tinyMLx/courseware into the slides-latest release
Architecture:
- Merge landing, about, community, newsletter into one site/ project
- Move navbar-common.yml to shared/config/ (used by 12 configs)
- Create shared/config/footer-site.yml for centralized footer
- Create shared/scripts/subscribe-modal.js as canonical copy
- Single _quarto.yml replaces 4 independent configs
- One site_libs/ copy replaces four
Features gained:
- Google Analytics on ALL hub pages (was only on book volumes)
- Subscribe modal on landing page (was missing)
- Centralized footer with consistent links
Workflows updated:
- site-preview-dev.yml: matrix strategy → single build job
- site-publish-live.yml: loop over subsites → single build + deploy
- sync-newsletter.yml: builds from unified site project
- publish-all-live.yml: removed stale subsite input
- rewrite-dev-urls.sh: added --shallow flag for unified builds
All 12 navbar-common.yml references updated:
book vol1/vol2, site (unified), slides, instructors, interviews,
kits, labs, mlsysim
- Remove hero/splash layouts from slides, instructors, newsletter
- Switch all subsites to default Quarto layout (sidebar + TOC) matching kits pattern
- Add Google Fonts (Inter + JetBrains Mono) to slides portal
- Change instructors and interviews navbar from dark to light for consistency
- Replace indigo accent with crimson in instructors SCSS to match ecosystem
- Add slide preview carousel with 7 actual Beamer slide renders across Vol I and Vol II
Replace the generate-navbar.py script approach with direct metadata-files
references to navbar-common.yml. Quarto natively merges navbar arrays,
so site-local dropdowns defined inline in each _quarto.yml get appended
to the shared navbar automatically.
- Delete generate-navbar.py script (no longer needed)
- Delete all _navbar-generated.yml and _navbar-local.yml files
- Each subsite now references ../book/quarto/config/shared/html/navbar-common.yml
directly via metadata-files
- Sites with local dropdowns (slides, instructors, mlsysim) define them inline
in their _quarto.yml navbar.left — Quarto merges with the shared left items
- Zero tooling, zero generated files, zero maintenance scripts
Single source of truth for the navigation bar in navbar-common.yml.
New 5-dropdown structure: Read | Build | Teach | Community | About.
- Add generate-navbar.py script to merge shared + site-local dropdowns
- Add _navbar-local.yml for slides, instructors, mlsysim (site-specific menus)
- Generate _navbar-generated.yml for all 6 subsites (committed, no CI changes needed)
- Strip hardcoded navbars from all _quarto.yml configs (landing, vol1, vol2, slides,
instructors, mlsysim, kits, labs, newsletter)
- Add community/ and about/ paths to rewrite-dev-urls.sh for dev preview
To update navbar: edit navbar-common.yml, run generate-navbar.py --all, commit.
- Fix leaderboard script: unterminated string literal (line 60) and
python-level typo in setup-python
- Fix instructors _quarto.yml: duplicate href key (Labs/Slides entries)
- Fix 2 SVGs: escape < in text content (ml-cicd-pipeline, precision-engineering)
- Fix codespell: add 'rithm' and 'Activ' to ignore list (split-word SVG text)
- Fix labs plans: add YAML front matter to 6 .md files to prevent
Quarto YAML alias errors from **Story patterns
- Fix labs-validate-dev: use regular install instead of editable for mlsysim
(hatchling sources remap incompatible with editable mode)
- Fix mlsysim hardware.qmd: replace Registry.list() with direct attribute
iteration (Registry class shadowed by package __init__)
- Landing site: Added "Slides" to quick links and navbar dropdown
- Instructors: Added "Lecture Slides" link in navbar Textbook menu
- Labs: Added "Lecture Slides" link in navbar menu
- Kits: Added "Lecture Slides" link in navbar menu
- Slides portal: Fixed teaching guide anchor links
All ecosystem sites now cross-link to the slides portal at mlsysbook.ai/slides/
Complete instructor-facing Quarto site with 10 pages:
- Landing page with hero, semester cards, and component overview
- 8-step getting started checklist for adopting instructors
- Week-by-week syllabi for both semesters with direct links
- Course component map with SVG diagrams
- Pedagogy guide with facilitation strategies and cheat sheet
- Assessment rubrics with sample student work
- TA training guide with grading workflows
- Customization guide for quarters, seminars, and emphases
- FAQ addressing common adoption questions
Includes 4 SVG diagrams, ecosystem-aligned SCSS (light + dark),
and navbar structure matching the book sites.