# List worktrees (includes stale ones)
./scripts/list-workers.sh
# List ACTUALLY RUNNING workers
ps aux | grep "claude" | grep "GH-" | grep -v grep
# Check STATUS.md if worker writes progress (debug mode only)
The .mp3 files in this folder are songs written using various projects I have developed with Claude 4.5 models and claude code. Claude writes the music for multiple tracks. Claude writes the lyrics. Claude writes the tooling to assist it with music composition and production. Claude integrates with Bitwig Digital Audio Worksation (DAW.)
Files on Google Drive (covered below):
Claude 4.5 Sonnet came out in September and that made vibe coding large projects possible, so most of the stuff I created in 2025 came after its release. This is a real demarcation point in this report- before/after the 4.5 release.
Soon after the 4.5 release I landed on the command line build agent tools, first opencode and then settling on claude code. The step up in the capability of the models made these tools useful and then clearly the only (99%) way to use these models to create anything I wanted (not just software.) Clearly beating out the web interfaces and even the editor integrations.
I’m writing this as someone who builds first and theorizes later, because theory without a compiler nearby is just a way to feel smart without shipping. I learn by moving. I learn by wiring things together until they creak, then listening closely to where they creak. Right now I happen to be deep in Roblox, but what I’m really doing is game development in the oldest sense: designing rules, incentives, economies, persistence, identity, and trust under constraints. Roblox is a medium, not a destiny. The same instincts apply whether the surface is Lua, JavaScript, Rust, or something that hasn’t been named yet.
Let me start from first principles, because everything interesting lives there.
A game is not graphics. A game is not even interaction. A game is a bounded system of meaning: a place where actions matter because they are remembered, rewarded, or punished. Memory is the core. Persistence is the lever. Scarcity is the tension. When you strip the genre skin off,
Daniel Romano's "Time Forgot To Change My Heart" is a country murder ballad. A man betrayed by his friend and lover travels to their home, contemplates violence, and leaves a message with his daughter. We used it to build and test a framework for writing new lyrics that fit existing melodies.
The original has 34 lines across 9 sections. Average of 7.9 syllables per line. ABCB rhyme scheme in verses. The chorus repeats "time forgot to change my heart" with variation.
We built five commands in scripts/lyrics_analyzer.py:
parse - convert lyrics to structured YAML
| Familiarize yourself with this repository. | |
| We are creating a new album. You are acting as Rick Rubin. | |
| My two favorite albums and the inspirations for this album we are creating are: | |
| - Black Country, New Road - Ants from Up There | |
| - Songs: Ohia - The Magnolia Electric Co. | |
| The concept is knowing people deeply, the people who have been off and on through out our lives and/or are currently close to us. The lyrics are poetic and cryptic. |
| codestral:22b | |
| 0.20 seconds | |
| qwen3-coder:30b | |
| 0.21 seconds | |
| gemma2:27b | |
| 0.29 seconds | |
| command-r-plus:104b |