Image Audit Implementation Plan
For Claude: REQUIRED SUB-SKILL: Use superpowers:executing-plans to implement this plan task-by-task.
Goal: Rename all image files to kebab-case, write descriptive alt text for every image (by viewing each one), reorganize meta images into a subfolder, and clean up gallery folder structure.
Architecture: Section-by-section audit with commits after each section. For every image: view it with the Read tool, rename file with git mv, update all references in markdown/code, and write descriptive alt text based on what the image actually shows.
Tech Stack: Astro content collections, markdown, git
IMPORTANT: For every image, you MUST use the Read tool to view the image file before writing alt text. Describe what you actually see, not what the project is about.
Task 1: Meta Images Folder Restructure
Files:
- Create:
app/public/meta/directory - Move: all favicon/OG files from
app/public/toapp/public/meta/ - Modify:
app/src/components/SEO/SEO.astro - Modify:
app/public/site.webmanifest
Step 1: Create meta directory and move files
mkdir -p app/public/metagit mv app/public/favicon.svg app/public/meta/favicon.svggit mv app/public/favicon-16x16.png app/public/meta/favicon-16x16.pnggit mv app/public/favicon-32x32.png app/public/meta/favicon-32x32.pnggit mv app/public/apple-touch-icon.png app/public/meta/apple-touch-icon.pnggit mv app/public/android-chrome-192x192.png app/public/meta/android-chrome-192x192.pnggit mv app/public/android-chrome-512x512.png app/public/meta/android-chrome-512x512.png# Rename card files to og-card prefixgit mv app/public/card-1200x630.png app/public/meta/og-card-1200x630.pnggit mv app/public/card-1200x630.svg app/public/meta/og-card-1200x630.svggit mv app/public/card-512x512.png app/public/meta/og-card-512x512.pnggit mv app/public/card-512x512.svg app/public/meta/og-card-512x512.svg# Copy favicon.ico to meta AND keep at root as fallbackcp app/public/favicon.ico app/public/meta/favicon.icoStep 2: Update SEO.astro references
In app/src/components/SEO/SEO.astro, update:
- Line 32:
${siteUrl}/card-1200x630.png→${siteUrl}/meta/og-card-1200x630.png - Line 66:
/favicon.ico→/favicon.ico(keep as root fallback) - Line 67:
/favicon.svg→/meta/favicon.svg - Line 68:
/apple-touch-icon.png→/meta/apple-touch-icon.png
Step 3: Update site.webmanifest
In app/public/site.webmanifest, update icon paths:
/android-chrome-192x192.png→/meta/android-chrome-192x192.png/android-chrome-512x512.png→/meta/android-chrome-512x512.png
Step 4: Commit
git add app/public/meta/ app/public/favicon.ico app/src/components/SEO/SEO.astro app/public/site.webmanifestgit commit -m "chore: move meta images to /meta/ subfolder"Task 2: Projects A-C (advent-of-code, ao3-sync, bitly-roulette, builders-guide, ciphers-codes, code-city)
Files: All .md and image files in app/src/content/projects/ for these 6 projects.
For each project below: view every image with the Read tool, then rename the file and write alt text.
advent-of-code
Screen_Shot_2022-02-19_at_18.29.31.png→ view, rename to descriptive kebab-case, update coverImage + 1 markdown refScreen_Shot_2022-02-19_at_18.30.29.png→ view, rename, update 1 markdown refScreen_Shot_2022-02-19_at_18.32.20.png→ view, rename, update 1 markdown ref- Fix all markdown alt text (currently just filenames)
- Fix coverImageAlt if needed after viewing
ao3-sync
Screenshot 2025-07-03 at 00.51.28.png→ view, rename, update coverImage + 1 markdown ref (note: markdown uses angle bracket syntax)- Fix coverImageAlt (“AO3 Screenshot” is too vague)
bitly-roulette
Screen_Shot_2022-02-19_at_18.53.19.png→ view, rename, update coverImage + 1 markdown ref
builders-guide
Screen_Shot_2022-02-19_at_19.08.28.png→ view, rename, update coverImage + 1 markdown refPaper.2020.me.58.pngthroughPaper.2020.me.68.png(11 files) → view each, rename to descriptive names, update markdown table refsSplash.png→ view, rename to kebab-caseItems_Empty.png→ view, rename to kebab-caseRecipe_Tree_Collpased.png→ view, rename to kebab-case (fix typo: “Collpased”)Shopping_List.png→ view, rename to kebab-case- Fix all markdown alt text
ciphers-codes
Screen_Shot_2022-02-19_at_19.57.46.png+ 10 more Screen_Shot files → view each, rename, update refscipers_v3.png→ view, rename (fix typo: “cipers”)Desktop.png→ view, rename to descriptive kebab-caseciphers.png→ view, consider renameciphers_logo.png→ rename tociphers-logo.png- Fix all markdown alt text
code-city
Untitled.png→ view, rename to descriptive namePaper.2020.me.52.png→ view, renamePaper.codecity.14.png→ view, renamePaper.codecity.18.png→ view, rename- Fix markdown alt text (currently “Untitled”)
Step: Commit after all 6 projects
git add app/src/content/projects/advent-of-code/ app/src/content/projects/ao3-sync/ app/src/content/projects/bitly-roulette/ app/src/content/projects/builders-guide/ app/src/content/projects/ciphers-codes/ app/src/content/projects/code-city/git commit -m "chore: rename images and fix alt text for projects A-C"Task 3: Projects D-H (devscript, divider-wall, fiary, grindless, homer-bathroom)
devscript
themes-split.png→ already decent name, keep. View and fix markdown alt (“devscript-theme-screenshot” → descriptive)
divider-wall
IMG_2706.jpeg→ view, rename, update coverImage + markdown refIMG_2265.jpeg→ view, rename, update markdown ref- Fix markdown alt text (currently filenames)
fiary
Screenshot 2025-07-02 at 20.55.45.png→ view, rename, update coverImage + markdown ref (uses %20 encoding)Paper.fiary.1.png,Paper.fiary.4.png,Paper.fiary.5.png,Paper.fiary.7.png,Paper.fiary.8.png→ view each, rename, update refs- Fix all markdown alt text
grindless
d0fe9f07-b737-4067-85ff-0dee6ba08ffa-profile_banner-480.png→ view, rename, update coverImage + markdown ref
homer-bathroom
IMG_2806~2.jpg→ view, rename, update coverImage refIMG_2806.jpeg→ view, rename, update markdown refIMG_2807.jpeg→ view, rename- Note: markdown references
IMG_2813.GIFwhich may not exist — check and fix broken ref - Also check
app/public/content/projects/homer-bathroom/for any images there
Step: Commit
git add app/src/content/projects/devscript/ app/src/content/projects/divider-wall/ app/src/content/projects/fiary/ app/src/content/projects/grindless/ app/src/content/projects/homer-bathroom/git commit -m "chore: rename images and fix alt text for projects D-H"Task 4: Projects I-M (is-trump-still-president, laser-cut-signs, listany, live-window, live-window-image-generator, makerfold, mapdo, maybe-social, mynn)
is-trump-still-president
Screen_Shot_2022-02-20_at_21.48.02.png→ view, rename, update coverImage + markdown ref
laser-cut-signs
IMG_3319.png,IMG_2761.png,IMG_2762.png,IMG_2763.png→ view each, rename, update refs- Fix coverImageAlt (“Laser cut sign” is too vague)
listany
Untitled.png→ view, rename, update coverImage + markdown refPaper.2020.me.135.pngthroughPaper.2020.me.165.png(24 files) → view each, rename, update table refsScreenshot 2025-07-02 at 21.02.11.png→ view, renameHome.png→ view, rename to kebab-case descriptiveBlack.png→ view, rename to kebab-case descriptive- Fix all markdown alt text (currently “Untitled” and filenames)
live-window
cover.png→ already good name. View and verify alt text is accurate.- Check
app/public/content/projects/live-window/cover.png— same image? - Alt text already good in both coverImageAlt and HTML img tag
live-window-image-generator
Screenshot 2025-07-02 at 22.04.40.png→ view, rename, update coverImage + markdown ref- IMPORTANT: Fix 4 empty-alt
<img>tags in the markdown (lines 22, 37-39). These are external API URLs — add alt text describing what each shows.
makerfold
makefold.png→ view, consider rename (typo: “makefold” vs “makerfold”)makefold2.png→ view, renameAll_Large_Icons.png→ rename toall-large-icons.png, view, add altMaker__Fold.png→ rename tomaker-fold-logo.png(or similar), view, add alt
mapdo
Untitled.png→ view, renameScreen_Shot_2022-02-19_at_21.08.37.png→ view, renameDribbble_HD.png→ rename todribbble-hd.png, view, add altDribbble_HD2.png→ rename todribbble-hd-2.png, view, add altLoading.png→ rename toloading.png, view, add alt- Fix coverImageAlt (currently describes the project concept, not the image)
maybe-social
Screen_Shot_2022-02-20_at_20.08.10.png→ view, rename, update coverImage + markdown refLanding.png→ rename tolanding.png, view, add altImage_post.png→ rename toimage-post.png, view, add altList.png→ rename tolist.png, view, add altView_-_Teddy_Bear.png→ rename toview-teddy-bear.png, view, add alt
mynn
Screenshot 2025-07-02 at 21.32.09.png→ view, rename, update coverImage + markdown ref (angle bracket syntax)Screenshot 2025-07-02 at 21.32.31.png→ view, rename, update markdown refScreenshot 2025-07-02 at 21.33.09.png→ view, rename, update markdown ref
Step: Commit
git add app/src/content/projects/is-trump-still-president/ app/src/content/projects/laser-cut-signs/ app/src/content/projects/listany/ app/src/content/projects/live-window/ app/src/content/projects/live-window-image-generator/ app/src/content/projects/makerfold/ app/src/content/projects/mapdo/ app/src/content/projects/maybe-social/ app/src/content/projects/mynn/git commit -m "chore: rename images and fix alt text for projects I-M"Task 5: Projects N-S (napkinnotes, open-api-docs-viewer, revibed, shapeconnector, statusboard)
napkinnotes
316388682-7c94cbc2-1702-42b5-a7e1-b8e5fbdedb75.gif→ view, rename to descriptive name, update coverImage- Fix markdown alt (“napkin-notes” → descriptive based on image content)
- Note: markdown inline image uses external GitHub URL, not local file — update alt text there too
open-api-docs-viewer
theme-elements-dark-large.png→ already good name. View and verify alt.- Fix markdown alt (“Overview” → more descriptive)
- Note: all inline images use external GitHub URLs — update alt text on those
<img>tags (already have decent alt but verify)
revibed
Tablet.png→ rename totablet.png, view, add altPaper.revibed.3.png→ view, renamePaper.revibed.4.png→ view, rename- Fix coverImageAlt (currently describes project, not image)
shapeconnector
shapeconnector_teaser2.png→ rename toshapeconnector-teaser.png, view, add altgameplay.gif→ already good name. View, add alt.Freeplay.png→ rename tofreeplay.png, view, add altFreeplay_Finished.png→ rename tofreeplay-finished.png, view, add altFreeplay_Moved_too_many.png→ rename tofreeplay-moved-too-many.png, view, add altFreeplay_Moved.png→ rename tofreeplay-moved.png, view, add alt
statusboard
Screenshot 2025-07-02 at 22.17.00.png→ view, rename, update coverImage + markdown refScreen_ Dashboard.png→ view, rename (note space after underscore)Screen_ Activity.png→ view, renameScreen_ Issues.png→ view, renameScreen_ Login.png→ view, renameScreenshot 2025-07-02 at 22.14.18.png→ view, renameScreenshot 2025-07-02 at 22.14.26.png→ view, rename
Step: Commit
git add app/src/content/projects/napkinnotes/ app/src/content/projects/open-api-docs-viewer/ app/src/content/projects/revibed/ app/src/content/projects/shapeconnector/ app/src/content/projects/statusboard/git commit -m "chore: rename images and fix alt text for projects N-S"Task 6: Projects T-Z (thisisalsome, tictactoe-cubed, timezone, tourus-y3-coasters, trailblazer, unpack-link, wordbird)
thisisalsome
Screen_Shot_2022-02-20_at_18.06.51.png→ view, rename, update coverImage + markdown refsScreen_Shot_2022-02-20_at_18.13.38.png→ view, renameScreen_Shot_2022-02-20_at_18.12.36.png→ view, rename
tictactoe-cubed
Screen_Shot_2022-02-20_at_16.55.40.png→ view, rename, update coverImage + markdown refScreen_Shot_2022-02-20_at_16.55.40 1.png→ view, rename (note space before 1)Screen_Shot_2022-02-20_at_16.58.57.png→ view, rename
timezone
Screen_Shot_2022-02-20_at_21.33.03.png→ view, rename, update coverImage + markdown ref
tourus-y3-coasters
IMG_7725.jpeg→ view, rename, update coverImage + markdown ref- Fix coverImageAlt (“Tourus Year 3 Coasters” — just the name, not descriptive of image)
trailblazer
Paper.2020.me.20.png→ view, rename, update coverImage + markdown refPaper.2020.me.12.pngthroughPaper.2020.me.27.png(12 more files) → view each, rename, update refs- Fix coverImageAlt (currently describes project, not image)
unpack-link
Screen_Shot_2019-07-14_at_6.10.06_PM.png→ view, rename, update coverImage + markdown refnested_tweets_try4_shorter.gif→ rename tonested-tweets.gif, view, add altex_1.gifthroughex_4.gif→ rename toexample-1.gifthroughexample-4.gif, view, add altHome_-_Dark_Gray.png→ rename tohome-dark-gray.png, view, add altResults.png→ rename toresults.png, view, add alt
wordbird
Untitled.png→ view, rename to descriptive name, update coverImage + markdown ref- Fix markdown alt (currently “Untitled”)
Step: Commit
git add app/src/content/projects/thisisalsome/ app/src/content/projects/tictactoe-cubed/ app/src/content/projects/timezone/ app/src/content/projects/tourus-y3-coasters/ app/src/content/projects/trailblazer/ app/src/content/projects/unpack-link/ app/src/content/projects/wordbird/git commit -m "chore: rename images and fix alt text for projects T-Z"Task 7: Projects in public/content (fiary, homer-bathroom, live-window, tourus-y3-coasters)
Check app/public/content/projects/ for images that need renaming to match the src/content renames done in Tasks 2-6.
Files:
app/public/content/projects/fiary/— check for images, rename to matchapp/public/content/projects/homer-bathroom/— check for images, rename to matchapp/public/content/projects/live-window/cover.png— already goodapp/public/content/projects/tourus-y3-coasters/— check for images, rename to match
Step: Commit
git add app/public/content/projects/git commit -m "chore: rename public content project images to match src renames"Task 8: Gallery — Folder Restructure and Image Audit
Files:
- Move:
app/src/content/gallery/images/contents into individual folders - Rename: all gallery image files to kebab-case
- Modify: all gallery
.mdfiles
Standalone gallery entries (move from images/ to individual folders)
mkdir -p app/src/content/gallery/neon-shapesgit mv "app/src/content/gallery/images/neon_shapes.png" "app/src/content/gallery/neon-shapes/neon-shapes.png"
mkdir -p app/src/content/gallery/dream-roomgit mv "app/src/content/gallery/images/dream_room.jpg" "app/src/content/gallery/dream-room/dream-room.jpg"
mkdir -p app/src/content/gallery/gallery-of-phonesgit mv "app/src/content/gallery/images/gallery_of_phones.png" "app/src/content/gallery/gallery-of-phones/gallery-of-phones.png"
# Remove empty images/ directoryrmdir app/src/content/gallery/images/Update markdown refs in neon_shapes.md, dream_room.md, gallery_of_phones.md:
./images/neon_shapes.png→neon-shapes/neon-shapes.png./images/dream_room.jpg→dream-room/dream-room.jpg./images/gallery_of_phones.png→gallery-of-phones/gallery-of-phones.png
Also rename the .md files themselves if snake_case:
neon_shapes.md→neon-shapes.mddream_room.md→dream-room.mdgallery_of_phones.md→gallery-of-phones.md
IMPORTANT: Check if renaming .md files affects Astro content collection slugs. If the slug is derived from the filename, this changes URLs. Read the Astro content config first. If slugs are explicit in frontmatter, renaming is safe. If not, add explicit slugs before renaming.
hudsonvalley
IMAG1094.jpg→ view, rename, update coverImage + markdown ref1020181159_HDR~2.jpg→ view, renamePXL_20250624_003031438.jpg→ view, rename- Also check
app/public/content/gallery/hudsonvalley/for images
iceland
iceland_photo.jpg→ rename toiceland-photo.jpg, view, add alticeland_layered_sketch.jpg→ rename toiceland-layered-sketch.jpg, viewIMG_20190830_140351.jpg→ view, renameIMG_20190830_140953.jpg→ view, rename
stockphotos
- 27 files with Flickr hash names (e.g.,
25677324952_36b5b13289_o.jpg) → view each, rename to descriptive kebab-case - Fix coverImageAlt (already good: “Thalida sitting reading a python book”)
- Fix all markdown alt text (currently all “Stock Photo”)
zion
zion.jpg→ already good. View, verify alt.zion-2.jpg→ already good. View, add alt.IMG_20160905_112309696_HDR.jpg→ view, renameIMG_20160905_120545187_HDR.jpg→ view, renameUntitled_Artwork.png→ view, rename to descriptive name
View all standalone gallery images and fix alt text
neon-shapes.png→ fix coverImageAlt (“Illustration” → descriptive)dream-room.jpg→ fix markdown alt (“DreamRoom” → descriptive), fix coverImageAltgallery-of-phones.png→ fix coverImageAlt (“Illustration” → descriptive)
Step: Commit
git add app/src/content/gallery/git commit -m "chore: restructure gallery folders, rename images, fix alt text"Task 9: Guides — Image Rename and Alt Text
Files: All guide .md files and their image directories in app/src/content/guides/.
custom-django-admin-add-template
Screenshot 2025-07-02 at 17.42.10.png→ view, rename, update coverImage- Fix coverImageAlt (“Custom Django Admin Add Template” → descriptive of what’s shown)
custom-django-unfold-admin-dashboard
Screenshot_2023-11-12_at_00.13.08.png→ view, rename, update coverImage + markdown ref- Fix markdown alt (“Screenshot 2023-11-12 at 00.13.08.png” → descriptive)
design-trends
628F8A28-14EB-4319-A350-14674058490D.jpeg→ view, rename, update coverImage + markdown ref5DB19519-EEB8-4ADB-BB7E-6802E0A1B0E6.jpeg→ view, rename, update markdown ref3BB80C54-C2F0-4EBB-9A75-72A960B248FC.jpeg→ view, rename, update markdown ref- Fix all alt text (currently UUID filenames)
django-react-native-auth
Screenshot_2023-11-11_at_13.22.17.png→ view, renameScreenshot_2023-11-11_at_13.36.11.png→ view, renameScreenshot_2023-11-11_at_13.37.21.png→ view, renameScreenshot_2023-11-11_at_13.44.41.png→ view, renameScreenshot_2023-11-11_at_13.58.10.png→ view, renameScreenshot_2023-11-11_at_13.58.47.png→ view, rename- Fix alt text (some already decent like “App Registration > New Application”, others are filenames)
how-to-astro-glob-file
Screenshot 2025-07-03 at 18.10.16.png→ view, rename, update coverImage + markdown ref- Fix markdown alt (currently the full file path)
knowledge-base-brain-dump
pexels-eye4dtail-122308.jpg→ rename to descriptive kebab-case (it’s a Pexels stock photo), viewpexels-ann-h-45017-592677.jpg→ rename to descriptive kebab-case, view (may be unreferenced — check)- Alt text already decent (“Assorted rubber ducks”)
knowledge-base-django-generic-fields
Screenshot 2025-07-02 at 17.43.24.png→ view, rename, update coverImage- Fix coverImageAlt (“Django Generic Fields” → descriptive of what’s shown)
Step: Commit
git add app/src/content/guides/git commit -m "chore: rename guide images and fix alt text"Task 10: Versions 2007-2017 — Image Rename and Alt Text
Files: All version .md files and their image directories for 2007-2017 entries.
2007-the-lost-era
Screenshot 2025-07-02 at 13.56.39.png→ view, rename, update coverImage + 2 markdown refs
2012-brown-minimal
Untitled.png,Untitled 1.png,Untitled 2.png→ view each, rename to descriptive namesmock.1.png,mock.2.png→ rename tomockup-1.png,mockup-2.png(or more descriptive)screenshot.png→ keep or rename if more descriptive name warranted- Fix markdown alt (currently all “Untitled”)
2013-1-flat-cards
Untitled.pngthroughUntitled 4.png(5 files) → view each, renamemock.1.pngthroughmock.4.png→ rename tomockup-1.pngetc.screenshot.png→ keep or rename- Fix markdown alt (currently all “Untitled”)
2013-2-flat-live
Untitled.pngthroughUntitled 9.png(10 files) → view each, renameconcept.0.pngthroughconcept.5.png→ rename toconcept-0.pngetc.mock.1.pngthroughmock.6.png→ rename tomockup-1.pngetc.screenshot.png→ keep or rename- Fix markdown alt (currently all “Untitled”)
2014-fullscreen-lowpoly
Untitled.pngthroughUntitled 3.png→ view each, renamemock.1.pngthroughmock.4.png→ renamescreenshot.png→ keep or rename
2015-magic-floating-card
Untitled.png→ view, renamemock.1.png→ already has good alt (“Floating card mockup”)screenshot.png→ keep or rename
2016-color-split
Untitled.png→ view, renamemock.1.png,mock.2.png→ renamescreenshot.png→ keep or rename
2017-1-lowpoly-space
Untitled.png→ view, renamemock.1.png,mock.2.png→ renamescreenshot.png→ keep or rename
2017-2-shape-clock
Untitled.png→ view, renamemock.1.png→ renamescreenshot.png→ keep or rename
Step: Commit
git add app/src/content/versions/2007-the-lost-era/ app/src/content/versions/2012-brown-minimal/ app/src/content/versions/2013-1-flat-cards/ app/src/content/versions/2013-2-flat-live/ app/src/content/versions/2014-fullscreen-lowpoly/ app/src/content/versions/2015-magic-floating-card/ app/src/content/versions/2016-color-split/ app/src/content/versions/2017-1-lowpoly-space/ app/src/content/versions/2017-2-shape-clock/git commit -m "chore: rename version images 2007-2017 and fix alt text"Task 11: Versions 2018-2026 — Image Rename and Alt Text
2018-1-space-calendar
Untitled.png→ view, renamemock.1.pngthroughmock.3.png→ renamescreenshot.png→ keep or rename
2018-2-illustrated-window
Untitled.png→ view, rename- Weather GIFs (
cloudy.gif,fog.gif,rain.gif,snow.gif,wind.gif) → already good names, view and verify alt mock.1.pngthroughmock.4.png→ renamesketch.1.jpgthroughsketch.3.jpg→ rename tosketch-1.jpgetc.
2022-super-window
Screen_Shot_2022-07-31_at_15.28.17.png→ view, rename, update coverImage + markdown refPaper.2020.me.74.pngthroughPaper.2020.me.84.png(8 files) → view each, renametheme-toggle.gif→ already good name, view, add alt
2025-astro-animated
Screenshot 2025-07-02 at 11.44.06.png→ view, rename, update coverImageScreenshot 2025-07-03 at 16.48.24.png→ view, rename, update markdown refsScreenshot 2025-07-03 at 16.52.55.png→ view, renameScreenshot 2025-07-03 at 16.53.46.png→ view, rename, update markdown refScreenshot 2025-07-03 at 16.57.15.png→ view, renameweather.gif,weather-digital.gif→ already good names- Inspo images (6 screenshots in
inspo/) → view each, rename - Also rename public copies:
app/public/content/versions/2025-astro-animated/weather.gifandweather-digital.gifif they match
2026-neon-playground
cover.png→ already good name, verify alt textchat.png→ already good name, verify alt textlive-window.png→ already good name, verify alt text- Also check
app/public/content/versions/2026-neon-playground/chat.png
Step: Commit
git add app/src/content/versions/2018-1-space-calendar/ app/src/content/versions/2018-2-illustrated-window/ app/src/content/versions/2022-super-window/ app/src/content/versions/2025-astro-animated/ app/src/content/versions/2026-neon-playground/ app/public/content/versions/git commit -m "chore: rename version images 2018-2026 and fix alt text"Task 12: Assets and Cursor SVGs
Files:
app/src/assets/about/— verify namingapp/public/cursors/— view and verify naming
About assets
me-avatar.png→ already kebab-case, goodme-headshot.png→ already kebab-case, goodme-memoji.png→ already kebab-case, goodme-rainbow.png→ already kebab-case, good- Check if these have alt text where used (search for references in .astro components)
Cursor SVGs
- View each cursor SVG in
app/public/cursors/ - Verify all names are kebab-case
- Cursors are decorative/functional, not content images — they don’t need alt text
Step: Commit (only if changes needed)
Task 13: Build Verification
Step 1: Run the build
just app::buildExpected: Build succeeds with no broken image references.
Step 2: Check for broken references
Search for any remaining non-kebab-case image references:
grep -rn "Screen_Shot\|Screenshot 20\|Paper\.20\|IMG_\|IMAG\|Untitled\." app/src/content/ --include="*.md"Expected: No matches (all references updated).
Step 3: Check for orphaned images
Look for image files that aren’t referenced anywhere. These can be cleaned up or flagged.
Step 4: Update TODO.md
Mark the audit all image names and alt tags item as complete in TODO.md.
Step 5: Final commit
git add TODO.mdgit commit -m "chore: mark image audit complete in TODO"Notes for the Implementing Agent
-
Always view images before writing alt text. Use the Read tool on image files — it will display them visually. Write alt text based on what you actually see.
-
When renaming files with
git mv, be careful with spaces and special characters in filenames. Use quotes around paths. -
Update ALL references for each rename — check frontmatter
coverImage,coverImageAlt, markdown, HTML<img src="" alt="">, and any public/ copies. -
Markdown table image references use a different syntax — some images are in
| col | col |table cells. Make sure to update those too. -
Angle bracket syntax — some markdown refs use
. After renaming to kebab-case (no spaces), you can drop the angle brackets. -
External URLs (GitHub raw content) — don’t rename those, just fix alt text.
-
app/public/content/images are referenced with absolute paths starting with/content/.... Make sure to update those paths if you rename the files. -
Content collection slugs — if gallery .md files are renamed (snake_case → kebab-case), verify this doesn’t break URL routing. Add explicit
slug:frontmatter if needed.