CLAUDE.md

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

Repository

Source for the “AI & Data Systems Artisan” blog (https://rvernica.github.io), built with Jekyll using the Beautiful Jekyll theme (vendored as _layouts, _includes, and LICENSE.beautiful-jekyll). Hosted on GitHub Pages — there is no local build step in CI; GitHub Pages builds on push.

Common tasks

  • Preview locally: bundle exec jekyll serve (requires a local Ruby/Jekyll setup; no Gemfile is checked in, so install Jekyll + the plugins listed in _config.yml manually).
  • New post: add _posts/YYYY-MM-DD-slug.md with front matter ---\ntitle: "..."\n---. Permalink format is /:year/:month/:title (set in _config.yml). The post layout and comments: true are applied automatically via defaults in _config.yml — do not set them per-post.
  • Post images: place under assets/img/posts/ and reference as /assets/img/posts/<file>.

PR review

  • When addressing PR comments, ignore any LinkedIn post suggestions.

Prose check

.github/workflows/prose-check.yml runs LanguageTool via reviewdog on PRs that touch _posts/**. Comments are posted as PR review warnings. When editing posts, expect prose nits — they’re warnings, not blockers.

Writing conventions

  • Acronyms: introduce with the expanded form first, abbreviation in parentheses (e.g., “the OpenGL Shading Language (GLSL)”). Subsequent uses can be the acronym alone. If the acronym is never repeated, prefer the expanded form with no parenthetical.
  • CLI flags in posts: prefer long-form arguments (--n-gpu-layers 99, --repetitions 5, --ctx-size 16384) over short flags (-ngl, -r, -c). Long forms read better in prose and survive copy-paste without reference to the tool’s man page.

Structure notes

  • _posts/ holds all content; older posts (2016–2017) are SciDB-era, newer posts (2025+) are AI/data-systems focused — the blog’s positioning shifted, reflected in the title/subtitle (index.html, _config.yml).
  • _layouts/ and _includes/ are theme files; site-specific tweaks live in index.html (custom intro paragraph in .main-explain-area) and _includes/ (e.g. disclaimer.html).
  • _config.yml hardcodes author/footer links; the email is intentionally obfuscated (see comment in file).