groove-admin-update — скилл для Claude Code: обновление groove
Тянет свежие скиллы groove и по очереди применяет миграции к локальному состоянию. Нужен, когда вышла новая версия, а конфиг и память остались на старой.
npx skills add andreadellacorte/groove --skill groove-admin-update -a claude-codeЧто делает groove-admin-update
Скилл проходит по шагам: берёт тег последнего релиза из GitHub API, ставит скиллы через npx skills add andreadellacorte/groove --yes и сравнивает версию на диске с целевой. Если установилась старая, ждёт 10 секунд и повторяет попытку, всего до 3 раз. Дальше читает groove-version: из .groove/index.md и таблицу миграций в skills/groove/migrations/index.md, отбирает строки, где To больше локальной версии и не превышает установленную.
Каждая миграция применяется по порядку таблицы, и после каждой обновляется groove-version: — частичный прогресс можно продолжить с места сбоя. Если версии совпали, скилл просто сообщает, что всё актуально. Когда миграций нет, а версии разошлись, ключ версии переписывается напрямую. В конце пересобираются симлинки платформ: .claude/skills/<name> и .cursor/skills/<name> на .agents/skills/<name>, а мёртвые ссылки на удалённые скиллы убираются.
Важная деталь: источник истины для «последней версии» — релизы GitHub, потому что npx skills add умеет кэшировать старую сборку. Если все 3 попытки не дали нужный тег, скилл останавливается и говорит об этом. Миграция с ошибкой тоже останавливает процесс — дальше не идёт. Файлы скиллов команда не трогает, только локальное состояние: ключи в .groove/index.md, структуру каталога памяти и разделы AGENTS.md.
Какие задачи решает
- подтянуть свежую версию скиллов groove одной командой
- применить накопившиеся миграции локального состояния по порядку
- продолжить обновление после сбоя на середине
- починить симлинки скиллов в
.claude/skillsи.cursor/skills - убедиться, что на диске не закэшировалась старая версия
Примеры запросов агенту
- обнови groove до последней версии
- примени миграции groove к локальному состоянию
- проверь, что установлена последняя версия groove, и пересобери симлинки
Как установить groove-admin-update
1Через Skills CLI (Vercel)
npx skills add andreadellacorte/groove --skill groove-admin-update -a claude-code2Вручную: положить файлы
~/.claude/skills/groove-admin-update/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/groove-admin-update/
1Через Skills CLI (Vercel)
npx skills add andreadellacorte/groove --skill groove-admin-update -a codex2Вручную: положить файлы
.agents/skills/groove-admin-update/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add andreadellacorte/groove --skill groove-admin-update -a cursor2Вручную: положить файлы
.cursor/skills/groove-admin-update/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install andreadellacorte/groove groove-admin-update2Вручную: положить файлы
.github/skills/groove-admin-update/SKILL.md1Через Skills CLI (Vercel)
npx skills add andreadellacorte/groove --skill groove-admin-update -a gemini-cli2Командой платформы
gemini skills install https://github.com/andreadellacorte/groove --path skills/groove-admin-updateВручную: положить файлы
.devin/skills/groove-admin-update/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add andreadellacorte/groove --skill groove-admin-update -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Из того же набора13
Похожие
Рядом в теме «Настройка агента: память, контекст, субагенты»
Всё по теме «Настройка агента: память, контекст, субагенты» →Вопросы о groove-admin-update
Как установить groove-admin-update в Claude?
Выполните npx skills add andreadellacorte/groove --skill groove-admin-update -a claude-code. Файл скилла появится по пути ~/.claude/skills/groove-admin-update/SKILL.md.
Что делает groove-admin-update?
Ставит последний релиз скиллов groove и применяет к локальному состоянию все миграции, у которых целевая версия выше текущей. После этого обновляет groove-version: в .groove/index.md и пересобирает симлинки платформ.
Почему скилл не считает установку актуальной?
npx skills add может отдать закэшированную старую версию. Скилл сверяет версию на диске с тегом последнего релиза GitHub и повторяет установку до 3 раз; если не помогло, он предупреждает и подсказывает, что делать.
Исходный текст
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