Fase 4 (orto_v1): 3 skills aggiuntive generate (totale 7/9 = 78%)

- orto-layout/SKILL.md (3.1 KB): Progettazione aiuole, consociazioni, accessibilità
- orto-meteo-decisioni/SKILL.md (2.6 KB): Decisioni irrigazione/trattamenti basate meteo
- orto-orchestratore/SKILL.md (3.6 KB): Orchestrazione workflow, risoluzione conflitti, validazione QA

Skills mancanti (2/9, bassa priorità):
- orto-fitopatologo (richiede diagnosi_it.md)
- orto-irrigazione (richiede irrigazione_scheduling_it.md)
This commit is contained in:
AgentePotente 2026-03-07 11:14:58 +01:00
parent 5e4fe84812
commit a739282ae9
3 changed files with 366 additions and 0 deletions

View file

@ -0,0 +1,120 @@
---
name: orto-layout
description: Progettare layout orto con aiuole, consociazioni, accessi e zone irrigazione. Usare quando: (1) progettare nuovo orto da zero, (2) ottimizzare layout esistente, (3) applicare regole consociazione, (4) pianificare accessibilità. Output: Layout orto (markdown) con dimensioni aiuole, colture per aiuola, consociazioni, camminamenti, zone irrigazione.
---
# Orto Layout — Progettazione Aiuole e Zoning
Progettare layout orto ottimizzando spazio, consociazioni e accessibilità.
## Quando Usare
- **Dopo piano colture:** Colture selezionate, serve assegnare ad aiuole
- **Nuovo orto:** Progettare layout da zero
- **Ottimizzazione:** Migliorare layout esistente
- **Accessibilità:** Garantire accessi per carrozzina/bambini
## Input
| Input | Tipo | Obbligatorio | Esempio |
|-------|------|--------------|---------|
| `orto_id` | String | Sì | `orto_roma_testaccio_001` |
| `garden_config` | Object | Sì | area, esposizione, acqua |
| `piano_colture` | Object | Sì | Colture da assegnare |
| `accessibilita` | Bool | No | `true` (default: false) |
## Processo
### Fase 1: Calcola Numero Aiuole
```
area_totale = garden_config.area_disponibile_mq
SE accessibilita == true:
camminamento_min = 0.7m (carrozzina)
area_coltivabile = area_totale × 0.75 (25% per accessi)
ALTRIMENTI:
camminamento_min = 0.5m
area_coltivabile = area_totale × 0.85 (15% per accessi)
area_aiuola_tipica = 4-6 m² (1m × 4-6m)
numero_aiuole = floor(area_coltivabile / area_aiuola_tipica)
```
### Fase 2: Assegna Colture ad Aiuole
**Regole:**
1. Raggruppa per famiglia botanica (rotazione)
2. Applica consociazioni positive
3. Evita consociazioni negative
4. Considera classe acqua (zoning irrigazione)
### Fase 3: Genera Layout
**Output:**
```markdown
# Layout Orto — <orto_id>
**Area totale:** X m²
**Area coltivabile:** Y m² (Z%)
**Numero aiuole:** N
## Aiuola 1 (4 m²) — Solanaceae
**Dimensioni:** 1m × 4m
**Esposizione:** Pieno sole
**Zona irrigazione:** ALTO
**Colture:**
- Pomodoro (4 piante, 50cm)
- Basilico (6 piante, 20cm da pomodoro)
- Lattuga (8 piante, bordi)
**Consociazioni:** ✅ Pomodoro+Basilico (respinge parassiti)
**Rotazione prossima anno:** Brassicaceae
---
## Aiuola 2 (3 m²) — Cucurbitaceae
**Dimensioni:** 1m × 3m
**Zona irrigazione:** ALTO
**Colture:**
- Zucchina (3 piante, 100cm)
- Fagiolo (20 piante, 30cm)
**Consociazioni:** ✅ Zucchina+Fagiolo (azoto)
---
## Camminamenti
**Larghezza:** 0.7m (accessibile)
**Materiale:** Pacciamatura/ghiaia
**Percorso:** Anello esterno + accessi centrali
## Zone Irrigazione
| Zona | Aiuole | Classe | Portata | Tempo |
|------|--------|--------|---------|-------|
| 1 | 1-2 | ALTO | 200 L/h | 45 min |
| 2 | 3-4 | MEDIO | 150 L/h | 30 min |
| 3 | 5-6 | BASSO | 100 L/h | 20 min |
```
## Output
**File:** `dati/layout/layout_orito.md`
## References
- [`consociazioni_it.md`](../references/consociazioni_it.md)
- [`irrigazione_parametri_it.md`](../references/irrigazione_parametri_it.md)
- [`rotazioni_it.md`](../references/rotazioni_it.md)
---
_Aggiornato: 2026-03-07 | Versione: 1.0_

View file

@ -0,0 +1,112 @@
---
name: orto-meteo-decisioni
description: Analizzare previsioni meteo e generare decisioni operative per irrigazione, trattamenti e task. Usare quando: (1) decidere se irrigare oggi, (2) valutare se trattare, (3) adattare task a meteo, (4) generare alert meteo critici. Output: Decisione meteo (markdown) con raccomandazioni irrigazione/trattamenti/task, alert critici.
---
# Orto Meteo Decisioni — Analisi Meteo Operativa
Analizzare meteo e generare decisioni operative basate su soglie.
## Quando Usare
- **Decisione irrigazione:** Ogni giorno (mattina presto)
- **Pianificazione trattamenti:** Prima di applicare
- **Adattamento task:** Settimanalmente
- **Alert critici:** Gelo, tempesta, ondata caldo
## Input
| Input | Tipo | Obbligatorio |
|-------|------|--------------|
| `orto_id` | String | Sì |
| `meteo_forecast` | Object | Sì (7 giorni) |
| `meteo_attuale` | Object | Sì |
| `task_programmati` | Array | No |
## Processo
### Fase 1: Analizza Condizioni
**Parametri:**
- Temperatura (min, max, media)
- Umidità relativa
- Vento (velocità, direzione)
- Pioggia (prevista, accumulata)
- Nuvolosità
### Fase 2: Applica Soglie
**Irrigazione:**
```
SE pioggia_prevista > 10mm/24h: SALTA
SE pioggia_prevista > 5mm/24h: RIDUCI 50%
SE umidità_suolo < 30%: IRRIGA emergenza
SE vento > 15 nodi: RINVIA aspersione
```
**Trattamenti:**
```
SE vento > 8 nodi: NO trattamento fogliare
SE temp > 28°C: NO trattamento
SE pioggia_prevista < 6h: NO trattamento contatto
```
**Task:**
```
SE vento > 10 nodi: RINVIA trapianti
SE temp > 32°C: Task solo mattina (6-9)
SE gelo_previsto: COPRI colture sensibili
```
### Fase 3: Genera Decisione
**Output:**
```markdown
# Decisione Meteo — <orto_id>
**Data:** YYYY-MM-DD HH:MM
## Condizioni Attuali
- Temp: X°C | Umidità: X% | Vento: X nodi
- Pioggia 24h: X mm
## Previsione 24h
- T_max: X°C | T_min: X°C
- Pioggia: X mm (probabilità Y%)
- Vento: X-Y nodi
## Decisioni
### Irrigazione
**Decisione:** IRRIGA / SALTA / RIDUCI
**Motivo:** [Spiegazione basata su soglie]
**Volume:** X L/m²
**Orario:** 5:30-6:30
### Trattamenti
**Decisione:** TRATTA / NON TRATTA
**Motivo:** [Vento/temp/pioggia]
**Finestra sicura:** [Date/orari]
### Task
**Task consentiti:** [Lista]
**Task da rinviare:** [Lista]
## Alert
- [ ] Gelo notturno (T_min < 0°C)
- [ ] Ondata caldo (T_max > 35°C)
- [ ] Tempesta (vento > 25 nodi)
```
## Output
**File:** `dati/meteo/decisione_YYYY-MM-DD.md`
## References
- [`meteo_soglie_it.md`](../references/meteo_soglie_it.md)
---
_Aggiornato: 2026-03-07 | Versione: 1.0_

View file

@ -0,0 +1,134 @@
---
name: orto-orchestratore
description: Orchestrare workflow multi-skill, risolvere conflitti, validare QA, generare PlanBundle unificato. Usare quando: (1) eseguire pipeline planning completa, (2) gestire conflitti tra skills, (3) validare QA prima pubblicazione, (4) generare weekly briefing. Output: PlanBundle unificato (markdown) con tutti piani integrati, audit log, weekly briefing.
---
# Orto Orchestratore — Orchestrazione Workflow Master
Coordinare skills, risolvere conflitti, validare QA, merge in piano unificato.
## Quando Usare
- **Planning completo:** Dopo onboarding, eseguire pipeline full
- **Weekly briefing:** Merge calendario + meteo + stato → task list
- **Risoluzione conflitti:** Skills producono output conflittuali
- **Validazione QA:** Prima di pubblicare piano a utente
## Input
| Input | Tipo | Obbligatorio |
|-------|------|--------------|
| `orto_id` | String | Sì |
| `workflow_type` | Enum | Sì (`full_planning`, `weekly_brief`, `ad_hoc`) |
| `skills_output` | Object | Sì (output da skills) |
## Processo
### Fase 1: Verifica Prerequisiti
```
✓ orto-init: Progetto creato
✓ orto-onboarding: GardenConfig + CommunityProfile completi
✓ orto-agronomo: Piano colture completato
✓ orto-calendario: Calendario disponibile
✓ orto-layout: Aiuole assegnate
✓ orto-irrigazione: Sistema progettato
✓ orto-meteo-decisioni: Previsioni disponibili
Se MANCANTE → PAUSA, notifica utente
```
### Fase 2: Rileva Conflitti
**Pattern conflitti:**
| Tipo | Rilevamento | Risoluzione |
|------|-----------|-------------|
| Irrigazione vs. Consociazioni | ALTO + BASSO stessa aiuola | Dividi aiuola o adatta ad ALTO |
| Task vs. Meteo | Trapianto + vento >8kn | Riprogramma +2gg |
| Accessibilità vs. Spazio | Sentiero <0.7m | Riottimizza layout |
| Acqua deficit | Fabbisogno > disponibilità | Riduci colture esigenti |
### Fase 3: Validazione QA
**6 Criteri:**
1. Completezza dati (0-1)
2. Coerenza agronomica (0-1)
3. Coerenza spaziale (0-1)
4. Coerenza idrica (0-1)
5. Coerenza temporale (0-1)
6. Safety trattamenti (0-1)
**QA Score:**
```
QA = (completezza×0.15 + agronomica×0.25 + spaziale×0.15 +
idrica×0.15 + temporale×0.15 + safety×0.15)
≥0.90: Excellent ✅
0.75-0.89: Good
0.60-0.74: Fair (revisione)
<0.60: Poor (respinto)
```
### Fase 4: Genera PlanBundle
**Output:**
```markdown
# PlanBundle — <orto_id>
**Data:** YYYY-MM-DD
**QA Score:** 0.XX (Excellent/Good/Fair/Poor)
## Piani Integrati
1. Piano Colture (da orto-agronomo)
2. Layout (da orto-layout)
3. Calendario (da orto-calendario)
4. Irrigazione (da orto-irrigazione)
5. Meteo (da orto-meteo-decisioni)
## Conflitti Risolti
| Tipo | Decisione | Motivazione |
|------|-----------|-------------|
| Irrigazione vs. Consociazioni | Adatta ad ALTO | Basilico tollera acqua extra |
| Task vs. Meteo | Riprogramma Mar→Gio | Vento 10 nodi |
## Validazione QA
| Criterio | Score | Peso | Contributo |
|----------|-------|------|------------|
| Completezza | 1.00 | 0.15 | 0.15 |
| Agronomica | 0.90 | 0.25 | 0.225 |
| ... | ... | ... | ... |
**Totale:** 0.91 (Excellent) ✅
## Weekly Briefing
**Settimana:** YYYY-WW
**Task principali:**
- Lunedì: Irrigazione, raccolta lattuga
- Martedì: Trapianto basilico
- ...
**Alert:** Possibile pioggia giovedì
---
_Generato da: orto-orchestratore_
```
## Output
**File:** `report/planbundle_YYYY-MM-DD.md`
## References
- [`conflitti_risoluzione_it.md`](../references/conflitti_risoluzione_it.md)
- [`qa_checklist_it.md`](../references/qa_checklist_it.md)
---
_Aggiornato: 2026-03-07 | Versione: 1.0_