CLAUDE.md

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

Commands

Local development:

bundle exec jekyll serve --livereload
# Opens at http://127.0.0.1:4000

First-time setup:

gem install jekyll bundler
bundle install

Python maintenance scripts (no external dependencies required):

python scripts/generate_summary.py learning/dsa/Arrays/index.md   # Single file
python scripts/generate_summary.py --batch learning/dsa/           # Directory
python scripts/generate_summary.py --all                           # All learning sections
python scripts/add_changelog_entry.py "Message"                    # Log entry
python scripts/validate_site.py                                    # Validate structure/links

Architecture

This is a Jekyll static site deployed to GitHub Pages at https://ajay3007.github.io. The working branch is master; GitHub Actions deploys on push to main.

Template hierarchy:

Content types and locations:

Required front matter for posts:

layout: post
title: "Title"
date: YYYY-MM-DD
categories: [category]
excerpt: "Short description"

Required front matter for projects:

layout: project
title: "Title"
description: "Short description"

All internal template links must use the relative_url filter:

/path/to/page

External links in Markdown must include security attributes:

[Link text](https://example.com){:target="_blank" rel="noopener noreferrer"}

Nav active state uses exact or substring matching:


class=""
class=""

CSS

Single stylesheet at assets/css/main.css. CSS custom properties (defined in :root):

AI Assistant Constraints

Per learning/COPILOT_RULES.md: when editing learning content, do not introduce new technical ideas or decide system design choices. Only expand or clarify content that the author has already written. Ask rather than assume when intent is unclear.