CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
What this is
A Quarto static website (https://www.diiv.io) — a personal learning site for self-directed study. There is no application code: every page is a .qmd (Quarto Markdown) file rendered to HTML. Content is split into course syllabi + per-week lecture notes and worked textbook exercise sets. The heavy lifting is math typesetting (KaTeX), so most “code” is LaTeX inside Markdown.
Commands
Quarto must be installed (quarto --version). All commands run from the repo root.
quarto preview— live-reloading local server; the primary dev loop. Renders on save.quarto render— full build to_site/(the output dir, gitignored).quarto render course1/week01.qmd— render a single page (fast iteration on one file).quarto check— verify the Quarto install / environment.
There are no tests, linters, or build scripts beyond Quarto itself. Deployment is the rendered _site/ (GitHub Pages via CNAME → www.diiv.io). execute: freeze: auto means rendered output is cached; an explicit quarto render refreshes it.
Architecture & conventions
Config: _quarto.yml is the single source of truth for site title, navbar (left: Courses, Books / right: About, GitHub), theme (litera), and math engine (katex). Custom styling lives in styles.css (.diiv-card, KaTeX sizing, container width).
Top-level pages: index.qmd (landing/bio), about.qmd, courses/index.qmd (course directory), books/index.qmd (book directory).
Four courses, each a folder courseN/ with an index.qmd syllabus plus weekNN.qmd lecture notes: - course1/ — Mathematical & Theoretical Foundations (pure theory, 20 weeks, week01–week20) - course2/ — Microelectronic Circuits & Signal Processing (bench-based, 10 weeks) - course3/ — Computer Graphics, Vision & Autonomous Robotics (10 weeks) - course4/ — NLP + Deep Learning + LLM (10 weeks)
Courses 1 & 2 are treated as mastered prerequisites by Courses 3 & 4 (their concepts are referenced, never re-taught). See memory/MEMORY.md for the full phase/week breakdown of each course — it is the authoritative map and is kept current.
Books: books/<book-slug>/ holds exercise sets, organized by category (Math, Physics, CS, Computer Vision, Robotics/AI, NLP, EE). Most are stubs (index.qmd only); finished ones have chapter subfolders. Two layout patterns for worked sets: - Axler LADR: per-subsection files — chNN/index.qmd + exercises-1a.qmd, exercises-1b.qmd, … - Ross: per-section files — chNN/index.qmd + exercises-s1.qmd, exercises-s2.qmd, … (Ross numbers exercises §section.exercise)
books/index.qmd lists every book with a **Minimum** line (bare-minimum chapters to read) and marks finished sets **✓ done** with the specific worked problems inline. Course week notes link here for exercises rather than listing them.
Content templates (match these when adding pages)
Week note (courseN/weekNN.qmd): YAML title → ← [Course N syllabus](index.qmd) backlink → ## Overview → ## Readings → ## Key Concepts (KaTeX-heavy) → ## Theory Exercises/## Exercises (links to the relevant books/ page; some weeks omit this) → ## Connections → ## Further Reading. Course-specific variants exist (Course 2 adds Lab-Bench Work / Measurement Methodology; Course 3 adds Implementation / Benchmark).
Exercise file: YAML title → a .callout-note block with anchor links ([Exercise N](#ex-N)) → per-exercise []{#ex-N} anchors, each followed by Exercise N. statement and Proof. with aligned LaTeX (\begin{aligned} with && \text{[justification]} columns). Mirror the formatting of an existing finished set (e.g. books/axler-ladr/ch01/exercises-1a.qmd).
Memory
memory/MEMORY.md (auto-loaded each session) holds the detailed, frequently-updated map of every course’s phases/weeks and every book’s status. Consult it before making structural changes, and update it when course/book structure changes — the repo’s organization has been renumbered/merged several times and that history matters.