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.

7 stars

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

$curl -o ~/.claude/skills/bed-layout/SKILL.md --create-dirs "https://raw.githubusercontent.com/heldernoid/agentic-build-templates/main/projects/agriculture-farming/crop-planner/skills/bed-layout/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/bed-layout/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How bed-layout Compares

Feature / Agentbed-layoutStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/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

7
from heldernoid/agentic-build-templates

## Overview

Skill: Status Page

7
from heldernoid/agentic-build-templates

## Overview

Skill: unit-conversion

7
from heldernoid/agentic-build-templates

## Overview

Skill: recipe-scaler

7
from heldernoid/agentic-build-templates

## Overview

reading-list

7
from heldernoid/agentic-build-templates

Operate the reading-list API to save, manage, tag, search, and export articles.

email-digest

7
from heldernoid/agentic-build-templates

Configure, test, and troubleshoot the reading-list daily email digest delivered via nodemailer.

websocket-realtime

7
from heldernoid/agentic-build-templates

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

7
from heldernoid/agentic-build-templates

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

7
from heldernoid/agentic-build-templates

## Overview

Skill: csv-import

7
from heldernoid/agentic-build-templates

## Overview

Skill: Syntax Highlighting

7
from heldernoid/agentic-build-templates

## Purpose

Skill: Pastebin Core

7
from heldernoid/agentic-build-templates

## Purpose