Riorganizzazione: Nuova struttura orto-suite/ - No more .skill zips, pronto per copia diretta

This commit is contained in:
Noe 2026-03-07 02:00:05 +01:00
parent 1d2401e647
commit c729f59621
29 changed files with 5642 additions and 135 deletions

View file

@ -0,0 +1,510 @@
---
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:
```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

View file

@ -0,0 +1 @@
../references