Operators and agents frequently hit silent configuration issues. A grove doctor command would surface problems before they cause confusion.
$ grove doctor
Grove Environment
.grove directory: /Users/alice/project/.grove ✓
grove.db: exists (1.2 MB) ✓
CAS: .grove/cas/ (47 artifacts) ✓
GROVE.md: valid v3 contract ✓
grove.json: preset=review-loop, backend=nexus ✓
Agent Identity
GROVE_AGENT_ID: claude-worker-1 ✓
GROVE_AGENT_ROLE: researcher ✓
GROVE_AGENT_PLATFORM: claude-code ✓
Services
HTTP server: http://localhost:4515 ✓ (responding)
MCP server: not configured (preset has services.mcp: false)
Nexus: http://localhost:2026 ✓ (healthy)
API key: sk-****7f3a (from nexus.yaml) ✓
MCP Tools (for current mode)
Contributions: grove_submit_work, grove_submit_review, ... (6 tools) ✓
Claims: grove_claim, grove_release, grove_list_claims ✓
Queries: grove_frontier, grove_search, ... (6 tools) ✓
Goals: ✗ goalSessionStore not configured
Bounties: enabled (evaluation mode) ✓
Gossip
Peers: not configured (no GOSSIP_SEEDS)
Issues Found:
⚠ Goal/session tools will return NOT_CONFIGURED — see #214
⚠ GROVE_AGENT_NAME not set (optional but recommended)
Summary
Operators and agents frequently hit silent configuration issues. A
grove doctorcommand would surface problems before they cause confusion.Motivation
From the DX audit:
goalSessionStoreisn't wired (DX: fix goalSessionStore not wired in stdio MCP, normalize error formats #214)grove uptimeGROVE_AGENT_ID, etc.) are invisible until something failsnexus-lifecycle.tsfile currently has unresolved git conflict markers on mainProposed:
grove doctorImplementation
src/cli/commands/doctor.ts--jsonoutput for scriptingAdditional diagnostics improvements
grove status --jsonalready exists but could include doctor-level checksgrove_doctortool so agents can self-diagnose