--- name: orto-orchestratore description: Orchestrate multi-skill workflow, resolve conflicts between plans, validate data completeness, and merge into unified PlanBundle. Use when: (1) running full seasonal planning pipeline end-to-end, (2) handling conflicts (irrigation zone vs. consociations, calendar task vs. weather forecast), (3) ensuring QA checks pass before finalizing, (4) generating weekly operational briefing for users. Outputs: Merged PlanBundle (master markdown document) with all plans integrated, audit log, weekly briefing ready for publication. --- # Orto Orchestratore — Master Workflow Orchestration Coordinate all planning skills, resolve conflicts, validate constraints, merge into unified plan. ## When to Use This Skill - **Full planning:** After onboarding, run complete pipeline to generate master plan - **Weekly briefing:** Merge calendario + meteo-decisioni + current status → actionable weekly task list - **Conflict resolution:** When skills produce conflicting recommendations - **Plan review:** QA validation before publishing plan to user ## Process ### Phase 1: Pre-Flight Checklist **Verify all prerequisite skills are complete:** ``` ✓ orto-init: Garden project created, config registered ✓ orto-onboarding: GardenConfig + CommunityProfile complete and validated ✓ orto-agronomo: Piano colture annuale completed ✓ orto-calendario: Calendario operativo (weekly tasks) completed ✓ orto-irrigazione: Sistema irrigazione designed ✓ orto-layout: Aiuole assigned, zones defined ✓ orto-meteo-decisioni: Weekly forecast & decisions available If ANY skill incomplete → PAUSE and notify user (missing data) ``` ### Phase 2: Conflict Detection & Resolution **Check for known conflict patterns:** | Conflict Type | Detection | Resolution Policy | |---------------|-----------|-------------------| | **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) ``` ### Phase 3: Data Validation (QA Checklist) **Run comprehensive checks:** | Check | Rule | Status | Fix | |-------|------|--------|-----| | **Crop diversity** | ≥4 groups (Solanaceae, Brassica, Legume, Leafy, Aromatica) | PASS | ✓ | | **Nutritional balance** | Diet profile coverage ≥80% | PASS | ✓ | | **Water adequacy** | Planned rainfall + irrigation ≥ crop demand | WARN | ⚠️ Summer deficit 15%; mitigation: mulching | | **Rotation consistency** | No same family 2+ years per bed | PASS | ✓ | | **Accessibility** | Paths ≥ requirement (if needed) | PASS | ✓ | | **Maintenance time** | Total weekly hours ≤ available | PASS | ✓ | | **Consociations** | % positive > antagonismi | PASS | ✓ 85% positive | | **Forecast accuracy** | Weather data source current | PASS | ✓ wttr.in (3-5 day high conf.) | **Summary:** QA SCORE = 0.92 (Very Good). Proceed to merge. ### Phase 4: Merge Data Sources **Aggregate outputs from all skills into unified markdown structure:** **File:** `dati/PlanBundle_Master.md` ```markdown # PLAN BUNDLE — [ORTO_ID] — [YEAR] **Generated:** [TODAY] **Confidence:** 0.92 (Very Good) **Status:** Ready for Publication --- ## 1. GARDEN CONFIGURATION (Copy from GardenConfig) - Location: [PROVINCIA], [REGIONE] - Area: [AREA] m² - Zone: [ZONE] - Soil: [SOIL] - Sun: [HOURS] h/day ## 2. COMMUNITY PROFILE (Copy from CommunityProfile) - Persone: [N] - Dieta: [DIET_LIST] - Esperienza: [LEVEL] - Tempo: [HOURS]/settimana - Accessibility: [NEEDS] ## 3. CROP PLAN (Excerpt from Piano Colture Annuale) - Total crops: 12 varietà - Area allocato: 25 m² - Est. yield: 120 kg/stagione - Rotazione: Multi-year plan included ## 4. LAYOUT PLAN (Excerpt from Aiuole Dimensioni) - Beds: 4 (2 rialzate + 2 file) - Zone Water: 3 (ALTA, MEDIA, BASSA) - Paths: Main 0.7m, side 0.5m - Accessibility: ✓ Conforme ## 5. IRRIGATION SYSTEM (Excerpt from Sistema Irrigazione) - Emitters: Drip + microsprayers - Zones: 3 (ALTA/MEDIA/BASSA) - Baseline: Daily (ALTA) ~ 2-3x/sett (BASSA) - Automation: [Timer/Smart] ## 6. SEASONAL CALENDAR (Link to Calendario Operativo) - Weekly tasks: 52 weeks × avg 3-5 tasks = ~200 annual tasks - Meteo-sensitive tasks: ~40 tasks (tagged for rescheduling) - Critical dates: 12 (transplants, harvests) ## 7. DISEASE PREVENTION (Excerpt from 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 to drought-tolerant crops (Carota, Cipolla, Legume) → Reduce Pomodoro area by 30% - **RECOMMENDATION:** Accept 15% water deficit; use heavy mulching + soil compost (improves retention) --- ## Error Handling | Error | Fallback | |-------|----------| | Skill output missing | Use previous year plan (if available) or rule-based fallback | | Conflicting recommendations | List top 3 options, let user choose | | QA failure (critical) | DO NOT PUBLISH; flag and request expert review | ## Assumptions 1. All predecessor skills have completed 2. Data integrity: no corrupted markdown files 3. Conflict resolution policies documented and tuned 4. User notification channel available (email/chat) ## Validation Checklist - ✓ All skills outputs loaded and parsed - ✓ Conflicts identified and resolved - ✓ QA score ≥ 0.70 (acceptable) - ✓ Merged PlanBundle coherent and complete - ✓ Weekly briefing generated and actionable - ✓ Audit trail documented - ✓ User notification ready --- **Skill: orto-orchestratore** | Version 1.0 | Status: Production-Ready