Grove doctor
Use when something in the Grove setup is not working as expected, or when a user asks to diagnose or troubleshoot their Grove installationFrom its SKILL.md
npx -y skills add chrisbanes/grove --skill grove-doctorAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 22 stars22 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
4.0 KB, as published. Nobody here has run it
I'm using the grove-doctor skill to run a series of diagnostic checks on this Grove setup.
Workflow
Run each check in order. Collect all results and print the full report at the end.
Check 1: Platform
diskutil info / | grep "File System"
- PASS if output contains
APFS - WARN if macOS but not APFS
- FAIL if not macOS
Check 2: CLI installed
command -v grove
- PASS if a path is returned
- FAIL if the command is not found. Fix: follow the installation instructions at https://github.com/chrisbanes/grove
Check 3: CLI version
grove version
- PASS — record the version string for the report
- FAIL if the command errors. Fix: reinstall the CLI
Check 4: Grove initialized
test -f .grove/config.json
- PASS if the file exists
- FAIL if not found. Fix: run the
grove:grove-configskill to initialize Grove in this repository
Check 5: Golden copy health
git status --porcelain
git rev-parse --abbrev-ref HEAD
git rev-parse --short HEAD
- PASS if
git status --porcelainproduces no output (clean) - WARN if there are uncommitted changes — report the count of dirty files. Suggestion: commit or stash changes before creating workspaces
- Record branch name and short commit hash in the report regardless
Check 6: Workspace directory
Read workspaceDir from .grove/config.json. Then:
test -d <workspaceDir> && test -w <workspaceDir>
df -h <workspaceDir>
- PASS if the directory exists, is writable, and has available disk space
- WARN if free space is under 5 GB
- FAIL if the directory does not exist or is not writable. Fix:
mkdir -p <workspaceDir>or adjust permissions
Check 7: Hooks
test -x .grove/hooks/post-clone
- PASS if the file exists and is executable
- FAIL if missing or not executable. Fix:
chmod +x .grove/hooks/post-clone
Check 8: Active workspaces
grove list --json
- PASS — report the count of active workspaces
- Flag any workspaces whose
created_atis more than 7 days ago as potentially stale - FAIL if the command errors
Output Format
After all checks, print the report:
Grove Doctor Report:
[PASS] Platform: macOS (APFS)
[PASS] CLI: grove v0.1.0
[PASS] Initialized: .grove/config.json found
[WARN] Golden copy: 3 uncommitted changes
[PASS] Workspace dir: /tmp/grove/myproject (12GB free)
[FAIL] Hooks: .grove/hooks/post-clone not executable
Fix: chmod +x .grove/hooks/post-clone
[PASS] Workspaces: 2 active
For every FAIL, include a Fix line with a specific command or actionable suggestion. For every WARN, include a Suggestion line.
Quick Reference
| Check | Command |
|---|---|
| Platform | `diskutil info / |
| CLI installed | command -v grove |
| CLI version | grove version |
| Initialized | test -f .grove/config.json |
| Golden copy | git status --porcelain |
| Workspace dir | df -h <workspaceDir> |
| Hooks | test -x .grove/hooks/post-clone |
| Workspaces | grove list --json |
Common Mistakes
- Running grove-doctor outside a git repo — checks 4 and 5 will produce misleading results. Always run from the repository root.
- Reporting only failures — always print the full checklist including PASSes so the user can see what is healthy.
- Skipping the fix command — every FAIL must include a concrete remediation step, not just a description of the problem.
Red Flags
- Multiple FAILs starting from Check 2 — the CLI is not installed; later checks are meaningless. Stop early and fix the CLI first.
- Golden copy is on a detached HEAD — workspaces created from it will have no branch context.
- Workspace directory is on a non-APFS volume — CoW clones will not work; Grove requires APFS.
Integration
- Standalone — invoked manually when things go wrong; not called by other skills automatically