crop-planner
Plan crop rotations, planting schedules, and companion planting for garden beds and fields. Use when asked to manage a farm, garden, or plot layout; schedule what to plant and when; check companion planting relationships; track rotation history; or generate a printable planting schedule. Triggers include "crop rotation", "planting schedule", "companion planting", "garden bed", "what to plant", "frost dates", or any task involving seasonal crop planning.
Best use case
crop-planner is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Plan crop rotations, planting schedules, and companion planting for garden beds and fields. Use when asked to manage a farm, garden, or plot layout; schedule what to plant and when; check companion planting relationships; track rotation history; or generate a printable planting schedule. Triggers include "crop rotation", "planting schedule", "companion planting", "garden bed", "what to plant", "frost dates", or any task involving seasonal crop planning.
Teams using crop-planner should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/crop-planner/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How crop-planner Compares
| Feature / Agent | crop-planner | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Plan crop rotations, planting schedules, and companion planting for garden beds and fields. Use when asked to manage a farm, garden, or plot layout; schedule what to plant and when; check companion planting relationships; track rotation history; or generate a printable planting schedule. Triggers include "crop rotation", "planting schedule", "companion planting", "garden bed", "what to plant", "frost dates", or any task involving seasonal crop planning.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# crop-planner
Plan what to grow, where, and when. Tracks beds, crops, rotations, and generates a planting calendar from your frost dates.
## When to Use
- Planning what crops to plant in which garden beds this season
- Checking companion planting relationships (friends and enemies)
- Detecting crop rotation conflicts (same family in same bed too soon)
- Computing planting dates from frost dates
- Generating a printable planting schedule
- Tracking crop history per bed across multiple seasons
## Prerequisites
1. crop-planner server running (local or Docker)
2. At least one bed added to the system
3. Frost dates configured for your location
## Installation
Self-hosted. Run with Docker:
```bash
docker compose up -d
# App accessible at http://localhost:3000
```
Or run locally:
```bash
pnpm install
pnpm dev
# App accessible at http://localhost:3000
```
## Key Concepts
### Beds
A bed represents a physical growing area: a raised bed, in-ground plot, or field strip. Each bed has dimensions (in feet or meters) and a grid layout where you assign crops to cells.
### Crops
The crop database includes 30 common crops with growing data: days to maturity, spacing, sun requirements, water needs, whether to direct sow or transplant, and weeks before frost to start indoors.
### Planting Calendar
The calendar computes all sow, transplant, and harvest dates from:
- Your last spring frost date
- Your first fall frost date
- Each crop's growing requirements
### Companion Planting
Each crop has defined friend and enemy relationships. The bed layout editor shows warnings when enemy crops are placed in adjacent cells.
### Crop Rotation
The system tracks which plant family was grown in each bed each year. When the same family is planted again before the required rest period, a conflict is flagged.
## API Reference
All endpoints are at `/api/`. Requires session cookie if `AUTH_PASSWORD` is set.
### Beds
| Method | Path | Description |
|---|---|---|
| GET | /api/beds | List all beds |
| POST | /api/beds | Create bed |
| GET | /api/beds/:id | Get bed with plantings |
| PATCH | /api/beds/:id/layout | Save layout JSON |
### Crops
| Method | Path | Description |
|---|---|---|
| GET | /api/crops | List crops (supports ?search= and ?family=) |
| POST | /api/crops | Create crop |
| GET | /api/crops/:id/companions | Get companion relationships |
### Calendar
| Method | Path | Description |
|---|---|---|
| GET | /api/calendar | Planting calendar for active location |
| GET | /api/calendar?year=2025 | Specific year |
### Rotation
| Method | Path | Description |
|---|---|---|
| GET | /api/rotation | Rotation history per bed |
| GET | /api/rotation/conflicts | Detected conflicts |
## Environment Variables
| Variable | Description | Default |
|---|---|---|
| PORT | HTTP server port | 3000 |
| DATA_DIR | Directory for database and uploads | ./data |
| AUTH_PASSWORD | Optional password (empty = no auth) | (empty) |
| NODE_ENV | development or production | development |
| SESSION_SECRET | Session signing secret | (required in prod) |
| LOG_LEVEL | debug, info, warn, error | info |
Boolean env vars use `0` (false) and `1` (true).
## Workflow Example
```
1. Add beds: POST /api/beds {name: "North Bed", width_ft: 4, length_ft: 12}
2. Set frost dates: POST /api/frost-dates {location_name: "Springfield, IL", last_spring_frost: "04-15", first_fall_frost: "10-15", usda_zone: "6a"}
3. Activate location: POST /api/frost-dates/:id/activate
4. View calendar: GET /api/calendar?year=2025
5. Create planting: POST /api/plantings {bed_id: "...", crop_id: "...", year: 2025, season: "spring", planned_sow_date: "2025-04-15"}
6. Check conflicts: GET /api/rotation/conflicts
```
## Troubleshooting
### Calendar shows no events
Ensure a frost date location is active: `GET /api/frost-dates`. At least one record must have `is_active: 1`.
### Companion warnings not showing in layout
The companion relationship must exist in both directions. Check `GET /api/crops/:id/companions` for each crop.
### Rotation conflict not detected
Confirm the plant family is spelled exactly as in the crop record. Conflicts are detected per `family` field value.Related Skills
Skill: Uptime Monitoring
## Overview
Skill: Status Page
## Overview
Skill: unit-conversion
## Overview
Skill: recipe-scaler
## Overview
reading-list
Operate the reading-list API to save, manage, tag, search, and export articles.
email-digest
Configure, test, and troubleshoot the reading-list daily email digest delivered via nodemailer.
websocket-realtime
Use the WebSocket connection in poll-builder to receive live vote updates. Use when you need to stream real-time poll results, monitor a poll for new votes, or build a live dashboard. Triggers include "live results", "real-time updates", "stream votes", "watch poll", or "WebSocket".
poll-builder
Self-hosted poll creation tool with real-time results. Use when you need to create a poll, check vote counts, close a poll, export results, or get the shareable link for a poll. Triggers include "create poll", "vote", "poll results", "survey", "collect votes", "share poll", or any task involving polling or voting.
Skill: personal-finance
## Overview
Skill: csv-import
## Overview
Skill: Syntax Highlighting
## Purpose
Skill: Pastebin Core
## Purpose