🌱 Orto Skills Suite v1.0 — Initial Release

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.
This commit is contained in:
Noe 2026-03-06 20:25:01 +01:00
commit 08a6ffe058
39 changed files with 8634 additions and 0 deletions

View file

@ -0,0 +1,392 @@
---
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