groove-admin-doctor
Outcome
All groove sub-skill health checks are run and a consolidated summary is reported. User knows exactly what is working, what is misconfigured, and what action to take for any failure.
Acceptance Criteria
/groove-utilities-task-doctorand/groove-utilities-memory-doctorare run- Companion skill presence is checked directly
- Results are shown per sub-skill with pass/fail per check
- Overall status is shown: all healthy, or N issues found
- Each failure includes a specific remediation action
Output format
groove doctor
─────────────────────────────────────
groove
✓ git repo: detected
✓ groove-version: 0.1.0
✓ installed version: 0.1.0
✓ up to date
task
✓ .groove/index.md present
✓ tasks.backend: beans
✓ beans installed (v0.x.x)
✓ .beans.yml present
✓ beans reachable
memory
✓ memory path exists (.groove/memory/) [hardcoded]
✓ memory dirs exist (.groove/memory/daily/, weekly/, monthly/, git/)
companions
✓ find-skills installed
✓ agent-browser installed
✓ pdf-to-markdown installed
platform symlinks
✓ .claude/skills/groove → ../../.agents/skills/groove
✗ .cursor/skills/ missing — run: /groove-admin-install
─────────────────────────────────────
1 issue found. Run the suggested commands above to fix.Constraints
- Run git repo check first, then version check, then
/groove-utilities-task-doctor,/groove-utilities-memory-doctor, companions check in sequence - Git repo check:
- Run git rev-parse --is-inside-work-tree in the current directory - If it succeeds: ✓ git repo: detected - If it fails: ✗ git repo: not a git repository — groove requires a git repo
- Version check:
- Read groove-version: from .groove/index.md (if absent, treat as 0.1.0) - Read version: from skills/groove/SKILL.md - If they differ: ✗ groove-version (<local>) behind installed (<installed>) — run: /groove-admin-update
- Companions check:
- Check ls.agents/skills/find-skills/SKILL.md — if absent: ✗ find-skills not installed — run: /groove-admin-install - Check ls.agents/skills/agent-browser/SKILL.md — if absent: ✗ agent-browser not installed — run: /groove-admin-install - Check ls.agents/skills/pdf-to-markdown/SKILL.md — if absent: ✗ pdf-to-markdown not installed — run: /groove-admin-install
- Platform symlinks check (after companions):
- For each groove-* directory in .agents/skills/: check that .claude/skills/<name> is a symlink pointing to ../../.agents/skills/<name> - If missing or not a symlink: ✗.claude/skills/<name> not a symlink — run: /groove-admin-install - If symlink is broken (target doesn't exist): ✗.claude/skills/<name> broken symlink — run: /groove-admin-install - Check if .cursor/skills/ directory exists: - If absent: ✗.cursor/skills/ missing — run: /groove-admin-install - If present: check each groove symlink as above - All symlinks healthy: ✓ platform symlinks (.claude/,.cursor/)
- Claude Code native hooks check (after platform symlinks):
- Check if .claude/settings.json exists - If it exists: parse JSON and verify groove's hook entries are present (daily-end-reminder, git-activity-buffer, block-managed-paths, context-reprime, version-check commands in the hooks key) - Each missing entry: ✗.claude/settings.json missing groove hook <name> — run: /groove-admin-claude-hooks - If absent: ℹ.claude/settings.json not present — run /groove-admin-claude-hooks to install native hooks (optional) - All present: ✓ Claude Code native hooks (daily-end-reminder, git-activity-buffer, block-managed-paths, context-reprime, version-check)
- Cursor native hooks check (after Claude Code hooks):
- Check if .cursor/ directory exists - If .cursor/ exists: - Check if .cursor/hooks.json exists - If it exists: parse JSON and verify groove's hook entries are present (context-reprime, daily-end-reminder, git-activity-buffer, block-managed-paths, version-check commands in the hooks key) - Each missing entry: ✗.cursor/hooks.json missing groove hook <name> — run: /groove-admin-cursor-hooks - If absent: ℹ.cursor/hooks.json not present — run /groove-admin-cursor-hooks to install native hooks (optional) - All present: ✓ Cursor native hooks (context-reprime, daily-end-reminder, git-activity-buffer, block-managed-paths, version-check) - If .cursor/ absent: skip silently (Cursor not in use)
- Collect all results before printing — do not interleave output with check progress
- Each
✗item must include a concrete remediation command on the same line - Exit with a clear "all healthy" message if no issues found
- Do not attempt to auto-fix issues — report only