Update Turbo banner
tobihagemann tobihagemann

Update Turbo

Documentation community intermediate

Description

Update installed Turbo skills from the local repo at `~/.turbo/repo/` with a dynamic changelog and interactive conflict resolution.

Installation

This entry records only its repository, not the path inside it, so there is no exact command to give. Open the source below and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

Repository README

This is the README for tobihagemann/turbo, shared by 3 entries in this directory. It describes the repository, not this entry specifically.

Update Turbo

Update installed Turbo skills from the local repo at `~/.turbo/repo/` with a dynamic changelog and interactive conflict resolution.

Phase 1: Analysis

Step 1: Gather State

Read `~/.turbo/config.json` for:

  • repoMode"clone", "fork", or "source"
  • excludeSkills (default: [])
  • lastUpdateHead — the commit hash from the last update
  • configVersion (default: 0 if missing)

Determine the upstream remote based on `repoMode`:

  • Clone or source: origin
  • Fork: upstream
git -C ~/.turbo/repo fetch 

Compare `lastUpdateHead` with the fetched main HEAD:

git -C ~/.turbo/repo rev-parse /main

If they match, report that Turbo is already up to date and stop.

Step 2: Run Migrations

**Current version: 2**

If `configVersion` equals the current version, skip to Step 3.

Otherwise, read `MIGRATION.md` from the fetched remote:

git -C ~/.turbo/repo show /main:MIGRATION.md

For each migration where the version number is greater than `configVersion`, in ascending order:

  1. Check the migration's Condition. If the condition is not met and a Skip if clause applies, skip it.
  2. Otherwise, follow the migration's Steps.
  3. After completing (or skipping) the migration, continue to the next one.

After all migrations are processed, set `configVersion` to the current version in `~/.turbo/config.json`.

If any migration initialized config and reported completion (e.g., a first-time migration that sets up the repo), stop here. The user can run `/update-turbo` again to continue with the normal update flow.

Step 3: Build Changelog

Use local git commands to detect changes since `lastUpdateHead`. Use the upstream remote determined in Step 1.

# Changed skill files
git -C ~/.turbo/repo diff --name-status ../main -- skills/

# Commit history for context
git -C ~/.turbo/repo log --oneline ../main -- skills/

From the `--name-status` output, each entry has a status (`A` added, `D` deleted, `M` modified, `R` renamed with old path). Group by skill name (extract from `skills//...`).

For each modified or renamed skill, read both versions of the SKILL.md:

# Old version
git -C ~/.turbo/repo show :skills//SKILL.md

# New version
git -C ~/.turbo/repo show /main:skills//SKILL.md

Read both versions and write a concise, plain-language summary of what changed. Focus on what the change means for the user: new capabilities, changed behavior, renamed commands, removed features. Flag anything that could be a breaking change (renamed skills that other skills reference, removed steps, changed interfaces).

For added skills, read their new SKILL.md and summarize what they do.

Also check for changes to `CLAUDE-ADDITIONS.md`:

git -C ~/.turbo/repo diff --name-status ../main -- CLAUDE-ADDITIONS.md

If modified, read both v