Skip to main content

setup

Initial setup wizard for iq4-cli. Guides user through authentication, scans controllers and stations, and creates LAWN.md with their irrigation schedule.

Jump to install

Source facts

Repository
nickustinov/rainbird-iq4-cli
Last source activity
March 12, 2026 at 17:08
Detected SKILL.md language
English
Stars
2
Forks
1

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
setup
description
Initial setup wizard for iq4-cli. Guides user through authentication, scans controllers and stations, and creates LAWN.md with their irrigation schedule.
allowed-tools
Bash, Read, Edit, Write, AskUserQuestion
argument-hint
# iq4-cli setup wizard Guide the user through setting up their irrigation schedule management. **IMPORTANT: This is a read-only setup process. Do NOT modify any controller settings, programs, runtimes, start times, or station assignments. Only read data and create LAWN.md. Any changes to the irrigation schedule must be explicitly requested and confirmed by the user in a separate step.** ## Step 1 – build the CLI Check if `iq4-cli` binary exists in the project root. If not, build it: ```bash cd <project-root> && go build -o iq4-cli . ``` ## Step 2 – authentication Tell the user to run the login command themselves in a separate terminal. **Never ask for their password.** Display this: > Open another terminal and run: > > ```bash > ./iq4-cli login YOUR_USERNAME YOUR_PASSWORD > ``` > > This authenticates with Rain Bird and stores a token locally at `~/.iq4/token`. Your password is not stored. The token expires after ~2 hours – re-run login when needed. > > Let me know when you're logged in. Wait for the user to confirm before proceeding. Then verify the token works by running `./iq4-cli sites` – if it fails, tell the user to try logging in again. ## Step 3 – scan controllers Run `iq4-cli controllers` to get all controllers and their online status. Present them to the user in a table. Ask if any should be excluded from schedule management (like a greenhouse with its own schedule). ## Step 4 – scan stations For each managed controller, run `iq4-cli stations <controller-id>`. The output includes `areaLevel2Name` (landscape type) and `areaLevel3Name` (sprinkler type) if configured in the Rain Bird app. Present each controller's stations in a table. For stations that have landscape/sprinkler info, note it. For stations missing this info, ask the user to describe: - What it waters (lawn, garden beds, ornamental, trees, etc.) - Sprinkler type (spray heads, rotors, drip lines, bubblers, etc.) - Any special conditions (shade, slope, swamp risk, etc.) ## Step 5 – gather property info Ask the user for: - **Location** (city, country – needed for sunrise times and ET estimates) - **Soil type** (sandy, clay, loam, mixed) - **Single pump constraint?** (can multiple controllers run simultaneously or not?) ## Step 6 – scan current schedule For each managed controller, pull: - `iq4-cli programs <controller-id>` - `iq4-cli runtimes <controller-id>` - `iq4-cli start-times <controller-id>` Present the current schedule to the user. Note any issues: - Empty programs (stations assigned but no start times, or vice versa) - Ghost steps (0 runtime assignments) - Potential overlaps - Missing station assignments ## Step 7 – station-specific notes Present a summary of all stations across all controllers and ask: > Do any zones have special conditions I should know about? For example: > - Shade (partial, heavy) – affects water needs and swamp risk > - Slope or drainage issues > - Sensitive plants or new plantings > - Areas that tend to flood or stay soggy > - Anything else that affects how much or how often to water > > Just tell me which stations and what the issue is, or say "none" to skip. Record any notes the user provides – these go in a Notes column on the station tables in LAWN.md. ## Step 8 – create LAWN.md Using LAWN.md.example as the template, create LAWN.md with: - Property details - All controller and station info (including sprinkler types and user notes) - Current schedule (programs, days, start times, runtimes) - Weekly timeline showing all watering windows - Design rationale based on sprinkler types and soil - Seasonal review calendar based on location climate ## Step 9 – explain next steps Tell the user: > Your irrigation schedule is now documented in LAWN.md. Here's how to use the tools: > > - **`/irrigation`** – check current status, detect drift from LAWN.md, overlap analysis > - **`/irrigation adjust`** – get seasonal adjustment suggestions for the current month > - **`/irrigation apply`** – apply suggested changes via the CLI > > LAWN.md is in .gitignore (it contains your personal controller/station IDs). > Review the schedule and run `/irrigation adjust` when the season changes.
View on GitHub