Grove config
Use when configuring Grove for a repository that does not yet have a `.grove/config.json`, or when a user asks to configure Grove in their projectFrom its SKILL.md
npx -y skills add chrisbanes/grove --skill grove-configAssembled 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
3.2 KB, as published. Nobody here has run it
I'm using the grove-config skill to set up Grove for this project.
Workflow
Step 1: Verify git repo
git rev-parse --show-toplevel
If the command fails, stop. Grove requires a git repository.
Step 2: Check if already initialized
test -f .grove/config.json
If .grove/config.json exists, report that Grove is already initialized and ask the user whether they want to re-initialize. Stop unless they confirm.
Step 3: Detect build system
Scan for marker files in the following priority order. Use the first match. If multiple top-level markers exist, ask the user which is the primary build system.
| Build System | Marker File(s) | Warmup Command | Post-Clone Hook |
|---|---|---|---|
| Gradle | build.gradle.kts or build.gradle | ./gradlew assemble | Clean lock files, configuration-cache |
| Node.js | package.json | npm run build | Clean node_modules/.cache |
| Rust | Cargo.toml | cargo build | Clean target/debug/incremental |
| Go | go.mod | go build ./... | Minimal — Go handles relocatable caches well |
| Python | pyproject.toml or requirements.txt | poetry install or pip install -e . | Clean __pycache__ dirs |
| C/C++ | Makefile or CMakeLists.txt | make or cmake --build build | Project-specific |
If no marker is found, ask the user to provide a warmup command.
Step 4: Present proposed config for confirmation
Show the user:
- Warmup command
- Workspace directory (default: system temp under a grove subdirectory)
- Post-clone hook content
Ask for confirmation before proceeding.
Step 5: Run grove config
grove config --warmup-command "<cmd>"
Step 6: Write post-clone hook
Write the post-clone hook script to .grove/hooks/post-clone and make it executable:
chmod +x .grove/hooks/post-clone
Step 7: Suggest git add
Tell the user to commit the Grove configuration:
git add .grove/config.json .grove/hooks/
git commit -m "chore: add Grove configuration"
Quick Reference
| Command | Purpose |
|---|---|
grove config --warmup-command "<cmd>" | Initialize Grove |
grove update | Refresh golden copy build state |
Common Mistakes
- Running
grove configoutside a git repo — Grove requires git; always verify first. - Skipping the post-clone hook — without it, workspaces inherit stale lock files or cache artifacts.
- Not committing
.grove/— commit so collaborators and CI get the same warmup behavior.
Red Flags
grove configfails with a permissions error — checkgroveis installed and the user has write access.- Warmup command exits non-zero during
grove config— fix unresolved dependencies before initializing. - Multiple
package.jsonandbuild.gradleat the root — polyglot monorepo; ask which is primary.
Integration
- Standalone — not called by other skills automatically
- Suggested by:
grove:using-grovewhen.grove/config.jsonis not found - Invoked via:
/grove-configslash command