AGENTS.md

Guidance for AI agents working in this repository.

Project overview

Personal site for Ryan Shaffer (ryanshaffer.net), deployed via GitHub Pages from the main branch. The site is a Jekyll static blog built on the Minimal Mistakes remote theme.

Primary content types:

Tech stack

Component Details
Generator Jekyll via github-pages gem
Theme mmistakes/minimal-mistakes (remote theme)
Skin air
Markdown Kramdown
Custom domain www.ryanshaffer.net (CNAME)

Do not vendor or fork the theme into this repo. Override theme files only when necessary, using Jekyll’s override paths (_includes/, _layouts/, etc.).

Local development

bundle install
bundle exec jekyll serve

Verify changes in the browser at http://localhost:4000 before pushing.

Repository layout

_config.yml              # Site settings, author, post defaults
_data/navigation.yml     # Top navigation links
_pages/                  # Static pages (included via _config.yml)
_posts/                  # Blog posts (YYYY-MM-DD-slug.md)
_includes/               # Theme overrides (head, favicons)
images/                  # Site images (portrait, headers, post figures)
papers/                  # PDF copies of select publications
index.html               # Home page front matter
CNAME                    # Custom domain for GitHub Pages

Content conventions

Blog posts (_posts/)

---
title: "Post title"
date: 2019-07-07T18:38:30-05:00   # include for original posts; link posts may omit
categories:
  - Blog
tags:
  - quantum computing
link: https://example.com/external-article   # optional; for link/summary posts
---

Static pages (_pages/)

Publications (_pages/publications.md)

Configuration notes

Theme customization

Existing overrides:

When customizing:

  1. Prefer _config.yml and front matter over template overrides.
  2. Override theme files in _includes/ or _layouts/ only when the theme does not expose a config option.
  3. Match existing style: minimal diffs, no unrelated refactors.

Images and assets

Deployment

Agent workflow

  1. Read before editing — Check neighboring posts/pages for front matter and formatting patterns.
  2. Minimize scope — One post, one page, or one config change per task unless asked otherwise.
  3. Do not commit unless asked — The repo owner controls git operations.
  4. Do not push unless explicitly requested.
  5. Test locally when possible: bundle exec jekyll build or bundle exec jekyll serve.
  6. Preserve voice — Blog content is technical but accessible, focused on quantum computing, verification, and industry perspective.

Common tasks

Task Where to edit
New blog post _posts/YYYY-MM-DD-slug.md
Update bio/CV _pages/about.md, _config.yml (author:)
Add publication _pages/publications.md, optionally papers/
Change nav _data/navigation.yml
Site title/description _config.yml
Home page header index.html front matter
Favicon/meta _includes/head/custom.html, root favicon files

Avoid