🌱 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:
commit
08a6ffe058
39 changed files with 8634 additions and 0 deletions
392
build/orto-orchestratore/SKILL.md
Normal file
392
build/orto-orchestratore/SKILL.md
Normal 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
|
||||
Loading…
Add table
Add a link
Reference in a new issue