16 KiB
name: orto-orchestratore description: Orchestrare workflow multi-skill, risolvere conflitti tra piani, validare completezza dati, e merge in PlanBundle unificato. Usare quando: (1) eseguire pipeline full planning stagionale end-to-end, (2) gestire conflitti (zona irrigazione vs. consociazioni, task calendario vs. previsione meteo), (3) assicurare QA checks passino prima finalizzazione, (4) generare weekly operational briefing per utenti. Output: PlanBundle unificato (documento markdown master) con tutti piani integrati, audit log, weekly briefing pronto per pubblicazione.
Orto Orchestratore — Orchestrazione Workflow Master
Coordinare tutti skill planning, risolvere conflitti, validare vincoli, merge in piano unificato.
Quando Usare Questa Skill
- Planning completo: Dopo onboarding, eseguire pipeline completa per generare master plan
- Weekly briefing: Merge calendario + meteo-decisioni + stato corrente → task list settimanale azionabile
- Risoluzione conflitti: Quando skill producono raccomandazioni conflittuali
- Revisione piano: Validazione QA prima di publicare piano a utente
Gestione Progetti & Registry
Struttura File Progetti
Ogni orto gestito è organizzato in struttura standardizzata:
/home/<user>/.openclaw/workspace/Orti/
├── orti_registry.json # Registry centrale (JSON)
└── orto_PROVINCIA_LOCALITA_NNN/ # Cartella progetto
├── README.md
├── config/ # Config statiche
│ ├── garden_config.md
│ └── ambiente_vincoli.md
├── dati/ # Dati operazionali
│ ├── questionario/
│ ├── calendario/
│ ├── layout/
│ ├── irrigazione/
│ ├── meteo/
│ ├── colture/
│ ├── nutrizione/
│ ├── trattamenti/
│ └── raccolti/
├── log/ # Log e audit
│ ├── audit_trail.md
│ └── note_osservazioni.md
├── media/ # Foto, video
│ ├── foto/
│ └── video/
└── report/ # Report generati
Registry Centrale
File: /home/<user>/.openclaw/workspace/Orti/orti_registry.json
Mantiene indice tutti orti:
{
"orti": [
{
"orto_id": "orto_roma_testaccio_001",
"name": "Orto Testaccio Roma",
"provincia": "Roma",
"regione": "Lazio",
"latitude": 41.8782,
"longitude": 12.4922,
"zone": "centro",
"created_at": "2026-03-06T23:18:00Z",
"status": "active",
"path": "/home/noe/.openclaw/workspace/Orti/orto_roma_testaccio_001"
}
]
}
Funzioni Orchestrator su Progetti
Lettura:
- Carica registry
- Locate progetto orto
- Legge tutti file dati/ per orchestration
Scrittura:
- Aggiorna file dati/ (piano_colture_annuale, calendario, etc.)
- Aggiorna audit_trail.md con evento orchestration
- NO modifica registry (orto-init responsabile)
Validazione:
- Verifica tutti prerequisito skill hanno completato (file exist)
- Check integrità dati (no corrupted markdown)
Processo
Fase 1: Checklist Pre-Volo
Verificare tutti skill prerequisito sono completi:
✓ orto-init: Progetto orto creato, config registrato
✓ orto-onboarding: GardenConfig + CommunityProfile completo e validato
✓ orto-agronomo: Piano colture annuale completato
✓ orto-calendario: Calendario operativo (task settimanali) completato
✓ orto-irrigazione: Sistema irrigazione progettato
✓ orto-layout: Aiuole assegnate, zone definite
✓ orto-meteo-decisioni: Previsione settimanale & decisioni disponibili
Se QUALSIASI skill incompleto → PAUSA e notifica utente (dati mancanti)
Fase 2: Rilevazione Conflitti e Risoluzione
Verificare pattern conflitti noti:
| Tipo Conflitto | Rilevamento | Politica Risoluzione |
|---|---|---|
| Irrigation zone vs. Consociations | Crop A (ZONA ALTA) + Crop B (ZONA BASSA) same bed | Split bed OR adjust watering (ZONA ALTA priority due stress) |
| Calendar task vs. Weather | Task "Trapianto" scheduled Tue, wind > 8kn | Auto-reschedule +2 gg (contact user) |
| Layout accessibility vs. Space | Path < 0.5m needed for accessibility | Reoptimize layout (may reduce usable area) |
| Water availability vs. Irrigation plan | Total water need > available | Reduce crop area OR shift to drought-tolerant crops |
| Area too small vs. Diet | Community needs > feasible harvest | Suggest successions, off-season storage |
Resolution logic:
CONFLICT: A1 (Pomodoro ALTA) + Basilico (MEDIO) same bed?
→ Check: Can adapt watering?
→ ALLOW (Basilico tolera extra water; Pomodoro critical)
→ Flag: "Basilico may over-irrigate; monitor"
CONFLICT: Trapianto task Tue, vento 8kn?
→ Check: orto-meteo-decisioni says DEFER
→ AUTO-RESCHEDULE: Trapianto → Thursday +2 gg
→ NOTIFY: User reason + new date
CONFLICT: Path 0.4m (wheelchair needs 0.7m)?
→ Check: Critical accessibility?
→ REOPTIMIZE: Shift beds, sacrifice ~5% usable area
→ OR: Escalate to user (accept smaller accessible area)
Fase 3: Validazione Dati (Checklist QA)
Esegui verifiche comprehensive:
| Verifica | Regola | Status | Fix |
|---|---|---|---|
| Diversità colture | ≥4 gruppi (Solanaceae, Brassica, Legume, Leafy, Aromatica) | PASS | ✓ |
| Bilancio nutrizionale | Copertura profilo dieta ≥80% | PASS | ✓ |
| Adeguatezza acqua | Pioggia pianificata + irrigazione ≥ domanda coltura | WARN | ⚠️ Deficit estate 15%; mitigazione: mulching |
| Coerenza rotazione | No stessa famiglia 2+ anni per aiuola | PASS | ✓ |
| Accessibilità | Sentieri ≥ requisito (se necessario) | PASS | ✓ |
| Tempo manutenzione | Ore settimanali totali ≤ disponibili | PASS | ✓ |
| Consociazioni | % positivo > antagonismi | PASS | ✓ 85% positivo |
| Accuratezza previsione | Fonte dati meteo corrente | PASS | ✓ wttr.in (3-5 gg alta conf.) |
Sommario: QA SCORE = 0.92 (Molto Buono). Procedi con merge.
Fase 4: Merge Fonti Dati
Aggregare output da tutti skill in struttura markdown unificata:
File: dati/PlanBundle_Master.md
# PLAN BUNDLE — [ORTO_ID] — [YEAR]
**Generated:** [TODAY]
**Confidence:** 0.92 (Molto Buono)
**Status:** Pronto per Pubblicazione
---
## 1. CONFIGURAZIONE ORTO
(Copia da GardenConfig)
- Localizzazione: [PROVINCIA], [REGIONE]
- Area: [AREA] m²
- Zona: [ZONE]
- Suolo: [SOIL]
- Sole: [HOURS] h/gg
## 2. PROFILO COMUNITÀ
(Copia da CommunityProfile)
- Persone: [N]
- Dieta: [DIET_LIST]
- Esperienza: [LEVEL]
- Tempo: [HOURS]/settimana
- Accessibilità: [NEEDS]
## 3. PIANO COLTURE
(Excerpt da Piano Colture Annuale)
- Colture totali: 12 varietà
- Area allocato: 25 m²
- Resa est.: 120 kg/stagione
- Rotazione: Piano multi-anno incluso
## 4. PIANO LAYOUT
(Excerpt da Aiuole Dimensioni)
- Aiuole: 4 (2 rialzate + 2 file)
- Zone Acqua: 3 (ALTA, MEDIA, BASSA)
- Sentieri: Main 0.7m, lato 0.5m
- Accessibilità: ✓ Conforme
## 5. SISTEMA IRRIGAZIONE
(Excerpt da Sistema Irrigazione)
- Emettitori: Goccia + microspruzzatori
- Zone: 3 (ALTA/MEDIA/BASSA)
- Baseline: Daily (ALTA) ~ 2-3x/sett (BASSA)
- Automazione: [Timer/Smart]
## 6. CALENDARIO STAGIONALE
(Link a Calendario Operativo)
- Task settimanali: 52 sett × media 3-5 task = ~200 task annuali
- Task meteo-sensibili: ~40 task (taggati per reschedule)
- Date critiche: 12 (trapianti, raccolte)
## 7. PREVENZIONE MALATTIE
(Excerpt da Diagnosi Problemi)
- High-risk crop: Pomodoro (peronospora)
- Preventive schedule: Weekly rame spray (June-Sept)
- Organic treatments: Rame, Bacillus subtilis, Neem
- Cost: €25 (season)
## 8. WEEKLY BRIEF
(Latest from Meteo Decisioni + Calendar)
- This week: [DATE RANGE]
- Tasks: 5 items
- Meteo alerts: [WIND? FROST?]
- Irrigation adjustments: [SKIP WED-THU, INCREASE SUN]
## 9. AUDIT TRAIL
(Excerpt from Log)
- Garden created: [DATE]
- Onboarding completed: [DATE]
- Plans generated: [DATE]
- Conflicts resolved: 2 (irrigation zone vs consociation, calendar vs weather)
- QA score: 0.92
---
## METRICS
- **Total effort:** 120 hours/year (avg. 2.3h/week)
- **Total water:** ~10,000 liters/season
- **Total harvest:** ~120 kg/season
- **Cost:** €65 (setup) + €25 (yearly maintenance)
- **ROI:** High (fresh vegetables + health + community)
---
**PlanBundle Status:** ✅ COMPLETE & VALIDATED
Phase 5: User Notification & Publishing
Generate summary report:
# ✅ PIANO COMPLETO — [ORTO_ID]
**Buongiorno [USER]!**
Il tuo orto **[ORTO_NAME]** è pronto per il 2026.
## Cosa è stato pianificato:
✓ **Colture:** 12 varietà selezionate (dieta bilanciata)
✓ **Layout:** 4 aiuole organizzate per zone acqua
✓ **Calendario:** 52 settimane di task settimanali
✓ **Irrigazione:** Sistema multi-zona automatizzabile
✓ **Malattie:** Piano prevenzione biologica (Pomodoro peronospora)
## Prossimi Passi:
1. **Leggi il piano master:** `dati/PlanBundle_Master.md` (30 min)
2. **Prepara strumenti:** Acquista emitters/timer (1-2 giorni)
3. **Settimana 1 (gen):** Preparazione semenzaio indoor
4. **Settimana 5 (feb):** Prima semina (Pomodoro)
## Supporto Settimanale:
Ogni lunedì ricevi:
- [ ] Briefing meteo (pioggia, vento, freddo)
- [ ] Task settimanale da fare
- [ ] Irrigazione schedule adjustments
- [ ] Allerte problemi
## Domande?
Se qualcosa non è chiaro, contatta l'agronomo. Buon orto! 🌱
---
**Piano generato:** [TODAY]
**Confidence:** Very Good (92%)
**Ultima revisione:** [AUTO-DATE_NEXT_WEEK]
Phase 6: Weekly Briefing Integration
Every Monday, generate integrated briefing:
# BRIEFING SETTIMANALE — Week [WK] ([DATE]) — [ORTO_ID]
**Data:** Lunedì [DATE] 8:00 AM
---
## 📊 Meteo (da orto-meteo-decisioni)
| Giorno | Tmax | Tmin | Pioggia | Vento | Alert |
|--------|------|------|---------|-------|-------|
| Lun | 22 | 14 | 0 mm | 3 kn | ✓ OK |
| Gio | 19 | 10 | 12 mm | 2 kn | ✓ Pioggia |
| Dom | 28 | 18 | 0 mm | 6 kn | ⚠️ Caldo |
---
## 📋 TASK SETTIMANALE (from orto-calendario)
### Lunedì 6 Gen
- [ ] **Preparazione Semenzaio** (1.5h)
- Terriccio, vasetti, riscaldamento check
- Ubicazione: Semenzaio indoor
- Meteo: ✓ OK (indoor)
- [ ] **Controllo Strumenti** (0.5h)
- Innaffiatore, guanti, forbici
- Test timer irrigazione
**Totale giornata:** 2h
### Mercoledì 8 Gen
- [ ] **SKIP Irrigazione** (pioggia prevista, vento)
- Meteo decision: Effective rainfall adeguata
- [ ] Controllo drenaggio post-pioggia
### Giovedì 9 Gen
- [ ] **Irrigazione ripresa** (30 min)
- Baseline schedule restored
---
## ⚠️ ALLERTE
🟡 **VENTO MER-GIO (4-6 kn)**
- Defer foliar sprays
- Monitor young plants (wind stress)
🔥 **CALDO DOM (28°C+)**
- Aumentate irrigazione +30%
- Check mulching
---
## 🎯 FOCUS COLTURA
**Pomodoro (Gennaio = Semina Indoor)**
- Settimana prossima: Semina Pomodoro 1-4 Feb
- Requisiti: T 20-25°C, luce LED 12h/gg
- Germinazione attesa: 5-10 gg
- Cura: Mantenere umido, no ristagno
---
## 📈 PROGRESS
- Year-to-date tasks: 2/52 settimane
- Onboarding: 100% ✓
- Planning: 100% ✓
- Implementation: 5% (starting)
---
## 💧 IRRIGAZIONE SETTIMANALE
| Zona | Baseline | Meteo Adjust | Note |
|------|----------|--------------|------|
| ALTA | Daily 60m | Skip Wed-Thu | Pioggia sufficient |
| MEDIA | 3-4x/sett | Normal | OK |
| BASSA | 2-3x/sett | Normal | OK |
**Totale acqua:** ~500 liters (January low due dormancy)
---
**Briefing generato:** Lunedì 6 Gen 8:00 AM
**Prossimo briefing:** Lunedì 13 Gen
**Contatti:** [SUPPORT_EMAIL]
Conflict Resolution Examples
Example 1: Irrigation vs. Consociations
Conflict: A1 layout puts Pomodoro (ZONA ALTA, daily) + Basilico (MEDIO, 3x/sett)
Resolution:
- Option A: Split beds (separate ZONA ALTA + MEDIA) → But reduces usable area
- Option B: Accept mixed zone → Keep in same bed, adapt watering (ALTA priority)
- RECOMMENDATION: Option B (Basilico tolerates extra water; Pomodoro critical)
- MITIGATION: Flag "Watch for basilico over-watering; adjust on-the-fly if wilt + root smell"
Example 2: Calendar vs. Weather
Conflict: "Trapianto Pomodoro Tue" scheduled; orto-meteo-decisioni says "Vento 8kn Tue, DEFER"
Resolution:
- Auto-reschedule: Trapianto → Thursday +2 gg (vento cala, temp stable)
- Notify user: "Trapianto rimandato Tue→Thu (wind risk). New: Giovedì 10 Apr 9am"
- Update calendar + audit trail
Example 3: Water Availability vs. Irrigation Plan
Conflict: Total water need (10,000 L/season) > Available (8 m³ = 8,000 L if constrained)
Resolution:
- Reduce irrigation frequency (use deficit irrigation) → Risk: crop stress
- Add rain capture tank (+100 L) → Marginal
- Shift a colture tolleranti siccità (Carota, Cipolla, Legume) → Riduci area Pomodoro del 30%
- RACCOMANDAZIONE: Accetta deficit idrico 15%; usa heavy mulching + compost suolo (migliora ritenzione)
Audit Trail & Project Updates
Ad ogni orchestration (pianificazione completa o weekly update), registrare:
File: log/audit_trail.md (append entry)
## Evento: Orchestration — PlanBundle Merge
| Campo | Valore |
|-------|-------|
| **Timestamp** | [TODAY_ISO] |
| **Evento** | orchestratore_merge_plan |
| **Tipo** | Full Planning / Weekly Briefing |
| **Status** | success / warning / error |
| **Orto ID** | [ORTO_ID] |
| **Coordinatore** | Codex (skill: orto-orchestratore) |
| **QA Score** | 0.92 (Excellent) |
| **Conflitti Risolti** | 2 (Irrigazione zone, Calendar task) |
| **Raccomandazioni** | Mulching per deficit acqua 15% |
| **Output Files** | dati/PlanBundle_Master.md, dati/calendario/calendario_operativo_settimanale.md |
| **Dettagli** | Orchestration completa: init→onboarding→agronomo→layout→irrigazione→meteo→merge. PlanBundle generato e validato QA. User notificato. |
Questo crea cronologia completa di ogni decisione orchestrator per tracciabilità e debugging.
Gestione Errori
| Errore | Fallback |
|---|---|
| Output skill mancante | Usa piano anno precedente (se disponibile) o fallback rule-based |
| Raccomandazioni conflittuali | Elenca top 3 opzioni, lascia scegliere utente |
| Fallimento QA (critico) | NON PUBLICARE; flagga e richiedi revisione esperto |
Riferimenti
Questo skill legge e applica politiche da:
references/conflitti_risoluzione.md— Matrice conflitti, politiche risoluzione per tutti i pattern comunireferences/qa_checklist.md— Checklist validazione PlanBundle, criteri QA scorereferences/meteo_soglie.md— Soglie meteo (vento, pioggia, gelo, caldo) per reschedule taskreferences/irrigazione_parametri.md— Parametri ET, Kc, calcolo fabbisogni per acqua feasibilityreferences/consociazioni_layout.md— Matrice consociazioni per verificare coerenza layoutreferences/malattie_trattamenti.md— Dati trattamenti e DPI per validazione sicurezzareferences/colture_it.md— Database colture (varietà, parametri, famiglie) per rotazionereferences/calendario_it.md— Date gelate regionali, finestre stagionali per frost checks
Assunzioni
- Tutti skill predecessore hanno completato
- Integrità dati: no file markdown corrotti
- Politiche risoluzione conflitti documentate e tuned (vedi conflitti_risoluzione.md)
- Canale notifica utente disponibile (email/chat)
- Tutti reference file sono disponibili e up-to-date
Checklist Validazione
- ✓ Tutti output skill caricati e parsati
- ✓ Conflitti identificati e risolti
- ✓ QA score ≥ 0.70 (accettabile)
- ✓ PlanBundle unificato coerente e completo
- ✓ Weekly briefing generato e azionabile
- ✓ Audit trail documentato
- ✓ Notifica utente pronta
Skill: orto-orchestratore | Versione 1.0 | Status: Pronto per Produzione