AGENTS.md
Project Overview
This repository is the Jekyll source for thebackcountrymom.com, a static blog based on the Norlin theme. Content is mostly Markdown posts and pages, with Liquid templates, Sass partials, YAML data files, JavaScript helpers, and image assets.
Common Commands
make start: install bundle dependencies and run the site locally withbundle exec jekyll serve.make post: prompt for a post title, create a new post viajekyll-compose, install dependencies, and start the local server.make ship: deploy workflow. It pulls, regenerates tag pages, stages everything, commits, and pushes. Only run this when explicitly asked.bundle exec jekyll build: build the site without serving it. Use this as the default verification command for content/template/style changes when dependencies are available.python tag_generator.py: regenerate tag pages intag/from post and draft front matter. This deletes and recreates existingtag/*.mdfiles.
The local site serves at http://127.0.0.1:4000/ by default.
Authenticated git and GitHub CLI (gh) access are available in this environment. Use them when needed for normal repository, pull request, and deployment workflows.
Repository Structure
_posts/: blog posts in Jekyll date-title Markdown format._pages/: standalone pages included by_config.yml._layouts/: page, post, default, tag, and links layouts._includes/: reusable Liquid partials, including head, header, footer, search, pagination, and widgets._sass/: Sass settings, tools, modules, and layouts. The main include is_includes/main.scss._data/: YAML-backed structured content used by posts and templates.images/: site images and post assets. Keep paths stable because posts reference them directly.tag/: generated tag pages. Prefer regenerating withpython tag_generator.pyinstead of hand-editing generated tag files.js/: site JavaScript and vendored browser libraries.
Content Conventions
Posts should use front matter consistent with existing files:
---
layout: post
title:
description:
date:
image: '/images/posts/...'
tags:
permalink: /example-slug/
---
- Use
layout: postfor blog posts. - Keep post image paths rooted from
/images/.... - Tags are commonly written as a space-separated list, for example
tags: backpacking kids gear. - Keep permalinks trailing-slash style, for example
/utah-winter-yurts/. - Use
_data/*.ymlfor large structured product lists or repeated content rather than embedding all data directly in templates. - Some posts intentionally contain inline HTML and Liquid loops. Preserve those patterns unless the task asks for a refactor.
Style And Implementation Notes
- Match the existing Jekyll/Liquid, Sass, and Markdown style. Keep changes scoped.
- Avoid broad theme refactors for content updates.
- Use existing Sass partial organization:
_sass/0-settings/for variables, helpers, and mixins._sass/1-tools/for resets, grid, animation, syntax, and shared tooling._sass/3-modules/for reusable UI modules._sass/4-layouts/for page-specific layout styles.
- Do not edit vendored files under
js/vendors/unless specifically requested. - Do not commit or rely on
.DS_Storefiles. - Be careful with
_config.yml: changes require restarting the Jekyll server.
Verification
- For most code, template, Sass, and content changes, run
bundle exec jekyll buildif local Ruby dependencies are installed. - For local visual checks, run
make startorbundle exec jekyll serveand inspecthttp://127.0.0.1:4000/. - If tags were changed or new tags were added, run
python tag_generator.pyand review the generatedtag/changes.
Deployment Guardrails
- This is a solo-developer site. Do not open pull requests for routine work in this repo.
- When the user asks to publish or push, push directly to
main. - Do not automatically push after making changes. Only push when the user explicitly asks.
- Do not run
make shiporship.shunless the user explicitly asks to publish/deploy. ship.shperformsgit pull, regenerates tags, stages all files, commits, and pushes. Checkgit statusbefore using it.- After any push to this repo, monitor the GitHub Pages deployment with
ghuntil it succeeds or fails. - If a deployment fails, investigate the failing check or workflow logs, explain the cause, and help implement a fix.
- Preserve unrelated user changes in the working tree. Do not revert files unless the user asks.

