59 Commits
Author SHA1 Message Date
Vijay Janapa Reddi 6b0e44cce5 Draft book release notes 2026-06-20 22:07:48 -04:00
Vijay Janapa Reddi 45aeb6b026 Audit citations and consolidate bibliography 2026-06-14 19:41:26 -04:00
Vijay Janapa Reddi 69794c0aa5 Merge branch 'fix/audit-integration' into dev 2026-06-12 06:34:33 -04:00
Vijay Janapa Reddi e26b6e145b Remove LEGO header import-export bookkeeping 2026-06-12 04:49:48 -04:00
Vijay Janapa Reddi efab848914 layout: add two-phase auto layout planner 2026-06-11 20:55:44 -04:00
Vijay Janapa Reddi 62d8349508 refactor(pre-commit): retire redundant book-check-json hook
book-check-json ran './book/binder check json' (a plain json.load syntax
check) on book/*.json — identical to the third-party check-json hook in
Section 1, which already runs repo-wide with the same parser and the same
file:line:column error output. Book JSON was validated twice.

JSON syntax is generic file hygiene and belongs to the third-party hook tier
(Section 1), not Binder — the one case where 'route through Binder' does not
apply. Removed the hook; the 'check json' Binder scope stays for ad-hoc/CI.
No coverage or LLM fix-signal loss. Updated BINDER.md table + history note.
2026-06-10 17:36:23 -04:00
Vijay Janapa Reddi 949e6fa2b9 Add replayable per-chapter LEGO verify pipeline with rendered-prose gate.
Every chapter can be certified via verify_lego_chapter.sh: HTML build, all
cells, all inline refs with HTML context, and optional LLM coherence. Includes
batch runners, stale-HTML cleanup for single-chapter builds, and math-aware
context extraction for fmt_frac exports.
2026-06-06 16:02:44 -04:00
Vijay Janapa Reddi 04fafe8e72 Recognize chapter-anchor cells in LEGO HTML audit pipeline.
Allow intentional cross-section anchors in lego_focal_verify, skip algorithm
LaTeX false positives in audit_html, and add appendix_inference to HTML builds.
Document the chapter-anchor exception in LEGO_CELLS.md; ledger now 45/45 pass.
2026-06-06 15:15:24 -04:00
Vijay Janapa Reddi a851c012b0 Harden LEGO audit helpers and document verify playbook.
cell_exec adds repo root for figure imports; spurious_zero ignores
closed-formatter MB/GB/s/KFLOP patterns; LEGO_CELLS runbook adds precision
triage and HTML verify commands.
2026-06-06 14:44:17 -04:00
Vijay Janapa Reddi b18103d3ac Harden closed-export prose-unit checker and fix duplicate g/kWh.
Expand lego-prose-units for FLOP/byte and carbon-intensity glyphs, add regression tests and an explicit audit report, and strip redundant g/kWh after fmt_carbon_intensity refs in sustainable_ai.
2026-06-06 14:09:24 -04:00
Vijay Janapa Reddi 77b7ac34c7 Document LEGO audit runbook and record vol1/vol2 gate baseline.
Capture ranked chapter inventory, sign-off checklist, and formatter migration guidance for follow-up passes.
2026-06-06 14:07:37 -04:00
Vijay Janapa Reddi 6aed5b4e1e Migrate the last core.constants stragglers (examples, paper validator)
Five references outside the gate scopes: the two runnable examples,
the paper's anchor validator, book/tests/test_registry.py, and a
LEGO_CELLS.md prose mention. All verified executable post-migration
(examples 03/04 run; validate_anchors: all 7 anchors match).
2026-06-06 11:36:23 -04:00
Vijay Janapa Reddi 2645676f64 Add Binder table layout audit 2026-06-03 09:32:43 -04:00
Vijay Janapa Reddi 6dd3c04ebc Apply Design B multiplier formatting 2026-06-02 22:17:41 -04:00
Vijay Janapa Reddi 6860c2459f Centralize book checks in Binder CLI 2026-05-30 13:41:34 -04:00
Vijay Janapa Reddi 32504005fd docs(lego): unit migration journal, baseline, corpus prose dedup
Strip 2758 redundant unit tokens after {python} *_str refs;
add migration journal and baseline; OUTPUT-only units policy;
fix MobileServingCalc pint path (66 mW); recognize fmt_qty in
math-canonical; defer new linters from default pre-commit.
2026-05-25 20:05:31 -04:00
Vijay Janapa Reddi 6986ce372d Extend LEGO prose gate to scenario setup inputs in computed callouts.
Flag hardcoded operands on calc lines and scenario inputs in Problem/Setup
prose when a callout already exports {python} values; migrate affected
walkthroughs to export fleet sizes, rates, and model-scale inputs from cells.
2026-05-25 16:03:45 -04:00
Vijay Janapa Reddi 47c169f9f9 Enforce computed LEGO walkthroughs and registry-backed book sources.
Add binder gates that ban legacy constant aliases, hardcoded grid literals,
and prose operands next to {python} refs; migrate appendices and chapter
callouts to export intermediate values from mlsysim registries so worked
math stays machine-verified instead of hand-typed.
2026-05-25 15:49:27 -04:00
Vijay Janapa Reddi 1859afa546 Remove mlsysim.core.defaults and migrate book to domain registries.
Delete the catch-all defaults module and relocate assumptions into
Literature, Systems, Infrastructure, Ops, Platforms, and core.calibration.
Update textbook QMD cells, labs, audit tooling, and CI gates so registry
paths are authoritative with no package-root aliases or defaults shims.
2026-05-25 13:08:13 -04:00
Vijay Janapa Reddi 1d33fb03fb Add registry lint lock: pre-commit gates, QMD scanner, refreshed audit YAMLs.
Wire mlsysim allowlist tests and book_check_registry_sources into pre-commit;
refresh 44 mlsysim_constants YAML target_source fields; update LEGO_CELLS.md
and contributing.qmd for registry-first authoring.
2026-05-24 18:42:56 -04:00
Vijay Janapa Reddi f741a12103 Refactor inline-python chapters to one LEGO focal point per cell.
Split mega-classes and break cross-cell reads across vol1/vol2, add lego_focal_verify.py, wire foundation-model amortization prose to computed exports, and repair compute_infrastructure inline python fences and table placement.
2026-05-24 13:17:40 -04:00
Vijay Janapa Reddi 729ccde191 Document LEGO cell contract for inline-python chapter authoring.
Define one-cell-per-callout placement, naming, and review rules so future edits align with piecemeal LEGO cells rather than mega-classes.
2026-05-24 11:58:26 -04:00
Vijay Janapa Reddi 5706f2c9ba Retire glossary JSON pipeline 2026-05-19 07:08:01 -07:00
Vijay Janapa Reddi d238eb6085 feat: add rename-safe betterbib sync 2026-05-04 18:56:19 -04:00
Vijay Janapa Reddi ed197a6be0 feat(bib): add 'bib normalize' subcommand + expand bib_lint §5 hygiene
Adds the 'bib normalize' subcommand referenced by .pre-commit-config.yaml
but missing from binder until now. Runs the same three-step pipeline as
pre-commit: bib_apply_mechanical_fixes -> bibtex-tidy (loop until pass) ->
bib_lint --check. Supports full-tree or scoped (--vol1/--vol2/--path) runs.

bib_lint.py: extend §5 hygiene checks — additional journal abbreviations
(J. ACM, IEEE Trans. Comput., ACM Computing Surveys, etc.), more canonical
publishers (USENIX, IEEE Computer Society, SAGE, PLOS, Frontiers), and
heuristics for trailing-period titles, all-caps paste, Title-Case, short
booktitle without (ACRONYM), @article volume requirement, and pages prefix.
Doc reference updated from book-prose-merged.md to book-prose.md.

BINDER.md: document the bib normalize command and its relationship to the
pre-commit pipeline.
2026-05-02 13:19:07 -04:00
Vijay Janapa Reddi 3c95e3e67c refactor(quizzes): rename book/tools/scripts/genai/quiz_refresh to quizzes
The genai/ folder advertised an implementation detail (AI-driven) and
held only one tool. The siblings under book/tools/scripts/ are all
named by purpose (audit/, glossary/, mit_press/, publish/, ...) — this
brings the quiz pipeline into line with that convention.

Changes:
- git mv book/tools/scripts/genai/quiz_refresh -> book/tools/scripts/quizzes
- empty genai/ parent directory removed
- 4 path-string references rewritten (filters.yml comment, three
  internal docstrings/CLI examples in README/generate_quizzes/
  build_audit_context)
- 2 BUILD.md + DEVELOPMENT.md tree-listing entries updated to point at
  the new path
- README.md title and tagline updated (no longer "Quiz Refresh — runner";
  the "quiz-refresh pattern" label is replaced with "spec-plus-runner
  pattern" since the directory name now self-documents)
- generate_quizzes.py: meta["generated_by"] now writes
  "quizzes/generate_quizzes.py" (was "quiz-refresh/generate_quizzes.py");
  --skip-existing matcher loosened from "quiz-refresh" substring to
  "generate_quizzes" so it accepts both old and new descriptors
- 33 chapter quiz JSONs and 30 _audit/*_audit.json files: the
  generated_by metadata string updated to match new descriptor
- extract_anchors.py docstring: "quiz-refresh pipeline" -> "quizzes pipeline"

Verified post-rename:
- All scripts parse (ast.parse on all three .py files passes)
- validate_quiz_json.py works on sample chapters from each volume
- --skip-existing dry-run matches the new descriptor correctly
- git grep finds no remaining "genai/" or "quiz_refresh" references;
  the one remaining "quiz-refresh" reference is an intentional
  backwards-compat note in the --skip-existing comment block

The chapter quiz corpus and the spec at .claude/rules/quiz-generation.md
are unchanged in content — this is purely a directory + descriptor rename.
2026-04-25 08:09:47 -04:00
Vijay Janapa Reddi fa5923610a docs: add top-level community health files (CONTRIBUTING, CoC, SECURITY, CITATION) and dependabot
Aligns the repository with GitHub community-standard recommendations and
makes the project's policies discoverable from the root, where contributors
and tooling actually look for them.

- CONTRIBUTING.md (root): router to per-project guides plus universal
  policies (branch from dev, ./book/binder setup, no `git add .`).
- CODE_OF_CONDUCT.md (root): canonical Contributor Covenant 2.1, lifted
  from book/docs/. The book/docs version becomes a thin pointer so we
  have a single source of truth.
- SECURITY.md: private vulnerability reporting via GitHub Security
  Advisory + maintainer email, with explicit in-scope/out-of-scope
  boundaries (textbook typos are not security issues).
- CITATION.cff: machine-readable mirror of CITATION.bib so GitHub's
  "Cite this repository" button works.
- .github/dependabot.yml: weekly bumps against `dev` for every actual
  ecosystem in the repo (pip, npm, github-actions), grouped where it
  makes sense (Next/React together).
- .github/ISSUE_TEMPLATE/config.yml: blank_issues_enabled=false to keep
  reports on-template; added security-advisory contact link.
2026-04-22 17:06:45 -04:00
Vijay Janapa Reddi d2731d8bc3 chore: remove leftover AI-session planning and audit docs
Clean up planning, kickoff, audit, and persona-feedback documents
accumulated during prior AI-assisted work sessions. These are
session artifacts, not durable documentation — the decisions they
captured have either shipped, been retired, or are traceable via
git history.

interviews/vault/REVIEWS.md is intentionally kept: it is cited by
section ID (H-6, H-7, H-21, C-6, ...) from production code in
interviews/vault-cli/ and interviews/vault/ and published as the
pyproject.toml Review-Ledger URL, which makes it engineering
documentation rather than a session artifact.

Deletions:
- RELEASE-PREP.md, review_prompt.md (root handoff / review prompts)
- interviews/vault/KICKOFF.md, BOOK_LINKING_PLAN.md, EXPANSION_PLAN.md
- interviews/staffml/FEEDBACK_SYNTHESIS.md, V1_REDESIGN_SPEC.md,
  STAFFML_UX_PLAN.md, VAULT_DESIGN_PLAN.md
- interviews/staffml/.gemini-reviews/ (2 review call logs)
- book/docs/SVG_FIGURE_AUDIT_PLAN.md, book/tools/agent_personas.md
- mlsysim/docs/WEBSITE_AUDIT.md
- periodic-table/iteration-log.md, refinement-log.md

Reference fixes for pointers into deleted files:
- interviews/vault/ARCHITECTURE.md: drop section 21 (pointed at KICKOFF.md)
- interviews/vault/schema/question_schema.yaml: drop BOOK_LINKING_PLAN.md
  reference in the author-curated resource description
- interviews/staffml/src/components/Footer.tsx: drop BOOK_LINKING_PLAN.md
  reference from the docstring; rationale preserved

Also removes the untracked gemini_prompts/ directory at repo root.
2026-04-21 11:23:41 -04:00
Vijay Janapa Reddi 9e194e6ddd fix(onboarding): activate pre-commit framework by default
A previously-overlooked gap: `.pre-commit-config.yaml` has been
committed to the repo with ~60 hooks for years, but contributors who
do a fresh clone never get the framework activated unless they know
to run `pre-commit install` manually. There was no onboarding doc
pointing to this step, and the `./binder setup` command that existed
ran doctor but did not install hooks.

Symptom on my local clone: `.git/hooks/pre-commit` was a symlink to
`interviews/vault-cli/scripts/pre_commit_corpus_guard.py` rather
than the pre-commit framework dispatcher. The corpus-guard fired on
every commit (good — it protects interviews/vault/corpus.json per
ARCHITECTURE.md §11.1) but the ~60 framework hooks did not — including
the EPUB hygiene hook landed in the recent fix/epub-issues merge.

Four-part fix
-------------

1. Vault corpus-guard is wired into .pre-commit-config.yaml as a
   local `always_run: true` hook pointing at the repo-tracked script.
   Same protection, now delivered via the framework so a contributor
   who runs `pre-commit install` (or `./binder setup`) gets BOTH the
   corpus-guard AND every other hook in one shot. The bare
   `.git/hooks/pre-commit` symlink is no longer needed.

2. `./binder setup` now actually installs the pre-commit hooks
   (previously it just ran doctor). New `_install_pre_commit_hooks`
   helper in maintenance.py:
     * Locates .pre-commit-config.yaml at repo root.
     * Verifies `pre-commit` is on PATH.
     * Detects the core.hooksPath trap that makes `pre-commit
       install` refuse, and prints the one-line unset command.
     * Runs `pre-commit install` with cwd=repo_root (critical — see
       below).
     * Streams the framework's own confirmation lines.

3. Deleted `book/.pre-commit-config.yaml`. This was a legacy,
   parallel config with broken paths (entries referenced
   `tools/scripts/...` rather than `book/tools/scripts/...`).
   Running `pre-commit install` from inside `book/` picked up this
   orphan instead of the canonical root config, wiring a broken
   hook that failed every commit with "can't open file
   /Users/VJ/GitHub/MLSysBook/tools/scripts/maintenance/
   cleanup_build_artifacts.py". Every hook in the orphan had a
   functional equivalent under a `book-*` prefix in the top-level
   config (verified by cross-check), so deletion is lossless.

4. Step 3 of book/docs/CONTRIBUTING.md is now "Set Up the Development
   Environment" with a one-liner invoking `./book/binder setup`.
   Downstream steps renumbered (4-8). New contributors hitting
   `git commit` for the first time now see the hooks fire instead
   of silently bypassing them.

Verification
------------
After `./binder setup` on a clone that had the bare corpus-guard symlink:
  pre-commit installed at .git/hooks/pre-commit
  (old symlink preserved at .git/hooks/pre-commit.legacy)

`pre-commit run vault-corpus-guard --all-files` → Passed
`pre-commit run book-epub-hygiene  --all-files` → Passed

Both the corpus-guard and the EPUB hygiene layer now dispatch through
the same framework, and the ~60 other book-* hooks that were dormant
for anyone without manual activation are now active out of the box.
2026-04-20 17:57:23 -04:00
Vijay Janapa Reddi 9caea77553 docs(audit): resumable plan for Gemini-driven SVG figure quality sweep
Self-contained pickup-ready plan covering all 238 SVG figures under
book/quarto/contents/. Specifies inventory + batching, render tooling
(rsvg-convert primary, inkscape fallback, optional headless Chromium
for filter/font verification), gemini-3.1-pro-preview invocation
pattern with @-image attachments and JSON schema, the iterative fix
loop (max 3 attempts per figure with auto-revert), strict guardrails
(no full-file SVG overwrites, atomic commits, forbidden paths),
resumable state file, and a final report format.
2026-04-19 12:29:52 -04:00
Vijay Janapa Reddi d6029d2c35 feat(site): landing freshness badge, lower nav collapse, mobile QA doc
Landing page (site/index.qmd, site/landing-v3.css):
  Add a small freshness indicator to the hero — pulsing green dot,
  "Actively maintained · Last updated April 2026 · Release notes"
  link. Communicates to first-time visitors that the textbook is a
  living project, not a shipped-and-forgotten resource. Pulse uses
  reduced-motion-friendly animation timing.

Subscribe modal (site/_quarto.yml):
  Switch the script src from a cross-site /vol1/... URL to the local
  /assets/scripts/subscribe-modal.js — the marketing site now ships
  its own copy via the mirror sync (shared/scripts/sync-mirrors.sh),
  so it doesn't depend on the book bundle being reachable.

Navbar breakpoint (shared/config/navbar-common.yml):
  Lower navbar.collapse-below from "xl" (1200px) to "lg" (992px) so
  13-15in laptops keep the full nav visible instead of collapsing
  into the hamburger. Affects every subsite that includes the
  shared navbar config.

Mobile QA (book/docs/MOBILE_QA.md):
  Manual checklist for verifying margin sidenotes, citations,
  navbar, and TOC behaviour on iOS / Android at common breakpoints.
  Used as a release gate; not part of automated CI yet.
2026-04-19 10:31:41 -04:00
Vijay Janapa Reddi c3bfab7d2a docs: update contributing guides, PR template, and issue templates
- Rewrite book CONTRIBUTING.md with correct two-volume paths, git workflow, and editorial standards
- Fix tinytorch CONTRIBUTING.md: python3 everywhere, remove duplicate recognition section
- Replace StaffML-only PR template with general-purpose template covering all areas
- Add bug report and TinyTorch improvement issue templates
- Add config.yml to route questions to Discussions
- Remove stale TINYTORCH_ISSUE_TEMPLATE/ (non-standard location, outdated module names)
2026-03-28 16:02:45 -04:00
Vijay Janapa Reddi 72d714ead8 Improve container preflight diagnostics and docs references.
Add explicit per-check preflight logging and matrix failure instance reporting in the container build workflow, and update stale documentation links and workflow/file path references.
2026-03-05 16:03:00 -05:00
Vijay Janapa Reddi 7992c8ff13 Switch book validation to container-only fail-fast builds.
Remove baremetal workflow usage and add explicit Linux/Windows preflight toolchain checks so missing dependencies fail immediately before render.
2026-03-05 15:33:19 -05:00
Vijay Janapa Reddi 96fa7ac5e5 chore: bump Quarto to 1.9.27 and R to 4.5.2
- Quarto 1.9.27: Linux (.deb), Windows (direct download; Scoop Extras has 1.8.27)
- R 4.5.2: Linux (CRAN jammy-cran40), Windows (Scoop main/r)
- Baremetal: quarto-actions/setup for both Linux and Windows
- Remove ggrepel version pin (R 4.5.x supports ggrepel 0.9.7)
- Update docs: BUILD.md, CONTAINER_BUILDS.md, docker READMEs
2026-03-02 17:36:35 -05:00
Vijay Janapa Reddi 56e091f7e0 feat: standardize System Archetypes in Vol 1 and Vol 2; add canonical roster table to Introductions; ensure tight math-prose integration 2026-02-24 20:23:50 -05:00
Vijay Janapa Reddi 09602445de chore: update book content, config, appendices, and tooling
- Vol1: chapter updates across backmatter, benchmarking, data, frameworks, etc.
- Vol2: content updates, new appendices (assumptions, communication, fleet, reliability)
- Quarto: config, styles, formulas, constants
- Add SEMINAL_PAPERS_V2.md, learning_objectives_bolding_parallel.sh
- VSCode extension: package.json, chapterNavigatorProvider
- Landing page and docs updates
2026-02-20 18:55:24 -05:00
Vijay Janapa Reddi 2390c3ab31 Refactor: consolidate Quarto config layers and content reorganization.
Unifies Quarto metadata into shared base/format/volume fragments while carrying through chapter path, asset, and tooling updates to keep the repository consistent and easier to maintain.
2026-02-12 15:38:55 -05:00
Vijay Janapa Reddi ff3797a1d8 Refactor: Finalize Volume 1 and update CLI/VSCode tooling
- Completed full Volume 1 refactor to Safe Class Namespace pattern.

- Fixed render errors and verified all 16 chapters.

- Updated 'binder' CLI with native validation and maintenance namespaces.

- Enhanced VS Code extension with Chapter Navigator and Run History.

- Integrated 'binder validate' into pre-commit workflows.
2026-02-11 09:25:50 -05:00
Vijay Janapa Reddi 3750ee12e9 Enforce Computed Arithmetic Rule across all chapters (1,064 inline refs, 0 unresolved)
Replace every hand-typed derived number with Python-computed inline
references. Add just-in-time compute cells before prose so that changing
any input constant automatically propagates to all derived values.

Vol 1 chapters fixed: dl_primer, dnn_architectures, serving,
model_compression, hw_acceleration, benchmarking, ops, appendix_machine,
appendix_data, frameworks, data_engineering, training, ml_systems,
responsible_engr, data_selection, workflow, introduction.

Vol 2 chapters fixed: distributed_training, inference, infrastructure,
storage, sustainable_ai, fault_tolerance, ops_scale, edge_intelligence,
ai_for_good, privacy_security.

Key corrections caught by forcing computation:
- training.qmd carbon footprint: 64 GPUs → 1024 GPUs (original was
  mathematically impossible for 7B params × 1T tokens)
- hw_acceleration.qmd systolic energy: 10 pJ/250× → 11 pJ/233× (exact)
- hw_acceleration.qmd GPT-2 utilization: 0.6% → 0.7% (exact)
- serving.qmd tokens/hour: ~190M → ~192M (exact)

Also adds calc/validate_inline_refs.py pre-render guardrail and
extends calc/viz.py with Harvard Crimson plotting palette.
2026-02-01 11:13:42 -05:00
Vijay Janapa Reddi e3d4deeb12 Standardize volume titles to full 'Machine Learning Systems' naming
Replaces abbreviated 'ML Systems' with 'Machine Learning Systems' across
volume titles, part openers, frontmatter, summaries, docs, and landing page
for consistency with MIT Press submission standards.
2026-01-31 19:45:52 -05:00
Vijay Janapa Reddi 26e9b65db1 Merge latest dev updates into feat/volume-restructure 2026-01-21 19:30:00 -05:00
Vijay Janapa Reddi 149d945a51 Add per-project All Contributors setup
Set up separate contributor tracking for each sub-project:
- book/.all-contributorsrc - Book content contributors
- kits/.all-contributorsrc - Hardware kit contributors
- labs/.all-contributorsrc - Lab exercise contributors
- tinytorch/.all-contributorsrc - Framework contributors

Each project now has:
- Its own .all-contributorsrc config file
- Contributors section in README with All Contributors format
- Project-specific contribution types in the recognition guide
- Cheatsheet in CONTRIBUTING.md (where applicable)

Added @AmirAlasady as first TinyTorch contributor for bug report #1122.

Usage: Comment on any issue/PR with:
@all-contributors please add @username for bug, code, doc, or ideas
2026-01-20 13:35:00 -05:00
Vijay Janapa Reddi 9a44d0ea16 Removes learning objectives framework
Removes the learning objectives framework, part key validation system, and the publish live workflow documentation.

These files are being removed to facilitate a reorganization of the project's documentation structure and workflows.
2026-01-07 11:57:35 -05:00
Vijay Janapa Reddi da8e419df6 Merge dev: bring in infrastructure changes
- Cloudflare migration (Netlify removed)
- Book deployed to /book/
- Publish All workflow
- gh-pages cleanup
- Changelog deprecated
- MIT Press reviewer feedback
- Labs rename (collabs -> labs)
2026-01-06 15:24:07 -05:00
Vijay Janapa Reddi 8160d5869c refactor: deprecate CHANGELOG.md in favor of GitHub Releases
- Remove CHANGELOG.md from repo root
- Remove changelog.qmd page from book frontmatter
- Remove changelog from navbar in HTML, PDF, and EPUB configs
- Delete changelog generation scripts (generate_release_content.py, etc.)
- Update documentation to remove changelog references

GitHub Releases now serves as the primary changelog for version updates.
The version number in the navbar already links to releases.
2026-01-06 11:31:35 -05:00
Vijay Janapa Reddi cdcb4e9529 chore: remove volume-splitting strategy docs from public repo
These files contain internal planning documents that should not be
public:
- VOLUME_SPLIT_ROADMAP.md (project timeline and MIT Press plans)
- VOLUME_SPLIT_SURGICAL_PLAN.md (section-by-section surgery)
- VOLUME_STRUCTURE_PROPOSAL.md (publisher proposal draft)
2026-01-04 18:07:27 -05:00
Vijay Janapa Reddi c6a3036151 docs: update AI Triangle to AI Triad in learning objectives framework
Align documentation with the renamed framework terminology used
throughout both volumes of the textbook.
2026-01-03 13:45:37 -05:00
Vijay Janapa Reddi 95e0eafcdc refactor: rename Vol I tagline from Operate to Deploy
Update Volume I tagline from "Build, Optimize, Operate" to
"Build, Optimize, Deploy" across all documentation.

- "Deploy" better matches Part IV content (Serving, MLOps, Responsible Engineering)
- "Operate" implies ongoing management which is more Volume II territory
- Also fixes hw_acceleration table to use proper grid table format
2026-01-03 10:09:19 -05:00
Vijay Janapa Reddi 773897c07d refactor: restructure Vol II chapters and add Vol I serving chapter
This commit consolidates several structural changes:

1. Merge ondevice_learning into edge_intelligence chapter
   - Add support files (bib, concepts, glossary, quizzes)
   - Add images from former ondevice_learning
   - Update all cross-references from @sec-ondevice-learning to @sec-edge-intelligence

2. Delete Vol II hw_acceleration chapter (merged into distributed_training)

3. Add new Serving chapter to Vol I Part IV (Deployment)
   - Create placeholder serving.qmd with section structure
   - Add support files for bibliography, concepts, glossary, quizzes

4. Update configs and documentation
   - Update _quarto-html.yml with serving chapter in sidebar and bibliography
   - Update VOLUME_STRUCTURE.md to reflect 16 chapters in Vol I
   - Update About page with simplified Part names
   - Fix table formatting in hw_acceleration chapter

Vol I now has 16 chapters (4 in each Part) matching Vol II structure.
2026-01-03 10:01:25 -05:00