orto-skills/build/orto-onboarding/SKILL.md
Noe 08a6ffe058 🌱 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.
2026-03-06 20:25:01 +01:00

12 KiB


name: orto-onboarding description: Collect comprehensive garden profile via 5 questionnaire blocks. Use when: (1) gathering garden specifications after orto-init (space, soil, irrigation capabilities), (2) understanding user/community diet preferences and constraints, (3) defining maintenance availability and safety/accessibility requirements, (4) preparing validated data for seasonal planning (orto-agronomo, orto-calendario, etc.). Outputs: Filled questionnaire blocks (Markdown), validated GardenConfig and CommunityProfile, ready for planning workflow.

Orto Onboarding — 5-Block Garden Profile Collection

Collect comprehensive garden and community information through a structured 5-block questionnaire. This is the second step after orto-init.

When to Use This Skill

  • Post-init: User has initialized a garden (orto-init complete)
  • Profile collection: Gather details about space, environment, community, diet, constraints
  • Planning preparation: Collect data needed for seasonal planning, crop selection, layout design
  • Accessibility review: Ensure design respects accessibility, safety, and maintenance constraints

Process Overview

5 Blocks, Sequential or Parallel:

  1. Blocco 1 — Localizzazione (location, access, property type)
  2. Blocco 2 — Layout Spazio (area, soil, sun exposure, topography)
  3. Blocco 3 — Irrigazione (water availability, infrastructure, constraints)
  4. Blocco 4 — Comunità & Dieta (user/community, dietary preferences, allergies)
  5. Blocco 5 — Obiettivi & Vincoli (maintenance time, goals, seasonal preferences)

Typical Flow:

  • Codex presents each block
  • User fills in details (interactively or batch markdown edit)
  • Codex validates inputs
  • On completion: merge into GardenConfig + CommunityProfile markdown files

Block Specifications

Blocco 1 — Localizzazione

Purpose: Confirm location details and accessibility.

Questions:

Q Type Default Validation
Q1.1 Confirm provincia Auto-filled from init Read-only or allow edit
Q1.2 Confirm regione Auto-filled from init Read-only or allow edit
Q1.3 Indirizzo (opz.) None String, optional
Q1.4 Accessibilità Choose 3 options Enum: easy/moderate/difficult
Q1.5 Proprietà/Gestione Choose 4 options Enum: private/community/leased/other
Q1.6 Note/Descrizione Free text Optional

Outputs:

  • localizzazione.provincia
  • localizzazione.regione
  • localizzazione.accessibilita
  • localizzazione.tipo_proprieta

Blocco 2 — Layout Spazio

Purpose: Define space constraints, soil, sun exposure.

Questions:

Q Type Example Validation
Q2.1 Area disponibile (m²) 50 Float > 0
Q2.2 Tipologia spazio Choose: aiuole rialzate / a terra / vasi Enum
Q2.3 Sole diretto (ore/gg) 6 Integer, 0-12
Q2.4 Tipo suolo Choose: sabbioso / limoso / argilloso / misto Enum
Q2.5 Drenaggio Choose: ottimo / buono / mediocre / pessimo Enum
Q2.6 Topografia Choose: piano / leggera pendenza / forte pendenza Enum
Q2.7 Vicinanza alberi/muri Descrivi String

Outputs:

  • layout.area_mq
  • layout.tipo_spazio
  • layout.ore_sole_giornaliere
  • layout.tipo_suolo
  • layout.drenaggio
  • layout.topografia

Hints:

  • Sole < 4h = parziale (verdure da foglia)
  • Sole 4-6h = medio (alcune ortaggi)
  • Sole > 6h = pieno (pomodoro, peperone, zucchina)
  • Drenaggio scarso = rischio marciume

Blocco 3 — Irrigazione

Purpose: Assess water infrastructure and constraints.

Questions:

Q Type Choices Validation
Q3.1 Fonte acqua disponibile Choose: rubinetto / pozzo / raccolta pluviale / altro Enum, ≥1
Q3.2 Portata rubinetto (l/min) Input numeric (es: 10) Float, optional
Q3.3 Vincoli idrici Choose: nessuno / razionamento estivo / razionamento tutto anno / altro Enum
Q3.4 Tipo irrigazione attuale Choose: manuale / impianto goccia / impianto aspersione / nessuno Enum
Q3.5 Disponibilità sensori umidità Choose: no / sì, da installare / sì, già presenti Enum
Q3.6 Automazione desiderata Choose: nessuna / timers semplici / smart controller / altro Enum
Q3.7 Note / Vincoli speciali Free text Optional

Outputs:

  • irrigazione.fonte_acqua
  • irrigazione.portata_lmin
  • irrigazione.vincoli
  • irrigazione.tipo_impianto
  • irrigazione.sensori_disponibili
  • irrigazione.automazione_desiderata

Logic:

  • If portata < 5 l/min → flag: "acqua limitata, design conservativo raccomandato"
  • If razionamento estivo → nota: "attivare mulching, irrigazione serale/notturna"

Blocco 4 — Comunità & Dieta

Purpose: Understand dietary preferences and community structure.

Questions:

Q Type Input Validation
Q4.1 Numero persone Numeric Integer ≥ 1
Q4.2 Profilo dieta Choose: onnivoro / vegetariano / vegano / mixto Enum, may select multiple
Q4.3 Preferenze cultivi Multi-select: pomodoro, zucchina, lattuga, basilico, carota, cipolla, ... List
Q4.4 Colture da evitare Multi-select List
Q4.5 Allergie / Intolleranze Text, list Free text, optional
Q4.6 Figli / Anziani in orto Choose: no / sì, figli / sì, anziani / sì, entrambi Enum
Q4.7 Safety notes Text Optional (allergie piante, animali domestici)

Outputs:

  • community.n_persone
  • community.dieta (list)
  • community.preferenze_colture (list)
  • community.colture_evitare (list)
  • community.allergie
  • community.minori_anziani
  • community.note_safety

Logic:

  • If vegano + fertilizzante preferito → bias toward nitrogen-fixing crops (fagiolo, pisello, fava)
  • If bambini → safety: avoid highly toxic plantas; flag allergie comuni (arachidi grow no, ma altri)
  • If allergie riportate → consulta reference e segnala colture compatibili

Blocco 5 — Obiettivi & Vincoli

Purpose: Define maintenance capability and goals.

Questions:

Q Type Input Validation
Q5.1 Tempo settimanale disponibile Choose: < 2h / 2-5h / 5-10h / > 10h Enum
Q5.2 Frequenza accesso Choose: giornaliero / 2-3 volte sett / settimanale / bisettimanale / altro Enum
Q5.3 Obiettivi primari Multi-select: orto terapeutico / approvvigionamento / educazione / comunità / hobby List
Q5.4 Esperienze precedenti Choose: nessuna / dilettante / esperto Enum
Q5.5 Stagione preferita Choose: primavera / estate / autunno / tutto l'anno Enum
Q5.6 Tolleranza rischio / fallimenti Choose: bassa (voglio certezza) / media / alta (sperimentazione ok) Enum
Q5.7 Cosa non vuoi fare Multi-select: concimazione chimica / trattamenti / potatura aggressiva / altro List

Outputs:

  • vincoli.ore_settimanali
  • vincoli.frequenza_accesso
  • vincoli.obiettivi (list)
  • vincoli.esperienza
  • vincoli.stagione_preferita
  • vincoli.tolleranza_rischio
  • vincoli.evitare (list)

Logic:

  • If ore < 2/sett → design basso-manutenzione: colture robuste, pacciamatura, automazione
  • If frequenza bisettimanale + caldo estivo → warning: "piante soffrono, pianificare coperture/ombra"
  • If Obiettivo "educazione" → bias verso varietà interessanti, osservabili

Validation & Merge

Validation Rules

Per-block validation:

Block Rule Error Action
1 provincia/regione match Mismatch Flag, suggest correction
2 area > 0 area = 0 Reject, ask again
2 sole ore > suolo drainsge conflitto Warning: "sole alto + scarso drenaggio → marciume"
3 fonte_acqua ≠ None No water source Flag: critical, ask fallback
4 n_persone > 0 Empty Default 1
5 ore_settimanali > 0 Empty Ask, flag risk

Cross-block validation:

Check Condition Action
Coherence minori/anziani + ore < 2/sett Warning: "poco tempo per accessibilità; pianificare percorsi sicuri"
Diet alignment dieta + colture evitare incompatible Flag: "preferenze dieta e colture evitare conflittano"
Goal alignment goal "approvvigionamento" + area < 20m² Warning: "area piccola per approvvigionamento; puntare qualità/successioni"

Merge to GardenConfig & CommunityProfile

After validation, create/update:

  1. dati/config/garden_config.md

    • Top-level config: area, zone, vincoli ambientali
    • Soloinfo oggettiva (coordinate, suolo, sole, irrigazione)
  2. dati/config/community_profile.md

    • Community: n_persone, dieta, preferenze, allergie
    • Obiettivi: ore disponibili, goals, esperienza
    • Constraints: cosa NON fare, minori/anziani, tolleranza rischio
  3. log/audit_trail.md

    • Event: onboarding_complete
    • Timestamp, blocks completed, validation status

Output

Console Output:

# ✅ Onboarding Completato

**Orto:** [ORTO_NAME]  
**Area:** [AREA] m²  
**Zona climatica:** [ZONE]  
**Comunità:** [N_PERSONE] persone  
**Dieta:** [DIET_LIST]  
**Tempo disponibile:** [HOURS]/settimana  

## Profilo Validato ✓

- [✓] Localizzazione confermata
- [✓] Layout spazio raccolto
- [✓] Irrigazione pianificata
- [✓] Community profile completato
- [✓] Vincoli e obiettivi definiti

## Prossimi Passi

1. **orto-agronomo** → Piano colture (30 min)
2. **orto-calendario** → Timeline stagionale (20 min)
3. **orto-irrigazione** → Design irrigazione (20 min)
4. **orto-orchestratore** → Merge piano finale (10 min)

**Tempo totale planning:** ~80 minuti

Error Handling

Error Fallback
Q3.1 (no water source) Critical error; suggest alternative (raccolta pluviale, well pump) or suggest not proceeding
Q2.1 (area = 0) Re-ask, provide hints (typical ranges: 20-100 m²)
Missing mandatory field Highlight, require answer before merge
Allergia allergia Cross-check with colture preferite; flag conflicts

References

  • references/colture_it.md — Colture e preferenze
  • references/calendario_it.md — Zone climatiche e validazione

Assets

  • assets/blocco_template.md — Template vuoto per ogni blocco (riempibile manualmente se preferito)

Examples

Example 1: Roma Comunità, Orto Terapeutico

Blocco 1: Roma, Lazio, Facile accesso, Orto comunitario
Blocco 2: 40 m², Aiuole rialzate, 7h sole, Suolo misto, Buon drenaggio
Blocco 3: Rubinetto disponibile, Razionamento estivo, Nessun impianto, Sensori da installare
Blocco 4: 8 persone, Misto, Piacerebbe pomodoro/basilico/insalata, No allergie, Con anziani
Blocco 5: 3-5h/settimana, Settimanale, Terapeutico + Comunità, No esperienza, Estate preferita

Output:

  • garden_config.md: 40m², Zone centro, Sole buono, Irrigazione manuale da migliorare
  • community_profile.md: 8pp, Misto, Therapeutic goal, Low maintenance experience, Accessibility required

Example 2: Milano Famiglia, Approvvigionamento

Blocco 1: Milano, Lombardia, Accesso moderato, Privato
Blocco 2: 60 m², A terra, 6h sole, Suolo misto, Scarso drenaggio
Blocco 3: Rubinetto 8 l/min, No razionamento, Nessun impianto, Sensori interessano
Blocco 4: 3 persone, Onnivoro, Ama pomodoro/zucchina/carota, No allergie
Blocco 5: 5-10h/sett, 2-3 volte/sett, Approvvigionamento + Hobby, Dilettante, Tolleranza rischio media

Output:

  • garden_config.md: 60m², Zone nord, Drenaggio scadente → pianificare rialzature, Irrigazione progettabile
  • community_profile.md: 3pp, Onnivoro, Goal approvvigionamento, Esperienza dilettante, Willing to learn

Assumptions

  1. Questionnaire blocks are presented sequentially (or user can edit all markdown simultaneously)
  2. Validation is light (not blocking, but flagging issues)
  3. Allergies/safety notes are checked against plant knowledge base
  4. Community size affects crop recommendations (more people → more diverse)
  5. All outputs in Markdown format, human-readable and editable

Validation Checklist

  • ✓ All mandatory fields filled
  • ✓ No contradictions between blocks
  • ✓ Area, time, water constraints coherent
  • ✓ Diet + colture preferences compatible
  • ✓ garden_config.md updated and readable
  • ✓ community_profile.md created and validated
  • ✓ audit_trail.md event logged

Skill: orto-onboarding | Version 1.0 | Status: Production-Ready