Traduzione italiana: orto-init SKILL.md
This commit is contained in:
parent
08a6ffe058
commit
d2621e15cc
1 changed files with 102 additions and 102 deletions
|
|
@ -1,64 +1,64 @@
|
||||||
---
|
---
|
||||||
name: orto-init
|
name: orto-init
|
||||||
description: Initialize a new community or home garden project in the Orto management system. Use when: (1) setting up a new garden with location, size, and environmental details, (2) creating the directory structure and markdown templates for the project, (3) registering the garden in the project registry, (4) preparing questionnaire blocks for user profiling. Outputs: Garden config markdown, questionnaire templates, audit trail, directory structure ready for onboarding workflow.
|
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 — Garden Project Initialization
|
# Orto Init — Inizializzazione Progetto Orto
|
||||||
|
|
||||||
Initialize a new garden project from scratch. This is the first step in the Orto workflow.
|
Inizializzare un nuovo progetto orto da zero. Questo è il primo passo nel workflow Orto.
|
||||||
|
|
||||||
## When to Use This Skill
|
## Quando Usare Questa Skill
|
||||||
|
|
||||||
- **New garden setup:** User wants to start managing a garden with Orto
|
- **Setup nuovo orto:** L'utente vuole iniziare a gestire un orto con Orto
|
||||||
- **Garden registration:** Assign unique ID, name, location, and basic environment data
|
- **Registrazione orto:** Assegnare ID univoco, nome, localizzazione e dati ambientali base
|
||||||
- **Directory scaffolding:** Create project structure (config, data, logs, media, report folders)
|
- **Scaffolding directory:** Creare struttura di progetto (config, dati, log, media, cartelle report)
|
||||||
- **Template preparation:** Generate markdown templates for questionnaire, config, calendar, etc.
|
- **Preparazione template:** Generare template markdown per questionario, config, calendario, etc.
|
||||||
|
|
||||||
## Inputs
|
## Input
|
||||||
|
|
||||||
Codex collects these details from the user (or uses defaults if unavailable):
|
Codex raccoglie questi dettagli dall'utente (o usa default se non disponibili):
|
||||||
|
|
||||||
| Input | Type | Required | Example |
|
| Input | Tipo | Obbligatorio | Esempio |
|
||||||
|-------|------|----------|---------|
|
|-------|------|----------|---------|
|
||||||
| `orto_id` | String | Yes | `orto_roma_testaccio_001` |
|
| `orto_id` | String | Sì | `orto_roma_testaccio_001` |
|
||||||
| `orto_name` | String | Yes | `Orto Testaccio Roma` |
|
| `orto_name` | String | Sì | `Orto Testaccio Roma` |
|
||||||
| `provincia` | String | Yes | `Roma` |
|
| `provincia` | String | Sì | `Roma` |
|
||||||
| `regione` | String | Yes | `Lazio` |
|
| `regione` | String | Sì | `Lazio` |
|
||||||
| `latitude` | Float | Yes | `41.8782` |
|
| `latitude` | Float | Sì | `41.8782` |
|
||||||
| `longitude` | Float | Yes | `12.4922` |
|
| `longitude` | Float | Sì | `12.4922` |
|
||||||
| `area_mq` | Float | No (collect in onboarding) | `50` |
|
| `area_mq` | Float | No (raccolto in onboarding) | `50` |
|
||||||
| `climate_zone` | Enum | No (infer from lat/lon) | `centro` |
|
| `climate_zone` | Enum | No (inferito da lat/lon) | `centro` |
|
||||||
|
|
||||||
### Input Validation
|
### Validazione Input
|
||||||
|
|
||||||
- `orto_id`: lowercase, underscore/hyphen only, max 64 chars (e.g., `orto_NAME_NUMBER`)
|
- `orto_id`: minuscolo, solo underscore/trattini, max 64 caratteri (es. `orto_NOME_NUMERO`)
|
||||||
- `provincia` + `regione`: normalize to Italian region list (Roma → Lazio)
|
- `provincia` + `regione`: normalizzare a lista regioni italiane (Roma → Lazio)
|
||||||
- `latitude`: -90 to 90, decimal
|
- `latitude`: -90 a 90, decimale
|
||||||
- `longitude`: -180 to 180, decimal
|
- `longitude`: -180 a 180, decimale
|
||||||
- `area_mq`: positive float if provided
|
- `area_mq`: float positivo se fornito
|
||||||
|
|
||||||
## Process
|
## Processo
|
||||||
|
|
||||||
### Phase 1: Climate Zone Inference
|
### Fase 1: Inferenza Zona Climatica
|
||||||
|
|
||||||
Map `latitude` to Italian macro-zone:
|
Mappare `latitude` a macro-zona italiana:
|
||||||
|
|
||||||
```
|
```
|
||||||
if lat >= 44.0:
|
se lat >= 44.0:
|
||||||
zone = "nord" # Piemonte, Lombardia, Veneto, etc.
|
zona = "nord" # Piemonte, Lombardia, Veneto, etc.
|
||||||
last_frost ≈ 25 aprile
|
ultima_gelata ≈ 25 aprile
|
||||||
first_frost ≈ 15 ottobre
|
prima_gelata ≈ 15 ottobre
|
||||||
elif lat >= 42.5:
|
se no se lat >= 42.5:
|
||||||
zone = "centro" # Toscana, Lazio, Marche, etc.
|
zona = "centro" # Toscana, Lazio, Marche, etc.
|
||||||
last_frost ≈ 15 aprile
|
ultima_gelata ≈ 15 aprile
|
||||||
first_frost ≈ 25 ottobre
|
prima_gelata ≈ 25 ottobre
|
||||||
else:
|
se no:
|
||||||
zone = "sud" # Campania, Sicilia, Puglia, etc.
|
zona = "sud" # Campania, Sicilia, Puglia, etc.
|
||||||
last_frost ≈ 1 aprile
|
ultima_gelata ≈ 1 aprile
|
||||||
first_frost ≈ 5 novembre
|
prima_gelata ≈ 5 novembre
|
||||||
```
|
```
|
||||||
|
|
||||||
### Phase 2: Generate Directory Structure
|
### Fase 2: Genera Struttura Directory
|
||||||
|
|
||||||
Create base folder: `/home/<user>/.openclaw/workspace/Orti/<orto_id>/`
|
Create base folder: `/home/<user>/.openclaw/workspace/Orti/<orto_id>/`
|
||||||
|
|
||||||
|
|
@ -106,9 +106,9 @@ Create base folder: `/home/<user>/.openclaw/workspace/Orti/<orto_id>/`
|
||||||
└── (reports generated later)
|
└── (reports generated later)
|
||||||
```
|
```
|
||||||
|
|
||||||
### Phase 3: Generate Markdown Templates
|
### Fase 3: Genera Template Markdown
|
||||||
|
|
||||||
**garden_config.md** (from template)
|
**garden_config.md** (dal template)
|
||||||
|
|
||||||
```markdown
|
```markdown
|
||||||
# Configurazione Orto: [ORTO_ID]
|
# Configurazione Orto: [ORTO_ID]
|
||||||
|
|
@ -139,7 +139,7 @@ Create base folder: `/home/<user>/.openclaw/workspace/Orti/<orto_id>/`
|
||||||
- **Stato workflow:** Init completo, in attesa onboarding
|
- **Stato workflow:** Init completo, in attesa onboarding
|
||||||
```
|
```
|
||||||
|
|
||||||
**blocco_1_localizzazione.md** (questionnaire template)
|
**blocco_1_localizzazione.md** (template questionario)
|
||||||
|
|
||||||
```markdown
|
```markdown
|
||||||
# Blocco 1 — Localizzazione Orto
|
# Blocco 1 — Localizzazione Orto
|
||||||
|
|
@ -169,11 +169,11 @@ Create base folder: `/home/<user>/.openclaw/workspace/Orti/<orto_id>/`
|
||||||
[TODAY]
|
[TODAY]
|
||||||
```
|
```
|
||||||
|
|
||||||
### Phase 4: Register Garden in Registry
|
### Fase 4: Registra Orto nel Registro
|
||||||
|
|
||||||
Append to central registry (or create if not exists):
|
Aggiungere al registro centrale (o creare se non esiste):
|
||||||
|
|
||||||
**orti_registry.json** (location: `/home/<user>/.openclaw/workspace/Orti/orti_registry.json`)
|
**orti_registry.json** (localizzazione: `/home/<user>/.openclaw/workspace/Orti/orti_registry.json`)
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
|
|
@ -194,72 +194,72 @@ Append to central registry (or create if not exists):
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
### Phase 5: Generate Audit Trail Entry
|
### Fase 5: Genera Voce Audit Trail
|
||||||
|
|
||||||
Create `log/audit_trail.md`:
|
Creare `log/audit_trail.md`:
|
||||||
|
|
||||||
```markdown
|
```markdown
|
||||||
# Audit Trail — [ORTO_ID]
|
# Audit Trail — [ORTO_ID]
|
||||||
|
|
||||||
## Event: Init
|
## Evento: Init
|
||||||
|
|
||||||
| Field | Value |
|
| Campo | Valore |
|
||||||
|-------|-------|
|
|-------|-------|
|
||||||
| **Timestamp** | [TODAY_ISO] |
|
| **Timestamp** | [TODAY_ISO] |
|
||||||
| **Event** | orto_init |
|
| **Evento** | orto_init |
|
||||||
| **Status** | success |
|
| **Status** | success |
|
||||||
| **Orto ID** | [ORTO_ID] |
|
| **Orto ID** | [ORTO_ID] |
|
||||||
| **Coordinator** | Codex (skill: orto-init) |
|
| **Coordinatore** | Codex (skill: orto-init) |
|
||||||
| **Details** | Garden project initialized. Config created, directory structure scaffolded, questionnaire templates generated. |
|
| **Dettagli** | Progetto orto inizializzato. Config creata, struttura directory scaffoldata, template questionari generati. |
|
||||||
|
|
||||||
---
|
---
|
||||||
```
|
```
|
||||||
|
|
||||||
## Output
|
## Output
|
||||||
|
|
||||||
**Structure created:**
|
**Struttura creata:**
|
||||||
- Directory `/Orti/<orto_id>/` with all subdirectories ✓
|
- Directory `/Orti/<orto_id>/` con tutte le sottodirectory ✓
|
||||||
- File `garden_config.md` (initial template) ✓
|
- File `garden_config.md` (template iniziale) ✓
|
||||||
- Files `blocco_1...5.md` (questionnaire templates, empty) ✓
|
- File `blocco_1...5.md` (template questionari, vuoti) ✓
|
||||||
- File `audit_trail.md` (init event) ✓
|
- File `audit_trail.md` (evento init) ✓
|
||||||
- Registry entry in `orti_registry.json` ✓
|
- Voce registro in `orti_registry.json` ✓
|
||||||
|
|
||||||
**Console output (Markdown):**
|
**Output console (Markdown):**
|
||||||
|
|
||||||
```markdown
|
```markdown
|
||||||
# ✅ Orto Initialized
|
# ✅ Orto Inizializzato
|
||||||
|
|
||||||
**Orto ID:** [ORTO_ID]
|
**Orto ID:** [ORTO_ID]
|
||||||
**Name:** [ORTO_NAME]
|
**Nome:** [ORTO_NAME]
|
||||||
**Location:** [PROVINCIA], [REGIONE]
|
**Localizzazione:** [PROVINCIA], [REGIONE]
|
||||||
**Zone:** [ZONE] (Frost: [LAST_FROST]—[FIRST_FROST])
|
**Zona:** [ZONE] (Gelate: [ULTIMA_GELATA]—[PRIMA_GELATA])
|
||||||
**Area:** ??? m² (collect in Blocco 2)
|
**Area:** ??? m² (raccolto in Blocco 2)
|
||||||
**Path:** /home/<user>/.openclaw/workspace/Orti/[ORTO_ID]
|
**Path:** /home/<user>/.openclaw/workspace/Orti/[ORTO_ID]
|
||||||
|
|
||||||
## Next Step
|
## Prossimo Passo
|
||||||
|
|
||||||
→ Run **orto-onboarding** skill to collect garden profile via 5 questionnaire blocks.
|
→ Eseguire skill **orto-onboarding** per raccogliere profilo orto tramite 5 blocchi di questionario.
|
||||||
|
|
||||||
**Expected time:** 15-30 minutes
|
**Tempo stimato:** 15-30 minuti
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## Error Handling
|
## Gestione Errori
|
||||||
|
|
||||||
| Error | Fallback |
|
| Errore | Fallback |
|
||||||
|-------|----------|
|
|-------|----------|
|
||||||
| Directory already exists | Skip creation; update registry and confirm with user |
|
| Directory già esiste | Saltare creazione; aggiornare registro e confermare con utente |
|
||||||
| Invalid coordinates | Use centro-Italy defaults (Lazio) and flag for user verification |
|
| Coordinate non valide | Usare default centro-Italia (Lazio) e flaggare per verifica utente |
|
||||||
| Registry file missing | Create new registry with this entry |
|
| File registro mancante | Creare nuovo registro con questa voce |
|
||||||
| Invalid orto_id format | Suggest normalized ID and ask for confirmation |
|
| Formato orto_id non valido | Suggerire ID normalizzato e chiedere conferma |
|
||||||
|
|
||||||
## References
|
## Riferimenti
|
||||||
|
|
||||||
See bundled `references/calendario_it.md` for frost dates and climate zone details.
|
Vedere `references/calendario_it.md` bundled per dettagli date di gelata e zone climatiche.
|
||||||
|
|
||||||
## Scripts
|
## Script
|
||||||
|
|
||||||
This skill uses bundled Python script for deterministic directory creation:
|
Questa skill usa uno script Python bundled per creazione directory deterministica:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
scripts/init_new_orto_bundled.sh \
|
scripts/init_new_orto_bundled.sh \
|
||||||
|
|
@ -271,13 +271,13 @@ scripts/init_new_orto_bundled.sh \
|
||||||
--lon <longitude>
|
--lon <longitude>
|
||||||
```
|
```
|
||||||
|
|
||||||
Script is fully self-contained and idempotent (safe to re-run).
|
Lo script è completamente self-contained e idempotente (safe da re-eseguire).
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Examples
|
## Esempi
|
||||||
|
|
||||||
### Example 1: Roma Garden
|
### Esempio 1: Orto Roma
|
||||||
|
|
||||||
**Input:**
|
**Input:**
|
||||||
```
|
```
|
||||||
|
|
@ -290,13 +290,13 @@ longitude: 12.4922
|
||||||
```
|
```
|
||||||
|
|
||||||
**Output:**
|
**Output:**
|
||||||
- Directory created: `/Orti/orto_roma_testaccio_001/`
|
- Directory creata: `/Orti/orto_roma_testaccio_001/`
|
||||||
- Zone inferred: `centro` (last frost ~15 apr, first frost ~25 oct)
|
- Zona inferita: `centro` (ultima gelata ~15 apr, prima gelata ~25 ott)
|
||||||
- Status: Init complete, ready for onboarding
|
- Status: Init completato, pronto per onboarding
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### Example 2: Milano Garden
|
### Esempio 2: Orto Milano
|
||||||
|
|
||||||
**Input:**
|
**Input:**
|
||||||
```
|
```
|
||||||
|
|
@ -309,28 +309,28 @@ longitude: 9.1900
|
||||||
```
|
```
|
||||||
|
|
||||||
**Output:**
|
**Output:**
|
||||||
- Directory created: `/Orti/orto_milano_lambro_001/`
|
- Directory creata: `/Orti/orto_milano_lambro_001/`
|
||||||
- Zone inferred: `nord` (last frost ~25 apr, first frost ~15 oct)
|
- Zona inferita: `nord` (ultima gelata ~25 apr, prima gelata ~15 ott)
|
||||||
- Status: Init complete
|
- Status: Init completato
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Assumptions
|
## Assunzioni
|
||||||
|
|
||||||
1. Codex is running on a machine with filesystem access to `/home/<user>/.openclaw/workspace/`
|
1. Codex è in esecuzione su una macchina con accesso filesystem a `/home/<user>/.openclaw/workspace/`
|
||||||
2. User has write permissions to create directories and files
|
2. L'utente ha permessi di scrittura per creare directory e file
|
||||||
3. Climate zone is inferred from latitude alone (simplification; refine if needed)
|
3. La zona climatica è inferita solo da latitudine (semplificazione; da raffinare se necessario)
|
||||||
4. All templates are in Italian language (Italiano)
|
4. Tutti i template sono in lingua italiana
|
||||||
5. Questionnaire templates are empty stubs; filled during orto-onboarding skill
|
5. Template questionari sono stub vuoti; compilati durante skill orto-onboarding
|
||||||
|
|
||||||
## Validation Checklist
|
## Checklist di Validazione
|
||||||
|
|
||||||
- ✓ `orto_id` is unique in registry
|
- ✓ `orto_id` è univoco nel registro
|
||||||
- ✓ Directory path does not conflict with existing gardens
|
- ✓ Path directory non conflitto con orti esistenti
|
||||||
- ✓ Coordinates are valid (lat/lon bounds)
|
- ✓ Coordinate valide (lat/lon bounds)
|
||||||
- ✓ Provincia and Regione match Italian administrative divisions
|
- ✓ Provincia e Regione corrispondono divisioni amministrative italiane
|
||||||
- ✓ All template files created and readable
|
- ✓ Tutti file template creati e leggibili
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
**Skill: orto-init** | Version 1.0 | Status: Production-Ready
|
**Skill: orto-init** | Versione 1.0 | Status: Pronto per Produzione
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue