Integrate figure rendering into the binder CLI so plots can be previewed
without a full Quarto build. Extracts Python code blocks with fig-* labels
from QMD files, renders them to PNG, and outputs a browsable gallery at
_output/plots/<chapter>/. Also fixes the package import chain so `binder`
works correctly as an installed entry point.
- Add book/cli/commands/render.py with RenderCommand class
- Wire into main.py with help table entry and command dispatch
- Add matplotlib>=3.7.0 to pyproject.toml dependencies
- Add book/quarto/_output/ to .gitignore
- Archive standalone render_figures.py to _archive/
Refactors figure list generation to reliably locate and clear LaTeX manifest files.
- Searches for the figure manifest in both the quarto root and build output directory,
handling cases where the post-render step moves the file.
- Clears stale manifests from both locations to avoid incorrect figure counts from
previous builds.
- Moves the LaTeX manifest to the build output directory to keep the source
tree clean.
- Updates the merge script to find the manifest dynamically.
This prevents issues where figure counts are mismatched due to outdated or
missing manifest files.
- Remove non-volume config files (_quarto-pdf.yml, _quarto-html.yml,
_quarto-epub.yml) - only volume-specific configs remain
- Remove old shared contents/parts/ directory
- Move part dividers and summaries into vol1/parts/ and vol2/parts/
- Update all volume configs to reference new paths
- Add gitignore exception for book parts directories
- Remove tracked symlink from tinytorch/.claude
- .claude/ at root now links to AIConfigs (gitignored)
- Agents organized under agents/book/ and agents/tinytorch/
- Clean up duplicate entries in .gitignore
- Add guard in tito src export to prevent running from wrong directory
- Add gitignore patterns for Quarto build artifacts (*.html, _xref.json, etc.)
- Add .cursor~HEAD to gitignore
- Fix tinytorch/* pattern to tinytorch/tinytorch/* (was ignoring entire subtree)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Restructure: Move book content to book/ subdirectory
- Move quarto/ → book/quarto/
- Move cli/ → book/cli/
- Move docker/ → book/docker/
- Move socratiQ/ → book/socratiQ/
- Move tools/ → book/tools/
- Move scripts/ → book/scripts/
- Move config/ → book/config/
- Move docs/ → book/docs/
- Move binder → book/binder
Git history fully preserved for all moved files.
Part of repository restructuring to support MLSysBook + TinyTorch.
Pre-commit hooks bypassed for this commit as paths need updating.
* Update pre-commit hooks for book/ subdirectory
- Update all quarto/ paths to book/quarto/
- Update all tools/ paths to book/tools/
- Update config/linting to book/config/linting
- Update project structure checks
Pre-commit hooks will now work with new directory structure.
* Update .gitignore for book/ subdirectory structure
- Update quarto/ paths to book/quarto/
- Update assets/ paths to book/quarto/assets/
- Maintain all existing ignore patterns
* Update GitHub workflows for book/ subdirectory
- Update all quarto/ paths to book/quarto/
- Update cli/ paths to book/cli/
- Update tools/ paths to book/tools/
- Update docker/ paths to book/docker/
- Update config/ paths to book/config/
- Maintain all workflow functionality
* Update CLI config to support book/ subdirectory
- Check for book/quarto/ path first
- Fall back to quarto/ for backward compatibility
- Maintain full CLI functionality
* Create new root and book READMEs for dual structure
- Add comprehensive root README explaining both projects
- Create book-specific README with quick start guide
- Document repository structure and navigation
- Prepare for TinyTorch integration
Remove tracked build artifacts that should be regenerated:
- Diagram PDFs (3 files): Auto-generated by Quarto diagram extension
- Quarto HTML support files (frontiers_files): Bootstrap, clipboard, etc.
Update .gitignore to prevent future tracking:
- Add **/*_files/ pattern for Quarto HTML support directories
- These are auto-generated and should not be in version control
Cleanup also performed locally (not tracked in git):
- Removed .bak backup files
- Removed Python __pycache__ directories
- Removed loose diagram-*.pdf files from quarto root
All removed files will be regenerated automatically during builds.
Removes a symbolic link to a config file that is no
longer used.
Adds the symbolic link filename to the .gitignore file
to prevent it from being accidentally added back to
the repository.
Addresses script organization and maintainability:
- Merged generate_release_notes.py and release_notes.py into changelog-releasenotes.py
- Removed deprecated change_log.py (superseded by changelog-releasenotes.py)
- Added diagram-*.pdf to .gitignore (Quarto auto-generated cache files)
This consolidation simplifies the release workflow and eliminates duplicate code.
- Add exception to .gitignore for .vscode/settings.json
- Preserves MLSysBook purple theme configuration in repository
- Still ignores other VS Code files for security
Added *.backup.* pattern to .gitignore to prevent the section ID
manager backup files from being accidentally committed in the future.
Users can still create backup files locally with --backup flag,
but they won't be tracked in git.
- Replace prescriptive KNOWLEDGE_MAP.md with hybrid empirical version
- Remove redundant KNOWLEDGE_MAP_V2.md
- Establish _reviews/ convention for temporary review files
- Update .gitignore to exclude temporary review directory
- Create README documenting temporary file conventions
The knowledge map now focuses on what each chapter teaches rather than
restrictive can/cannot rules, following the principle that historical
context is always acceptable while technical details must wait.
- Create .claude/commands/improve.md for project command
- Add multi-perspective review system in review/
- Support smart file chunking for large files
- Generate small, focused PRs automatically
- Include 5 student perspectives for comprehensive review
- Update .gitignore to allow sharing Claude commands
Now accessible via /improve command in Claude Code
- Eliminate duplication by removing .ai directory
- All AI configuration now consolidated in .cursor/ directory
- Update .gitignore to reflect single configuration location
- Simplify structure with single source of truth for AI config
- Add AI configuration section to .cursorrules for automatic discovery
- Create .cursor directory with symlinks to AI config files
- Add .cursor to gitignore to maintain privacy
- Enable multiple pathways for Cursor to access AI operational tooling
Thanks to @formlsysbookissue for identifying this important clarification.
- Updated Table 3.1: Dendrites now map to inputs, synapses to weights
- Revised explanatory text throughout Chapter 3 to maintain distinction
- Updated quiz question to reflect corrected understanding
- Renumbered mapping list for clarity (1-5 instead of 1-4)
This correction helps students build accurate mental models of how biological
neural structures relate to artificial neural networks.
Part of #947
- Move build output from root/build/ to quarto/_build/
- Update Quarto configs to output-dir: _build/html and _build/pdf
- Update binder tool to use new build directory location
- Update clean and check methods for new artifact locations
- Add quarto/_build/ to .gitignore
- Remove old build/ directory
This makes more architectural sense as builds are now co-located
with the Quarto project files, and eliminates the cross-directory
dependency that was causing GitHub Pages deployment issues.
- Modified publish-live workflow to download PDF from artifacts and upload to release assets
- Updated quarto-build deployment to copy PDF to assets but exclude from git commits
- Added PDF exclusion rules to .gitignore
- Removed PDF commit steps from publish.sh and binder scripts
- Created test script to verify PDF handling
- Added comprehensive documentation for the new workflow
This ensures PDF is available for download but not tracked in git repository,
keeping the repo clean while maintaining accessibility.
- Remove EPUB from GitHub workflow valid formats and build steps
- Remove EPUB config references from binder script
- Remove EPUB rendering and compression functions from publish script
- Remove EPUB file patterns from .gitignore
- Update README.md to remove EPUB config reference
- Update help messages to only mention HTML and PDF formats
- Tested binder commands and status functionality
Updates the binder to remove Quarto-generated figure-html
directories, preventing them from being included in the build.
This reduces the size of the final output and avoids including
unnecessary files.
- Add ._* pattern to .gitignore to exclude macOS system files
- Remove existing ._* files from repository
- Prevent future macOS system files from being tracked
- Move build outputs from _book/ to build/html/ and build/pdf/
- Update Quarto configurations to use new output directories
- Update Makefile with new build targets and directory creation
- Update .gitignore to exclude build/ directory
- Update clean.sh to handle new build structure
- Mark _book/ and index_files/ as legacy for cleanup
- Reorganize README for visitor-first experience
- Add Harvard branding and dynamic GitHub badges
- Improve GitHub star call-to-action messaging
- Fix book cover display and text wrapping on index page
- Update gitignore for build artifacts
- Enhance responsive design for mobile devices
Adds a comprehensive .gitignore file tailored for the project structure, build process, and common development environment artifacts.
This prevents unnecessary files from being tracked in the repository, including:
- Python and R environment files
- Editor and IDE configuration files
- Quarto generated content (cache, books, HTML, LaTeX, figures)
- macOS system files
- Temporary files and logs
- Local workspace directories
Improves repository cleanliness and reduces the risk of accidentally committing sensitive or large files.
- Standardized 50+ citations from *source: @citation* to Source: [@citation] format
- Fixed improve_figure_captions.py script functionality
- Added bold title generation and weak starter detection
- Created source standardization plan and automation script
- Enhanced caption quality validation and repair features
Note: Style validation skipped for WIP commit
- Add CaptionQualityChecker class with quality rules
- Implement --check/-c flag for caption quality analysis
- Implement --repair/-r flag for selective caption fixing
- Add short-form flags for all options (-b, -c, -r, -v, -u)
- Support multiple directories with -d flag
- Professional quality reports with issue categorization
- Smart repair of punctuation and capitalization issues
Quality rules detect missing punctuation, poor capitalization,
generic captions, broken formatting, and LaTeX artifacts.
Enables targeted caption improvements while maintaining quality.