From a739282ae9e5cd231033649c341b9b4beb42fa45 Mon Sep 17 00:00:00 2001 From: AgentePotente Date: Sat, 7 Mar 2026 11:14:58 +0100 Subject: [PATCH] Fase 4 (orto_v1): 3 skills aggiuntive generate (totale 7/9 = 78%) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 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) --- test-orto_v1/skills/orto-layout/SKILL.md | 120 ++++++++++++++++ .../skills/orto-meteo-decisioni/SKILL.md | 112 +++++++++++++++ .../skills/orto-orchestratore/SKILL.md | 134 ++++++++++++++++++ 3 files changed, 366 insertions(+) create mode 100644 test-orto_v1/skills/orto-layout/SKILL.md create mode 100644 test-orto_v1/skills/orto-meteo-decisioni/SKILL.md create mode 100644 test-orto_v1/skills/orto-orchestratore/SKILL.md diff --git a/test-orto_v1/skills/orto-layout/SKILL.md b/test-orto_v1/skills/orto-layout/SKILL.md new file mode 100644 index 0000000..a617966 --- /dev/null +++ b/test-orto_v1/skills/orto-layout/SKILL.md @@ -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 — + +**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_ diff --git a/test-orto_v1/skills/orto-meteo-decisioni/SKILL.md b/test-orto_v1/skills/orto-meteo-decisioni/SKILL.md new file mode 100644 index 0000000..ba7c504 --- /dev/null +++ b/test-orto_v1/skills/orto-meteo-decisioni/SKILL.md @@ -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 — + +**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_ diff --git a/test-orto_v1/skills/orto-orchestratore/SKILL.md b/test-orto_v1/skills/orto-orchestratore/SKILL.md new file mode 100644 index 0000000..b69e5c2 --- /dev/null +++ b/test-orto_v1/skills/orto-orchestratore/SKILL.md @@ -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 — + +**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_