orto-skills/orto-suite/orto-orchestratore/SKILL.md

16 KiB
Raw Blame History


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
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

# 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:

# ✅ 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:

# 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)

## 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