🌱 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.
This commit is contained in:
commit
08a6ffe058
39 changed files with 8634 additions and 0 deletions
313
build/orto-irrigazione/SKILL.md
Normal file
313
build/orto-irrigazione/SKILL.md
Normal file
|
|
@ -0,0 +1,313 @@
|
|||
---
|
||||
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
|
||||
Loading…
Add table
Add a link
Reference in a new issue