AGENTS.md — Whalen Solutions site
AGENTS.md — Whalen Solutions site
AI agent guidance for this repository. Covers build commands, project conventions, and things to know before making changes.
Stack
- Framework: Jekyll with the Minimal Mistakes remote theme, pinned in
_config.yml(remote_theme: mmistakes/minimal-mistakes@<version>) - Hosting: GitHub Pages (native Jekyll build — no Actions workflow needed)
- Contact form: Formspree (see
_pages/contact.md) - CSS customization:
_sass/minimal-mistakes/skins/_whalen.scss
Build commands
# Install dependencies (first time or after Gemfile changes)
bundle install
# Local preview with live reload
bundle exec jekyll serve --livereload
# One-shot build into _site/
bundle exec jekyll build
The site is also built automatically by GitHub Pages on every push to main.
Repository layout
├── _config.yml ← Main site configuration
├── _data/
│ └── navigation.yml ← Top nav links — edit this to add nav items
├── _pages/
│ ├── contact.md ← Contact page (Formspree-backed form)
│ └── thank-you.md ← Post-submission redirect target
├── _sass/
│ └── minimal-mistakes/
│ └── skins/
│ └── _whalen.scss ← Brand color overrides (do not edit theme files)
├── assets/
│ └── images/ ← Static images; logo PNGs live here
├── index.md ← Home splash page (layout: splash)
├── Gemfile ← Ruby gem dependencies for local dev
├── AGENTS.md ← This file
└── CLAUDE.md ← Claude-specific pointer (references this file)
Brand palette
These values must be used consistently in any SCSS or inline style changes:
| Token | Hex | Usage |
|---|---|---|
| Navy dark | #0D1929 |
Masthead, footer background, body text |
| Teal primary | #00C8AA |
Links, buttons, focus rings, accents |
| Dark teal | #006B5E |
Hover states |
| Light blue | #E8F4FC |
Text on dark backgrounds |
| Mid navy | #1B3F6E |
Borders, secondary elements |
All color customizations belong in _whalen.scss. Do not edit theme files
directly — the remote theme approach means local overrides survive upgrades.
Adding a page
-
Create
_pages/your-page.mdwith this front matter:--- layout: single title: "Page Title" permalink: /your-page/ --- -
Add an entry to
_data/navigation.ymlif it should appear in the nav.
Adding a blog post
- Create
_posts/YYYY-MM-DD-slug.mdwithlayout: singlefront matter. - Add a “Blog” link to
_data/navigation.ymlpointing at/blog/(or wherever you configure the archive). - The post defaults in
_config.yml(date, read time, taxonomy display) are already wired up.
Upgrading Minimal Mistakes
- Check the release notes for breaking changes between the current pin and the target version.
- Update the version string in
_config.yml(remote_theme: mmistakes/minimal-mistakes@X.Y.Z). - Check whether any icon class names have changed (Font Awesome version bumps
appear occasionally in MM releases). Footer icon classes live in
_config.yml. - Test locally with
bundle exec jekyll servebefore pushing.
Formspree
The contact form in _pages/contact.md posts to Formspree. The form ID in
the action attribute (https://formspree.io/f/YOUR_FORM_ID) must be
replaced with a real ID from the Formspree dashboard before the form will
work. The free tier allows 50 submissions/month.
Things to avoid
- Avoid modifying core files under
_layouts/,_includes/,assets/css/, orassets/js/— local copies shadow the remote theme permanently, making upgrades painful. The exception is files Minimal Mistakes provides specifically for user customization (e.g.,_includes/head/custom.html,_includes/footer/custom.html). These are safe to override and are unlikely to change between releases. - Do not commit
_site/or.jekyll-cache/— both are in.gitignore. - The
assets/images/directory does not belong to the theme; additions here are safe and will not be overwritten by theme upgrades.