orto-skills/orto-suite/orto-onboarding/SKILL.md

13 KiB


name: orto-onboarding description: Raccogliere profilo completo orto tramite 5 blocchi questionario. Usare quando: (1) raccogliere specifiche orto dopo orto-init (spazio, suolo, capacità irrigazione), (2) comprendere preferenze dieta utente/comunità e vincoli, (3) definire disponibilità manutenzione e requisiti sicurezza/accessibilità, (4) preparare dati validati per pianificazione stagionale (orto-agronomo, orto-calendario, etc.). Output: Blocchi questionario compilati (Markdown), GardenConfig e CommunityProfile validati, pronti per workflow planning.

Orto Onboarding — Raccolta Profilo Orto 5-Blocchi

Raccogliere informazioni complesse orto e comunità tramite questionario strutturato 5-blocchi. Questo è il secondo passo dopo orto-init.

Quando Usare Questa Skill

  • Post-init: Utente ha inizializzato un orto (orto-init completo)
  • Raccolta profilo: Raccogliere dettagli su spazio, ambiente, comunità, dieta, vincoli
  • Preparazione planning: Raccogliere dati necessari per pianificazione stagionale, selezione colture, design layout
  • Revisione accessibilità: Assicurare design rispetta accessibilità, sicurezza e vincoli manutenzione

Panoramica Processo

5 Blocchi, Sequenziale o Parallelo:

  1. Blocco 1 — Localizzazione (localizzazione, accesso, tipo proprietà)
  2. Blocco 2 — Layout Spazio (area, suolo, esposizione sole, topografia)
  3. Blocco 3 — Irrigazione (disponibilità acqua, infrastruttura, vincoli)
  4. Blocco 4 — Comunità e Dieta (utente/comunità, preferenze dieta, allergie)
  5. Blocco 5 — Obiettivi e Vincoli (tempo manutenzione, obiettivi, preferenze stagionali)

Flow Tipico:

  • Codex presenta ogni blocco
  • Utente riempie dettagli (interattivamente o batch markdown edit)
  • Codex valida input
  • Al completamento: merge in file GardenConfig + CommunityProfile markdown

Specifiche Blocchi

Blocco 1 — Localizzazione

Purpose: Confermare dettagli localizzazione e accessibilità.

Domande:

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

Scopo: Definire vincoli spazio, suolo, esposizione sole.

Domande:

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

Output:

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

Suggerimenti:

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

Blocco 3 — Irrigazione

Scopo: Valutare infrastruttura acqua e vincoli idrici.

Domande:

Q Tipo Scelte Validazione
Q3.1 Fonte acqua disponibile Scegli: rubinetto / pozzo / raccolta pluviale / altro Enumerazione, ≥1
Q3.2 Portata rubinetto (l/min) Input numerico (es: 10) Float, opzionale
Q3.3 Vincoli idrici Scegli: nessuno / razionamento estivo / razionamento tutto anno / altro Enumerazione
Q3.4 Tipo irrigazione attuale Scegli: manuale / impianto goccia / impianto aspersione / nessuno Enumerazione
Q3.5 Disponibilità sensori umidità Scegli: no / sì, da installare / sì, già presenti Enumerazione
Q3.6 Automazione desiderata Scegli: nessuna / timer semplici / smart controller / altro Enumerazione
Q3.7 Note / Vincoli speciali Testo libero Opzionale

Output:

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

Logica:

  • Se portata < 5 l/min → segnala: "acqua limitata, design conservativo raccomandato"
  • Se razionamento estivo → nota: "attivare pacciamatura, irrigazione serale/notturna"

Blocco 4 — Comunità & Dieta

Scopo: Comprendere preferenze dieta e struttura comunità.

Domande:

Q Tipo Input Validazione
Q4.1 Numero persone Numerico Intero ≥ 1
Q4.2 Profilo dieta Scegli: onnivoro / vegetariano / vegano / misto Enumerazione, possibile multi-select
Q4.3 Preferenze colture Multi-selezione: pomodoro, zucchina, lattuga, basilico, carota, cipolla, ... Lista
Q4.4 Colture da evitare Multi-selezione Lista
Q4.5 Allergie / Intolleranze Testo, lista Testo libero, opzionale
Q4.6 Figli / Anziani in orto Scegli: no / sì, figli / sì, anziani / sì, entrambi Enumerazione
Q4.7 Note sicurezza Testo Opzionale (allergie piante, animali domestici)

Output:

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

Logica:

  • Se vegano + fertilizzante preferito → tendenza verso colture azoto-fissatrici (fagiolo, pisello, fava)
  • Se bambini → sicurezza: evita piante altamente tossiche; segnala allergie comuni
  • Se allergie riportate → consulta reference e segnala colture compatibili

Blocco 5 — Obiettivi & Vincoli

Scopo: Definire capacità manutenzione e obiettivi.

Domande:

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

Output:

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

Logica:

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

Validazione & Merge

Regole Validazione

Validazione per blocco:

Blocco Regola Errore Azione
1 provincia/regione corrispondono Mancata corrispondenza Segnala, suggerisci correzione
2 area > 0 area = 0 Rifiuta, chiedi di nuovo
2 sole ore vs drenaggio suolo conflitto Avviso: "sole alto + scarso drenaggio → marciume"
3 fonte_acqua ≠ Nulla Nessuna fonte acqua Segnala: critico, chiedi fallback
4 n_persone > 0 Vuoto Default 1
5 ore_settimanali > 0 Vuoto Chiedi, segnala rischio

Validazione cross-blocco:

Controllo Condizione Azione
Coerenza minori/anziani + ore < 2/sett Avviso: "poco tempo per accessibilità; pianificare percorsi sicuri"
Coerenza dieta dieta + colture evitare incompatibili Segnala: "preferenze dieta e colture evitare conflittano"
Coerenza obiettivi obiettivo "approvvigionamento" + area < 20m² Avviso: "area piccola per approvvigionamento; puntare qualità/successioni"

Merge a GardenConfig & CommunityProfile

Dopo validazione, crea/aggiorna:

  1. dati/config/garden_config.md

    • Configurazione alto-livello: area, zone, vincoli ambientali
    • Solo info oggettiva (coordinate, suolo, sole, irrigazione)
  2. dati/config/community_profile.md

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

    • Evento: onboarding_completato
    • Timestamp, blocchi completati, stato validazione

Output (Risultato)

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

Gestione Errori

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)

Esempi

Esempio 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, Obiettivo terapeutico, Esperienza bassa, Accessibilità richiesta

Esempio 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², Zona nord, Drenaggio scadente → pianificare rialzature, Irrigazione progettabile
  • community_profile.md: 3pp, Onnivoro, Obiettivo approvvigionamento, Esperienza dilettante, Disposto a imparare

Assunzioni

  1. Blocchi questionario sono presentati sequenzialmente (o utente può editare tutto markdown simultaneamente)
  2. Validazione è leggera (non bloccante, ma flaggando problemi)
  3. Allergie/note sicurezza sono check contro knowledge base piante
  4. Dimensione comunità affetta raccomandazioni colture (più persone → più diverse)
  5. Tutti output in formato Markdown, human-readable e editable

Checklist Validazione

  • ✓ Tutti campi obbligatori compilati
  • ✓ No contraddizioni tra blocchi
  • ✓ Area, tempo, vincoli acqua coerenti
  • ✓ Dieta + preferenze colture compatibili
  • ✓ garden_config.md aggiornato e leggibile
  • ✓ community_profile.md creato e validato
  • ✓ Evento audit_trail.md loggato

Skill: orto-onboarding | Versione 1.0 | Status: Pronto per Produzione