bed-layout
Edit the visual grid layout of a garden bed, assigning crops to cells on a canvas editor. Use when asked to arrange crops in a bed, draw a planting layout, move crops around, visualize companion planting placement, or check for enemy crop adjacency in a specific bed. Triggers include "layout editor", "bed grid", "draw the bed", "assign crops to cells", "companion warning in layout", or similar visual planning tasks.
Best use case
bed-layout is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Edit the visual grid layout of a garden bed, assigning crops to cells on a canvas editor. Use when asked to arrange crops in a bed, draw a planting layout, move crops around, visualize companion planting placement, or check for enemy crop adjacency in a specific bed. Triggers include "layout editor", "bed grid", "draw the bed", "assign crops to cells", "companion warning in layout", or similar visual planning tasks.
Teams using bed-layout 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/bed-layout/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How bed-layout Compares
| Feature / Agent | bed-layout | 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?
Edit the visual grid layout of a garden bed, assigning crops to cells on a canvas editor. Use when asked to arrange crops in a bed, draw a planting layout, move crops around, visualize companion planting placement, or check for enemy crop adjacency in a specific bed. Triggers include "layout editor", "bed grid", "draw the bed", "assign crops to cells", "companion warning in layout", or similar visual planning tasks.
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
# bed-layout
Visual canvas-based grid editor for assigning crops to garden bed cells. Companion relationships are shown live as you edit.
## When to Use
- Arranging crops in a specific bed on a visual grid
- Checking which cells have which crops assigned
- Detecting enemy crop adjacency (shown with red borders)
- Saving or updating the layout JSON for a bed
## Layout JSON Format
Each bed stores its layout as JSON in the `layout_json` column:
```json
{
"cell_size_ft": 1,
"cells": {
"0,0": "crop-uuid-here",
"0,1": "crop-uuid-here",
"1,0": "another-crop-uuid"
}
}
```
Keys are `"row,col"` strings. Values are crop UUIDs. Empty cells are absent from the `cells` map.
## API Usage
### Save a layout
```
PATCH /api/beds/:id/layout
Content-Type: application/json
{
"cell_size_ft": 1,
"cells": {
"0,0": "uuid-tomato",
"0,1": "uuid-basil"
}
}
```
Returns 200 with the updated bed record, or 400 if the layout JSON is invalid.
### Get a bed with its layout
```
GET /api/beds/:id
```
Returns the bed with `layout_json` parsed as an object.
## Grid Dimensions
The grid size is computed from the bed dimensions:
```
cols = ceil(width_ft / cell_size_ft)
rows = ceil(length_ft / cell_size_ft)
```
A 4x12 ft bed with `cell_size_ft: 1` produces a 4-column, 12-row grid (48 cells total).
## Companion Warnings
The editor computes adjacency warnings client-side:
1. For each assigned cell, check its 4 neighbors (up, down, left, right).
2. If the neighbor has a different crop and the two crops have an `enemy` relationship, render a red dashed border on the shared edge.
3. Friend relationships show a subtle green tint on adjacent cells.
The companion data is fetched from `GET /api/crops/:id/companions` for each unique crop in the layout.
## Keyboard Shortcuts (in the canvas editor)
| Key | Action |
|---|---|
| Arrow keys | Move selection cursor |
| Space | Assign selected crop to current cell |
| Delete / Backspace | Clear current cell |
| E | Switch to Erase tool |
| 1-9 | Select crop at position N in palette |
## Notes
- The layout auto-saves every 500ms after a change (debounced). A "Saved" indicator appears in the toolbar.
- Undo/redo is not implemented. The last saved state can be restored by refreshing.
- The cell size can be changed (0.5 ft, 1 ft, 2 ft) but this resets the cell assignments for that bed.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