--- 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//.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//.openclaw/workspace/Orti/orti_registry.json` Mantiene indice tutti orti: ```json { "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 Orchestratore 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 | |---------------|-----------|-------------------| | **Zona irrigazione vs. Consociazioni** | Coltura A (ZONA ALTA) + Coltura B (ZONA BASSA) stessa aiuola | Dividi aiuola OPPURE adatta irrigazione (ZONA ALTA priority per stress) | | **Task calendario vs. Meteo** | Task "Trapianto" pianificato Mar, vento > 8kn | Auto-riprogramma +2 gg (notifica utente) | | **Accessibilità layout vs. Spazio** | Sentiero < 0.5m necessario per accessibilità | Riottimizza layout (può ridurre area utile) | | **Disponibilità acqua vs. Piano irrigazione** | Fabbisogno acqua totale > disponibile | Riduci area colture OPPURE sposta a colture tolleranti siccità | | **Area troppo piccola vs. Dieta** | Fabbisogno comunità > raccolta fattibile | Suggerisci successioni, stoccaggio off-season | **Logica risoluzione:** ``` CONFLITTO: A1 (Pomodoro ALTA) + Basilico (MEDIO) stessa aiuola? → Verifica: Possiamo adattare irrigazione? → PERMETTI (Basilico tolera acqua extra; Pomodoro critico) → Segnala: "Basilico potrebbe over-irrigare; monitora" CONFLITTO: Task Trapianto Mar, vento 8kn? → Verifica: orto-meteo-decisioni dice RINVIA → AUTO-RIPROGRAMMA: Trapianto → Giovedì +2 gg → NOTIFICA: Utente motivo + nuova data CONFLITTO: Sentiero 0.4m (carrozzina necessita 0.7m)? → Verifica: Accessibilità critica? → RIOTTIMIZZA: Sposta aiuole, sacrifica ~5% area utile → OPPURE: Escalation utente (accetta area accessibile ridotta) ``` ### 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` ```markdown # 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 ``` ### Fase 5: Notifica Utente & Pubblicazione **Genera report sommario:** ```markdown # ✅ PIANO COMPLETO — [ORTO_ID] **Buongiorno [UTENTE]!** Il tuo orto **[NOME_ORTO]** è 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 - [ ] Aggiustamenti schedule irrigazione - [ ] Allerte problemi ## Domande? Se qualcosa non è chiaro, contatta l'agronomo. Buon orto! 🌱 --- **Piano generato:** [OGGI] **Affidabilità:** Molto Buono (92%) **Prossima revisione:** [DATA_AUTO_PROSSIMA_SETTIMANA] ``` ### Fase 6: Integrazione Briefing Settimanale **Ogni lunedì, genera briefing integrato:** ```markdown # 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] ``` --- ## Esempi di Risoluzione Conflitti ### Esempio 1: Irrigazione vs. Consociazioni **Conflitto:** Layout A1 mette Pomodoro (ZONA ALTA, daily) + Basilico (MEDIO, 3x/sett) **Risoluzione:** - Opzione A: Dividere aiuole (ZONA ALTA + MEDIA separate) → Ma riduce area utile - Opzione B: Accettare zona mista → Mantenere stessa aiuola, adattare irrigazione (ALTA priority) - **RACCOMANDAZIONE:** Opzione B (Basilico tolera acqua extra; Pomodoro critico) - **MITIGAZIONE:** Segnala "Monitora Basilico per over-watering; ajusta on-the-fly se avvizzimento + odore radici" ### Esempio 2: Calendario vs. Meteo **Conflitto:** "Trapianto Pomodoro Mar" pianificato; orto-meteo-decisioni dice "Vento 8kn Mar, RINVIA" **Risoluzione:** - Auto-riprogrammazione: Trapianto → Giovedì +2 gg (vento cala, temp stabile) - Notifica utente: "Trapianto rimandato Mar→Gio (rischio vento). Nuovo: Giovedì 10 Apr 9am" - Aggiorna calendario + audit trail ### Esempio 3: Disponibilità Acqua vs. Piano Irrigazione **Conflitto:** Fabbisogno totale acqua (10.000 L/stagione) > Disponibile (8 m³ = 8.000 L se vincolato) **Risoluzione:** - Riduci frequenza irrigazione (usa irrigazione deficitaria) → Rischio: stress coltura - Aggiungi cisterna raccolta pioggia (+100 L) → Marginale - Sposta a colture tolleranti siccità (Carota, Cipolla, Legume) → Riduci area Pomodoro del 30% - **RACCOMANDAZIONE:** Accetta deficit idrico 15%; usa mulching pesante + compost suolo (migliora ritenzione) --- ## Audit Trail & Aggiornamenti Progetto **Ad ogni orchestrazione (pianificazione completa o aggiornamento settimanale), registra:** **File:** `log/audit_trail.md` (aggiungi entry) ```markdown ## Evento: Orchestrazione — Merge PlanBundle | Campo | Valore | |-------|-------| | **Timestamp** | [ISO_OGGI] | | **Evento** | orchestratore_merge_plan | | **Tipo** | Pianificazione Completa / Briefing Settimanale | | **Stato** | successo / avviso / errore | | **Orto ID** | [ORTO_ID] | | **Coordinatore** | Codex (skill: orto-orchestratore) | | **QA Score** | 0.92 (Eccellente) | | **Conflitti Risolti** | 2 (Zone irrigazione, Task calendario) | | **Raccomandazioni** | Mulching per deficit acqua 15% | | **File Output** | dati/PlanBundle_Master.md, dati/calendario/calendario_operativo_settimanale.md | | **Dettagli** | Orchestrazione completa: init→onboarding→agronomo→layout→irrigazione→meteo→merge. PlanBundle generato e validato QA. Utente notificato. | ``` Questo crea cronologia completa di ogni decisione dell'orchestratore per tracciabilità e debugging. --- ## Gestione Errori | Errore | Fallback | |-------|----------| | Output skill mancante | Usa piano anno precedente (se disponibile) o regole fallback | | Raccomandazioni conflittuali | Elenca top 3 opzioni, lascia scegliere utente | | Fallimento QA (critico) | NON PUBBLICARE; 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 comuni - `references/qa_checklist.md` — Checklist validazione PlanBundle, criteri QA score - `references/meteo_soglie.md` — Soglie meteo (vento, pioggia, gelo, caldo) per reschedule task - `references/irrigazione_parametri.md` — Parametri ET, Kc, calcolo fabbisogni per acqua feasibility - `references/consociazioni_layout.md` — Matrice consociazioni per verificare coerenza layout - `references/malattie_trattamenti.md` — Dati trattamenti e DPI per validazione sicurezza - `references/colture_it.md` — Database colture (varietà, parametri, famiglie) per rotazione - `references/calendario_it.md` — Date gelate regionali, finestre stagionali per frost checks ## Assunzioni 1. Tutti skill prerequisiti hanno completato 2. Integrità dati: nessun file markdown corrotto 3. Politiche risoluzione conflitti documentate e calibrate (vedi conflitti_risoluzione.md) 4. Canale notifica utente disponibile (email/chat) 5. Tutti file di riferimento sono disponibili e aggiornati ## Checklist Validazione - ✓ Tutti output skill caricati e interpretati - ✓ Conflitti identificati e risolti - ✓ QA score ≥ 0.70 (accettabile) - ✓ PlanBundle unificato coerente e completo - ✓ Briefing settimanale generato e azionabile - ✓ Audit trail documentato - ✓ Notifica utente pronta --- **Skill: orto-orchestratore** | Versione 1.0 | Stato: Pronto per Produzione