Spiral Grove

Spiral Grove is a Claude Code plugin that implements Spec-Driven Development (SDD), a structured methodology for building complex features with AI assistance. Four phases: specify what, plan how, break into tasks, then implement.

The Problem

AI coding assistants are remarkably capable but surprisingly literal. They’ll build exactly what you ask for, which is problematic when you haven’t fully articulated what you want. Without structure:

  • Requirements drift as context accumulates
  • Implementation details get decided implicitly
  • Multi-session work loses coherence
  • “Just one more thing” spirals into spaghetti

I kept hitting the same failure mode: start enthusiastically, build something that mostly works, realize halfway through that I’d painted myself into a corner. The AI didn’t fail. I failed to think through what I actually needed.

Spiral Grove forces that thinking to happen before the coding starts.

The Four Phases

Phase 1: Specification

Define what to build, not how. The spec captures:

  • Requirements: Numbered, unambiguous, testable (REQ-F-001, REQ-NF-001)
  • Success criteria: Measurable outcomes (“95% of requests under 200ms”)
  • Constraints: Explicit boundaries (“must not require database migration”)
  • Acceptance tests: How you’ll know it’s done

The spec deliberately excludes implementation details. No tech stack choices, no architecture decisions. Those come later.

/spec-writing

Claude: What are you trying to build?

You: A rate limiting system for our API

Claude: [Creates .sdd/specs/api-rate-limiter.md]
        - Requirements captured
        - Success criteria defined
        - Constraints documented
        - Acceptance tests specified

        Status: Draft → Validated → Ready for Planning

A validator agent reviews the spec before you can proceed, checking for measurable criteria and catching premature implementation details.

Phase 2: Planning

Design how to build it. Now implementation details matter:

  • Architecture decisions: With rationale for each choice
  • Integration points: How this connects to existing code
  • Error handling strategy: What happens when things fail
  • Testing approach: Unit, integration, load

The plan maps back to spec requirements. Every architectural choice should trace to something you’re trying to achieve.

/plan-generation

Claude: [Analyzes codebase, then creates .sdd/plans/api-rate-limiter-plan.md]
        - Architecture: Token bucket algorithm
        - Decision: Token bucket vs sliding window (rationale: burst handling)
        - Integration: Express middleware
        - Error handling: Graceful degradation if Redis unavailable

Another validator ensures decisions have rationale and requirements are addressed.

Phase 3: Task Breakdown

Decompose the plan into discrete, testable work units:

  • Independent tasks: Each completable on its own
  • T-shirt sizing: XS/S/M/L/XL (not time estimates)
  • Dependencies: What blocks what
  • Acceptance criteria: Per-task definition of done
/task-breakdown

Claude: [Creates .sdd/tasks/api-rate-limiter-tasks.md]

        TASK-001: Redis client configuration [S]
        TASK-002: Token bucket core logic [M]
        TASK-003: Rate limit middleware [M]
        ...
        TASK-012: Load testing [M]

        Dependencies mapped, acceptance criteria defined

Tasks sized XL or larger get flagged for further breakdown. The validator ensures all spec acceptance criteria map to at least one task.

Phase 4: Implementation

Execute tasks with progress tracking:

/implementation

Claude: [Works through tasks, updates .sdd/progress/api-rate-limiter-progress.md]

        Completed: TASK-001, TASK-002
        In Progress: TASK-003

        Technical Discoveries:
        - Used ioredis instead of redis (better TypeScript support)

Progress documents capture what actually happened versus what was planned. Deviations aren’t failures; they’re discoveries worth recording.

Validator Agents

Each phase transition triggers a specialized validator agent with fresh context. The validators catch:

  • Specs: Implementation details sneaking in, vague success criteria
  • Plans: Decisions without rationale, unmapped requirements
  • Tasks: Missing acceptance criteria, oversized tasks
  • Progress: Untracked deviations, incomplete tasks marked done

Fresh context matters. The validator sees the document without the accumulated conversation that produced it, closer to how a reviewer would see it.

Parent/Child Hierarchies

Large features can be decomposed into child specs:

.sdd/specs/
├── dashboard-system.md           # Parent spec
└── dashboard-system/
    ├── widgets.md                # Child spec
    ├── data-binding.md           # Child spec
    └── realtime-sync.md          # Child spec

Each child follows the full workflow independently. This reduces context load while maintaining traceability to the parent requirements.

Synthesis Commands

Two commands work backward from existing code:

/synthesize-docs

Generates operational documentation from implementation:

/synthesize-docs auth

Claude: [Analyzes auth/ directory, creates auth/CLAUDE.md]
        - Module purpose and boundaries
        - Key patterns and conventions
        - Integration points
        - Operational knowledge

Useful after implementation to capture what was learned.

/synthesize-specs

Reverse-engineers specifications from existing code:

/synthesize-specs payment

Claude: [Analyzes payment module, creates .sdd/specs/payment.md]
        - Requirements extracted from implementation
        - Test cases derived from test code
        - Constraints inferred from error handling

Enables SDD adoption on legacy codebases.

When to Use SDD

Use it for:

  • Features spanning multiple files or components
  • Work continuing across multiple sessions
  • Complex integrations with existing systems
  • Anything where “just start coding” has burned you before

Skip it for:

  • Bug fixes with obvious solutions
  • Single-function utilities
  • Prototypes and experiments
  • Learning exercises

The decision heuristic: if you’d benefit from writing it down before coding, use SDD. If the task fits in your head, just do it.

Architecture

Spiral Grove uses a modular agent architecture:

Commands orchestrate workflows → Agents execute discrete work → Skills serve resources

Eight specialized agents handle validation and synthesis. Four built-in skills provide templates, methodology guidance, and format specifications.

Key design decisions:

  • Fresh context per agent: Prevents bloat during long workflows
  • Mandatory validation: Quality gates aren’t optional
  • Template externalization: Skills provide templates, keeping commands focused
  • Markdown artifacts: Everything human-readable and version-controlled

The Name

A spiral grove is a pattern found in nature: trees planted in a spiral that provides structure while leaving room for growth. The methodology works similarly: structured phases that still allow discovery.

The spiral also reflects iteration. Specs get revised. Plans adapt to reality.

Part of the Vibe Garden toolkit. Integrates with Compass Rose; large backlog items can escalate to spec-writing.

0 items under this folder.