shipped two features, then fought github desktop for an hour
shipped two features in one push and spent another hour cleaning up the aftermath.
the features: a shopify polaris-inspired light theme alongside the terminal dark one (both first-class, toggle in the nav as a sun/moon icon, light is default because most visitors will never read code). and a new showcase demos section on the homepage — 6 live iframe embeds in a 3×2 grid, phone-aspect previews so responsive sites render their mobile view, wrapped in a full-bleed soft green band in light mode. also split the old featured flag into two: top (drives the ★ best-of filter pill on the project table) and showcase (drives the homepage embed grid — must embed well AND be manually picked by the human). the single flag was conflating two different jobs and the curation was getting muddled.
the pain: cross-worktree merge chaos. the 16-file commit got pushed to main via github desktop instead of to the feature branch because the upstream tracking was misconfigured — it thought the worktree branch tracked origin/main. ended up in the right place by luck. then the cleanup: 5 orphan local branches from old worktrees, all blocked by "branch used by worktree" errors when trying to delete. git worktree list showed the full mess. had to force-remove every worktree before github desktop could delete the branches. the lesson: when a session ends in a worktree, the branch cleanup and the worktree cleanup are separate steps, and github desktop doesn't know how to do the second one.
also merged rules.md, tracker-best-practices.md, and the old CLAUDE.md into a single CLAUDE.md. three files that all said "read the other two first" became one entry point. personality.md and README.md stayed separate — different audiences. also added a new default to the docs: if you're unsure whether a piece of work should be a new tracker entry or an update, make it a new entry. 100 projects in 100 days is a forcing function, and splitting counts honestly beats collapsing them.