CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

Overview

This is a personal data-science blog/portfolio built with Jekyll using the Minimal Mistakes theme. It is published as a GitHub Pages site at master-data.science (see CNAME); pushing to the default branch deploys the site.

Commands

bundle install              # install Ruby gem dependencies
bundle exec jekyll serve    # build + serve locally with live reload at http://localhost:4000
bundle exec jekyll build    # one-off build into _site/
bundle exec jekyll build --trace   # build with full error backtraces when debugging

The theme is pulled in as the minimal-mistakes-jekyll gem (see Gemfile). package.json, minimal-mistakes-jekyll.gemspec, and the npm run build:js scripts belong to the theme’s own JS asset pipeline and are rarely needed — only run npm run build:js if editing theme JavaScript under assets/js/.

Gemfile.lock is gitignored. There is no test or lint suite; correctness is verified by building the site and viewing pages.

Content architecture

The site is content-driven. Most work means adding/editing Markdown files with Jekyll front matter, not code.

Registered collections (configured in _config.yml under collections, each rendered to its own permalink):

Posts: _posts/ holds blog posts named YYYY-MM-DD-title.md, surfaced via /year-archive/.

Important: _mlops_notes/ and _analytics_notes/ directories exist but are not registered as collections in _config.yml, so they are not built into the site. _draft/ is working material and is excluded from builds. To publish content from these folders, move it into a registered collection or _posts/ and add proper front matter.

Per-collection defaults are set in _config.yml under defaults (layout, author_profile, toc, sidebar text, etc.) — front matter in individual files only needs to override or add page-specific values like title, excerpt, header.teaser, and sidebar.

Writing style for articles

When writing or editing article content (portfolio projects, paper reviews, posts), match the author’s voice:

Site structure

Branch naming

When creating a new working branch, use a semantic prefix that describes the change rather than the default claude/ prefix:

Pick the prefix that best matches the intent of the change; add others as new categories arise.