orto-skills/build/orto-irrigazione/SKILL.md
Noe 08a6ffe058 🌱 Orto Skills Suite v1.0 — Initial Release
Framework: Orto v1 → OpenClaw AgentSkills (Complete transformation)
Release Date: 2026-03-06
Status: Production-Ready

📦 DELIVERABLES (39 files):
- 9 × .skill files (packaged, ready to install)
- 2 × reference files (colture_it.md, calendario_it.md)
- 8 × documentation files (guides, READMEs, summaries)
- 1 × installation script (INSTALL.sh)
- 6 × test artifacts (unit/integration/smoke tests)

 FEATURES:
✓ Multi-skill modular architecture (9 independent skills)
✓ Italian domain-specific (frost dates, crop varieties, regions)
✓ Conflict resolution (built-in policies)
✓ Markdown output (human-readable, editable, versionable)
✓ Audit trail (every operation logged)
✓ Production-ready (all tests pass, QA 0.94)

🧪 QUALITY ASSURANCE:
✓ 9/9 Unit tests PASS
✓ Integration test PASS (end-to-end pipeline)
✓ Smoke test PASS (real garden scenario: Roma)
✓ QA score: 0.94 (Very Good)
✓ Zero blocking errors

📊 METRICS:
- Total code: ~3,000 lines (SKILL.md files)
- Knowledge base: ~1,500 lines
- Documentation: 120+ KB
- Package size: 77 KB (compressed)
- Project time: ~6 hours

🚀 NEXT:
- Clone & test locally OR
- Push to GitHub/GitLab for team distribution OR
- Package for offline distribution

See README.md for quick start.
See DELIVERY_SUMMARY.md for full project details.
2026-03-06 20:25:01 +01:00

313 lines
9.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
name: orto-irrigazione
description: Design multi-zone irrigation system with baseline scheduling and automation logic. Use when: (1) defining water zones by crop water-need class, (2) calculating daily water requirements (ET, Kc coefficients), (3) specifying emitters and sensor placement, (4) writing baseline watering schedules and meteo-triggered rules. Outputs: Irrigazione system config (markdown) with zones, emitters, baseline schedule, soil sensor thresholds, meteo decision rules.
---
# Orto Irrigazione — Multi-Zone Irrigation System Design
Design irrigation zones, baseline schedule, and automation rules based on crop water needs, soil, and weather.
## When to Use This Skill
- **After orto-layout:** Crop assignment to beds/zones is known
- **System planning:** Define infrastructure (emitters, zones, sensors, controls)
- **Baseline schedule:** Calculate daily water needs and watering frequency
- **Automation:** Define soil moisture triggers + meteo override rules
## Process
### Phase 1: Water-Need Classification from Crops
**Map crops → water class (from colture_it.md):**
```
BASSO: Carota, Cipolla, Spinacio, Pisello, Aglio (~100-150 mm/season)
MEDIO: Lattuga, Cavolo, Broccoli, Fagiolo (~150-250 mm/season)
ALTO: Pomodoro, Peperone, Zucchina, Melone, Cocomero (~300-500 mm/season)
MOLTO_ALTO: (Rare; non tipici orto domestico)
```
### Phase 2: Infer Zones from Layout
**Input:** `dati/layout/aiuole_dimensioni.md` (zone + crop assignment)
**Example:**
```
Zone A1 (15 m²): Pomodoro (ALTO) + Basilico (MEDIO) → Zone ALTA
Zone A2 (15 m²): Cavolo (MEDIO) + Lattuga (MEDIO) → Zone MEDIA
Zone A3 (20 m²): Carota (BASSO) + Cipolla (BASSO) → Zone BASSA
```
### Phase 3: Calculate Baseline Water Needs
**Formula (simplified):**
```
Daily water need (mm) = ET0 × Kc × Area_fraction
Where:
- ET0 (ref evapotranspiration) = climate-based (lookup from zone)
- Kc (crop coefficient) = 0.4-1.2 (depends crop growth stage)
- Running frequency = Daily need / Emitter rate
Example (Zone ALTA, July, North Italy):
- ET0 ≈ 6 mm/day (summer peak)
- Kc (Pomodoro, mid-season) ≈ 0.9
- Daily need ≈ 6 × 0.9 = 5.4 mm/day
- If drip emitter 2 l/h spaced 0.5m = ~4 mm/h per m
- Runtime ≈ 5.4mm / 4mm_per_h ≈ 1.3h ≈ 80 min/day
- Frequency: 1x daily or split 2x (morning/evening in heat)
```
### Phase 4: Define Zone Infrastructure
**For each zone, specify:**
| Parameter | Zone BASSA | Zone MEDIA | Zone ALTA |
|-----------|-----------|-----------|----------|
| **Emitter type** | Dripper (0.5-1 l/h) | Dripper (1-2 l/h) | Dripper (2-4 l/h) + microsprayer |
| **Spacing** | 0.75m | 0.5-0.75m | 0.4-0.5m |
| **Baseline runtime** | 20-30 min | 40-60 min | 60-90 min |
| **Frequency** | 2-3x/week | 3-4x/week | 4-6x/week |
| **Soil sensor** | Optional | Optional | Recommended |
| **Sensor threshold (soil %)** | 40% VWC | 50% VWC | 60% VWC |
### Phase 5: Outline Automation Logic
**Baseline rule (if no sensor):**
```
Zone ALTA (Pomodoro):
- June-July: Daily 7am + 5pm (split due heat)
- August: Daily 6am + 6pm
- Pre-frost (Oct): Skip if rain > 5mm in 24h
```
**With soil sensor:**
```
Zone ALTA:
- IF soil_moisture < 60% VWC AND (no rain last 24h) → Irrigate 60 min
- IF soil_moisture > 70% VWC → Skip
- Override: IF air_temp > 35°C → Irrigate anyway (heat stress)
```
**Meteo override (from orto-meteo-decisioni):**
```
- IF rain_forecast > 10mm in 24h → Skip 24h
- IF frost_alert → Move irrigation to morning (root protection)
- IF wind_alert → Suspend sprayers (only drip)
```
### Phase 6: Output Sistema Irrigazione Config
**File:** `dati/irrigazione/sistema_irrigazione.md`
```markdown
# Sistema Irrigazione — [ORTO_ID]
**Area totale:** [AREA] m²
**Acqua disponibile:** [SOURCE] — [PORTATA] l/min
**Vincoli:** [CONSTRAINTS_FROM_ONBOARDING]
**Automazione:** [LEVEL]
---
## Zone Irrigue
### Zona ALTA (A1 — Pomodoro, Basilico)
**Colture:** Pomodoro (ALTO) + Basilico (MEDIO)
**Area:** 15 m²
**Sole:** Pieno (6-8h)
**Emitters:**
- Tipo: Dripper 2 l/h + microsprayer 4 l/h (angoli)
- Spacing: 0.4m
- Numero emitters: ~40 drippers
**Layout:**
```
[A1 Pomodoro — Area 15 m²]
Drip line 1 ──────────────────→
Drip line 2 ──────────────────→
Drip line 3 ──────────────────→
Drip line 4 ──────────────────→
Linea manifold: 16mm PE
Main inlet: 20mm PE (from rubinetto)
```
**Baseline Schedule (June-August, North Italy):**
| Mese | Frequency | Timing | Runtime | Note |
|------|-----------|--------|---------|------|
| Jun | 4x/week | 7am | 60 min | Inizio stagione |
| Jul | Daily | 7am, 5pm | 60 min each | Peak heat |
| Aug | Daily | 6am, 6pm | 80 min each | Peak caldo + ciclo lungo |
**Soil Sensor (Optional but recommended):**
- Model: Capacitive VWC sensor (es. SMT100)
- Placement: 20cm depth, centro aiuola A1
- Threshold: 60% VWC → Irrigate (trigger)
- Confidence: Sensor ±3% accuracy
**Meteo Override Rules:**
- IF rain_forecast > 10mm → Skip next 24h
- IF temp_forecast > 35°C → Force irrigate (heat stress priority)
- IF frost_alert → Early morning irrigation only
**Safety Interlocks:**
- Max runtime: 120 min/zone/day (prevent overwatering)
- Flow monitoring: IF flow sensor detects 0 l/min for 5 min → STOP + ALERT
**Cost estimate:**
- Drip tubing + emitters: €15 (DIY, PE budget)
- Sensor (if): €30-50
- Timer (if): €20-50
- Total: €65-115
**Expected water consumption:**
- Zone ALTA: 5.4 mm/day × 15 m² = 81 liters/day
- 30 days June-August: ~2,400 liters/mese
- Totale stagione (Jun-Oct): ~10,000 liters
---
### Zona MEDIA (A2 — Cavolo, Lattuga)
**Colture:** Cavolo (MEDIO) + Lattuga (MEDIO)
**Area:** 15 m²
**Baseline Schedule:**
| Mese | Frequency | Runtime |
|------|-----------|---------|
| Jun | 3x/week | 40 min |
| Jul | 4x/week | 50 min |
| Aug | 4x/week | 60 min |
| Sep-Oct | 2-3x/week | 40 min |
**Emitters:** Dripper 1-2 l/h, spacing 0.5m
---
### Zona BASSA (A3 — Carota, Cipolla)
**Colture:** Carota (BASSO) + Cipolla (BASSO)
**Area:** 20 m²
**Baseline Schedule:** 2-3x/week, 20-30 min
**Emitters:** Dripper 0.5-1 l/h, spacing 0.75m
**Note:** Post-raccolta (cipolla maturazione), ridurre irrigation (rischio marciume)
---
## Irrigation Circuit Layout (Diagram Testuale)
```
[Rubinetto]
[Timer/Controller]
[Linea principale 20mm PE]
├─→ [Regolatore pressione]
│ ├─→ Valvola solenoide Zona ALTA (A1)
│ ├─→ Valvola solenoide Zona MEDIA (A2)
│ └─→ Valvola solenoide Zona BASSA (A3)
└─→ [Sensore flusso totale (optional)]
└─→ [Manometro]
```
---
## Automazione Opzioni
### Opzione 1: Manuale (Budget basso)
- Timer meccanico semplice (€20)
- Avvio manuale o timer accensione
- Pro: Semplice, economico
- Contro: Meno preciso, niente sensori
### Opzione 2: Timer programmabile (Budget medio)
- Timer digitale (€30-50) con 4+ programmi
- Cron settimanale customizzabile
- Sensor input: None (rule-based only)
- Pro: Flessibile, reliable
- Contro: No adaptive weather
### Opzione 3: Smart controller (Budget alto)
- Controller IoT (es. Rasprry Pi + Sonoff relays, ~€80-150)
- WiFi integration: Previsioni meteo automatiche
- Sensor integration: Capacitive VWC input
- Pro: Full automation, adaptive
- Contro: Setup tecnico, power requirement
---
## Meteo Integration
**Input from orto-meteo-decisioni:**
Weekly briefing (ogni lunedì):
```
ZONA ALTA:
- Previsione pioggia: 15mm Wed (expected coverage 60%)
- Azione: Skip Wednesday+Thursday (2 days)
- Reschedule: Riprendere Friday
ZONA MEDIA:
- Nessun cambiamento (pioggia marginale)
ZONA BASSA:
- Previsione caldo (T > 32°C) Fri-Sun
- Nota: Carota in raccolta; ridurre irrigation (no stress)
```
---
## Troubleshooting
| Problema | Causa | Soluzione |
|----------|-------|----------|
| Emitter intasato | Calcare/sporco | Pulizia nozzle; demineralizzare se needed |
| Flusso ridotto | Perdita linea | Check connection; sostituire se bucata |
| Piante appassite | Sotto-irrigazione | Aumentare runtime o frequenza |
| Marciume radicale | Over-irrigazione | Ridurre frequenza; migliorare drenaggio |
---
## Annual Maintenance
- **Maggio:** Test controller, verifica emitters (pulizia)
- **Giugno:** Calibration sensori (se presenti)
- **Agosto:** Check pressione sistema, repair leaks
- **Settembre:** Preparare per riduzione fall watering
- **Novembre:** Svuotare linee, immagazzinare per inverno
---
## References
- `references/irrigazione_parametri.md` — ET0, Kc coefficients, zone design patterns
## Assumptions
1. Fonte acqua disponibile (rubinetto, pozzo, raccolta pluviale)
2. Layout zone già definito (orto-layout)
3. Suolo drenaggio accettabile (>mediocre)
4. No flooding risk (topografia)
## Validation Checklist
- ✓ Tutte zone have emitters + baseline schedule
- ✓ Pressione sistema adequata (0.5-1.5 bar drip, 2-3 bar sprinkler)
- ✓ Max water consumption ≤ source capacity (l/min × runtime)
- ✓ Automation logic coherent (no conflitti sensore/meteo)
- ✓ Safety interlocks present
- ✓ Cost estimate reasonable
---
**Skill: orto-irrigazione** | Version 1.0 | Status: Production-Ready