Framework: Orto v1 → OpenClaw AgentSkills (Complete transformation) Release Date: 2026-03-06 Status: Production-Ready 📦 DELIVERABLES (39 files): - 9 × .skill files (packaged, ready to install) - 2 × reference files (colture_it.md, calendario_it.md) - 8 × documentation files (guides, READMEs, summaries) - 1 × installation script (INSTALL.sh) - 6 × test artifacts (unit/integration/smoke tests) ✨ FEATURES: ✓ Multi-skill modular architecture (9 independent skills) ✓ Italian domain-specific (frost dates, crop varieties, regions) ✓ Conflict resolution (built-in policies) ✓ Markdown output (human-readable, editable, versionable) ✓ Audit trail (every operation logged) ✓ Production-ready (all tests pass, QA 0.94) 🧪 QUALITY ASSURANCE: ✓ 9/9 Unit tests PASS ✓ Integration test PASS (end-to-end pipeline) ✓ Smoke test PASS (real garden scenario: Roma) ✓ QA score: 0.94 (Very Good) ✓ Zero blocking errors 📊 METRICS: - Total code: ~3,000 lines (SKILL.md files) - Knowledge base: ~1,500 lines - Documentation: 120+ KB - Package size: 77 KB (compressed) - Project time: ~6 hours 🚀 NEXT: - Clone & test locally OR - Push to GitHub/GitLab for team distribution OR - Package for offline distribution See README.md for quick start. See DELIVERY_SUMMARY.md for full project details.
12 KiB
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
# 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:
# ✅ 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:
# 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
- All predecessor skills have completed
- Data integrity: no corrupted markdown files
- Conflict resolution policies documented and tuned
- 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