Struttura distribuzione pronta: - orto-skills-suite/INSTALL.sh — Script installazione automatica - orto-skills-suite/README.md — Documentazione con lista skills - orto-skills-suite/orto-init/SKILL.md (9.4 KB) - orto-skills-suite/orto-onboarding/SKILL.md (8.5 KB) - orto-skills-suite/references/colture_it.md (7.6 KB) - orto-skills-suite/references/qa_checklist_it.md (6.1 KB) - Symlink: orto-init/references → ../references - Symlink: orto-onboarding/references → ../references Test release: 2 skills + 2 references pronte per installazione. Prossime: orto-agronomo, orto-calendario, orto-fitopatologo, etc.
9.2 KiB
name: orto-init description: Inizializzare un nuovo progetto di orto comunitario o domestico nel sistema di gestione Orto. Usare quando: (1) configurare un nuovo orto con localizzazione, dimensioni e dettagli ambientali, (2) creare la struttura di directory e template markdown per il progetto, (3) registrare l'orto nel registro centrale, (4) preparare blocchi di questionario per il workflow di onboarding. Output: Config orto markdown, template questionari, audit trail, struttura di directory pronta per il workflow di onboarding.
Orto Init — Inizializzazione Progetto Orto
Inizializzare un nuovo progetto orto da zero. Questo è il primo passo nel workflow Orto.
Quando Usare Questa Skill
- Setup nuovo orto: L'utente vuole iniziare a gestire un orto con Orto
- Registrazione orto: Assegnare ID univoco, nome, localizzazione e dati ambientali base
- Scaffolding directory: Creare struttura di progetto (config, dati, log, media, cartelle report)
- Preparazione template: Generare template markdown per questionario, config, calendario, etc.
Input
Codex raccoglie questi dettagli dall'utente (o usa default se non disponibili):
| Input | Tipo | Obbligatorio | Esempio | Note |
|---|---|---|---|---|
orto_id |
String | Sì | orto_roma_testaccio_001 |
lowercase, underscore, max 64 caratteri |
orto_name |
String | Sì | Orto Testaccio Roma |
Nome leggibile |
provincia |
String | Sì | Roma |
Normalizzare a lista province italiane |
regione |
String | Sì | Lazio |
Normalizzare a lista regioni italiane |
latitude |
Float | Sì | 41.8782 |
-90 a 90, decimale |
longitude |
Float | Sì | 12.4922 |
-180 a 180, decimale |
area_mq |
Float | No | 50 |
Raccolto in onboarding se non fornito |
climate_zone |
Enum | No | centro |
Inferito da lat/lon se non fornito |
Validazione Input
orto_id: lowercase, solo underscore/trattini, max 64 caratteri (es.orto_NOME_NUMERO)provincia+regione: normalizzare a lista regioni italiane (Roma → Lazio)latitude: -90 a 90, decimalelongitude: -180 a 180, decimalearea_mq: float positivo se fornito
Processo
Fase 1: Inferenza Zona Climatica
Obiettivo: Mappare latitudine a macro-zona italiana per stagionalità colture.
Azioni:
- Leggi
latitudeda input - Applica regole di mappatura:
Regole decisionali:
se latitude >= 44.0:
→ zona = "nord"
→ ultima_gelata ≈ 25 aprile
→ prima_gelata ≈ 15 ottobre
→ zone_clima: Piemonte, Lombardia, Veneto, Friuli, Liguria (ponente)
altrimenti se latitude >= 42.5:
→ zona = "centro"
→ ultima_gelata ≈ 15 aprile
→ prima_gelata ≈ 25 ottobre
→ zone_clima: Toscana, Lazio, Marche, Umbria, Abruzzo, Liguria (levante)
altrimenti:
→ zona = "sud"
→ ultima_gelata ≈ 1 aprile
→ prima_gelata ≈ 5 novembre
→ zone_clima: Campania, Puglia, Basilicata, Calabria, Sicilia, Sardegna
Output intermedio: Zona climatica + date gelate stimate
Fase 2: Genera Struttura Directory
Obiettivo: Creare struttura directory standardizzata per il progetto orto.
Azioni:
- Crea cartella base:
/home/<user>/.openclaw/workspace/Orti/<orto_id>/ - Crea sottocartelle:
<orto_id>/
├── README.md # Project overview
├── config/
│ ├── garden_config.md # Base garden config
│ └── ambiente_vincoli.md # Environmental constraints
├── dati/
│ ├── questionario/
│ │ ├── blocco_1_localizzazione.md
│ │ ├── blocco_2_layout_spazio.md
│ │ ├── blocco_3_irrigazione.md
│ │ ├── blocco_4_comunita_dieta.md
│ │ └── blocco_5_obiettivi_vincoli.md
│ ├── calendario/
│ │ └── calendario_stagionale.md
│ ├── colture/
│ │ └── piano_colture_annuale.md
│ ├── layout/
│ │ ├── aiuole_dimensioni.md
│ │ └── zone_clima_microclimatico.md
│ ├── irrigazione/
│ │ ├── sistema_irrigazione.md
│ │ ├── sensori_monitoraggio.md
│ │ └── programmi_irrigazione.md
│ ├── meteo/
│ │ └── dati_meteo_giornalieri.md
│ ├── nutrizione/
│ │ ├── analisi_terreno.md
│ │ └── piano_concimazione.md
│ ├── trattamenti/
│ │ ├── diagnosi_problemi.md
│ │ └── piano_trattamenti.md
│ └── raccolti/
│ └── cicli_raccolta_previsti.md
├── log/
│ ├── audit_trail.md # Audit log
│ └── note_osservazioni.md
├── media/
│ ├── foto/
│ └── video/
└── report/
└── report_mensili/
Output intermedio: Struttura directory creata
Fase 3: Genera File Template
Obiettivo: Creare file markdown template con header e struttura base.
Azioni:
- README.md — Overview progetto:
# <orto_name>
**ID:** <orto_id>
**Localizzazione:** <provincia>, <regione>
**Zona climatica:** <zona>
**Coordinate:** <latitude>, <longitude>
## Quick Links
- [Questionario](dati/questionario/)
- [Piano Colture](dati/colture/piano_colture_annuale.md)
- [Calendario](dati/calendario/calendario_stagionale.md)
- [Audit Trail](log/audit_trail.md)
---
_Creato: YYYY-MM-DD | Orto Init v1.0_
- config/garden_config.md — Configurazione base:
# Garden Configuration
_Orto: <orto_id> | Ultima modifica: YYYY-MM-DD_
## Localizzazione
- **Provincia:** <provincia>
- **Regione:** <regione>
- **Latitudine:** <latitude>
- **Longitudine:** <longitude>
- **Zona climatica:** <zona>
## Date Gelate (Stimate)
- **Ultima gelata primavera:** <data>
- **Prima gelata autunno:** <data>
- **Lunghezza stagione:** <gg> giorni
## Dati Ambientali
*(Da compilare in onboarding)*
- **Esposizione:**
- **Vento:**
- **Suolo:**
- **Acqua:**
---
_Generato da: orto-init_
- log/audit_trail.md — Audit log iniziale:
# Audit Trail — <orto_id>
## Entry #1: Inizializzazione Progetto
**Timestamp:** YYYY-MM-DDTHH:MM:SSZ
**Agente:** orto-init
**Evento:** Progetto orto creato
**Dati:**
- orto_id: <orto_id>
- orto_name: <orto_name>
- provincia: <provincia>
- regione: <regione>
- zona: <zona>
**Output:**
- Struttura directory creata
- Template generati
- Pronto per onboarding (Workflow 01)
---
- Template questionari — 5 blocchi con struttura:
# Blocco 1 — Localizzazione
**Stato:** DA COMPILARE
## Dati
- **Località:**
- **Provincia:**
- **Regione:**
- **Coordinate:**
---
_Compilato da: | Data: |
Output intermedio: File template creati
Fase 4: Registra nel Registry Centrale
Obiettivo: Aggiornare registry centrale orti con nuovo progetto.
Azioni:
- Leggi registry esistente:
/home/<user>/.openclaw/workspace/Orti/orti_registry.json - Aggiungi entry:
{
"orto_id": "<orto_id>",
"name": "<orto_name>",
"provincia": "<provincia>",
"regione": "<regione>",
"latitude": <latitude>,
"longitude": <longitude>,
"zone": "<zona>",
"created_at": "YYYY-MM-DDTHH:MM:SSZ",
"status": "active",
"path": "/home/<user>/.openclaw/workspace/Orti/<orto_id>"
}
- Scrivi registry aggiornato
Output finale: Registry aggiornato con nuovo orto
Output
File generati:
Orti/<orto_id>/README.mdOrti/<orto_id>/config/garden_config.mdOrti/<orto_id>/config/ambiente_vincoli.md(template)Orti/<orto_id>/dati/questionario/blocco_1-5_*.md(5 file template)Orti/<orto_id>/log/audit_trail.mdOrti/orti_registry.json(aggiornato)
Formato: Markdown strutturato + JSON (solo registry)
Struttura directory: Completa, pronta per Workflow 01 (Onboarding)
Esempio Output
# Orto Testaccio Roma
**ID:** orto_roma_testaccio_001
**Localizzazione:** Roma, Lazio
**Zona climatica:** centro
**Coordinate:** 41.8782, 12.4922
## Quick Links
- [Questionario](dati/questionario/)
- [Piano Colture](dati/colture/piano_colture_annuale.md)
- [Calendario](dati/calendario/calendario_stagionale.md)
- [Audit Trail](log/audit_trail.md)
---
_Creato: 2026-03-07 | Orto Init v1.0_
References
Nessun reference richiesto — Skill auto-contenuta.
Scripts
init_new_orto.py (Opzionale)
Script Python per automazione inizializzazione (se disponibile in scripts/).
Utilizzo:
python3 scripts/init_new_orto.py \
--id orto_roma_testaccio_001 \
--nome "Orto Testaccio Roma" \
--provincia Roma \
--regione Lazio \
--lat 41.8782 \
--lon 12.4922
Dipendenze:
- Python 3.8+
- Nessuna libreria esterna (standard lib)
Note
Edge cases gestiti:
- Coordinate mancanti: Inferite da provincia (usa geocoding approssimativo)
- Zona climatica ambigua: Usa latitudine come criterio primario
- Registry corrotto: Backups automatico prima scrittura
Limitazioni:
- Non valida esistenza reale del luogo (coordinate possono essere fittizie)
- Non crea physical structure (solo directory e file)
Avvertenze:
- ⚠️ Date gelate: Sono stime macro-zona; verificare microclima locale prima di trapianti critici
- ⚠️ Registry: Backup automatico creato prima di modifiche
Aggiornato: 2026-03-07 | Versione: 1.0