Skip to content

fix: reconcile the ledger with what is actually on GitHub - #27

Merged
writingdeveloper merged 2 commits into
mainfrom
fix/ledger-drift
Aug 19, 2026
Merged

fix: reconcile the ledger with what is actually on GitHub#27
writingdeveloper merged 2 commits into
mainfrom
fix/ledger-drift

Conversation

@writingdeveloper

Copy link
Copy Markdown
Owner

Two of the recent pushes changed things the portfolio was still describing the old way. Found by resolving every link in the ledger instead of trusting it.

Links that 404'd for visitors

project was now
Studio Apartment code link → GitHub 404 Private badge, demo link kept
YouTube Rhythm Game code link → GitHub 404 Private badge; drops out of the sitemap, since the repo was its only destination
Unclog LA code link → GitHub 404 Private badge, demo link kept
toolsmith flagged private repo is public under MIT — link restored
minddump (tombstone) website → Vercel 404 link removed; supersededBy: kindling already routes the visitor

toolsmith drifted the opposite way from the rest: GitHub's About URL already points at /projects/toolsmith, so the link was one-way for nothing.

Two projects that were shipping outside the ledger

til-shorts — a seven-stage production pipeline for English-language shorts. Assets come from the studios factory by id (the repo never copies one), and every stage sits behind a gate: two sources plus a fact-check table before research closes, a three-second average cut and −14 LUFS before review, and a human press for production approval. The channel URL is deliberately not linked.

mv-analyzer — local quantitative comparison of hit vs. buried music videos. Notable for reversing one of its own findings: a within-channel matched reanalysis killed the premiere-release effect, and the project publishes the reversal.

Both are private with no public destination, so both are thin pages the sitemap correctly skips.

The silent failure underneath

The home page's ALL WORK grouping was a slug list in the page component, resolved with .filter(Boolean). It fails silently in both directions — a slug that stops resolving just disappears, and a project nobody listed never renders — with no error, warning, or visibly broken page. Adding two projects today would have hit exactly that.

Moved to HOME_GROUPS in src/lib/projects.ts (next to APP_CATEGORY and PROJECT_SHOWCASE, same shape, same reason) so a test can import it without pulling in React. Three assertions now cover it, verified by mutation: dropping a slug, inventing one, and duplicating one each fail exactly one of them.

Verification

  • 172 tests pass (169 → 172), type-check and lint clean, production build succeeds
  • Both commits green in isolation
  • Rendered locally: toolsmith shows the repo link and no Private badge; the three reverted projects show the badge and no code link; TOOLS renders 18 with the intended six visible
  • Sitemap: 90 URLs — til-shorts/mv-analyzer/youtube-rhythm-game correctly absent, unclog-la/studio-apartment/toolsmith correctly present in both locales
  • Every remaining link in projects.json and graveyard.json re-resolved anonymously: all 200

🤖 Generated with Claude Code

https://claude.ai/code/session_01LaydoxAZ4eaqqPNKrmWLbt

@vercel

vercel Bot commented Aug 18, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
portfolio Ready Ready Preview Aug 19, 2026 7:34pm

Request Review

writingdeveloper and others added 2 commits August 19, 2026 12:33
Three repos went private on GitHub while the ledger still believed they
were public, so every visitor who clicked "코드 보기" on Studio Apartment,
YouTube Rhythm Game or Unclog LA landed on a GitHub 404. Setting the
private flag is enough: the Private rule already withholds the URL and
keeps the demo link, and youtube-rhythm-game correctly falls out of the
sitemap now that the repo link was the only place it had to go.

toolsmith had drifted the other way — flagged private while the repo is
public under MIT, so the site withheld a link GitHub already advertises
back at this very page.

minddump's tombstone pointed at a Vercel deployment that now 404s. The
tombstone still carries supersededBy: kindling, which is where a visitor
should go anyway.

These were found by resolving every link in the ledger rather than
trusting it. Worth repeating whenever repo visibility changes — a unit
test cannot see a 404.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LaydoxAZ4eaqqPNKrmWLbt
Two substantial projects had been shipping outside the ledger.

til-shorts is a seven-stage production pipeline that turns subjects with
a recorded engineering setback into English-language shorts. Assets come
from the studios factory and are referenced by id — the repo never
copies one — and every stage sits behind a gate: two sources and a
fact-check table before research closes, a three-second average cut and
-14 LUFS before review, and a human press for production approval. The
channel URL is deliberately not linked here.

mv-analyzer quantitatively compares hit and buried music videos entirely
locally, and is the rarer thing: it reversed one of its own findings when
a within-channel matched reanalysis killed the premiere-release effect,
and publishes the reversal.

Both are private with no public destination, so both are thin pages the
sitemap correctly skips.

The home page's ALL WORK grouping moves to lib as HOME_GROUPS, because
it fails silently in both directions — it drops a slug it cannot resolve
and never renders a project nobody listed, with no error either way.
Nothing but a test catches that, and a test needs it importable without
React. Verified by mutation: dropping a slug, inventing one, and
duplicating one each fail exactly one of the three new assertions.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LaydoxAZ4eaqqPNKrmWLbt
@writingdeveloper
writingdeveloper merged commit fc2c9b8 into main Aug 19, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant