--- 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 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` ```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 ``` ### Phase 5: User Notification & Publishing **Generate summary report:** ```markdown # ✅ 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:** ```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] ``` --- ## 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) ```markdown ## 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 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 predecessore hanno completato 2. Integrità dati: no file markdown corrotti 3. Politiche risoluzione conflitti documentate e tuned (vedi conflitti_risoluzione.md) 4. Canale notifica utente disponibile (email/chat) 5. 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