diff --git a/INSTALL_INTERACTIVE.md b/INSTALL_INTERACTIVE.md new file mode 100644 index 0000000..69b912b --- /dev/null +++ b/INSTALL_INTERACTIVE.md @@ -0,0 +1,339 @@ +# 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/install_via_openclaw.sh b/install_via_openclaw.sh new file mode 100755 index 0000000..77c298d --- /dev/null +++ b/install_via_openclaw.sh @@ -0,0 +1,192 @@ +#!/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