bitwize-music-studio/session-start
Runs the session startup procedure - verifies setup, loads config and state, checks skill models, and reports project status. Use at the beginning of a fresh session.
npx skills add https://github.com/bitwize-music-studio/claude-ai-music-skills --skill session-start
Run the full session start procedure and report project status to the user.
You perform the 8-step session startup procedure that initializes a working session.
Quick dependency check:
~/.bitwize-music/venv/bin/python3 -c "import mcp" 2>&1 >/dev/null && echo "MCP ready" || echo "MCP missing" # macOS/Linux/WSL
~/.bitwize-music/venv/Scripts/python.exe -c "import mcp" 2>&1 >/dev/null && echo "MCP ready" || echo "MCP missing" # Windows (Git Bash; cmd/PowerShell: %USERPROFILE%\.bitwize-music\venv\Scripts\python.exe)
/bitwize-music:setup mcp~/.bitwize-music/config.yaml doesn't exist): suggest /bitwize-music:configureUse the health_check MCP tool (checks venv packages + skill registration + album slug collisions in one call):
Venv results (from result.venv):
status: "ok" → continue silentlystatus: "stale" → warn with mismatches and fix command, continue sessionstatus: "no_venv" → stop and suggest /bitwize-music:setupstatus: "error" → warn and continueSkill registration results (from result.skills):
status: "ok" → continue silentlystatus: "stale" → warn: list missing and ghost skill names, show fix messagestatus: "no_cache" → warn that plugin cache not found, continueAlbum slug collision results (from result.collisions):
status: "ok" → continue silentlystatus: "collision" → warn: list each slug with its kept and shadowed genres, show the fix (rename one album with /bitwize-music:rename or move its directory, then run rebuild_state), continue sessionRead ~/.bitwize-music/config.yaml.
If missing, tell user to run /bitwize-music:configure.
Read paths.overrides from config (default: {content_root}/overrides):
{overrides}/CLAUDE.md — incorporate instructions if found{overrides}/pronunciation-guide.md — note if foundRead ~/.bitwize-music/cache/state.json:
rebuild_state()
Call the get_pending_migrations MCP tool. It compares the installed plugin
version against last_migrated_version in state (the last version whose
migrations were processed — distinct from plugin_version, which only records
the installed version for display) and returns the pending notes already
parsed and sorted.
pending is empty (reason: "current", or reason: "unknown" when theinstalled version can't be read from plugin.json): No action needed.
pending is non-empty (reason: "upgrade" or "untracked"): For eachmigration, process its actions in order:
auto: Execute silently (run check first — skip if it returns 0)action: Show description, ask the user to confirm before executinginfo: Display to the usermanual: Show the instruction to the useracknowledge_migrations (no argumentacknowledges everything up to the installed version) so the same notes do
not surface again next session.
> reason: "untracked" means the state predates migration tracking; the full
> backlog up to the installed version is surfaced once, then cleared by
> acknowledge_migrations. Do NOT just rebuild state to clear migrations —
> a rebuild preserves the pending status; only acknowledge_migrations records
> that you processed them.
Skill model checking is no longer part of session start. Skills use tier aliases (opus/sonnet/haiku) that auto-track the frontier model, and the test suite (/bitwize-music:test) enforces model/effort hygiene — so no manual model checking is needed when new Claude models are released.
Using data from state.json, report:
From state.ideas.counts — show count by status (Pending, In Progress, etc.)
Filter state.albums for status: "In Progress", "Research Complete", "Complete"
For each, show:
From state.albums — find tracks where sources_verified is "Pending"
If any found, warn: "These tracks have unverified sources — generation is blocked until verified."
From state.session:
Based on state, show ONE relevant tip:
| Condition | Tip |
|-----------|-----|
| No albums exist | "Try /bitwize-music:tutorial to create your first album" |
| Ideas exist but no albums | "You have album ideas! Use /bitwize-music:album-ideas list to review them" |
| In-progress albums exist | "Resume where you left off: /bitwize-music:resume <album-name>" |
| Overrides loaded | "Custom overrides loaded from {overrides}/" |
| Overrides missing | "Customize your workflow with override files — see /reference/overrides/" |
| Pending verifications | "Source verification needed before generation can proceed" |
Also show one random general tip (rotate through these):
/bitwize-music:resume to quickly jump back into an album"/bitwize-music:clipboard to copy lyrics/prompts for Suno"/bitwize-music:mastering-engineer for professional results"End with: "What would you like to work on?"
SESSION START
=============
Setup: MCP ready, config loaded
Health: [venv ok, skills ok, no collisions | warnings listed]
Overrides: [loaded from {path} | not found (optional)]
State: [loaded | rebuilt | error]
ALBUM IDEAS
Pending: X | In Progress: Y
IN-PROGRESS ALBUMS
[album-name] (genre) - Status [X/Y tracks]
[album-name] (genre) - Status [X/Y tracks]
PENDING VERIFICATIONS
[album-name]: track-01, track-05
LAST SESSION
Album: [name] | Phase: [phase]
Pending: [actions]
TIP: [contextual tip]
What would you like to work on?
Take bitwize-music-studio/session-start from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.