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

12 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

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², Zona nord, Drenaggio scadente → pianificare rialzature, Irrigazione progettabile
  • community_profile.md: 3pp, Onnivoro, Goal approvvigionamento, Esperienza dilettante, Willing to learn

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