diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..e9e2610 --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,400 @@ +# AGENTS.md β€” Orto Skills Installation & Setup Agent Instructions + +**Per agenti OpenClaw che ricevono pacchetto orto-skills e devono installare le skill** + +--- + +## 🎯 Scopo + +Quando un utente carica il pacchetto `orto-skills-v*.tar.gz` in chat e chiede di installare le skill, un agente deve: + +1. **Estrarre** il pacchetto `.tar.gz` +2. **Eseguire** `INSTALL.sh` per copiare le skill in `~/.openclaw/skills/orto-suite/` +3. **Verificare** che i 9 SKILL.md + 8 reference file siano presenti +4. **Guida utente** verso il prossimo step (creazione orto) + +--- + +## πŸ“‹ Step-by-Step Per l'Agente + +### Fase 1: Ricevere il Pacchetto + +**Trigger:** Utente carica file `.tar.gz` e chiede "installa", "estrai", "setup" + +**Azioni agente:** +``` +βœ… Detect file upload +βœ… Verify filename ends with .tar.gz +βœ… Verify size ~77 KB (orto-skills-v1.0-dist.tar.gz) +``` + +**Messaggio all'utente:** +``` +πŸ“¦ Ho ricevuto il pacchetto! + - Filename: orto-skills-v1.0-dist.tar.gz + - Size: 77 KB βœ“ + +Procedo con estrazione e installazione... +(30-45 secondi) +``` + +--- + +### Fase 2: Estrarre il Pacchetto + +**Dove:** Cartella temporanea (es: `/tmp/orto-install-/`) + +**Comandi eseguiti dall'agente:** +```bash +# 1. Crea cartella temporanea +WORK_DIR=$(mktemp -d) +cd $WORK_DIR + +# 2. Estrai tar.gz +tar -xzf /tmp/uploads/orto-skills-v1.0-dist.tar.gz + +# 3. Verifica struttura +ls -la orto-skills/ + └─ orto-suite/ + └─ INSTALL.sh + └─ README.md + └─ ... +``` + +**Verifiche:** +``` +βœ… orto-skills/ estratto +βœ… orto-suite/ presente +βœ… INSTALL.sh presente e executable +``` + +--- + +### Fase 3: Eseguire INSTALL.sh + +**Azioni agente:** +```bash +# Navigare in cartella estratta +cd $WORK_DIR/orto-skills + +# Eseguire script di installazione +./INSTALL.sh +``` + +**Output atteso:** +``` +βœ… Source directory found +βœ… Copying orto-suite to ~/.openclaw/skills/orto-suite/ +βœ… Copied successfully +βœ… Verifying installation... +βœ… Found 9 SKILL.md files +βœ… Found 8 reference files +βœ… Installation verified + +β•‘ βœ… INSTALLATION COMPLETED SUCCESSFULLY +``` + +**Se utente risponde "n" al prompt di overwrite:** +``` +⚠️ Installazione non eseguita (utente ha rifiutato) +Vuoi procedere con overwrite? Scrivi "sΓ¬" per continuare +``` + +--- + +### Fase 4: Verificare Installazione + +**Azioni agente:** +```bash +# Verifica file installati +ls -la ~/.openclaw/skills/orto-suite/ + +# Conta SKILL.md +find ~/.openclaw/skills/orto-suite -name "SKILL.md" | wc -l + +# Conta reference files +ls ~/.openclaw/skills/orto-suite/references/*.md | wc -l + +# Test symlink resolution +ls ~/.openclaw/skills/orto-suite/orto-init/references/*.md | wc -l +``` + +**Criterio successo:** +``` +βœ… 9 SKILL.md trovati +βœ… 8 reference files trovati +βœ… Symlink risolti: tutti 8 reference file accessibili +βœ… Directory structure coerente +``` + +--- + +### Fase 5: Guida Utente al Prossimo Step + +**Messaggio di successo:** +``` +πŸŽ‰ INSTALLAZIONE COMPLETATA! + +βœ… 9 skill installate in ~/.openclaw/skills/orto-suite/ +βœ… 8 reference files centralizzati +βœ… Symlink verif ied βœ“ + +Adesso puoi: + +1️⃣ Creare il tuo primo orto: + "Voglio creare un orto a Roma, Lazio" + +2️⃣ Oppure se hai domande: + "Dove si trova il mio orto? Come funziona il sistema?" + +Pronto? 🌱 +``` + +**Se fallisce:** +``` +❌ INSTALLAZIONE FALLITA + +Errore: [descrizione errore dal log] + +Possibili soluzioni: +1. Verifica che il pacchetto sia integro +2. Controlla che ~/.openclaw/skills/ sia scrivibile +3. Riprova con: "Installa di nuovo" + +Se persiste, contatta support. +``` + +--- + +## πŸ”§ Dettagli Tecnici Per Agenti + +### Percorsi Chiave + +``` +Pacchetto uploaddato: /tmp/uploads/orto-skills-v1.0-dist.tar.gz +Lavoro temporaneo: /tmp/orto-install-/ +Estratto pacchetto: /tmp/orto-install-/orto-skills/ +Script INSTALL.sh: /tmp/orto-install-/orto-skills/INSTALL.sh +Destinazione finale: ~/.openclaw/skills/orto-suite/ +``` + +### Cartella Installata (Struttura) + +``` +~/.openclaw/skills/orto-suite/ +β”œβ”€β”€ orto-init/ +β”‚ β”œβ”€β”€ SKILL.md +β”‚ β”œβ”€β”€ references β†’ ../references (symlink) +β”‚ β”œβ”€β”€ assets/ +β”‚ └── scripts/ +β”œβ”€β”€ orto-agronomo/ +β”œβ”€β”€ orto-calendario/ +β”œβ”€β”€ orto-fitopatologo/ +β”œβ”€β”€ orto-irrigazione/ +β”œβ”€β”€ orto-layout/ +β”œβ”€β”€ orto-meteo-decisioni/ +β”œβ”€β”€ orto-onboarding/ +β”œβ”€β”€ orto-orchestratore/ +└── references/ (8 file) + β”œβ”€β”€ colture_it.md + β”œβ”€β”€ calendario_it.md + β”œβ”€β”€ malattie_trattamenti.md + β”œβ”€β”€ irrigazione_parametri.md + β”œβ”€β”€ consociazioni_layout.md + β”œβ”€β”€ meteo_soglie.md + β”œβ”€β”€ conflitti_risoluzione.md + └── qa_checklist.md +``` + +### Comandi di Verifica + +```bash +# Totale file SKILL.md +find ~/.openclaw/skills/orto-suite -name "SKILL.md" | wc -l +# Atteso: 9 + +# Totale reference files +ls ~/.openclaw/skills/orto-suite/references/*.md | wc -l +# Atteso: 8 + +# Verifica symlink +readlink ~/.openclaw/skills/orto-suite/orto-init/references +# Atteso: ../references (output testuale) + +# Test accesso via symlink +ls ~/.openclaw/skills/orto-suite/orto-agronomo/references/*.md | wc -l +# Atteso: 8 +``` + +--- + +## πŸ“Š Flusso di Installazione Completo + +``` +β”Œβ”€ UTENTE AZIONI ──────────────┐ β”Œβ”€ AGENTE AZIONI ──────────┐ +β”‚ β”‚ β”‚ β”‚ +β”‚ 1. Carica .tar.gz │──→ β”‚ 1. Detect + verify file β”‚ +β”‚ β”‚ β”‚ β”‚ +β”‚ 2. "Installa le skill" │──→ β”‚ 2. Extract tar.gz β”‚ +β”‚ β”‚ β”‚ β”‚ +β”‚ 3. [Aspetta] β”‚ β”‚ 3. Run INSTALL.sh β”‚ +β”‚ (30-45 secondi) β”‚ β”‚ β”‚ +β”‚ β”‚ β”‚ 4. Verify installation β”‚ +β”‚ 4. Riceve conferma │←── β”‚ β”‚ +β”‚ βœ… Installazione ok β”‚ β”‚ 5. Report to user β”‚ +β”‚ β”‚ β”‚ β”‚ +β”‚ 5. "Crea orto a Roma" │──→ β”‚ 6. Invoke orto-init β”‚ +β”‚ β”‚ β”‚ β”‚ +β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ +``` + +--- + +## 🚨 Gestione Errori + +### Errore: File Corrotto + +**Scenario:** Decompressione fallisce + +```bash +# Agente: +tar -tzf /tmp/uploads/orto-skills-v1.0-dist.tar.gz > /dev/null 2>&1 +if [ $? -ne 0 ]; then + echo "❌ File corrupted or invalid tar.gz" + exit 1 +fi +``` + +**Messaggio utente:** +``` +❌ ERRORE: Pacchetto corrotto + +Il file non Γ¨ un tar.gz valido. +Controlla di aver scaricato il file corretto da: + https://github.com/... + +Scarica di nuovo e riprova. +``` + +--- + +### Errore: INSTALL.sh Non Eseguibile + +**Scenario:** Permission denied + +```bash +# Agente: +chmod +x orto-skills/INSTALL.sh +./orto-skills/INSTALL.sh +``` + +**Messaggio utente:** +``` +⚠️ ATTENZIONE: Script non eseguibile + +Ho corretto i permessi e riprovo... +``` + +--- + +### Errore: ~/.openclaw/skills/ Non Scrivibile + +**Scenario:** Permission denied su destinazione + +```bash +# Agente: +if [ ! -w ~/.openclaw/skills ]; then + echo "❌ Directory not writable" + exit 1 +fi +``` + +**Messaggio utente:** +``` +❌ ERRORE: Permessi insufficienti + +La cartella ~/.openclaw/skills/ non Γ¨ scrivibile. +Questo puΓ² accadere se: +1. Il sistema file Γ¨ read-only +2. Hai cambiato permessi manualmente + +Contatta il tuo amministratore di sistema. +``` + +--- + +## βœ… Checklist Per Agenti + +Quando ricevi richiesta di installazione: + +- [ ] Detect file upload (.tar.gz) +- [ ] Verify file size and name +- [ ] Extract in temporary directory +- [ ] Verify orto-skills/ structure +- [ ] Verify orto-suite/ present +- [ ] Verify INSTALL.sh executable +- [ ] Run INSTALL.sh +- [ ] Parse output (success vs failure) +- [ ] If failed, handle error +- [ ] If success, verify installation +- [ ] Count SKILL.md (9 expected) +- [ ] Count reference files (8 expected) +- [ ] Test symlink resolution +- [ ] Report success/failure to user +- [ ] Suggest next step (orto-init) +- [ ] Cleanup temporary directory + +--- + +## 🎯 Next Steps Per Utente + +Dopo installazione, guidare utente verso: + +### Opzione A: Setup Interattivo +``` +"Mi guidi a creare il mio primo orto?" + +Agente guiderΓ  attraverso: +1. Localizzazione (provincia, regione) +2. Profilo orto (spazio, dieta, tempo disponibile) +3. Generazione piano completo +``` + +### Opzione B: Solo Info +``` +"Voglio saperne di piΓΉ sulle skill" + +Agente presenterΓ : +- Elenco 9 skill disponibili +- Workflow tipico: init β†’ onboarding β†’ agronomo β†’ orchestratore +- Esempi di output +``` + +### Opzione C: Manuale +``` +"Come uso le skill?" + +Agente guiderΓ  all'README.md e INSTALL_INTERACTIVE.md +``` + +--- + +## πŸ“ž Supporto + +Se agente riceve errore non documentato: + +``` +❓ ERRORE NON RICONOSCIUTO + +Dettagli: +[descrizione errore completa] + +Questo potrebbe essere un problema di sistema. +Per supporto: contatta il tuo amministratore OpenClaw + +Log salvato in: ~/.openclaw/logs/orto-install-.log +``` + +--- + +_Last Updated: 2026-03-07 02:17 GMT+1_ diff --git a/INSTALL_INTERACTIVE.md b/INSTALL_INTERACTIVE.md deleted file mode 100644 index 69b912b..0000000 --- a/INSTALL_INTERACTIVE.md +++ /dev/null @@ -1,339 +0,0 @@ -# Installazione Interattiva: Orto Skills via Chat OpenClaw - -**Per utenti che vogliono installare le skill Orto direttamente da chat senza comandi terminale** - ---- - -## 🎯 Obiettivo - -Installare tutte le 9 skill Orto su OpenClaw **solo tramite chat**, semplicemente: -1. Caricando il pacchetto `.tar.gz` -2. Dicendo "installa le skill orto" -3. Rispondendo a poche domande -4. Ottenendo un piano completo - -**Zero comandi terminale. Tutto gestito da me (AgentePotente).** - ---- - -## πŸ“¦ Prerequisiti - -- βœ… Accesso a questa chat OpenClaw -- βœ… File `orto-skills-v1.0-dist.tar.gz` (77 KB) -- βœ… Nessun accesso server necessario -- βœ… Nessun comando manuale richiesto - ---- - -## πŸš€ Procedura 3-Step - -### Step 1: Carica il Package - -**Cosa fare:** -1. Scarica `orto-skills-v1.0-dist.tar.gz` (77 KB) -2. Carica il file in questa chat (drag & drop) -3. Aspetta la verifica - -**Esempio messaggio:** -``` -[Carica file orto-skills-v1.0-dist.tar.gz] -``` - -**Io risponderΓ²:** -``` -βœ… Package ricevuto -πŸ“Š Verificando integritΓ ... - - File size: 77 KB βœ“ - - Formato: tar.gz βœ“ - - Skill files: 9 βœ“ - -Pronto per installazione! -``` - ---- - -### Step 2: Chiedi Installazione - -**Cosa fare:** -Scrivi uno di questi messaggi: -- "Installa le skill orto" -- "Procedo con l'installazione?" -- "Vai con l'installazione" - -**Cosa succede:** -Io eseguirΓ² automaticamente: -1. Estrazione del package -2. Verifica dei file -3. Installazione in `~/.openclaw/skills/orto-suite/` -4. Test di validazione - -**Risposta:** -``` -πŸ”„ Installazione in corso... (30 secondi) - -βœ… 9 skill estratte -βœ… Tutti file verificati -βœ… Installazione completata - -πŸ“‚ Location: ~/.openclaw/skills/orto-suite/ - -Pronto! Che facciamo adesso? -``` - ---- - -### Step 3: Crea Il Tuo Primo Orto - -**Cosa fare:** -Rispondi semplicemente alle mie domande: - -``` -🌍 Dove vuoi il tuo orto? - -1️⃣ Provincia (es: Roma) -2️⃣ Regione (es: Lazio) -3️⃣ Nome orto (es: "Orto Testaccio") -4️⃣ Coordinate (opzionale, es: 41.8782, 12.4922) -``` - -**Esempio risposta:** -``` -Roma, Lazio, Orto Testaccio, 41.8782, 12.4922 -``` - -**Io farΓ²:** -``` -βœ… Orto creato: orto_roma_testaccio_001 - -Adesso, dimmi di piΓΉ del tuo orto (5 domande): - -1️⃣ Quanto spazio hai? (mΒ²) -2️⃣ Esposizione sole: pieno/parziale/ombra? -3️⃣ Acqua: rubinetto/pozzo/pluviale? -4️⃣ Quante persone? Qual Γ¨ la dieta? -5️⃣ Ore/settimana disponibili per orto? -``` - ---- - -## πŸ“‹ Complete Flow (Dal Caricamento al Piano) - -``` -β”Œβ”€ UPLOAD ────────────────────────────┐ -β”‚ Tu: Carica file β”‚ -β”‚ Io: Verifica package β”‚ -β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ - ↓ -β”Œβ”€ INSTALL ───────────────────────────┐ -β”‚ Tu: "Installa" β”‚ -β”‚ Io: Esegue installation script β”‚ -β”‚ Verifica 9 skill β”‚ -β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ - ↓ -β”Œβ”€ CREATE GARDEN ─────────────────────┐ -β”‚ Tu: Rispondi domande (localizzazione) -β”‚ Io: Crea orto + registro β”‚ -β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ - ↓ -β”Œβ”€ ONBOARDING ────────────────────────┐ -β”‚ Tu: Rispondi 5 blocchi domande β”‚ -β”‚ Io: Raccolgo profile (spazio, dieta)β”‚ -β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ - ↓ -β”Œβ”€ FULL PLANNING ─────────────────────┐ -β”‚ Tu: "Genera piano completo" β”‚ -β”‚ Io: Esegue orchestratore β”‚ -β”‚ Merge di tutti i dati β”‚ -β”‚ Validazione QA β”‚ -β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ - ↓ -β”Œβ”€ RESULTS ───────────────────────────┐ -β”‚ Piano stagionale completo β”‚ -β”‚ - Colture (12 varietΓ ) β”‚ -β”‚ - Calendario (52 settimane) β”‚ -β”‚ - Layout aiuole β”‚ -β”‚ - Irrigazione (3 zone) β”‚ -β”‚ - Prevenzione malattie β”‚ -β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ -``` - ---- - -## ❓ Domande Frequenti - -### D: Cosa succede se la connessione cade? -**R:** L'installazione Γ¨ atomica β€” o tutto funziona, o riproviamo. Niente mezzotermini. - -### D: Posso installare piΓΉ orti contemporaneamente? -**R:** SΓ¬! Ogni orto ha un ID unico. Crea piΓΉ progetti. - -### D: I dati rimangono privati? -**R:** SΓ¬. Tutto Γ¨ locale in `~/.openclaw/workspace/Orti/`. Io non leggo dati personali. - -### D: Posso modificare il piano dopo? -**R:** SΓ¬, tutti i file sono markdown editabili. Modificali e comunica le cambiate. - -### D: Quanto spazio occupa? -**R:** ~636 KB totali (skills + references). Leggero. - -### D: Funziona offline? -**R:** Quasi. Il meteo ha bisogno internet (ma ha fallback). Tutto altro Γ¨ offline. - ---- - -## πŸ› Troubleshooting - -### Problema: "File non riconosciuto" -**Soluzione:** -- Scarica di nuovo il file -- Verifica che finisca con `.tar.gz` -- Ricaricare in chat - -### Problema: "Installazione fallita" -**Soluzione:** -- Leggi il log di errore -- Chiedi "cosa Γ¨ andato male?" -- RiproverΓ² con diagnostica - -### Problema: "9 skill non trovate" -**Soluzione:** -- Il package potrebbe essere corrotto -- Scarica di nuovo -- Se persiste, contatta support - -### Problema: "Permission denied" -**Soluzione:** -- Io eseguo come utente corrente -- Se persiste, forse file system issue -- Proviamo backup/restore - ---- - -## βœ… Verifica Installazione - -Dopo che io dico "βœ… Installazione completata", puoi verificare: - -**In chat, chiedi:** -``` -"Mostrami che le skill sono installate" -``` - -**Io risponderΓ² mostrando:** -- 9 directory skill -- Ogni SKILL.md presente -- Test di funzionamento - ---- - -## πŸŽ“ Cosa Aspettarsi Dal Piano - -Dopo completamento, riceverai: - -**πŸ“‹ Files Generati:** -- `PlanBundle_Master.md` β€” Piano stagionale completo -- `piano_colture_annuale.md` β€” Colture (12 varietΓ ) -- `calendario_operativo_settimanale.md` β€” Task settimanali -- `aiuole_dimensioni.md` β€” Layout fisico -- `sistema_irrigazione.md` β€” Irrigazione multi-zona -- `diagnosi_problemi.md` β€” Prevenzione malattie -- `audit_trail.md` β€” Log di ogni azione - -**πŸ“Š Informazioni Contenute:** -- βœ… Colture selezionate per te + clima -- βœ… 52 settimane di task settimanali -- βœ… Calendario di semina/trapianto/raccolta -- βœ… Sistema irrigazione personalizzato -- βœ… Prevenzione biologica malattie -- βœ… Layout fisico aiuole -- βœ… Note accessibilitΓ  - -**πŸ“₯ Download:** -Tutti i file rimangono in `~/.openclaw/workspace/Orti/orto_*/` -Puoi scaricarli, condividerli, modificarli. - ---- - -## 🌱 Una Volta Installato... - -### Supporto Settimanale - -Ogni lunedΓ¬, chiedi: -``` -"Brief settimanale per [nome_orto]" -``` - -Riceverai: -- 🌀️ Previsione meteo 7 giorni -- πŸ“‹ Task questa settimana -- 🚨 Alert (gelo, vento, caldo) -- πŸ’§ Aggiustamenti irrigazione - -### Modifica Piano - -Se qualcosa non ti piace: -``` -"Voglio aggiungere [coltura] al piano" -"Ridimensiona l'area irrigazione" -"Cambia le date di semina" -``` - -Io ricalcolo e ricreo il piano. - -### Domande Su Specifiche - -Puoi chiedere qualsiasi cosa sui dati: -``` -"Quale Γ¨ la migliore consociazione per il Pomodoro?" -"Quanta acqua serve la Lettuga?" -"Quando Γ¨ il gelo a Roma?" -``` - ---- - -## πŸš€ Iniziamo! - -**Pronto? Ecco cosa fare ora:** - -1. **Scarica il file** - - `orto-skills-v1.0-dist.tar.gz` (77 KB) - - Da: [insert download link or GitHub] - -2. **Carica in chat** - - Drag & drop file qui - - Aspetta verifica - -3. **Scrivi il comando** - - "Installa le skill orto" - - Io farΓ² il resto - -4. **Rispondi alle domande** - - Localizzazione orto - - Profilo utente - - Dettagli orto - -5. **Ricevi il piano** - - Completo, pronto, personalizzato - - Markdown editabile - - Scaricabile - ---- - -## πŸ“ž Supporto - -Durante l'installazione: -- Se qualcosa non torna, chiedi "cosa Γ¨ andato male?" -- Se i file non caricano, riprova -- Se non capisci una domanda, chiedi di ripeterla - -Dopo installazione: -- Chiedi cosa vuoi modificare -- Chiedi supporto settimanale -- Chiedi chiarimenti su dati - ---- - -## 🎁 Pronto! - -**Non ci rimane che iniziare!** - -Carica il file e dimmi quando sei pronto. 🌱 diff --git a/README.md b/README.md index 1766fad..05939f2 100644 --- a/README.md +++ b/README.md @@ -36,16 +36,12 @@ Suite completa multi-skill per gestione orto italiano. 9 skill modulari, pronto ## πŸ—‚οΈ Mappa Directory ``` -orto-skills/ ← Repository +orto-skills/ ← Repository (pulito, essenziale) β”œβ”€β”€ README.md # Questo file β”œβ”€β”€ INSTALL.sh ⭐ # Copia orto-suite/ β†’ ~/.openclaw/skills/ β”œβ”€β”€ INSTALL_INTERACTIVE.md # Guida installazione via chat -β”œβ”€β”€ install_via_openclaw.sh # Script per OpenClaw exec() -β”‚ -β”œβ”€β”€ COMPLETION_SUMMARY.md # Sommario deliverable -β”œβ”€β”€ SKILL_DEVELOPMENT_PLAN.md # Log sviluppo -β”‚ -└── orto-suite/ ⭐ ← COPIA IN ~/.openclaw/skills/orto-suite/ +β”œβ”€β”€ .gitignore # Git configuration +└── orto-suite/ ⭐ ← L'UNICA CARTELLA DA COPIARE β”œβ”€β”€ orto-init/ β”‚ β”œβ”€β”€ SKILL.md β”‚ β”œβ”€β”€ references/ (symlink a ../references) @@ -108,11 +104,11 @@ openclaw invoke ~/.openclaw/skills/orto-suite/orto-init/SKILL.md \ ### Opzione 2: Installazione via Chat (Zero Terminale) 1. Carica `orto-skills-v1.0-dist.tar.gz` in OpenClaw chat -2. Scrivi: "Installa le skill orto" -3. Rispondi alle domande -4. Ricevi piano completo +2. Chiedi all'agente di installare: "Estrai e installa le skill orto" +3. L'agente eseguirΓ  INSTALL.sh automaticamente +4. Procedi con creazione orto (orto-init) -Vedi: **[INSTALL_INTERACTIVE.md](INSTALL_INTERACTIVE.md)** +Vedi: **[INSTALL_INTERACTIVE.md](INSTALL_INTERACTIVE.md)** per dettagli flow ### Opzione 3: Copia Manuale (PiΓΉ Semplice) diff --git a/SKILL_DEVELOPMENT_PLAN.md b/SKILL_DEVELOPMENT_PLAN.md deleted file mode 100644 index da6f7c6..0000000 --- a/SKILL_DEVELOPMENT_PLAN.md +++ /dev/null @@ -1,285 +0,0 @@ -# Orto Skills Development Plan - -**Start Date:** 2026-03-06 -**Status:** Fase 1 in Progress -**Target:** 9 skill packaggiati, testati, ready to distribution - ---- - -## Skill Development Queue - -### Sprint 1: Foundation Skills (Giorni 1-2) - -#### [1] orto-init ⏱️ Starting -**Purpose:** Initialize new garden project -**Source:** Workflow 00 + init_new_orto.py script -**Status:** Reading sources -**Complexity:** Medium (scaffolding + registration) - -**Deliverables:** -- [ ] SKILL.md drafted -- [ ] References collected -- [ ] Scripts bundled -- [ ] Test case: init test garden - ---- - -#### [2] orto-onboarding ⏱️ Queued -**Purpose:** Collect garden profile via 5 questionnaire blocks -**Source:** Workflow 01 + allegati/A_questionario_utente.md -**Complexity:** Medium (validation + guidance) - -**Deliverables:** -- [ ] SKILL.md with 5-block flow -- [ ] References: blocco templates + validation rules -- [ ] Test case: complete onboarding flow - ---- - -### Sprint 2: Decision Logic Skills (Giorni 2-3) - -#### [3] orto-agronomo ⏱️ Queued -**Purpose:** Plan crop selection + rotations -**Source:** Agent 02 spec + knowledge base -**Complexity:** High (decision tree + consociations) - -**Deliverables:** -- [ ] SKILL.md with selection logic -- [ ] References: colture_it.md (varieties, parameters, consociations) -- [ ] References: rotazione_regole.md -- [ ] Test case: select crops for 3 scenarios - ---- - -#### [4] orto-calendario ⏱️ Queued -**Purpose:** Generate seasonal calendar (IT-regional) -**Source:** Agent 03 spec + clima zones -**Complexity:** High (frost dates, succession, meteo-sensitivity) - -**Deliverables:** -- [ ] SKILL.md with calendar logic -- [ ] References: calendario_it.md (frost dates per region, planting windows) -- [ ] References: task_templates.md (metadata, meteo-tags) -- [ ] Test case: calendar for Nord/Centro/Sud region - ---- - -#### [5] orto-irrigazione ⏱️ Queued -**Purpose:** Design irrigation zones + automation -**Source:** Agent 05 spec + Workflow 05 -**Complexity:** High (multi-zone, sensors, meteo-aware) - -**Deliverables:** -- [ ] SKILL.md with zoning + baseline logic -- [ ] References: irrigazione_parametri.md (ET, Kc, thresholds) -- [ ] References: sensori_configurazione.md -- [ ] Test case: design 3-zone system - ---- - -### Sprint 3: Analysis & Integration Skills (Giorni 3-4) - -#### [6] orto-meteo-decisioni ⏱️ Queued -**Purpose:** Weather β†’ operational decisions -**Source:** Agent 11 spec + Weather decision logic -**Complexity:** Medium (API integration + thresholds) - -**Deliverables:** -- [ ] SKILL.md with decision tree -- [ ] References: meteo_soglie.md (wind, rain, frost, heat thresholds) -- [ ] Test case: apply meteo decisions to calendar - ---- - -#### [7] orto-fitopatologo ⏱️ Queued -**Purpose:** Diagnose diseases + recommend treatments -**Source:** Agent 04 spec + treatment library -**Complexity:** High (diagnostic tree + safety checks) - -**Deliverables:** -- [ ] SKILL.md with diagnostic flow -- [ ] References: malattie_sintomi.md (symptoms β†’ pathogen) -- [ ] References: trattamenti_biologici.md (treatments, DPI, timing, efficacy) -- [ ] Test case: diagnose 3 common problems - ---- - -#### [8] orto-layout ⏱️ Queued -**Purpose:** Design beds + consociations -**Source:** Agent 06 spec -**Complexity:** Medium-High (geometric + agronomic) - -**Deliverables:** -- [ ] SKILL.md with bed layout logic -- [ ] References: layout_consociazioni.md (consociation matrix, bed sizing) -- [ ] References: accessibilita_guidelines.md -- [ ] Test case: design 2 different layouts - ---- - -### Sprint 4: Orchestration (Giorno 4) - -#### [9] orto-orchestratore ⏱️ Queued -**Purpose:** Coordinate all skills + resolve conflicts -**Source:** Agent 01 spec + Orchestration rules -**Complexity:** Very High (conflict resolution + validation) - -**Deliverables:** -- [ ] SKILL.md with orchestration flow -- [ ] References: conflitti_risoluzione.md (conflict matrix + policies) -- [ ] References: qa_checklist.md (validation rules) -- [ ] Test case: full planning pipeline init β†’ onboarding β†’ skills β†’ merge - ---- - -## Shared References Library - -**Location:** `/home/noe/.openclaw/workspace/orto-skills/references/` - -These are shared across multiple skills. Extract once, reuse everywhere. - -### Knowledge Base Files (To Extract) - -- [ ] **colture_it.md** (500+ lines) - - VarietΓ  coltivabili in IT - - Cicli colturali, esigenze idriche, nutrienti, spaziatura - - Famiglie botaniche (per rotazione) - - Rese indicative (min/typ/max) - - Esempi consociazioni - -- [ ] **calendario_it.md** (200+ lines) - - Frost dates per region (Nord: 25 aprile, Centro: 15 aprile, Sud: 1 aprile) - - Seasonal windows per coltura - - Length of season per macro-zone - - Succession windows (es: lattuga primavera, successiva estate se semenzaio agostano) - -- [ ] **malattie_trattamenti.md** (300+ lines) - - Symptom β†’ pathogen mapping - - Biological treatments (neem oil, sulfur, copper, beneficial insects, etc.) - - DPI required, timing, efficacy % - - Safety interlocks (wind, rain, harvest carency) - -- [ ] **irrigazione_parametri.md** (200+ lines) - - ET0 formulas / lookup tables - - Kc per coltura e fase - - Water need classes (basso, medio, alto) - - Sensor thresholds (umiditΓ  suolo min/max %) - - Baseline watering schedules per metodo (goccia, spruzzatore, sommersione) - -- [ ] **consociazioni_layout.md** (200+ lines) - - Companion planting matrix (positive/negative combinations) - - Bed sizing recommendations (larghezza, lunghezza, profonditΓ ) - - Row spacing, plant spacing per coltura - - Pathway width (accessibilitΓ ) - - Sun exposure requirements (full sun, partial, shade) - -- [ ] **meteo_soglie.md** (100+ lines) - - Wind speed thresholds (no spray if > 5kn, transplant risky > 8kn) - - Rain thresholds (skip watering if rain > 10mm in 24h forecast) - - Frost alerts (temperature < 0Β°C for frost-sensitive crops) - - Heat stress (temperature > 35Β°C, increase irrigation) - -- [ ] **conflitti_risoluzione.md** (150+ lines) - - Irrigation zone vs. consociations β†’ prioritize water stress avoidance - - Calendar task vs. weather β†’ defer if risky conditions - - Layout vs. irrigation zone β†’ regrid if mismatch - - etc. (conflict resolution policies) - -- [ ] **qa_checklist.md** (100+ lines) - - Validation rules for PlanBundle - - Min crop diversity (% of nutritional groups) - - Water adequacy (total availability vs. plan demand) - - Nutrient balance (NPK coverage) - - Crop rotation conflicts - - etc. - ---- - -## Development Environment Setup - -### Directory Structure - -``` -orto-skills/ -β”œβ”€β”€ SKILL_DEVELOPMENT_PLAN.md # This file -β”œβ”€β”€ references/ # Shared knowledge base -β”‚ β”œβ”€β”€ colture_it.md -β”‚ β”œβ”€β”€ calendario_it.md -β”‚ β”œβ”€β”€ malattie_trattamenti.md -β”‚ β”œβ”€β”€ irrigazione_parametri.md -β”‚ β”œβ”€β”€ consociazioni_layout.md -β”‚ β”œβ”€β”€ meteo_soglie.md -β”‚ β”œβ”€β”€ conflitti_risoluzione.md -β”‚ └── qa_checklist.md -β”œβ”€β”€ scripts/ -β”‚ β”œβ”€β”€ init_new_orto_bundled.sh # Bundled from framework -β”‚ └── test_framework_extraction.py -β”œβ”€β”€ build/ -β”‚ β”œβ”€β”€ orto-init/ # Skill folder (will be packaged) -β”‚ β”‚ β”œβ”€β”€ SKILL.md -β”‚ β”‚ β”œβ”€β”€ references/ -β”‚ β”‚ β”œβ”€β”€ scripts/ -β”‚ β”‚ └── assets/ -β”‚ β”œβ”€β”€ orto-onboarding/ -β”‚ β”œβ”€β”€ ... -β”‚ └── orto-orchestratore/ -└── test/ - └── integration_tests.md -``` - ---- - -## Extraction & Normalization Tasks - -**Fase 1 (TODAY):** Extract knowledge base from framework - -- [ ] Parse `docs/agents/02_agronomo_colture.md` β†’ colture_it.md -- [ ] Parse `docs/agents/03_stagionalita_calendario.md` β†’ calendario_it.md -- [ ] Parse `docs/agents/04_fitopatologo_trattamenti.md` β†’ malattie_trattamenti.md -- [ ] Parse `docs/agents/05_irrigazione_automazione.md` β†’ irrigazione_parametri.md -- [ ] Parse `docs/agents/06_layout_zoning.md` β†’ consociazioni_layout.md -- [ ] Parse `docs/agents/11_weather_intelligence_agent.md` β†’ meteo_soglie.md -- [ ] Parse `docs/agents/01_orchestratore_planner.md` + `docs/workflows/` β†’ conflitti_risoluzione.md -- [ ] Parse `docs/agents/10_qa_safety_agent.md` β†’ qa_checklist.md - ---- - -## Testing Strategy - -### Unit Tests (Per Skill) -- Input examples from framework docs -- Validate output schema matches spec -- Check edge cases & fallbacks - -### Integration Test -- Full pipeline: init β†’ onboarding β†’ {agronomo, calendario, irrigazione} β†’ orchestratore β†’ merge -- Validate conflicts resolved correctly -- Check PlanBundle completeness - -### Smoke Test (One Garden) -- Real initialization of test garden -- Verify markdown files created and readable -- Confirm no blocking errors - ---- - -## Milestones & Timeline - -| Milestone | Target | Status | -|-----------|--------|--------| -| Fase 1 Complete (Prep + Refs) | EOD Today | ⏱️ In Progress | -| Skill #1-2 Drafted | EOD Tomorrow | ⏱️ Queued | -| Skill #3-5 Drafted | Day 3 | ⏱️ Queued | -| Skill #6-9 Drafted | Day 4 | ⏱️ Queued | -| All Skills Tested | Day 5 | ⏱️ Queued | -| Packaging + Distribution | Day 6 | ⏱️ Queued | - ---- - -## Notes - -- Maintain Italian language throughout (domain-local, as decided) -- Each skill SKILL.md < 500 lines (enforce progressive disclosure) -- References are shared; extract once, link many times -- Scripts bundled in skill, not external -- All outputs are markdown (readable, editable, versionable) diff --git a/install_via_openclaw.sh b/install_via_openclaw.sh deleted file mode 100755 index 77c298d..0000000 --- a/install_via_openclaw.sh +++ /dev/null @@ -1,192 +0,0 @@ -#!/bin/bash -############################################################################## -# install_via_openclaw.sh -# -# Automated Orto Skills installation script for OpenClaw -# Designed to be executed by AgentePotente (OpenClaw agent) via chat -# -# Usage: -# ./install_via_openclaw.sh /path/to/orto-skills-v1.0-dist.tar.gz -# -# Output: -# - Extracts 9 .skill files to ~/.openclaw/skills/orto-suite/ -# - Verifies installation -# - Logs to /tmp/install_orto_*.log -# - Returns exit code 0 if success, 1 if failed -############################################################################## - -set -e # Exit on first error - -# Configuration -INSTALL_DIR="$HOME/.openclaw/skills/orto-suite" -LOG_FILE="/tmp/install_orto_$(date +%s).log" -EXPECTED_SKILLS=9 -RED='\033[0;31m' -GREEN='\033[0;32m' -YELLOW='\033[1;33m' -BLUE='\033[0;34m' -NC='\033[0m' # No Color - -# Logging function -log() { - echo -e "${BLUE}[$(date +'%Y-%m-%d %H:%M:%S')]${NC} $1" | tee -a "$LOG_FILE" -} - -error() { - echo -e "${RED}[ERROR]${NC} $1" | tee -a "$LOG_FILE" >&2 -} - -success() { - echo -e "${GREEN}[βœ“]${NC} $1" | tee -a "$LOG_FILE" -} - -warning() { - echo -e "${YELLOW}[⚠]${NC} $1" | tee -a "$LOG_FILE" -} - -############################################################################## -# PHASE 1: VALIDATION -############################################################################## - -log "=== ORTO SKILLS INSTALLATION (OpenClaw Edition) ===" -log "Installation directory: $INSTALL_DIR" -log "Log file: $LOG_FILE" - -# Check arguments -if [ $# -ne 1 ]; then - error "Usage: $0 " - exit 1 -fi - -TAR_PATH="$1" - -# Verify tar.gz exists -if [ ! -f "$TAR_PATH" ]; then - error "File not found: $TAR_PATH" - exit 1 -fi - -log "Package path: $TAR_PATH" - -# Verify it's a tar.gz -if ! file "$TAR_PATH" | grep -q "gzip compressed data"; then - error "File is not a valid tar.gz: $TAR_PATH" - exit 1 -fi - -success "Package verified as valid tar.gz" - -############################################################################## -# PHASE 2: EXTRACTION -############################################################################## - -log "Phase 2: Extracting package..." - -# Create install directory -if [ ! -d "$INSTALL_DIR" ]; then - mkdir -p "$INSTALL_DIR" 2>&1 | tee -a "$LOG_FILE" - success "Created directory: $INSTALL_DIR" -else - log "Directory exists: $INSTALL_DIR" - # Backup existing (optional) - if [ "$(ls -A $INSTALL_DIR)" ]; then - BACKUP_DIR="$INSTALL_DIR.backup.$(date +%s)" - log "Backing up existing installation to: $BACKUP_DIR" - mv "$INSTALL_DIR" "$BACKUP_DIR" 2>&1 | tee -a "$LOG_FILE" - mkdir -p "$INSTALL_DIR" - fi -fi - -# Extract tar.gz -log "Extracting files..." -if tar -xzf "$TAR_PATH" -C "$INSTALL_DIR" --strip-components=2 2>&1 | tee -a "$LOG_FILE"; then - success "Files extracted successfully" -else - error "Extraction failed" - exit 1 -fi - -############################################################################## -# PHASE 3: VERIFICATION -############################################################################## - -log "Phase 3: Verifying installation..." - -# Count SKILL.md files -SKILL_COUNT=$(find "$INSTALL_DIR" -name "SKILL.md" -type f | wc -l) -log "Found $SKILL_COUNT SKILL.md files" - -if [ "$SKILL_COUNT" -ne "$EXPECTED_SKILLS" ]; then - warning "Expected $EXPECTED_SKILLS skills, found $SKILL_COUNT" - # Don't exit; continue verification -fi - -# Check each skill directory -log "Verifying skill directories..." -SKILLS_VERIFIED=0 -for skill_dir in "$INSTALL_DIR"/orto-*/; do - if [ -d "$skill_dir" ]; then - SKILL_NAME=$(basename "$skill_dir") - - if [ ! -f "$skill_dir/SKILL.md" ]; then - error "Missing SKILL.md in $SKILL_NAME" - exit 1 - fi - - if [ ! -r "$skill_dir/SKILL.md" ]; then - error "SKILL.md not readable in $SKILL_NAME" - exit 1 - fi - - SKILLS_VERIFIED=$((SKILLS_VERIFIED + 1)) - fi -done - -success "Verified $SKILLS_VERIFIED skill directories" - -if [ "$SKILLS_VERIFIED" -lt 5 ]; then - error "Too few skills verified ($SKILLS_VERIFIED < 5)" - exit 1 -fi - -############################################################################## -# PHASE 4: METADATA CHECK -############################################################################## - -log "Phase 4: Checking metadata..." - -# List installed skills -echo "" | tee -a "$LOG_FILE" -echo "=== INSTALLED SKILLS ===" | tee -a "$LOG_FILE" -find "$INSTALL_DIR" -maxdepth 2 -name "SKILL.md" -type f | sort | while read skillmd; do - skilldir=$(dirname "$skillmd") - skillname=$(basename "$skilldir") - echo " βœ“ $skillname" | tee -a "$LOG_FILE" -done - -############################################################################## -# PHASE 5: SUCCESS SUMMARY -############################################################################## - -log "Phase 5: Installation summary" - -echo "" | tee -a "$LOG_FILE" -echo "╔════════════════════════════════════════════════════════════╗" | tee -a "$LOG_FILE" -echo "β•‘ βœ… INSTALLATION COMPLETED SUCCESSFULLY β•‘" | tee -a "$LOG_FILE" -echo "β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•" | tee -a "$LOG_FILE" - -success "Skills installed: $SKILLS_VERIFIED" -success "Installation directory: $INSTALL_DIR" -success "Log file: $LOG_FILE" - -echo "" | tee -a "$LOG_FILE" -echo "=== NEXT STEPS ===" | tee -a "$LOG_FILE" -echo "1. Create your first garden (orto-init)" | tee -a "$LOG_FILE" -echo "2. Answer onboarding questions (orto-onboarding)" | tee -a "$LOG_FILE" -echo "3. Generate complete plan (orto-orchestratore)" | tee -a "$LOG_FILE" -echo "4. Receive weekly briefing (orto-meteo-decisioni)" | tee -a "$LOG_FILE" - -echo "" | tee -a "$LOG_FILE" -echo "For help, ask: 'Come uso le skill orto?'" | tee -a "$LOG_FILE" - -exit 0