Skip to main content
skill CX Codex

groove-admin-update — Claude Code skill: groove updates and migrations

Pulls the latest groove skills and applies pending migrations to your local groove state. Useful when a new release lands but your config and memory are still on the old one.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add andreadellacorte/groove --skill groove-admin-update -a claude-code
Open on GitHub

What groove-admin-update does

The skill walks a fixed sequence. It fetches the latest release tag from the GitHub API, installs skills with npx skills add andreadellacorte/groove --yes, then compares the version on disk against the target. If an older build landed, it waits 10 seconds and retries, up to 3 attempts total. Next it reads groove-version: from .groove/index.md and the migration table in skills/groove/migrations/index.md, keeping rows where To is above the local version and at or below the installed one.

Migrations run in table order, and groove-version: is rewritten after each one, so a partial run can resume from where it stopped. Matching versions mean a short up-to-date report. When versions differ but no migrations apply, the version key is bumped directly. The last step re-syncs platform symlinks: .claude/skills/<name> and .cursor/skills/<name> pointing at .agents/skills/<name>, with stale links to removed skills cleaned up.

One thing worth knowing: GitHub releases are the source of truth for "latest", because npx skills add can serve a cached older build. If all 3 attempts miss the target tag, the skill stops and says so. A failing migration also halts the run. Skill files themselves stay untouched — only local state changes: config keys in .groove/index.md, the memory directory layout and AGENTS.md sections.

What it helps with

  • pull the newest groove skills in one command
  • apply accumulated local state migrations in order
  • resume an update that failed halfway
  • repair skill symlinks in .claude/skills and .cursor/skills
  • catch a cached older version sitting on disk

Example prompts for the agent

  • update groove to the latest version
  • apply the pending groove migrations to my local state
  • check that the newest groove version is installed and refresh the symlinks

How to install groove-admin-update

1Skills CLI (Vercel)

npx skills add andreadellacorte/groove --skill groove-admin-update -a claude-code

2Manually: put the files in place

~/.claude/skills/groove-admin-update/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/groove-admin-update/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about groove-admin-update

How do I install groove-admin-update in Claude?

Run npx skills add andreadellacorte/groove --skill groove-admin-update -a claude-code. The skill file lands at ~/.claude/skills/groove-admin-update/SKILL.md.

What does groove-admin-update do?

It installs the latest groove skills release and applies every migration whose target version is above your current one. Then it updates groove-version: in .groove/index.md and refreshes the platform symlinks.

Why does the skill say my install is not up to date?

npx skills add can return a cached older version. The skill compares the on-disk version against the latest GitHub release tag and retries the install up to 3 times; if that fails, it warns you and explains the fix.

Source text

SKILL.md · MIT
---
name: groove-admin-update
description: "Pull latest groove skills and apply pending migrations to local groove state."
license: MIT
allowed-tools: Read Write Edit Glob Grep Bash(git:*) Bash(beans:*) Bash(gh:*) Bash(linear:*) Bash(npx:*) Bash(mkdir:*) AskUserQuestion
metadata:
  author: andreadellacorte
---

<!-- groove:managed — do not edit; changes will be overwritten by groove update -->

# groove-admin-update

**Maintainers (andreadellacorte/groove repo):** After publishing a new GitHub Release, run this from the **groove repo root** so checked-in `.agents/skills/groove*` matches what `npx skills add andreadellacorte/groove` installs — see `CONTRIBUTING.md` (“Publish release”). Do not use manual `rsync` from `skills/` for that.

## Outcome

All pending migrations are applied to the user's local groove state in version order. `.groove/index.md` reflects the current installed groove version.

## Acceptance Criteria

- `groove-version:` in `.groove/index.md` matches `version:` in `skills/groove/SKILL.md` after update
- Each pending migration was applied in order
- `groove-version:` updated after each successful migration (partial progress is recoverable)
- If already up to date, reports clearly and exits
- **Source-of-truth check**: "up to date" is only reported when the installed skill version equals the latest GitHub release; if the add step left an older version on disk (e.g. cached or default branch), the user is warned and told how to fix it

## Steps

1. **Fetch latest release tag** from `https://api.github.com/repos/andreadellacorte/groove/releases/latest` (tag_name, strip leading `v`). This is the target version. If the API call fails, skip the version check and continue without a target.
2. **Install with retry**: Run `npx skills add andreadellacorte/groove --yes` (no `@tag` — the CLI does not support tag syntax). After it completes, read `version:` from `skills/groove/SKILL.md` and compare to the target. If the installed version is still older than the target, wait 10 seconds and retry `npx skills add andreadellacorte/groove --yes`. Repeat up to 3 times total. If all attempts fail to install the target version, report: "Installed v<installed> but latest release is v<target> — `npx skills add` may be caching an older version. Try again later." and exit.
   - After a successful install, **re-read this SKILL.md (`skills/groove-admin-update/SKILL.md`) from disk** before continuing — the skill refresh may have updated the update command itself, and the remainder of these steps must reflect the latest version
3. Read `groove-version:` from `.groove/index.md` — if key absent, assume `0.1.0` and write it
4. Read installed version from `version:` in `skills/groove/SKILL.md` (already confirmed to match target in step 2)
5. If local and installed versions match: report "groove is up to date (v<version>)" and exit
6. Read `skills/groove/migrations/index.md` — parse the migration table
7. Filter rows where `To` > local version AND `To` <= installed version, in table order — the `From` field is informational only and does not gate execution
8. If no migrations found but versions differ: update `groove-version:` in `.groove/index.md` directly to the installed version and report "no state migrations needed — version bumped to v<version>"
9. For each pending migration:
   a. Report "Applying <from> → <to>: <description>"
   b. Read and execute the migration file
   c. Update `groove-version:` in `.groove/index.md` to the `To` version
   d. Report "✓ <from> → <to> applied"
10. Report summary: N migrations applied, now at v<version>
11. Re-sync platform symlinks after update:
    - For each directory in `.agents/skills/` that starts with `groove`:
      - Ensure `.claude/skills/<name>` is a symlink → `../../.agents/skills/<name>` (create or update if stale)
      - Ensure `.cursor/skills/<name>` is a symlink → `../../.agents/skills/<name>` if `.cursor/skills/` exists
    - Remove any `.claude/skills/groove-*` or `.cursor/skills/groove-*` entries that no longer exist in `.agents/skills/` (stale symlinks from removed skills)
    - Run: `for skill in .agents/skills/groove*; do name=$(basename "$skill"); ln -sfn "../../.agents/skills/$name" ".claude/skills/$name"; done`
    - Use `ln -sfn` (no-dereference) to avoid creating nested symlinks inside existing directory symlinks
    - Report: "✓ platform symlinks refreshed"

## Constraints

- **Source of truth for "latest" is GitHub releases** — `npx skills add` can cache older versions. Step 1-2 fetches the latest release tag and retries installation up to 3 times to ensure the correct version is installed.
- Never skip a migration — apply every matching migration in table order even if `From` does not match local version exactly
- Update `groove-version:` after each individual migration, not only at the end
- If a migration fails: stop, report the failure and current version, do not continue
- Do not modify skill files — `npx skills update` handles that; this command only migrates local state
- Local state includes: `.groove/index.md` config keys, memory directory structure, AGENTS.md sections
- Each migration file is idempotent — if re-run after partial failure, it should be safe

© andreadellacorte · MIT · andreadellacorte/groove

Similar skills

All skills for Agent setup: memory, context, orchestration →

From the same set13

groove-daily-start Prepares the workday: reviews recent days, creates today's memory file, loads tasks and lays out the agenda. CX Codex +1 571installs groove-work-plan Researches your codebase and writes a concrete implementation plan with ordered steps, file paths and function names. Meant to run after brainstorming. CX Codex +1 544installs groove-work-compound This skill documents lessons after a review or planning session, updates project rules and templates, and traces root causes of mistakes. CX Codex +1 540installs groove-work-exec This skill takes a finished implementation plan and writes the code, tests and docs for it, logging progress in your task backend. Use it once planning is done. CX Codex +1 536installs groove-admin-cursor-hooks Registers groove's native Cursor hooks in .cursor/hooks.json: context re-priming after compaction, end-of-day reminders, a git commit buffer and managed-path protection. CX Codex +1 518installs groove-utilities-memory-graduate Promotes a stable workflow insight from .groove/memory/learned/ into AGENTS.md, so the rule applies to every future session without running prime. CX Codex +1 510installs groove-groovebook-publish This skill sends a workflow learning from your project to the shared groovebook repo as a pull request. Handy after groove-work-compound, when a finding deserves a wider audience. CX Codex +1 506installs groove-utilities-onboard Writes a GROOVE.md at the project root so a new contributor knows which commands to run and where logs live. Handy when someone joins a groove project. CX Codex +1 505installs

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor