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.
361 lines
9.2 KiB
Markdown
361 lines
9.2 KiB
Markdown
---
|
|
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, decimale
|
|
- `longitude`: -180 a 180, decimale
|
|
- `area_mq`: float positivo se fornito
|
|
|
|
## Processo
|
|
|
|
### Fase 1: Inferenza Zona Climatica
|
|
|
|
**Obiettivo:** Mappare latitudine a macro-zona italiana per stagionalità colture.
|
|
|
|
**Azioni:**
|
|
|
|
1. Leggi `latitude` da input
|
|
2. 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:**
|
|
|
|
1. Crea cartella base: `/home/<user>/.openclaw/workspace/Orti/<orto_id>/`
|
|
2. 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:**
|
|
|
|
1. **README.md** — Overview progetto:
|
|
```markdown
|
|
# <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_
|
|
```
|
|
|
|
2. **config/garden_config.md** — Configurazione base:
|
|
```markdown
|
|
# 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_
|
|
```
|
|
|
|
3. **log/audit_trail.md** — Audit log iniziale:
|
|
```markdown
|
|
# 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)
|
|
|
|
---
|
|
```
|
|
|
|
4. **Template questionari** — 5 blocchi con struttura:
|
|
```markdown
|
|
# 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:**
|
|
|
|
1. Leggi registry esistente: `/home/<user>/.openclaw/workspace/Orti/orti_registry.json`
|
|
2. Aggiungi entry:
|
|
|
|
```json
|
|
{
|
|
"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>"
|
|
}
|
|
```
|
|
|
|
3. Scrivi registry aggiornato
|
|
|
|
**Output finale:** Registry aggiornato con nuovo orto
|
|
|
|
---
|
|
|
|
## Output
|
|
|
|
**File generati:**
|
|
|
|
- `Orti/<orto_id>/README.md`
|
|
- `Orti/<orto_id>/config/garden_config.md`
|
|
- `Orti/<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.md`
|
|
- `Orti/orti_registry.json` (aggiornato)
|
|
|
|
**Formato:** Markdown strutturato + JSON (solo registry)
|
|
|
|
**Struttura directory:** Completa, pronta per Workflow 01 (Onboarding)
|
|
|
|
### Esempio Output
|
|
|
|
```markdown
|
|
# 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:**
|
|
|
|
```bash
|
|
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_
|