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; noGemfileis checked in, so install Jekyll + the plugins listed in_config.ymlmanually). - New post: add
_posts/YYYY-MM-DD-slug.mdwith front matter---\ntitle: "..."\n---. Permalink format is/:year/:month/:title(set in_config.yml). Thepostlayout andcomments: trueare applied automatically viadefaultsin_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 inindex.html(custom intro paragraph in.main-explain-area) and_includes/(e.g.disclaimer.html)._config.ymlhardcodes author/footer links; the email is intentionally obfuscated (see comment in file).