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