From 640ee26a2fecae994cb591a8777f5b5e28a1b584 Mon Sep 17 00:00:00 2001 From: Noe Date: Sat, 7 Mar 2026 01:33:14 +0100 Subject: [PATCH] Creazione 6 file references mancanti: malattie, irrigazione, consociazioni, meteo, conflitti, qa --- references/conflitti_risoluzione.md | 300 +++++++++++++++++++++++ references/consociazioni_layout.md | 231 ++++++++++++++++++ references/irrigazione_parametri.md | 230 ++++++++++++++++++ references/malattie_trattamenti.md | 192 +++++++++++++++ references/meteo_soglie.md | 211 ++++++++++++++++ references/qa_checklist.md | 362 ++++++++++++++++++++++++++++ 6 files changed, 1526 insertions(+) create mode 100644 references/conflitti_risoluzione.md create mode 100644 references/consociazioni_layout.md create mode 100644 references/irrigazione_parametri.md create mode 100644 references/malattie_trattamenti.md create mode 100644 references/meteo_soglie.md create mode 100644 references/qa_checklist.md diff --git a/references/conflitti_risoluzione.md b/references/conflitti_risoluzione.md new file mode 100644 index 0000000..25bbab2 --- /dev/null +++ b/references/conflitti_risoluzione.md @@ -0,0 +1,300 @@ +# Conflitti & Politiche di Risoluzione + +Guida per gestire conflitti tra raccomandazioni di skill multipli (orchestratore). + +--- + +## Tipologie Conflitti Comuni + +### 1. Irrigazione Zone vs. Consociazioni + +**Scenario:** +- orto-layout assegna Pomodoro (ALTA) + Lattuga (MEDIA) nella stessa aiuola +- orto-irrigazione vuole 3 zone separate +- Conflitto: Impossibile irrigare differentemente sullo stesso letto + +**Politica di Risoluzione:** + +| Priorità | Scelta | Azione | +|----------|--------|--------| +| **1. Priorità ALTA** | Classe acqua (stress idrico > consociazione ideale) | Separate aiuole | +| **2. Fallback** | Se spazio insufficiente | Tollerare Lettuga con over-irrigazione (resistente) | +| **3. Mitigazione** | Aggiungere mulch (Lettuga) per ridurre stress | Reduce flag warning | + +**Output Orchestrator:** +``` +⚠️ CONFLITTO RISOLTO: Aiuola A1 (Pomodoro + Lettuga) + Decisione: Separate physically (A1 Pomodoro, A1b Lattuga) + OR Accept overirrigation (Lettuga tolera; Pomodoro critico) + Consiglio: A1 Pomodoro solo → A2 Lattuga + consociati (Carota, Cipolla) +``` + +--- + +### 2. Calendario Task vs. Previsione Meteo + +**Scenario:** +- orto-calendario raccomanda trapianto Pomodoro Martedì +- orto-meteo-decisioni prevede vento > 8 kn Martedì +- Conflitto: Trapianto rischioso + +**Politica di Risoluzione:** + +| Vento | Temperatura | Azione | Reschedule | +|-------|---|---|---| +| > 8 kn | N/A | ❌ ANNULLA trapianto | +2-3 giorni | +| 5-8 kn | T > 25°C | ⚠️ ATTENDI (non ideale) | Mercoledì | +| 5-8 kn | T < 15°C | ❌ ANNULLA | +3-5 giorni | +| < 5 kn | Any | ✅ OK | Come schedulato | + +**Fallback:** Se no data buona in prossimi 7 giorni → anticipare semenzaio coperto (indoor) + +**Output:** +``` +🔄 RESCHEDULE: Trapianto Pomodoro da Martedì a Giovedì + Motivo: Vento 9 kn previsto martedì (danno stress meccanico) + Confidence giorni alt: Giovedì (3 kn, T 22°C) ✅ +``` + +--- + +### 3. Piano Colture vs. Vincoli Layout + +**Scenario:** +- orto-agronomo raccomanda 50 piante Pomodoro (target rese) +- orto-layout ha solo 15 m² disponibili ZONA ALTA +- Conflitto: Troppi pomodori per spazio + +**Politica di Risoluzione:** + +| Scenario | Azione | Priorità | +|----------|--------|----------| +| Space > 50% insufficiente | Ridurre 20-30%, accettare minor resa | Realtà | +| Space borderline (80-90% ok) | Densità moderata (45-50 piante in 15m²) | Compromesso | +| Space abbondante (100%+) | Ok piano originale | Full plan | + +**Output:** +``` +⚠️ AGGIUSTAMENTO: Piano Colture + +Originale: 50 piante Pomodoro +Area disponibile: 15 m² (max 3.6 piante/m²) = 54 piante ✅ OK + +Densità: 3.6 p/m² (spaziatura 40-50 cm) → 40 piante CONSERVATIVA +Resa attesa: 3 kg/m² × 15 m² = 45 kg (vs. 60 kg target) + +Mitigazione: Aggiungere successione (trapianto giugno) → 60 kg totale +``` + +--- + +### 4. Rotazione Colture vs. Spazio Piccolo + +**Scenario:** +- orto-agronomo raccomanda rotazione 3 anni (no Pomodoro su A1 per 3 anni) +- orto disponibile è piccolo (50 m²): solo 4-5 aiuole +- Conflitto: Impossibile ruotare ogni anno se vuoi tutti i vegetali + +**Politica di Risoluzione:** + +| Scenario | Azione | Note | +|----------|--------|------| +| Spazio > 30 m² | Rotazione 3 anni rigorosa | Ideale | +| Spazio 15-30 m² | Rotazione semplificata (2 anni) | Compromesso | +| Spazio < 15 m² | Rotazione "Y" (3 zone, ma meno rigida) | Pratica | + +**Esempio Rotazione Y (3 zone, 3 anni):** +``` +Zona A: Anno 1: Pomodoro → Anno 2: Lettuga → Anno 3: Fagiolo +Zona B: Anno 1: Cavolo → Anno 2: Fagiolo → Anno 3: Carota +Zona C: Anno 1: Carota → Anno 2: Pomodoro (No! Via Cavolo prima) + +CONFLITTO: C anno 3 vuole Pomodoro, ma A ha già fatto. + +RISOLUZIONE: + C Anno 3: Basilico + Lattuga (neutre, da ripetto) + Accettare minor efficienza rotazione per spazio limitato +``` + +--- + +### 5. Esigenza Irrigazione vs. Disponibilità Acqua + +**Scenario:** +- Fabbisogno stagionale: 150 L/gg (giugno-agosto, 3 zone) +- Disponibilità: 100 L/gg (rubinetto lento) +- Conflitto: 50 L deficit + +**Politica di Risoluzione:** + +| Deficit | Azione | Priorità | Crop Impact | +|---------|--------|-----------|---| +| < 20% | Riduci zone non-critiche (Lattuga → 1x/sett) | Media | Minor | +| 20-50% | Shift a colture tolleranti siccità (Carota, Cipolla, Spinacio) | Alta | Significativo | +| > 50% | ❌ RIDURRE AREA O PASSARE A COLTURE "DRY" | Critica | Grave | + +**Output:** +``` +⚠️ VINCOLO ACQUA RILEVATO + Fabbisogno: 150 L/gg (peak) + Disponibilità: 100 L/gg + Deficit: 50 L (33%) + +PIANO MITIGAZIONE: + 1. Mulching pesante (riduce evaporazione 20-30%) + → New need: 105-120 L/gg (tollerabile) + + 2. Shift colture: + - Carota area +5 m² (tollerante siccità) + - Pomodoro area -3 m² (high-demand) + + 3. Raccolta pluviale (se possibile): +50 L/gg stagionale + → Deficit zero + + Recommendation: Applicare 1+3 (mulch + rain barrel 200L) +``` + +--- + +### 6. Trattamento Malattia vs. Finestra Raccolta + +**Scenario:** +- Peronospora rilevata su Pomodoro (8 giorni prima raccolta) +- orto-fitopatologo raccomanda Rame (carenza 14 giorni) +- Conflitto: Non puoi raccogliere entro carenza + +**Politica di Risoluzione:** + +| Carenza (gg) | Raccolta Prevista | Azione | Risk | +|---|---|---|---| +| < 7 gg | SUBITO | ❌ NO trattamento chimico | Mangia contaminated? | +| 7-14 gg | Tra 3-5 gg | ⚠️ RITARDI raccolta 14-21 gg | Loss nutrizionale | +| > 14 gg | Tra 15+ gg | ✅ OK trattamento | Mitigato | + +**Fallback:** Trattamento biologico low-toxicity (Bacillus subtilis = 0-3 gg carenza) + +**Output:** +``` +⚠️ CONFLITTO FITOPATOLOGICO + +Diagnosi: Peronospora Pomodoro, confidence 0.92 +Raccolta originale: Tra 8 giorni + +OPZIONE 1 (Rame): 14 gg carenza + → RITARDA raccolta 21+ giorni + → Risk sovrabbondanza (cracking se pioggia, stress pianta) + +OPZIONE 2 (Bacillus subtilis): 0-3 gg carenza ✅ + → Raccogli tra 10-12 giorni (accettabile) + → Efficacia: 50-60% (meno di rame, ma ok per early stage) + +RACCOMANDAZIONE: Bacillus + rimozione foglie infette + areazione +``` + +--- + +### 7. Preferenze Dieta vs. Vincoli Clima + +**Scenario:** +- Utente vegano richiede: Legumi, Noci(?), Semi +- Zona clima: Sud Italia, siccità estiva +- orto-agronomo raccomanda tolleranti-siccità (Carota, Cipolla, Aglio) +- Conflitto: Poche opzioni legumi adatte clima secco + +**Politica di Risoluzione:** + +| Opzione | Viability | Compromise | Output | +|---------|-----------|---|---| +| Forzare legumi (Fagiolo) | Difficile (richiede irrigazione) | Accept over-watering (caro) | Parziale | +| Shift a tolleranti siccità | Realistico (Pisello, Fava autunno) | Less familiar (ma vegan-ok) | Full | +| Ibrido: Mulch + Raccolta pluviale | Moderato (costi, setup) | Most legumi possibili | Buono | + +**Output:** +``` +🌱 AGGIUSTAMENTO DIETA per Clima + +Preferenza utente: Vegano (legumi prioritari) +Clima: Sud Italia siccità (preferisce tolleranti) + +CONFLITTO: Fagiolo estivo richiede 300+ mm acqua + +SOLUZIONE: + 1. Fagiolo RAMPICANTE (agosto-settembre, minore acqua per durata ridotta) + - Succession luglio (dopo earlier crop) + - Resa: 1-2 kg (piccola ma ok) + + 2. Pisello AUTUNNALE (settembre-novembre, bassa acqua) + - Planted agosto + - Resa: 2-3 kg + + 3. Fava INVERNALE (novembre-marzo, pioggia naturale) + - Planted ottobre + - Resa: 2 kg + + Totale legumi: 5-7 kg (vs. 10-15 kg richiesto ideale) + Compromesso: Supplementare con proteine (tofu, tempeh) importate +``` + +--- + +## Matrice Decisionale Orchestrator + +Quando conflitto rilevato: + +``` +CONFLICT RESOLUTION FLOWCHART: + +1. IDENTIFY CONFLICT TYPE + → Lookup in this document + +2. DETERMINE IMPACT SEVERITY + - Critical (crop loss, safety) → Prioritize safety + - Medium (resa ridotta) → Compromise + - Low (preferenza) → User choice + +3. APPLY RESOLUTION POLICY + → Check table for scenario + → Calculate tradeoff + +4. FLAG DECISION + - Log conflict + resolution in audit trail + - Notify user (accept/override) + - Document rationale + +5. PROCEED (User approved) +``` + +--- + +## Escalation & User Override + +**Quando NON risolvere automaticamente:** + +- Confidence < 0.70 in resolution → Ask user +- Conflict affects > 20% area/yield → Present options (top 3) +- Safety concern → ESCALATE to expert, don't guess + +**User Override:** +``` +User: "Ignora consiglio orchest, voglio 50 Pomodori comunque" +System: + ✅ Accept override + ⚠️ Flag in audit (suboptimal) + ⚠️ Log consequence (expected resa -30%) +``` + +--- + +## Escalation Patterns (Quando Far Suonare l'Allarme) + +| Pattern | Threshold | Action | +|---------|-----------|--------| +| Resa totale < 50% target | Any | WARN user | +| Acqua deficit > 30% | > 2 weeks | ESCALATE (rainfall + rain barrel) | +| Malattia confidence < 0.60 | And spreading | REFER expert | +| Conflitto irrisolvibile | Any | Present to user (decide) | + +--- + +**Ultima revisione:** 2026-03-06 +**Integrazione:** orto-orchestratore legge questo durante Phase 2 (conflict detection) diff --git a/references/consociazioni_layout.md b/references/consociazioni_layout.md new file mode 100644 index 0000000..2290322 --- /dev/null +++ b/references/consociazioni_layout.md @@ -0,0 +1,231 @@ +# Consociazioni Piante & Layout Aiuole + +Guida a companion planting positivo/negativo e progettazione aiuole. + +--- + +## Matrice Consociazione Piante + +### Legenda +- ✅ **Positivo:** Beneficio reciproco (protezione insetti, fissazione N, ombra) +- ⚠️ **Neutro:** No effetto significativo +- ❌ **Antagonismo:** Competizione, allelopatia, malattie compartite + +### Pomodoro - Consociazioni + +| Con | Effetto | Motivo | Distanza | +|-----|--------|--------|----------| +| ✅ Basilico | Positivo | Odore repelle insetti; migliora sapore | Stesso letto | +| ✅ Carota | Positivo | Radici diverse profondità (no competizione) | 30 cm | +| ✅ Cipolla | Positivo | Repelle afidi; no competizione N | 25 cm | +| ⚠️ Lattuga | Neutro | Ombra leggera benefica (estate) | Bordo | +| ❌ Brassica (Cavolo, Broccoli) | Antagonismo | Malattie compartite (Solanaceae-Brassica incomp.) | >2 m | +| ❌ Finocchio | Antagonismo | Allelopatia (inibisce crescita) | >3 m | + +### Peperone - Consociazioni + +| Con | Effetto | Motivo | Distanza | +|-----|--------|--------|----------| +| ✅ Basilico | Positivo | Come pomodoro | Stesso letto | +| ✅ Cipolla | Positivo | Repelle insetti | 25 cm | +| ✅ Melanzana | Positivo | Stesse esigenze (Solanaceae-friendly) | 40 cm | +| ❌ Cavolo | Antagonismo | Competizione/malattie | >2 m | + +### Zucchina / Melone - Consociazioni + +| Con | Effetto | Motivo | Distanza | +|-----|--------|--------|----------| +| ✅ Mais | Positivo | "Tri sorelle" (mais supporta; zucca ombra) | 50 cm | +| ✅ Fagiolo | Positivo | "Tri sorelle" (fagiolo fissa N) | 50 cm | +| ✅ Carota | Positivo | Radici diverse | 30 cm | +| ⚠️ Cipolla | Neutro | Ok se distanza | 30 cm | + +### Lettuga - Consociazioni + +| Con | Effetto | Motivo | Distanza | +|-----|--------|--------|----------| +| ✅ Carota | Positivo | Radici diverse | 15 cm | +| ✅ Cipolla | Positivo | Repelle insetti | 15 cm | +| ✅ Pomodoro | Positivo | Ombra leggera (estate) | Bordo | +| ✅ Barbabietola | Positivo | Simili esigenze | 20 cm | +| ❌ Cavolo | Antagonismo | Competizione acqua/N | >2 m | + +### Cavolo / Broccoli - Consociazioni + +| Con | Effetto | Motivo | Distanza | +|-----|--------|--------|----------| +| ✅ Cipolla | Positivo | Repelle farfalle cavolo (Pieris) | 20 cm | +| ✅ Carota | Positivo | Radici diverse | 25 cm | +| ✅ Barbabietola | Positivo | Simili | 20 cm | +| ⚠️ Erbette | Neutro | Ok insieme | 15 cm | +| ❌ Pomodoro | Antagonismo | Competizione; malattie | >3 m | +| ❌ Fagiolo | Antagonismo | Inibisce N fissazione | >2 m | + +### Fagiolo - Consociazioni + +| Con | Effetto | Motivo | Distanza | +|-----|--------|--------|----------| +| ✅ Mais | Positivo | "Tri sorelle" (fagiolo sale; mais supporta) | Misto | +| ✅ Zucchina | Positivo | "Tri sorelle" | Misto | +| ✅ Carota | Positivo | Radici diverse | 20 cm | +| ❌ Cipolla/Aglio | Antagonismo | Inibisce N fissazione | >2 m | +| ❌ Cavolo | Antagonismo | Competizione | >2 m | + +### Carota - Consociazioni + +| Con | Effetto | Motivo | Distanza | +|-----|--------|--------|----------| +| ✅ Cipolla | Positivo | Complementari | 15 cm | +| ✅ Lattuga | Positivo | Radici diverse | 15 cm | +| ✅ Pomodoro | Positivo | Radici diverse | 25 cm | +| ❌ Finocchio | Antagonismo | Allelopatia, competizione | >3 m | +| ❌ Aneto | Antagonismo | Simile a finocchio | >2 m | + +--- + +## Layout Aiuole: Dimensioni & Spacing + +### Raccomandazioni Base + +| Parametro | Valore | Note | +|-----------|--------|------| +| **Larghezza aiuola** | 1.0-1.5 m | Raggiungibile da ambo lati senza calpestare | +| **Lunghezza aiuola** | 2-4 m | Modulare, facile gestione | +| **Profondità aiuola rialzata** | 0.3-0.5 m | 30-40 cm base; 50 cm se drenaggio scarso | +| **Profondità aiuola terra** | 0-0.2 m (vangatura) | Terra naturale, min. 30 cm fertile | +| **Sentiero principale** | 0.7-1.0 m | Passaggio, accessibilità (carrello, sedia a rotelle) | +| **Sentiero lato aiuola** | 0.5 m | Lato angusto, accesso rapido | + +### Spacing Tra Piante + +Per aiuole rialzate, "square-foot gardening" o fitte: + +| Coltura | Spacing (cm) | Piante/m² | Note | +|---------|---|---|---| +| **Pomodoro** | 40-60 | 3-4 | Determinato 40cm; indeterminato 60cm | +| **Peperone** | 40-50 | 4-5 | Simile pomodoro | +| **Zucchina** | 50-75 | 2-3 | Grande, ramificante | +| **Melone** | 50-100 | 1-2 | Molto grande | +| **Lattuga** | 20-30 | 9-16 | Densa, veloce ciclo | +| **Cavolo** | 30-40 | 4-9 | Taglia finale; giovani più fitti | +| **Carota** | 7-10 | 25-49 | Molto densa dopo diradamento | +| **Cipolla** | 10-15 | 16-25 | Diradare a 15cm finali | +| **Basilico** | 20-25 | 16-20 | Cesellare; rigenerare | +| **Fagiolo** | 10-15 | 25-40 | Rapido; succulento se giovane | + +### Pattern Semina + +**Righe parallele (tradizionale):** +``` +File 1: [POD] [POD] [POD] [POD] + 40cm 40cm 40cm +File 2: [BAS] [BAS] [BAS] [BAS] + 20cm 20cm 20cm +``` +Distanza tra file: 60 cm + +**Square-foot (grigliate):** +``` +[POD] | [POD] | [BAS] | [BAS] +[POD] | [POD] | [BAS] | [BAS] +-------|---------|--------|------ +[CAR] | [CAR] | [CIP] | [CIP] +``` +Ogni quadrato ~30 cm + +--- + +## Rotazione Colture (Famiglie) + +Prevenire accumulo parassiti/malattie, esaurimento nutrienti. + +### Famiglie Botaniche + +| Famiglia | Colture Tipiche | Durata Rotazione | +|----------|---|---| +| **Solanaceae** | Pomodoro, Peperone, Melanzana | 3-4 anni | +| **Brassicaceae** | Cavolo, Broccoli, Cavolfiore, Rapa | 3 anni | +| **Cucurbitaceae** | Zucchina, Melone, Cocomero, Cetriolo | 3 anni | +| **Leguminosae** | Fagiolo, Pisello, Fava, Lenticchia | 2-3 anni (N-fixer) | +| **Apiaceae** | Carota, Parsnip, Sedano | 3 anni | +| **Amaryllidaceae** | Cipolla, Aglio, Porro | 2 anni | +| **Chenopodiaceae** | Barbabietola, Spinacio, Erbette | 2-3 anni | + +### Piano Rotazione 3 Anni (Esempio) + +``` +Aiuola A: + Anno 1: Pomodoro (Solanaceae) + Anno 2: Lettuga / Carota (Apiaceae / Brassica-free) + Anno 3: Fagiolo (Legume) → azzera suolo + → Back to Anno 1 + +Aiuola B: + Anno 1: Cavolo (Brassica) + Anno 2: Fagiolo (Legume) + Anno 3: Zucchina (Cucurbitaceae) + → Back to Anno 1 + +Aiuola C: + Anno 1: Carota (Apiaceae) + Anno 2: Pomodoro? NO! Dopo Cavolo (A1) + → Diverso da A+B +``` + +--- + +## Accessibilità & Sicurezza + +### Per Utenti Diversamente Abili + +| Esigenza | Raccomandazione | Misura | +|----------|---|---| +| Sedia a rotelle | Sentiero principale liscio | Min. 0.7 m | +| Raggiungibilità | Aiuole max altezza 0.8 m | Rialzate 0.5 m o meno | +| No scalini | Livello costante | Pendenza < 5% | +| Illuminazione | Percorsi illuminati | Luci soft sera | +| Riposo | Panchina ogni 20-30 m | Ombra se possibile | + +### Sicurezza Generale + +- Niente spigoli vivi (aiuole rialzate arrotondate) +- Vie di fuga chiare (no ostruzione con attrezzi) +- Primo soccorso visibile (kit) +- Fontana acqua (igiene, emergenza) + +--- + +## Esempi Layout + +### Esempio 1: Orto 50 m² - Famiglie + +``` + [NORD — Sole max mattina] + +Aiuola A1 (Rialzata 1.2×3m) Aiuola A2 (Rialzata 1.2×3m) +- Pomodoro (4) + Basilico (12) - Cavolo (4) + Lattuga (24) +- Zona ALTA - Zona MEDIA + ↑ Sentiero 0.7m ↑ +Fila A3 (Terra, 1×12m) Fila A4 (Terra, 1×12m) +- Carota (densa) × 2 succ - Cipolla × 3 succ +- Zona MEDIA - Zona BASSA + + [SUD — Ombra pomeridiana] +``` + +### Esempio 2: Orto 20 m² - Compatto (Balcone/Vaso) + +``` +Contenitori (vasi 20-30L): +- Pomodoro ciliegia × 2 (20L) +- Peperone × 1 (20L) +- Basilico × 3 (10L) +- Lattuga × 4 (10L) +- Carota × 2 (5L) + +Layout: Griglia 4×3 vasi, profondità per luce sole +``` + +--- + +**Ultima revisione:** 2026-03-06 diff --git a/references/irrigazione_parametri.md b/references/irrigazione_parametri.md new file mode 100644 index 0000000..722d0c5 --- /dev/null +++ b/references/irrigazione_parametri.md @@ -0,0 +1,230 @@ +# Parametri Irrigazione: ET, Kc, Soglie Sensori + +Riferimento tecnico per calcolo fabbisogni idrici e automazione irrigazione. + +--- + +## Evapotraspirazione di Riferimento (ET₀) + +### Tabella ET₀ Mensile per Macro-Zone Italia + +Basato su dati medi (temperature, umidità, vento, radiazione). + +| Mese | Nord (Pianura Padana) | Centro (Toscana, Lazio) | Sud (Puglia, Sicilia) | +|------|---|---|---| +| Gen | 0.5 mm/gg | 0.8 mm/gg | 1.2 mm/gg | +| Feb | 1.0 | 1.3 | 1.6 | +| Mar | 2.0 | 2.5 | 3.0 | +| Apr | 3.5 | 4.0 | 4.5 | +| Mag | 4.5 | 5.0 | 5.5 | +| **Giu** | **5.5** | **6.0** | **6.5** | +| **Lug** | **5.8** | **6.2** | **6.8** | +| **Ago** | **5.5** | **6.0** | **6.5** | +| Set | 4.0 | 4.5 | 5.0 | +| Ott | 2.5 | 3.0 | 3.5 | +| Nov | 1.2 | 1.5 | 2.0 | +| Dic | 0.6 | 0.9 | 1.2 | + +**Peak season:** Giugno-Agosto (ET₀ 5.5-6.8 mm/gg) + +**Formula rapida (se dati non disponibili):** +``` +ET₀ (mm/gg) ≈ 0.0023 × (Tmed°C + 17.8) × (Tmax - Tmin)^0.5 +(Hargreaves formula semplificata) +``` + +--- + +## Coefficiente Colturale (Kc) + +Rappresenta la frazione di ET₀ necessaria per la coltura in base a fase di crescita. + +### Per Principale Colture + +| Coltura | Fase Iniziale | Fase Massima | Fase Raccolta | Note | +|---------|---|---|---|---| +| **Pomodoro** | 0.40 (giov.) | 0.95 (fioritura) | 0.70 (raccolta) | Determinato: 70-90 gg; indeterminato: più lungo | +| **Peperone** | 0.35 | 0.95 | 0.75 | Simile pomodoro | +| **Zucchina** | 0.45 | 1.05 | 0.80 | Ciclo più veloce | +| **Melone** | 0.40 | 1.00 | 0.75 | Peak luglio | +| **Lattuga** | 0.50 | 0.95 | 0.70 | Ciclo breve, sensibile stress | +| **Cavolo** | 0.45 | 0.90 | 0.65 | Ciclo medio | +| **Carota** | 0.40 | 0.80 | 0.60 | Resistente siccità relativa | +| **Basilico** | 0.60 | 0.85 | 0.70 | Termofilo | +| **Fagiolo** | 0.40 | 0.90 | 0.50 | Ciclo rapido | +| **Spinacio** | 0.50 | 0.95 | 0.70 | Ciclo breve | + +**Interpretazione Kc:** +- Kc < 0.5: Coltura giovane o pre-fioritura +- Kc 0.5-0.8: Fase intermedia +- Kc > 0.9: Peak di consumo (fioritura, fruttificazione) + +--- + +## Calcolo Fabbisogno Idrico Giornaliero + +``` +Fabbisogno (mm/gg) = ET₀ × Kc + +Esempio (Pomodoro, Centro Italia, Luglio, fioritura): + ET₀ (luglio) = 6.2 mm/gg + Kc (fioritura) = 0.95 + Fabbisogno = 6.2 × 0.95 = 5.9 mm/gg + +Volume acqua per aiuola 15 m²: + 5.9 mm × 15 m² = 88.5 litri/gg +``` + +--- + +## Classe Fabbisogno Acqua (Irrigazione Pratica) + +### Raggruppamento Semplificato + +Per scheduling pratico, raggruppare colture in 3 classi: + +| Classe | Fabbisogno (mm/stagione) | Frequenza | Timing | Colture Tipiche | +|--------|---|---|---|---| +| **BASSO** | 100-150 mm | 2-3x/sett | Mattina (facoltativo) | Carota, Cipolla, Spinacio, Pisello, Aglio | +| **MEDIO** | 150-250 mm | 3-4x/sett | Mattina | Lattuga, Cavolo, Broccoli, Fagiolo | +| **ALTO** | 300-500 mm | 4-6x/sett (daily estate) | Mattina + Sera (heat) | Pomodoro, Peperone, Zucchina, Melone, Cocomero | + +--- + +## Emettitori & Portata + +### Metodi Irrigazione + +| Metodo | Portata Tipica | Applicazione | Pro | Contro | +|--------|---|---|---|---| +| **Goccia (Dripper)** | 0.5-4 L/h per emettitore | Ortaggi | Efficiente, no foglia bagnata | Pulizia necessaria | +| **Microspruzzatore** | 4-20 L/h | Ortaggi, angoli | Copertura ampia | Foglia bagnata, costo | +| **Spruzzatore rotante** | 20-100 L/h | Grandi aree | Veloce, buon mixing | Alto fabbisogno, evaporazione | +| **Sommersione** | Variable | Colture acquatiche | Equilibrio naturale | Scarsa precisione | + +### Calcolo Runtime + +``` +Runtime (minuti) = Fabbisogno (mm) / Portata emettitore (mm/h) + +Esempio (Pomodoro ZONA ALTA, classe ALTO): + Fabbisogno giornaliero: 5.9 mm + Emettitori dripper 2 L/h spaziati 0.5 m = ~4 mm/h per metro + Runtime = 5.9 mm / 4 mm/h ≈ 1.5 h = 90 minuti + + Splitting (estate caldo): 2x giornaliero = 45 min mattina + 45 min sera +``` + +--- + +## Sensori Umidità Suolo (Soil Moisture) + +### Tecnologia Capacitiva (Consigliato) + +**Tipo:** Sensore capacitivo VWC (Volumetric Water Content) + +**Principio:** Variazione capacità elettrica con umidità + +**Range:** 0-100% (0% secco, 100% saturo) + +### Soglie per Zone Irrigue + +Definire trigger auto-irrigazione: + +| Zona | Colture | Min Umidità (Trigger) | Max Umidità (No Irrig) | Note | +|------|---------|---|---|---| +| **BASSA** | Carota, Cipolla, Spinacio | 30-35% VWC | 50-55% VWC | Tollerante siccità | +| **MEDIA** | Lattuga, Cavolo, Fagiolo | 40-45% VWC | 60-65% VWC | Equilibrio | +| **ALTA** | Pomodoro, Peperone, Zucchina | 50-60% VWC | 70-75% VWC | Sensibile stress | + +**Profondità sensore:** 20-30 cm (zona radici principale) + +**Placement:** 1 sensore per 5-10 m² (center di zona omogenea) + +--- + +## Schedule Baseline (No Sensore, Metodo Stagionale) + +### Nord Italia - Pomodoro (Giugno-Agosto) + +``` +Giugno (Kc 0.70): + - ET₀ ≈ 5.5 mm/gg + - Fabbisogno ≈ 3.9 mm/gg + - Schedule: 3x/sett, 60 min ciascuna (mattina) + +Luglio-Agosto (Kc 0.95, peak caldo): + - ET₀ ≈ 5.8-6.2 mm/gg + - Fabbisogno ≈ 5.5-5.9 mm/gg + - Schedule: Daily split = 45 min mattina (6am) + 45 min sera (6pm) + - Reason: Evaporazione peak noon; protezione stress pomeridiano +``` + +### Centro Italia - Lattuga (Primavera) + +``` +Aprile (Kc 0.50-0.70): + - ET₀ ≈ 4.0 mm/gg + - Fabbisogno ≈ 2.0-2.8 mm/gg + - Schedule: 3x/sett, 30 min (mattina) + +Maggio (Kc 0.95): + - ET₀ ≈ 5.0 mm/gg + - Fabbisogno ≈ 4.75 mm/gg + - Schedule: 4-5x/sett, 45 min (mattina) +``` + +--- + +## Meteo Override + +**Pioggia prevista > 10 mm in 24h:** Skip irrigazione giorno successivo + +**Fonte:** wttr.in, open-meteo + +**Calcolo:** +``` +Effective_rainfall = Precip_forecast × 0.85 (infiltrazione suolo) +IF Effective_rainfall >= 70% Zone_demand → SKIP +ELIF Effective_rainfall >= 30% → REDUCE 30-50% +ELSE → KEEP baseline +``` + +--- + +## Maintenance & Pulizia Emettitori + +**Frequenza:** Mensile (goccia), settimanale se acqua dura + +**Segni ostruzione:** +- Portata ridotta (compare bagnato non uniforme) +- Emettitore non bagna + +**Pulizia:** +- Ispezionare filtro linea principale (250 mesh) +- Soffiare emettitori ostruiti o risciacquare con acqua distillata +- Replace se danno permanente + +**Prevenzione:** +- Filtro 250 mesh all'entrata di ciascuna zona +- Acidificazione acqua se pH > 7.5 (dura) + +--- + +## Tabella Veloce Scheduling (Pratica) + +Senza calcoli (uso diretto): + +| Stagione | Zona BASSA | Zona MEDIA | Zona ALTA | +|----------|---|---|---| +| **Primavera (Apr-Mag)** | 2x/sett, 20min | 3x/sett, 40min | 4x/sett, 60min | +| **Estate (Giu-Ago)** | 3x/sett, 25min | 4x/sett, 50min | Daily split 45+45min | +| **Autunno (Set-Ott)** | 2x/sett, 20min | 2x/sett, 35min | 3x/sett, 50min | +| **Inverno (Nov-Feb)** | PRN (se secco > 2sett) | PRN | PRN | + +**PRN = Pro Re Nata** = se necessario (controllo manuale o sensore) + +--- + +**Ultima revisione:** 2026-03-06 +**Fonte:** FAO Irrigation & Drainage Paper 56 (ET₀), aggiustamenti locali diff --git a/references/malattie_trattamenti.md b/references/malattie_trattamenti.md new file mode 100644 index 0000000..6ce83de --- /dev/null +++ b/references/malattie_trattamenti.md @@ -0,0 +1,192 @@ +# Malattie, Sintomi e Trattamenti Biologici + +Riferimento per diagnosi di malattie e raccomandazioni di trattamento biologico sicuro. + +--- + +## Mapping Sintomi → Patogeno + +### Foglie Gialle con Macchie Scure, Bagnate + +| Patogeno | Colture | Confidence | Condizioni Favorevoli | Trattamento | +|----------|---------|-----------|--------|-----------| +| **Peronospora** (Phytophthora infestans) | Pomodoro, Patata, Peperone | 0.92 | Umidità alta, pioggia notturna, T 12-25°C | Rame, Bacillus subtilis | +| Oidio (Erysiphaceae) | Zucchina, Melone, Lattuga | 0.70 | Umidità media, T 18-28°C, scarsa areazione | Zolfo, Neem | +| Batteriosi (Pseudomonas, Xanthomonas) | Pomodoro, Peperone, Cavolo | 0.65 | Acqua fogliare, ferite, T 25-30°C | Rame (preventivo), rimozione foglie | + +### Foglie Arricciate, Appassimento + +| Patogeno | Colture | Confidence | Note | +|----------|---------|-----------|------| +| **Verticillium / Fusarium** (wilts) | Pomodoro, Peperone, Melanzana | 0.85 | Vasi linfatici ostruiti, progressivo da basso → alto | +| Stress idrico | Tutte | 0.80 | Check irrigazione; se sufficiente → malattia | +| Afidi (colonizzazione) | Lattuga, Cavolo, Ortaggi foglia | 0.75 | Visibile al dorso foglia, melata | + +### Macchie Circolari / Anulari + +| Patogeno | Colture | Confidence | Trattamento | +|----------|---------|-----------|-----------| +| **Septoria / Cercospora** (funghi) | Pomodoro, Lattuga, Carota | 0.80 | Rame, rimozione foglie infette | +| Alternaria | Pomodoro, Melanzana, Carota | 0.75 | Rame + Zolfo, areazione | +| Marciume secco (Colletotrichum) | Peperone, Melanzana, Pomodoro | 0.70 | Rame, rimozione, gestione umidità | + +### Insetti Visibili + +| Insetto | Colture | Danno | Trattamento Bio | Soglia Intervento | +|---------|---------|-------|---|---| +| **Afidi** | Lattuga, Cavolo, Ortaggi foglia | Foglie arricciate, ingiallimento | Neem, spray insecticida bio, coccinelle | > 50 afidi/foglia | +| **Ragnetto rosso** | Zucchina, Melone, Fagiolo | Punteggiature, ragnatela | Neem, aumento umidità, fitoseidi | Visibilità macroscopica | +| **Mosca bianca** | Pomodoro, Peperone, Melanzana | Decolorazione, melata | Neem, trappole gialle adesive | Cattura 5+/trappola/gg | +| **Lepidotteri** (Tuta, Diaphania) | Pomodoro, Zucchina, Cavolo | Gallerie, buchi, marciume | Bacillus thuringiensis (Bt), feromoni | Cattura 5+/trappola | + +--- + +## Trattamenti Biologici Autorizzati (Italia - Allegato B D.M. 18527/2012) + +### Rame (CuSO₄, ossicloruro, ossido) + +**Uso:** Fungicida preventivo per peronospora, batteriosi, oidio (supporto) + +**Dosi:** 5-10 g/L (es. 5kg/1000L acqua) + +**Timing:** +- Preventivo: inizio condizioni favorevoli (pioggia, umidità persistente) +- Curativo: inizio sintomi, max 3 applicazioni/stagione +- Frequenza: 7-10 giorni se condizioni risky + +**DPI:** Guanti, respiratore (polvere), abbigliamento coperto + +**Carenza:** 14 giorni (Pomodoro, Peperone) + +**Meteo:** No spray se vento > 5 kn, pioggia imminente < 2h, T < 10°C + +**Limitazioni:** Bio? Sì (ECOCERT); Tossicità pesci sì (non usare vicino acqua) + +--- + +### Zolfo + +**Uso:** Fungicida preventivo per oidio, acaro rosso + +**Dosi:** 10-15 g/L + +**Timing:** Settimanale durante rischio oidio (estate, alta umidità) + +**DPI:** Guanti, occhiali + +**Carenza:** 7 giorni + +**Meteo:** No spray T > 28°C (fitotossico), no vento forte + +**Bio:** Sì + +--- + +### Olio di Neem (Azadirachtin) + +**Uso:** Insetticida + fungicida light (afidi, ragnetto, oidio) + +**Dosi:** 10-20 ml/L + +**Timing:** Sera (no sole diretto), repeat ogni 7-10 gg se necessario + +**DPI:** Guanti, abbigliamento coperto + +**Carenza:** 1-3 giorni (da prodotto specifico) + +**Meteo:** No pioggia imminente < 4h (dilavare) + +**Bio:** Sì + +**Note:** Limitato vs. forti infestazioni; better per prevenzione + +--- + +### Bacillus subtilis / Bacillus thuringiensis (Bt) + +**Uso:** +- B. subtilis: Fungicida biologico (peronospora, oidio) +- B. thuringiensis: Insetticida biologico (lepidotteri - Tuta, Diaphania) + +**Dosi:** 10-15 ml/L (Bacillus), 5-10 ml/L (Bt) + +**Timing:** +- B. subtilis: Inizio sintomi o preventivo durante pioggia +- Bt: Non appena larve visibili (generazioni giovanili più sensibili) + +**DPI:** Minimal (biologico) + +**Carenza:** 0-3 giorni (leggi etichetta) + +**Meteo:** Pioggia post-applicazione riduce efficacia (rinnovare) + +**Bio:** Sì + +--- + +### Solfato di Rame + Calce (Bordolese) + +**Uso:** Fungicida preventivo multi-uso (peronospora, batteriosi, oidio) + +**Dosi:** 15-20 g/L (formula 1-1-50: 1 rame + 1 calce + 50 acqua) + +**Timing:** Inizio stagione preventivo, repeat ogni 10-14 gg + +**Carenza:** 14 giorni + +**DPI:** Come rame + +**Bio:** Sì + +**Note:** Meno fitotossico che rame puro, migliore adesione + +--- + +## Piano Preventivo Biologico (Pomodoro - Esempio) + +### Primavera (Aprile-Maggio) + +- **Aprile:** Check semenzaio, areazione buona, no ristagni +- **Inizio maggio:** Primo spray rame se pioggia frequente (prevenzione peronospora) + +### Estate (Giugno-Agosto) + +- **Giugno:** Settimanale rame (lun) + Bacillus subtilis (gio) se pioggia/umidità +- **Luglio-Agosto:** + - Monitoraggio afidi (trappole gialle) + - Se afidi > soglia: Neem sera + - Se peronospora vista: Rame + rimozione foglie infette + - Areazione buona, irrigazione a goccia (no foglia bagnata) + +### Autunno (Settembre-Ottobre) + +- **Settembre:** Ridurre rame (umidità cala), continue Neem se afidi +- **Ottobre:** Fine raccolte, rimozione piante (sanificazione) + +--- + +## Safety Checklist + +**Prima di qualsiasi trattamento:** + +- ✓ Identifica patogeno con confidence > 0.70 (altrimenti foto a esperto) +- ✓ Verifica meteo (no vento > 5 kn, no pioggia imminente) +- ✓ Indossa DPI appropriato (guanti minim, respiratore se polvere) +- ✓ Check carenza (raccolta sicura?) +- ✓ Non mischiare trattamenti (verifica compatibilità) +- ✓ Log trattamento (data, prodotto, dose, colture, risultati) + +--- + +## Fallback & Escalation + +- **Confidence < 0.60:** Chiedi foto a esperto; intanto no spray, solo prevenzione (areazione, igiene) +- **Resistenza sospetta:** Prova trattamento alternativo o rotazione +- **Danno collaterale:** STOP immediato; valuta altra strategia +- **Efficacia zero dopo 2-3 applicazioni:** Escalate a consulenza tecnica + +--- + +**Ultima revisione:** 2026-03-06 +**Fonte:** D.M. 18527/2012 (aggiornamenti periodici) +**Note:** Per norme specifiche regione/paese consultare autorità locali (MIPAAF, Regione) diff --git a/references/meteo_soglie.md b/references/meteo_soglie.md new file mode 100644 index 0000000..a13153a --- /dev/null +++ b/references/meteo_soglie.md @@ -0,0 +1,211 @@ +# Soglie Meteo & Decisioni Operative + +Trigger per decisioni meteo-aware in calendari e irrigazione. + +--- + +## Vento (Velocità kn — Knots) + +### Classificazione & Impatto + +| Velocità | Scala Beaufort | Effetto su Orto | Irrigazione | Trapianto | Trattamenti | +|----------|---|---|---|---|---| +| < 3 kn | Calmo/Brezza lieve | Ideale | ✅ OK | ✅ OK | ✅ OK | +| 3-5 kn | Brezza moderata | Bagnato irrig. ridotto | ✅ OK | ✅ OK | ✅ OK | +| **5-8 kn** | **Brezza fresca** | **Piante oscillano** | ✅ OK (goccia) | ⚠️ DEFER spray | ⚠️ DEFER spray fogliare | +| **> 8 kn** | **Vento moderato** | **Danno stress meccanico** | ⚠️ SOSPENDI sprinkler | ❌ DEFER trapianto | ❌ ANNULLA spray | +| > 15 kn | Vento forte | Danno foglie, rami | ❌ STOP tutto | ❌ NO | ❌ NO | + +### Decisione Operativa + +**IF vento_forecast > 5 kn:** +- Goccia: OK (bassa deriva) +- Sprinkler/Microspruzzatore: SOSPENDI (evaporazione, deriva) + +**IF vento > 8 kn:** +- NO trattamenti fogliari (inefficace, danno piante) +- NO trapianto (stress meccanico, secchezza radici) +- NO sprinkler + +**Mitigazione:** +- Piantumare frangivento (siepi) lato dominante +- Schermi temporanei (juta, telo) per trapianti giovani +- Programmare lavori con vento basso (mattina presto) + +--- + +## Pioggia + +### Precipitazione Prevista + +| Quantità | Impatto | Irrigazione | Trapianto | Trattamenti | +|----------|--------|---|---|---| +| 0 mm | Sec | ✅ Irriga normale | ✅ OK | ✅ OK | +| 1-5 mm | Tracce | ✅ Irriga normale | ✅ OK | ✅ OK | +| 5-10 mm | Leggera | ⚠️ RIDUCI 50% | ✅ OK | ⚠️ ATTENDI 4h post | +| **10-20 mm** | **Moderata** | **SKIP 24-48h** | ✅ OK (moisture) | ❌ ANNULLA | +| **> 20 mm** | **Forte** | **SKIP 48-72h** | ⚠️ ATTENDI (fango) | ❌ NO | +| > 50 mm | Alluvione | ❌ Risk inondazione | ❌ STOP | ❌ NO | + +### Calcolo Effective Rainfall + +``` +Effective (mm) = Forecast precip × 0.85 + +Esempio: 15 mm previsti = 12.75 mm infiltrazione reale + +Zone ALTA (fabbisogno ~6 mm/gg): + IF 12.75 > 6 × 0.7 (70% coverage) → SKIP irrigazione + +Zone MEDIA (fabbisogno ~4 mm/gg): + IF 12.75 > 4 × 0.7 → SKIP +``` + +### Timing Rilevante + +**Pioggia durante ore trattamento (fogliare):** +- IF pioggia in arrivo < 2 ore → ANNULLA (dilavare) +- IF pioggia just passed, foglie bagnate → ATTENDI asciugatura (4-6 h) + +**Pioggia post-semina:** +- Benefica (acqua, contatto semi-suolo) +- No action + +--- + +## Gelo & Temperature Basse + +### Frost Risk + +| Temp Minima | Colture Sensibili | Azione | Timing | +|---|---|---|---| +| **> 10°C** | Tutte robuste | ✅ Normal | Qualsiasi | +| **5-10°C** | Pomodoro, Peperone, Melanzana, Basilico | ⚠️ MONITOR | No trapianto | +| **0-5°C** | Tutti ortaggi | ⚠️ MONITOR | No trapianto | +| **< 0°C (gelo)** | **Tutte colture giovani** | **❌ PROTEGGERE / DIFFERISCI** | **Frost alert** | + +### Protezione Gelo + +**Preventivo (T < 0°C previsto):** + +1. **Irrigazione mattina (paradossale ma efficace)** + - Acqua suolo rilascia calore latente + - Protegge radici + - Timing: 6-7 am (prima alba fredda) + +2. **Coperture (tessuto non tessuto)** + - TNT 17g/m² protegge -2 a -3°C + - TNT 40g/m² protegge -4 a -6°C + - Applicare sera, togliere mattina + +3. **Reti frangivento** + - Riduce movimento aria fredda + - Installa lato Nord/vento dominante + +4. **Fuochi (agricoltura tradizionale)** + - Vecchia tecnica, scarsa in orto moderno + - Riscalda aria locale (- di 1-2°C) + +--- + +## Caldo & Stress Termico + +### Temperature Alte + +| Temp Max | Effetto | Irrigazione | Frequenza | Note | +|---|---|---|---|---| +| 25-30°C | Normale crescita | Normale | Standard | Peak stage | +| **30-35°C** | **Stress iniziale** | **AUMENTA 25%** | **Aggiungi 1 applicazione** | Polline sterile se > 30°C su Solanaceae | +| **> 35°C** | **Stress severo** | **AUMENTA 50%** | **Split 3x/gg (6am, 12pm, 6pm)** | Wilting, aborto fiori | +| **> 40°C** | **Danno acuto** | **Massimo + protezione** | **Continuous o semi-continuous** | Danno permanente | + +### Mitigazione Caldo + +1. **Irrigazione** + - Aumenta frequenza (non durata singola) + - Split su più volte (riduce evaporazione) + +2. **Mulching** (2-5 cm) + - Riduce T suolo 5-10°C + - Mantiene umidità + - Usa paglia, scarti compost + +3. **Ombreggiamento** (35-50% shade cloth) + - Riduce T aria locale 3-5°C + - Applicare Nord/Ovest (lato caldo) + - Colture foglia benefit; frutti ok + +4. **Ventilazione** + - Rimuovi foglie basse (circolazione aria) + - Schermi frangivento ridotti + +--- + +## Umidità Relativa (UR) + +### Relazione Malattie + +| UR | Funghi Risk | Insetti Risk | Azione | +|---|---|---|---| +| < 60% | Basso | Moderato (ragni) | Monitor | +| **60-85%** | **ALTO** (peronospora, oidio) | Moderato | Areazione | +| **> 85%** | **MOLTO ALTO** | Alto (afidi) | Spray preventivo | +| Notte: > 90% | Critico (free moisture) | Alto | Goccia (no foglia) | + +### Prevenzione Umidità Alta + +1. **Irrigazione goccia** (no bagnatura foglia) +2. **Areazione** (rimuovi foglie basse, spacing) +3. **Drenaggio** suolo (no ristagni) +4. **Timing sera** (prima UR notte scende, no free moisture foglie) +5. **Trattamenti preventivi rame** (se UR > 75% ricorrente) + +--- + +## Combinazioni Critiche (Meteo Sinergico) + +| Scenario | Condizioni | Risk | Azione | +|----------|-----------|------|--------| +| **Tempesta** | Pioggia > 20 mm + Vento > 10 kn + T < 15°C | Danno meccanico + fango | PROTEGGERE trapianti; check drenaggio post | +| **Onda caldo umida** | T > 35°C + UR > 85% | Fungo acuto + stress | Spray rame + irrigazione; areazione max | +| **Gelo umido** | T < 0°C + UR > 90% | Frost burn, ghiaccio foglie | TNT + no bagnare; fuochi? | +| **Siccità prolungata** | T > 30°C + UR < 50% + Vento > 5kn | Appassimento, ragnetti | Irrigazione massima; mulch; ombra | + +--- + +## Tabella Rapida Decisioni (Tool per Codex) + +### Daily Meteo Decision Matrix + +``` +METEO CHECK (ogni mattina 6:00): + +[ ] Vento oggi > 5 kn? → NO spray +[ ] Pioggia prevista > 10 mm? → SKIP irrigazione +[ ] Temp min < 0°C previst? → PROTEGGERE gelo +[ ] Temp max > 35°C? → IRRIGA massimo +[ ] UR notte > 90%? → NO foliare (goccia ok) +[ ] Vento > 8 kn? → NO trapianto/spray + +→ Genera DAILY DECISION per ciascun task nel calendario +``` + +--- + +## Fonte Dati Meteo + +**API Consigliato:** wttr.in (open-meteo fallback) + +**Parametri estratti:** +- Tmax, Tmin (°C) +- Precip forecast (mm, %) +- Wind speed (kn) +- Humidity (%) +- Frost risk (T < 0°C) + +**Update:** Giornaliero (6:00 am), rolling 7-10 giorni + +--- + +**Ultima revisione:** 2026-03-06 +**Integrazione:** Usare in orto-meteo-decisioni e orto-calendario per reschedule task diff --git a/references/qa_checklist.md b/references/qa_checklist.md new file mode 100644 index 0000000..b51a774 --- /dev/null +++ b/references/qa_checklist.md @@ -0,0 +1,362 @@ +# QA Checklist — Validazione PlanBundle + +Criteri e checklist per validare completezza e coerenza di piano prima della pubblicazione. + +--- + +## QA Score Calculation + +**Formula:** +``` +QA_Score = (Checks_Pass / Total_Checks) × Weight_Pass + +0.90-1.00: ✅ Excellent (publish) +0.70-0.89: ✅ Good (publish with warnings) +0.50-0.69: ⚠️ Marginal (request review/improvements) +< 0.50: ❌ Fail (do not publish; request major fixes) +``` + +--- + +## Sezione 1: Data Completeness + +### 1.1 Garden Configuration + +- [ ] **orto_id** non vuoto, univoco in registry +- [ ] **Location** (provincia + regione) valide (Italia) +- [ ] **Coordinates** (lat/lon) within bounds (-90 a 90, -180 a 180) +- [ ] **Area (m²)** positivo, > 0.1 m² (sensible) +- [ ] **Clima zone** inferito correttamente (nord/centro/sud) +- [ ] **Soil type** documentato (se possibile) +- [ ] **Sun exposure** documentato (ore/giorno) +- [ ] **Drainage** valutato (buono/mediocre/scarso) + +**Validation:** +```python +if not (lat >= -90 and lat <= 90): error = "Invalid latitude" +if not (lon >= -180 and lon <= 180): error = "Invalid longitude" +if area <= 0: error = "Area must be positive" +``` + +**Impact:** ⭐⭐⭐ (critical for all downstream skills) + +--- + +### 1.2 Community Profile + +- [ ] **n_persone** > 0 +- [ ] **Dieta** definita (vegano/vegetariano/onnivoro/altro) +- [ ] **Preferenze colture** lista non vuota (min. 3) +- [ ] **Colture evitamento** lista (se allergie) +- [ ] **Esperienza** livello segnato (nessuna/dilettante/esperto) +- [ ] **Tempo disponibile** (ore/settimana) > 0 +- [ ] **Accessibility requirements** documentati (se disabilità) + +**Validation:** +```python +if n_persone <= 0: error = "Zero people" +if not any(diet in ["vegano", "vegetariano", "onnivoro"]): + warning = "Unknown diet" +if not preferenze_colture: error = "No crop preference" +``` + +**Impact:** ⭐⭐ (affect crop selection, layout) + +--- + +## Sezione 2: Agronomic Consistency + +### 2.1 Crop Diversity + +**Rule:** Min. 4 gruppi botanici rappresentati (spread nutritivo) + +| Gruppo | Colture Tipiche | Min Presenti | +|--------|---|---| +| Solanaceae | Pomodoro, Peperone, Melanzana | 1+ | +| Brassicaceae | Cavolo, Broccoli, Cavolfiore | 1+ | +| Leguminosae | Fagiolo, Pisello, Fava | 1+ | +| Cucurbitaceae | Zucchina, Melone, Cocomero | 1+ | +| Leafy/Erbette | Lattuga, Spinacio, Cavolo riccio | 1+ | +| Aromatiche | Basilico, Parsley, Oregano | 0+ (opzionale) | +| Root | Carota, Cipolla, Barbabietola | 1+ | + +**Check:** +```python +groups_present = len([g for g in GROUPS if count[g] > 0]) +if groups_present < 4: flag = "⚠️ Low diversity" +``` + +**Impact:** ⭐⭐⭐ (nutritional balance, pest management) + +--- + +### 2.2 Rotation Consistency + +**Rule:** No stessa famiglia botanica per 2+ anni su stessa aiuola + +**Check:** +```python +for aiuola in layout: + for year in [year1, year2, year3]: + crops = layout[aiuola][year] + families = [get_family(c) for c in crops] + if len(families) != len(set(families)): # Duplicates + error = f"Rotation fail {aiuola} year {year}" +``` + +**Fallback:** Se spazio piccolo (< 20 m²), tollerare 2 anni (vs. 3) + +**Impact:** ⭐⭐⭐ (disease/pest control) + +--- + +### 2.3 Nutritional Coverage + +**Rule:** Piano colture deve coprire ≥ 80% fabbisogno dieta user + +**Calcolo:** +``` +For each dietary group (proteins, carbs, vit, minerals): + estimated_supply = sum(crop_yield × nutritional_contribution) + target = user_daily × days_season + coverage = estimated_supply / target + +if coverage >= 0.80: ✅ OK +elif coverage >= 0.60: ⚠️ Marginal +else: ❌ Insufficient +``` + +**Example (Vegano, 3 persone, estate):** +``` +Proteins (legumi): + Fagiolo 10 kg × 25g protein/100g = 2.5 kg protein + Target (3pp × 60g/gg × 90gg) = 16.2 kg + Coverage = 2.5 / 16.2 = 15% ❌ INSUFFICIENT + +Recommendation: Aggiungere 2ª coltura legume (Pisello autunno) +``` + +**Impact:** ⭐⭐ (user satisfaction, sustainability) + +--- + +## Sezione 3: Spatial Consistency + +### 3.1 Layout Coherence + +- [ ] **Tutte colture** da piano_colture_annuale sono assegnate a aiuole +- [ ] **No overlaps:** Stessa aiuola non ha > 100% area +- [ ] **Consociazioni:** % positive > antagonismi nella stessa aiuola +- [ ] **Accessibilità:** Sentieri >= min requirement (0.5-0.7 m) +- [ ] **Sun exposure:** Colture assegnate a zone corrette (pieno sole, ombra, ecc.) + +**Check:** +```python +total_assigned = sum(area for crop in layout) +if total_assigned > available_area: + error = f"Over-allocated: {total_assigned} > {available_area}" + +for aiuola in layout: + positives = count_positive_consociations(aiuola) + negatives = count_negative_consociations(aiuola) + if positives < negatives: + warning = f"Aiuola {aiuola}: more antagonismi than positive" +``` + +**Impact:** ⭐⭐⭐ (physical feasibility, crop performance) + +--- + +### 3.2 Water Zone Coherence + +- [ ] **Zone ALTA (MEDIA, BASSA)** assegnate coerentemente da layout +- [ ] **No mix:** Stessa zona irrigazione non ha mix ALTA + BASSA +- [ ] **Emitters**: Ciascuna zona ha emitter assegnato + +**Check:** +```python +for zone in irrigation_zones: + crops_zone = [c for c in layout if zone_assigned(c) == zone] + water_classes = [get_water_class(c) for c in crops_zone] + if len(set(water_classes)) > 2: # More than 2 different classes + warning = f"Zone {zone}: mixed water needs (may need adjustment)" +``` + +**Impact:** ⭐⭐⭐ (irrigation efficiency, cost) + +--- + +## Sezione 4: Water & Irrigation + +### 4.1 Water Adequacy + +**Rule:** Total water demand ≤ 110% source capacity (buffer 10%) + +**Calc:** +``` +Demand (mm/season) = sum(ET0 × Kc for each month × area_m2) +Rainfall (mm) = avg rainfall region × season_length +Irrigation_deficit = Demand - Rainfall + +Source capacity (L/day) × season_length (days) × 1000 (L to mm on area) + / area_m2 += Max available (mm/season) + +if Irrigation_deficit <= Max_available: ✅ OK +elif Irrigation_deficit <= 1.1 × Max_available: ⚠️ Tight (need mulch) +else: ❌ INSUFFICIENT +``` + +**Mitigation (if deficit):** +- Mulching pesante (-20-30% ET) +- Raccolta pluviale (add 50-100 L) +- Shift crops (meno ALTA, più BASSA) + +**Impact:** ⭐⭐⭐ (feasibility, cost) + +--- + +### 4.2 System Pressure + +**Rule:** Pressione sistema deve essere 0.5-1.5 bar (goccia) o 2-3 bar (sprinkler) + +**Check:** +```python +emitters_per_zone = plan.irrigation[zone].emitters +total_flow = sum(e.flow for e in emitters_per_zone) +if source_pressure < min_required: + warning = "Low pressure: may need pump or regulator" +elif source_pressure > max_required: + warning = "High pressure: may damage emitters" +``` + +**Impact:** ⭐⭐ (durability, efficiency) + +--- + +## Sezione 5: Temporal (Calendar) + +### 5.1 Seasonal Alignment + +- [ ] **Tutte colture** hanno semina/trapianto entro frost windows +- [ ] **Raccolta** prima di gelo primo (se sensitive) +- [ ] **Successioni** (es. Lattuga 3x) scheduled con spacing +- [ ] **Task frequency** total time ≤ available hours/week + +**Check:** +```python +for crop in piano_colture: + if sowing_date < last_frost and crop_is_frost_sensitive: + error = f"{crop} planted before frost date" + + if harvest_date > first_frost and crop_is_frost_sensitive: + error = f"{crop} harvest after frost" + +# Time check +total_weekly_hours = sum(task.hours for task in calendario) +if total_weekly_hours > user_available_hours: + warning = f"Tasks exceed available time by {excess} hours/week" + suggestion = "Reduce scope or automate irrigation" +``` + +**Impact:** ⭐⭐⭐ (feasibility, success) + +--- + +### 5.2 Meteo Sensitivity Tagging + +- [ ] **Trapianti** tagged METEO_CRITICA +- [ ] **Trattamenti fogliari** tagged METEO_DEFER +- [ ] **Raccolta** no tag (non-deferent) +- [ ] **Irrigazione** tagged METEO_SKIP + +**Check:** +```python +for task in calendario: + if task.type == "trapianto": + if not task.meteo_tag: warning = "Trapianto non taggato" + if task.type == "spray_fogliare": + if task.meteo_tag != "METEO_DEFER": error = "Wrong tag" +``` + +**Impact:** ⭐⭐ (weather adaptation) + +--- + +## Sezione 6: Disease & Safety + +### 6.1 Preventive Coverage + +- [ ] **Alto-risk crops** (Pomodoro, Melanzana, Cavolo) hanno piano preventivo +- [ ] **Treatments** (rame, zolfo, bio) sono autorizzati Italia +- [ ] **DPI** richiesti documentati +- [ ] **Carenza** (raccolta timing) rispettate + +**Check:** +```python +high_risk = ["Pomodoro", "Melanzana", "Cavolo"] +for crop in piano_colture: + if crop in high_risk: + if not plan_fitopatologo[crop].preventive: + warning = f"No preventive plan for high-risk {crop}" +``` + +**Impact:** ⭐⭐⭐ (disease management, safety) + +--- + +### 6.2 DPI & Safety + +- [ ] **Treatments** sono bio-authorized (D.M. 18527/2012) o IPM +- [ ] **DPI required** documentati (guanti, respiratore, ecc.) +- [ ] **Warnings** per allergie/sensibilità registrati + +**Check:** +```python +for treatment in piano_fitopatologo.treatments: + if treatment not in APPROVED_BIO_LIST: + error = f"Unapproved treatment: {treatment}" +``` + +**Impact:** ⭐⭐⭐ (legal, health) + +--- + +## Sezione 7: QA Summary Report + +**Output Model:** + +```markdown +# QA Report — [ORTO_ID] + +## Score Card + +| Check | Status | Weight | Result | +|-------|--------|--------|--------| +| Data Completeness | ✅ 10/10 | 15% | 1.5 | +| Agronomic | ✅ 8/9 | 20% | 1.78 | +| Spatial | ✅ 9/10 | 15% | 1.35 | +| Water | ⚠️ 7/10 | 20% | 1.4 | +| Temporal | ✅ 10/10 | 15% | 1.5 | +| Disease | ✅ 8/9 | 15% | 1.33 | +| **OVERALL** | | | **0.91** | + +## Recommendations + +1. ⚠️ Water tight (105% capacity) → Apply mulch (-25% ET) +2. ✅ Crop diversity excellent (6 groups) +3. ✅ Rotation coherent 3-year +4. ⚠️ Time: Weekly tasks 6.5 hrs (vs. 5 available) → Automate irrigation + +## Decision + +✅ **APPROVED** (Score 0.91 — Excellent) +→ Publish to user with water mitigation note + +--- +``` + +--- + +**Ultima revisione:** 2026-03-06 +**Integrazione:** orto-orchestratore Phase 3 (Data Validation)