9.7 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 profilo utente. 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 |
|---|---|---|---|
orto_id |
String | Sì | orto_roma_testaccio_001 |
orto_name |
String | Sì | Orto Testaccio Roma |
provincia |
String | Sì | Roma |
regione |
String | Sì | Lazio |
latitude |
Float | Sì | 41.8782 |
longitude |
Float | Sì | 12.4922 |
area_mq |
Float | No (raccolto in onboarding) | 50 |
climate_zone |
Enum | No (inferito da lat/lon) | centro |
Validazione Input
orto_id: minuscolo, 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
Mappare latitude a macro-zona italiana:
se lat >= 44.0:
zona = "nord" # Piemonte, Lombardia, Veneto, etc.
ultima_gelata ≈ 25 aprile
prima_gelata ≈ 15 ottobre
se no se lat >= 42.5:
zona = "centro" # Toscana, Lazio, Marche, etc.
ultima_gelata ≈ 15 aprile
prima_gelata ≈ 25 ottobre
se no:
zona = "sud" # Campania, Sicilia, Puglia, etc.
ultima_gelata ≈ 1 aprile
prima_gelata ≈ 5 novembre
Fase 2: Genera Struttura Directory
Create base folder: /home/<user>/.openclaw/workspace/Orti/<orto_id>/
<orto_id>/
├── README.md # Project overview
├── config/
│ ├── garden_config.md # Base garden config (location, size, soil, etc.)
│ └── 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 # Field notes
├── media/
│ ├── foto/
│ └── video/
└── report/
└── (reports generated later)
Fase 3: Genera Template Markdown
garden_config.md (dal template)
# Configurazione Orto: [ORTO_ID]
## Dati Base
- **Nome:** [ORTO_NAME]
- **ID:** [ORTO_ID]
- **Provincia:** [PROVINCIA]
- **Regione:** [REGIONE]
- **Coordinate:** [LATITUDE], [LONGITUDE]
- **Zona climatica:** [ZONE] (Nord/Centro/Sud)
- **Ultima gelata (app.):** [LAST_FROST_DATE]
- **Prima gelata (app.):** [FIRST_FROST_DATE]
- **Lunghezza stagione:** ~[SEASON_LENGTH] giorni
## Spazio
- **Area disponibile:** ??? m² *(riempire in onboarding blocco 2)*
- **Tipologia terreno:** ??? *(riempire in onboarding blocco 2)*
- **Esposizione solare:** ??? *(riempire in onboarding blocco 2)*
## Vincoli Ambientali
- **Vincoli agua:** *(riempire in onboarding blocco 3)*
- **Vincoli manutenzione:** *(riempire in onboarding blocco 5)*
- **Note vincoli:** *(riempire in onboarding)*
## Status
- **Data creazione:** [TODAY]
- **Stato workflow:** Init completo, in attesa onboarding
blocco_1_localizzazione.md (template questionario)
# Blocco 1 — Localizzazione Orto
## Domande
### Q1.1 — Dove si trova l'orto?
**Provincia:** [auto-filled]
**Regione:** [auto-filled]
**Indirizzo (opz.):** ___
### Q1.2 — Accessibilità
- [ ] Facile accesso da casa (< 10 min a piedi)
- [ ] Accesso moderato (10-30 min)
- [ ] Accesso difficile (> 30 min)
### Q1.3 — Proprietà/Gestione
- [ ] Proprietà privata personale
- [ ] Orto comunitario
- [ ] Terreno affittato
- [ ] Altro: ___
## Descrizione
[Spazio libero per note]
## Data risposta
[TODAY]
Fase 4: Registra Orto nel Registro
Aggiungere al registro centrale (o creare se non esiste):
orti_registry.json (localizzazione: /home/<user>/.openclaw/workspace/Orti/orti_registry.json)
{
"orti": [
{
"orto_id": "[ORTO_ID]",
"name": "[ORTO_NAME]",
"provincia": "[PROVINCIA]",
"regione": "[REGIONE]",
"latitude": [LAT],
"longitude": [LON],
"zone": "[ZONE]",
"created_at": "[TODAY_ISO]",
"status": "init_complete",
"path": "/home/<user>/.openclaw/workspace/Orti/[ORTO_ID]"
}
]
}
Fase 5: Genera Voce Audit Trail
Creare log/audit_trail.md:
# Audit Trail — [ORTO_ID]
## Evento: Init
| Campo | Valore |
|-------|-------|
| **Timestamp** | [TODAY_ISO] |
| **Evento** | orto_init |
| **Status** | success |
| **Orto ID** | [ORTO_ID] |
| **Coordinatore** | Codex (skill: orto-init) |
| **Dettagli** | Progetto orto inizializzato. Config creata, struttura directory scaffoldata, template questionari generati. |
---
Output
Struttura creata:
- Directory
/Orti/<orto_id>/con tutte le sottodirectory ✓ - File
garden_config.md(template iniziale) ✓ - File
blocco_1...5.md(template questionari, vuoti) ✓ - File
audit_trail.md(evento init) ✓ - Voce registro in
orti_registry.json✓
Output console (Markdown):
# ✅ Orto Inizializzato
**Orto ID:** [ORTO_ID]
**Nome:** [ORTO_NAME]
**Localizzazione:** [PROVINCIA], [REGIONE]
**Zona:** [ZONE] (Gelate: [ULTIMA_GELATA]—[PRIMA_GELATA])
**Area:** ??? m² (raccolto in Blocco 2)
**Path:** /home/<user>/.openclaw/workspace/Orti/[ORTO_ID]
## Prossimo Passo
→ Eseguire skill **orto-onboarding** per raccogliere profilo orto tramite 5 blocchi di questionario.
**Tempo stimato:** 15-30 minuti
Gestione Errori
| Errore | Fallback |
|---|---|
| Directory già esiste | Saltare creazione; aggiornare registro e confermare con utente |
| Coordinate non valide | Usare default centro-Italia (Lazio) e flaggare per verifica utente |
| File registro mancante | Creare nuovo registro con questa voce |
| Formato orto_id non valido | Suggerire ID normalizzato e chiedere conferma |
Riferimenti
Vedere references/calendario_it.md bundled per dettagli date di gelata e zone climatiche.
Script
Questa skill usa uno script Python bundled per creazione directory deterministica:
scripts/init_new_orto_bundled.sh \
--id <orto_id> \
--name "<orto_name>" \
--provincia <provincia> \
--regione <regione> \
--lat <latitude> \
--lon <longitude>
Lo script è completamente self-contained e idempotente (safe da re-eseguire).
Esempi
Esempio 1: Orto Roma
Input:
orto_id: orto_roma_testaccio_001
orto_name: Orto Testaccio Roma
provincia: Roma
regione: Lazio
latitude: 41.8782
longitude: 12.4922
Output:
- Directory creata:
/Orti/orto_roma_testaccio_001/ - Zona inferita:
centro(ultima gelata ~15 apr, prima gelata ~25 ott) - Status: Init completato, pronto per onboarding
Esempio 2: Orto Milano
Input:
orto_id: orto_milano_lambro_001
orto_name: Orto Lambro Milano
provincia: Milano
regione: Lombardia
latitude: 45.4642
longitude: 9.1900
Output:
- Directory creata:
/Orti/orto_milano_lambro_001/ - Zona inferita:
nord(ultima gelata ~25 apr, prima gelata ~15 ott) - Status: Init completato
Assunzioni
- Codex è in esecuzione su una macchina con accesso filesystem a
/home/<user>/.openclaw/workspace/ - L'utente ha permessi di scrittura per creare directory e file
- La zona climatica è inferita solo da latitudine (semplificazione; da raffinare se necessario)
- Tutti i template sono in lingua italiana
- Template questionari sono stub vuoti; compilati durante skill orto-onboarding
Checklist di Validazione
- ✓
orto_idè univoco nel registro - ✓ Path directory non conflitto con orti esistenti
- ✓ Coordinate valide (lat/lon bounds)
- ✓ Provincia e Regione corrispondono divisioni amministrative italiane
- ✓ Tutti file template creati e leggibili
Skill: orto-init | Versione 1.0 | Status: Pronto per Produzione