Claude Code Instructions for bbum.github.io
Claude Code Instructions for bbum.github.io
Commit Messages
Keep commit messages simple - just bullet points of what changed:
- Added new post about topic
- Fixed typo in about page
- Updated stylesheet
No “Generated by Claude” footers, no co-author lines, no emoji, no fluff.
Dates
ALWAYS check the current date before creating posts. Do NOT assume the year is 2024. Use:
date +%Y-%m-%d
File Search
Prefer mdfind over find or grep for file discovery:
mdfind -onlyin . 'kMDItemFSName == "*.md"'
mdfind -onlyin . 'kMDItemTextContent == "*search term*"'
Site Structure
_layouts/ # default.html, post.html, tag.html
_includes/ # header.html, footer.html
_posts/ # YYYY-MM-DD-title.md
_data/comments/ # comment_id.yml files
assets/css/ # style.scss
tags/ # Individual tag pages (tags/photography/index.html)
toc/ # Table of contents page
Jekyll (ALWAYS use Makefile)
NEVER run Jekyll commands directly. Use the Makefile:
make serve # Start dev server with --watch and --livereload
make build # One-time build
make stop # Kill running Jekyll server
Before previewing, ensure Jekyll is running with make serve. If preview isn’t updating, check that Jekyll is running with watch mode (the Makefile handles this).
Posts
- All posts go in
_posts/asYYYY-MM-DD-title.md - Use layout: post
Photo Workflow (Flickr + Photos Integration)
When adding photos from the Photos library to blog posts:
1. Find and Export from Photos
mcp__conduit__photos action=search_text query="photo name"
mcp__conduit__photos action=export id=PHOTO_ID outputPath=/tmp/photo.jpg format=jpeg quality=high
Export automatically normalizes EXIF orientation (bakes rotation into pixels).
2. Upload to Flickr
mcp__bbflickr__flickr action=upload filePath=/tmp/photo.jpg title="Title" tags="blog" visibility=public
Only use blog tag. NO descriptive tags (3d-printing, TPU, etc.) on either Flickr or Photos.
3. Link Flickr to Photos (bidirectional)
mcp__bbflickr__bridge action=link flickrID=FLICKR_ID photosID=PHOTOS_ID
mcp__conduit__photos action=set_keywords id=PHOTOS_ID keywords="flickr:FLICKR_ID, blog" append=true
Bridge writes machine tag to Flickr. You must ALSO add flickr:FLICKR_ID keyword to Photos.
Photos keywords should ONLY be: flickr:ID and blog (if for blog). NO descriptive tags.
4. Get embed info from Flickr
mcp__bbflickr__flickr action=agent id=FLICKR_ID
Returns YAML with title, flickr_url, tags, and sizes array.
5. Embed in Post (DO NOT use Flickr JS embed)
Use the figure class template, NOT <a data-flickr-embed>:
<div class="figure right">
<img src="https://live.staticflickr.com/65535/PHOTO_ID_SECRET_n.jpg" width="200" height="267" alt="Alt text">
<div class="caption"><a href="https://www.flickr.com/photos/bbum/PHOTO_ID/">Caption</a></div>
</div>
- Use
class="figure right"orclass="figure left"for floated images - Flickr size suffixes:
_n(320px),_z(640px),_c(800px),_b(1024px) - Always include caption with link to Flickr page
Photo Tagging Requirements
- Always tag in Flickr with
blogtag when uploading for blog - Always tag in Photos with
blogkeyword when used in a post - Bridge automatically handles
flickr:PHOTO_IDkeyword in Photos
Post Front Matter
---
layout: post
title: "Post Title"
date: YYYY-MM-DD
tags: [tag1, tag2]
comment_id: xYz123
---
comment_id: 6-char unique ID for email comments (generate random alphanumeric)tags: Array of tags (must have matching page intags/tagname/index.html)
Tags
When adding a new tag:
- Create
tags/newtagname/index.html:--- layout: tag tag: newtagname title: "newtagname" ---
Comments (Email-based)
Comments are collected via email to blog@bbum.net.
Subject Line Format
[postID] Title- new comment on post[postID:commentID] Re: Title- reply to a specific comment
Processing Comments
When user says to process comments from _incoming_comments/:
- Parse each
.emlfile:- Extract IDs from
Subject:line:[postID]or[postID:parentCommentID] - Extract sender name (not email) from
From: - Extract date from
Date:header - Extract body (plain text preferred)
- Extract IDs from
-
Generate a new 4-char comment ID for this comment
- Add to
_data/comments/POST_ID.yml: ```yaml- id: a3Bx from: “Sender Name” date: 2025-12-22 body: | Comment text here.
- id: k9Pm from: “Another Person” date: 2025-12-23 reply_to: a3Bx body: | Reply to the above comment. ```
- Delete processed
.emlfiles - Rebuild site
Comment Data Fields
id: (required) 4-char unique ID for this commentfrom: (required) sender display namedate: (required) date receivedbody: (required) comment text (supports markdown)reply_to: (optional) ID of parent comment if this is a reply
Comment Data Location
_data/comments/fQk7Xm.yml- comments for post with comment_id: fQk7Xm- Each file is a YAML array of comment objects
Adding Links
When asked to add a link to the site (e.g., to Laser Resources), visit the URL first to determine:
- What section it belongs in
- An appropriate description
Don’t ask the user for this info if it can be determined from the site itself.
Constraints
- GitHub Pages compatible only (no custom plugins)
- No Node.js, no Ruby gems beyond GitHub’s defaults
- Keep HTML/CSS minimal and readable