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-doctor and /groove-utilities-memory-doctor are 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, session-capture 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, session-capture)
- 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, session-capture 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, session-capture)
- 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
1---2name: groove-admin-doctor3description: Run all groove health checks: config, backends, companions, AGENTS.md.4license: MIT5---6
7<!-- groove:managed — do not edit; changes will be overwritten by groove update -->
8
9# groove-admin-doctor
10
11## Outcome
12
13All 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.
14
15## Acceptance Criteria
16
17- `/groove-utilities-task-doctor` and `/groove-utilities-memory-doctor` are run
18- Companion skill presence is checked directly
19- Results are shown per sub-skill with pass/fail per check
20- Overall status is shown: all healthy, or N issues found
21- Each failure includes a specific remediation action
22
23## Output format
24
25```
26groove doctor
27─────────────────────────────────────
28groove
29 ✓ git repo: detected
30 ✓ groove-version: 0.1.0
31 ✓ installed version: 0.1.0
32 ✓ up to date
33
34task
35 ✓ .groove/index.md present
36 ✓ tasks.backend: beans
37 ✓ beans installed (v0.x.x)
38 ✓ .beans.yml present
39 ✓ beans reachable
40
41memory
42 ✓ memory path exists (.groove/memory/) [hardcoded]
43 ✓ memory dirs exist (.groove/memory/daily/, weekly/, monthly/, git/)
44
45companions
46 ✓ find-skills installed
47 ✓ agent-browser installed
48 ✓ pdf-to-markdown installed
49
50platform symlinks
51 ✓ .claude/skills/groove → ../../.agents/skills/groove
52 ✗ .cursor/skills/ missing — run: /groove-admin-install
53
54─────────────────────────────────────
551 issue found. Run the suggested commands above to fix.
56```
57
58## Constraints
59
60- Run git repo check first, then version check, then `/groove-utilities-task-doctor`, `/groove-utilities-memory-doctor`, companions check in sequence
61- Git repo check:
62 - Run `git rev-parse --is-inside-work-tree` in the current directory
63 - If it succeeds: `✓ git repo: detected`
64 - If it fails: `✗ git repo: not a git repository — groove requires a git repo`
65- Version check:
66 - Read `groove-version:` from `.groove/index.md` (if absent, treat as `0.1.0`)
67 - Read `version:` from `skills/groove/SKILL.md`
68 - If they differ: `✗ groove-version (<local>) behind installed (<installed>) — run: /groove-admin-update`
69- Companions check:
70 - Check `ls .agents/skills/find-skills/SKILL.md` — if absent: `✗ find-skills not installed — run: /groove-admin-install`
71 - Check `ls .agents/skills/agent-browser/SKILL.md` — if absent: `✗ agent-browser not installed — run: /groove-admin-install`
72 - Check `ls .agents/skills/pdf-to-markdown/SKILL.md` — if absent: `✗ pdf-to-markdown not installed — run: /groove-admin-install`
73- Platform symlinks check (after companions):
74 - For each `groove-*` directory in `.agents/skills/`: check that `.claude/skills/<name>` is a symlink pointing to `../../.agents/skills/<name>`
75 - If missing or not a symlink: `✗ .claude/skills/<name> not a symlink — run: /groove-admin-install`
76 - If symlink is broken (target doesn't exist): `✗ .claude/skills/<name> broken symlink — run: /groove-admin-install`
77 - Check if `.cursor/skills/` directory exists:
78 - If absent: `✗ .cursor/skills/ missing — run: /groove-admin-install`
79 - If present: check each groove symlink as above
80 - All symlinks healthy: `✓ platform symlinks (.claude/, .cursor/)`
81- Claude Code native hooks check (after platform symlinks):
82 - Check if `.claude/settings.json` exists
83 - 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`, `session-capture` commands in the `hooks` key)
84 - Each missing entry: `✗ .claude/settings.json missing groove hook <name> — run: /groove-admin-claude-hooks`
85 - If absent: `ℹ .claude/settings.json not present — run /groove-admin-claude-hooks to install native hooks (optional)`
86 - All present: `✓ Claude Code native hooks (daily-end-reminder, git-activity-buffer, block-managed-paths, context-reprime, version-check, session-capture)`
87- Cursor native hooks check (after Claude Code hooks):
88 - Check if `.cursor/` directory exists
89 - If `.cursor/` exists:
90 - Check if `.cursor/hooks.json` exists
91 - 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`, `session-capture` commands in the `hooks` key)
92 - Each missing entry: `✗ .cursor/hooks.json missing groove hook <name> — run: /groove-admin-cursor-hooks`
93 - If absent: `ℹ .cursor/hooks.json not present — run /groove-admin-cursor-hooks to install native hooks (optional)`
94 - All present: `✓ Cursor native hooks (context-reprime, daily-end-reminder, git-activity-buffer, block-managed-paths, version-check, session-capture)`
95 - If `.cursor/` absent: skip silently (Cursor not in use)
96- Collect all results before printing — do not interleave output with check progress
97- Each `✗` item must include a concrete remediation command on the same line
98- Exit with a clear "all healthy" message if no issues found
99- Do not attempt to auto-fix issues — report only