Donkey on the Edge — Refactor Log (May 2026)

Donkey on the Edge — Refactor Log (May 2026)

Running, human-readable record of actions taken. Newest at the bottom of each phase. See refactor-plan-May2026.md for the plan. Commits are made by the user via GitHub Desktop; entries here describe the action, not the commit.


Phase 0 — Zero-risk hygiene

2026-05-16 — Deleted local _site/ build output.

  • rm -rf _site — recovered 814M of local disk.
  • Not tracked in git (gitignored), regenerated by jekyll build. Zero content or history impact.

2026-05-16 — Rewrote .gitignore.

  • Replaced 54 lines (with dozens of auto-appended duplicate .DS_Store entries) with a clean set.
  • Added **/.DS_Store so stray .DS_Store files are ignored everywhere and the duplication cannot recur. Added Bundler/editor cruft patterns.

2026-05-16 — Untracked committed .DS_Store files.

  • git rm --cached on the 6 tracked .DS_Store files (_includes, _layouts, _pages, _pages-draft, _posts-draft, _posts-unpublish).
  • Files left on disk (verified) — staged as deletions only. No content lost.

2026-05-16 — Created planning/logging docs.

  • Added refactor-plan-May2026.md and refactor-log-May2026.md.

Status: Phase 0 actions complete. Staged for user to review/commit in GitHub Desktop. claude.md left untracked pending user decision.


Phase 1 — Baseline harness

2026-05-16 — Toolchain verified.

  • Ruby 3.2.2, Bundler 2.5.6, Jekyll 3.9.5 via github-pages 231. bundle check clean. Matches GitHub Pages classic build.

2026-05-16 — Baseline build succeeded.

  • bundle exec jekyll build — 0 errors, ~14s. 1,857 index.html, 3,910 total files. Log: .refactor-baseline/build.log.

2026-05-16 — Image-reference audit (.refactor-baseline/audit.py).

  • 1,884 pages, 13,707 <img> refs. 13,433 (98%) resolve OK.
  • 159 broken local images across 81 pages; 115 external (out of scope).
  • Broken by class: assets_c 114, root-rel 26, abs-own 15, page-rel 4.
  • Correction to earlier estimate: absolute-own URLs are 228 OK / 15 broken — the absolute→root-relative rewrite is hygiene, not breakage repair.
  • Outputs: .refactor-baseline/pages.txt, images-audit.tsv, images-broken.tsv.

2026-05-16 — assets_c recoverability probe.

  • Indexed 1,921 repo image files. Of 114 broken assets_c: 97 originals found in repo by stripping MT thumb suffix; 17 no obvious match (some double-thumbnailed — refinable). Phase 4 confirmed feasible.

Status: Phase 1 complete. .refactor-baseline/ artefacts are working files; recommend gitignoring rather than committing (decision pending).


(Run ahead of Phase 2/3: reversible content edits, user commits via GH Desktop. Backup still required before destructive phases.)

2026-05-16 — Built old→new mapping (.refactor-baseline/assets_c_map.py).

  • 67 unique broken assets_c URLs; all confirmed present literally in _posts. Heuristic: strip -thumb-WxH(-id) groups, leading YYYY MT date-folder prefix, trailing numeric IDs; match basename against repo image index. 65 matched exactly, 2 ambiguous. Map: assets_c-map.tsv.

2026-05-16 — Applied 65 replacements (assets_c_apply.py).

  • Literal full-URL swap to root-relative /images/... (spaces %20-encoded) across 52 post files, 65 occurrences.
  • Rebuild clean (0 errors). Re-audit: broken images 159 → 48; assets_c broken 114 → 3; pages w/ broken img 81 → 30.
  • Uncommitted; staged for user review in GitHub Desktop.

2026-05-16 — Adjudicated the 2 remaining ambiguous URLs.

  • CU-1_hal_floor_zooom-.../images/clem_hal_floor_zooom.jpg (post front matter self-declares this image — near-certain).
  • 2010 hockney_CU-1-.../images/hockney_clementine.jpg (post text “CU-1, my daughter”=Clementine; hockney_clf.jpg byte-identical — strong).
  • Pending user confirmation before applying.

Phase 2 — Backup safety net

(not started)