groove-admin-update

Pull latest groove skills and apply pending migrations to local groove state.

By andreadellacorte · 528 installs

npx skills add andreadellacorte/groove --skill groove-admin-update

Source repository · Upstream listing

<! 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