Pulizia: Eliminazione build/ (700 KB) + 3 guide ridondanti (QUICK_START, INSTALLATION, DISTRIBUTION)

This commit is contained in:
Noe 2026-03-07 02:11:32 +01:00
parent c729f59621
commit f942118cb6
22 changed files with 3 additions and 4158 deletions

11
.gitignore vendored
View file

@ -1,12 +1,9 @@
# Python & Build artifacts # Python
__pycache__/ __pycache__/
*.py[cod] *.py[cod]
*$py.class *$py.class
*.so *.so
.Python .Python
build/**/*
# NOTE: Ignore old .skill zip files (use orto-suite/ instead)
build/dist/
develop-eggs/ develop-eggs/
dist/ dist/
downloads/ downloads/
@ -47,7 +44,5 @@ htmlcov/
node_modules/ node_modules/
npm-debug.log npm-debug.log
# IMPORTANT: orto-suite/ SHOULD be tracked # NOTE: orto-suite/ IS tracked (production-ready skills)
# Comment out this if it was in build/** rule: # No exclusions needed - symlink references work perfectly
!orto-suite/
!orto-suite/**

View file

@ -1,393 +0,0 @@
# Orto Skills Suite v1.0 — Distribution Guide
**For Team Distribution (No ClawHub Required)**
---
## 📦 What's in This Package?
```
orto-skills-v1.0-dist.tar.gz (77 KB)
└── orto-skills/
├── 9 × .skill files (148 KB)
│ ├── orto-init.skill
│ ├── orto-onboarding.skill
│ ├── orto-agronomo.skill
│ ├── orto-calendario.skill
│ ├── orto-irrigazione.skill
│ ├── orto-meteo-decisioni.skill
│ ├── orto-fitopatologo.skill
│ ├── orto-layout.skill
│ └── orto-orchestratore.skill
├── Documentation (95 KB)
│ ├── README.md
│ ├── QUICK_START.md ← START HERE
│ ├── INSTALLATION_GUIDE.md
│ ├── INDEX.md
│ ├── DELIVERY_SUMMARY.md
│ └── DISTRIBUTION_GUIDE.md (this file)
├── Knowledge Base (30 KB)
│ ├── colture_it.md (120+ crop varieties)
│ └── calendario_it.md (regional calendars)
├── Installation Script
│ └── INSTALL.sh (automated setup)
└── Test Results (40 KB)
└── test/ (all tests pass)
```
---
## 🚀 Distribution Checklist
### For Distribution Manager
- [ ] Download `orto-skills-v1.0-dist.tar.gz` (77 KB)
- [ ] Prepare team email/message
- [ ] Share link or attach file
- [ ] Include QUICK_START.md (for recipients)
### For Each Team Member
- [ ] Receive package
- [ ] Extract: `tar -xzf orto-skills-v1.0-dist.tar.gz`
- [ ] Install: `cd orto-skills && ./INSTALL.sh`
- [ ] Create garden: `orto-init --id orto_mytown_001 ...`
- [ ] Run plan: `orto-orchestratore --orto-id orto_mytown_001`
- [ ] Verify: Check `~/.openclaw/workspace/Orti/orto_mytown_001/`
---
## 📧 Email Template (For Sharing)
```
Subject: Orto Skills Suite v1.0 — Garden Planning Tools (Team Edition)
Hi team,
We're launching Orto Skills Suite v1.0 — a complete garden planning
system for communities and individuals.
📦 DOWNLOAD:
orto-skills-v1.0-dist.tar.gz (77 KB)
[insert link or attachment]
🚀 INSTALL (60 seconds):
tar -xzf orto-skills-v1.0-dist.tar.gz
cd orto-skills
./INSTALL.sh
📖 DOCUMENTATION:
• QUICK_START.md (5-minute guide)
• INSTALLATION_GUIDE.md (detailed)
• INDEX.md (full navigation)
✨ FEATURES:
✓ 9 modular skills (init, onboarding, planning, etc.)
✓ Italian-specific (frost dates, crop varieties, regions)
✓ Weekly task lists + meteo alerts
✓ Multi-zone irrigation scheduling
✓ Disease prevention (biological treatments)
✓ Production-ready (all tests pass, QA 0.94)
🌱 GET STARTED:
1. Extract & run ./INSTALL.sh
2. Read QUICK_START.md (5 min)
3. Create your first garden
4. Run full planning
Questions? See documentation or ping the team.
Happy gardening!
```
---
## 💾 How to Share
### Option 1: Email (Direct Attachment)
```bash
# File: orto-skills-v1.0-dist.tar.gz (77 KB)
# Email to: team@example.com
# Include: This guide + QUICK_START.md
```
### Option 2: File Server (HTTP)
```bash
# 1. Upload package to server
# https://server.com/tools/orto-skills-v1.0-dist.tar.gz
# 2. Share link with team
# 3. Recipients download & extract
```
### Option 3: Git Repository
```bash
# 1. Create repo
git init orto-skills-team
# 2. Add files
cp -r orto-skills/* ./
git add .
git commit -m "Orto Skills Suite v1.0"
# 3. Push to GitHub/GitLab/private git
git remote add origin https://...
git push origin main
# 4. Team clones
git clone https://...
cd orto-skills-team
./INSTALL.sh
```
### Option 4: Docker/Container (Advanced)
```bash
# Create Dockerfile
FROM ubuntu:22.04
WORKDIR /root/.openclaw/workspace
RUN apt-get update && apt-get install -y \
nodejs npm bash curl
COPY orto-skills ./orto-skills
WORKDIR /root/.openclaw/workspace/orto-skills
RUN chmod +x INSTALL.sh && ./INSTALL.sh
ENTRYPOINT ["bash"]
```
---
## 🔐 Verification (Quality Assurance)
### Verify Package Integrity
```bash
# 1. Check tar.gz file size
ls -lh orto-skills-v1.0-dist.tar.gz
# Should be: ~77 KB
# 2. Extract and verify contents
tar -tzf orto-skills-v1.0-dist.tar.gz | head -20
# Should list: orto-skills/build/dist/*.skill, *.md files, etc.
# 3. Check for 9 .skill files
tar -tzf orto-skills-v1.0-dist.tar.gz | grep "\.skill$" | wc -l
# Should output: 9
```
### Verify Installation
```bash
# After running INSTALL.sh, verify:
# 1. Check installation directory
ls ~/.openclaw/skills/orto-suite/
# Should list: 9 folders (orto-init, orto-onboarding, etc.)
# 2. Check SKILL.md files
find ~/.openclaw/skills/orto-suite -name "SKILL.md" | wc -l
# Should output: 9
# 3. Try first command (init)
openclaw invoke ~/.openclaw/skills/orto-suite/orto-init/SKILL.md --help
# Should show: SKILL.md documentation
# 4. Create test garden
openclaw invoke ~/.openclaw/skills/orto-suite/orto-init/SKILL.md \
--id orto_test_001 \
--name "Test" \
--provincia Roma \
--regione Lazio \
--lat 41.8782 \
--lon 12.4922
# Verify output
ls ~/.openclaw/workspace/Orti/orto_test_001/
# Should list: config/, dati/, log/, media/, report/
```
---
## 🛠️ Troubleshooting Distribution
### Issue: "Package seems corrupted"
**Solution:**
```bash
# Verify tar.gz integrity
tar -tzf orto-skills-v1.0-dist.tar.gz > /dev/null
# If no error, tar is OK
# If error, re-download package from source
```
### Issue: "INSTALL.sh fails"
**Solution:**
```bash
# 1. Check bash version (need ≥ 4.0)
bash --version
# 2. Try manual extraction instead of INSTALL.sh
mkdir -p ~/.openclaw/skills/orto-suite
unzip build/dist/orto-*.skill -d ~/.openclaw/skills/orto-suite/
# 3. Verify
ls ~/.openclaw/skills/orto-suite/
```
### Issue: "Skills not found after installation"
**Solution:**
```bash
# 1. Check installation directory
echo $OPENCLAW_SKILLS_DIR
# Or use default: ~/.openclaw/skills/orto-suite/
# 2. Verify files exist
ls -R ~/.openclaw/skills/orto-suite/
# 3. Try full path when invoking
openclaw invoke ~/.openclaw/skills/orto-suite/orto-init/SKILL.md ...
```
---
## 📋 Distribution Tracking
### Optional: Create Tracker
```markdown
# Orto Skills Suite v1.0 — Distribution Tracker
| Team Member | Status | Date | Notes |
|---|---|---|---|
| Alice | ✓ Installed | 2026-03-06 | OK |
| Bob | ⏳ In Progress | 2026-03-06 | Waiting for help |
| Carol | ✓ Tested | 2026-03-07 | Created test garden |
| David | ✗ Not Started | - | OOO |
**Summary:**
- Installed: 2/4 (50%)
- Tested: 1/4 (25%)
- In Progress: 1/4 (25%)
```
---
## 📞 Support Resources
### For Installers/Team Leads
**Quick Reference:**
- QUICK_START.md (5-minute guide)
- INSTALLATION_GUIDE.md (detailed steps)
- This guide (distribution notes)
**Troubleshooting:**
- INSTALLATION_GUIDE.md (Troubleshooting section)
- INDEX.md (full navigation)
### For End Users
**Getting Started:**
1. QUICK_START.md
2. Run `./INSTALL.sh`
3. Follow on-screen prompts
**Questions:**
- QUICK_START.md FAQ
- INSTALLATION_GUIDE.md (detailed)
- Each skill's SKILL.md (documentation)
---
## 🔄 Version Management
### Current Version
- **Version:** 1.0
- **Release Date:** 2026-03-06
- **Status:** Stable
- **Tested:** Yes (9/9 unit + integration + smoke, QA 0.94)
### Future Updates
When v1.1+ released:
```bash
# 1. Download new package
wget orto-skills-v1.1-dist.tar.gz
# 2. Backup current installation
mv ~/.openclaw/skills/orto-suite ~/.openclaw/skills/orto-suite.v1.0.backup
# 3. Extract & install new version
tar -xzf orto-skills-v1.1-dist.tar.gz
cd orto-skills
./INSTALL.sh
# 4. Verify upgrade
openclaw invoke ~/.openclaw/skills/orto-suite/orto-init/SKILL.md --version
```
---
## 📊 Distribution Statistics
### Package Composition
```
orto-skills-v1.0-dist.tar.gz (77 KB compressed)
├── Skills (148 KB uncompressed, 9 × .skill)
├── References (30 KB, 2 files)
├── Documentation (95 KB, 6 markdown files)
├── Installation Script (3 KB)
├── Test Artifacts (40 KB, unit/integration/smoke)
└── Metadata (misc)
Total Uncompressed: ~315 KB
Compression Ratio: 24.5% (77 KB / 315 KB)
```
---
## ✅ Distribution Checklist
- [ ] Verify package integrity (77 KB, contains 9 .skill files)
- [ ] Create distribution message (use template above)
- [ ] Share with team (email, link, git, etc.)
- [ ] Provide QUICK_START.md (quick reference)
- [ ] Provide INSTALLATION_GUIDE.md (detailed help)
- [ ] Track installations (optional tracker)
- [ ] Support first installs (troubleshooting ready)
- [ ] Celebrate successful adoption! 🎉
---
## 🌱 Success Metrics
| Metric | Target | How to Measure |
|--------|--------|---|
| Installation Success Rate | ≥ 90% | Track installs vs. issues |
| Time to First Garden | < 15 min | Ask team members |
| User Satisfaction | ≥ 8/10 | Feedback survey |
| Adoption Rate | ≥ 50% | % creating gardens in first week |
---
**Distribution Date:** 2026-03-06
**Package Version:** 1.0
**Status:** Ready for Team Distribution
🌱 **Orto Skills Suite — Share with your community!**

View file

@ -1,361 +0,0 @@
# Orto Skills Suite — Installation Guide
**Version:** 1.0
**Release Date:** 2026-03-06
**Status:** Production-Ready
---
## Quick Start (60 seconds)
### Step 1: Install Locally
```bash
# Clone or download orto-skills/build/dist/*.skill
# Install all 9 skills:
mkdir -p ~/.openclaw/skills/orto-suite
unzip -d ~/.openclaw/skills/orto-suite ~/.openclaw/workspace/orto-skills/build/dist/*.skill
# Verify:
ls ~/.openclaw/skills/orto-suite/orto-*/SKILL.md | wc -l
# Output: 9 (all installed)
```
### Step 2: Create Your First Garden
```bash
# Initialize a new garden
openclaw invoke ~/.openclaw/skills/orto-suite/orto-init/SKILL.md \
--id orto_mytown_001 \
--name "My First Garden" \
--provincia Roma \
--regione Lazio \
--lat 41.8782 \
--lon 12.4922
# Output: Garden created at ~/.openclaw/workspace/Orti/orto_mytown_001/
```
### Step 3: Run Onboarding
```bash
openclaw invoke ~/.openclaw/skills/orto-suite/orto-onboarding/SKILL.md \
--orto-id orto_mytown_001
# Fills 5 questionnaire blocks interactively
# Output: GardenConfig + CommunityProfile saved
```
### Step 4: Generate Master Plan
```bash
openclaw invoke ~/.openclaw/skills/orto-suite/orto-orchestratore/SKILL.md \
--orto-id orto_mytown_001
# Runs all 7 skills, merges outputs, generates PlanBundle
# Output: Complete seasonal plan + weekly briefing
```
---
## Detailed Installation Options
### Option 1: Local Installation (Recommended for Testing)
**Pros:** Fast, no internet, full control
**Cons:** Limited to one machine
```bash
# 1. Download/copy orto-skills/build/dist/ folder
# 2. Extract all .skill files
cd ~/.openclaw/skills/
mkdir orto-suite
unzip "~/Downloads/orto-skills/build/dist/*.skill" -d orto-suite/
# 3. Verify installation
find orto-suite -name "SKILL.md" | head -5
# 4. Use in your workflow
# Reference: ~/.openclaw/skills/orto-suite/orto-init/SKILL.md
```
### Option 2: System-Wide Installation (OpenClaw CLI)
**Pros:** Integrated with OpenClaw CLI, auto-discovery
**Cons:** Requires OpenClaw v25.7+
```bash
# 1. Install skills to default location
openclaw skills install /path/to/orto-skills/build/dist/orto-*.skill
# 2. Verify registration
openclaw skills list | grep orto
# 3. Invoke by name (no path needed)
openclaw invoke orto-init --id orto_test_001 ...
```
### Option 3: ClawHub Publication (Production Distribution)
**Pros:** Global availability, versioning, community
**Cons:** Requires ClawHub account, internet
```bash
# 1. Setup ClawHub account (one-time)
clawhub auth login
# 2. Publish all 9 skills
cd orto-skills/build/dist/
for skill in *.skill; do
clawhub publish "$skill"
done
# 3. Verify on clawhub.com
# View: https://clawhub.com/orto-suite
# 4. Install from ClawHub
clawhub install orto-init
clawhub install orto-orchestratore
# ... etc
```
---
## Troubleshooting
### Issue: "Command not found: openclaw"
**Solution:**
```bash
# Ensure OpenClaw is in PATH
which openclaw
# If not found, add to PATH:
export PATH="/usr/local/bin:$PATH" # or your installation dir
```
### Issue: "SKILL.md not found"
**Solution:**
```bash
# Verify .skill files extracted correctly
unzip -l ~/.openclaw/workspace/orto-skills/build/dist/orto-init.skill
# If missing, re-extract:
rm -rf ~/.openclaw/skills/orto-suite/*
unzip -d ~/.openclaw/skills/orto-suite ~/.openclaw/workspace/orto-skills/build/dist/orto-*.skill
```
### Issue: "Garden already exists"
**Solution:**
```bash
# Use unique orto_id:
openclaw invoke orto-init --id orto_mytown_002 # Instead of 001
# Or remove existing:
rm -rf ~/.openclaw/workspace/Orti/orto_mytown_001/
```
### Issue: "Weather API unreachable"
**Solution:**
```bash
# wttr.in fallback to open-meteo (automatic)
# If both fail, meteo-decisioni will use cached/default forecast
# Check connectivity:
curl -s wttr.in/Roma
# Should return weather forecast
```
---
## Configuration
### Customize Knowledge Base
Edit references before packaging:
```bash
# 1. Modify crop varieties
vim orto-skills/references/colture_it.md
# 2. Add regional calendars
vim orto-skills/references/calendario_it.md
# 3. Re-package skills
cd orto-skills/build
for skill in orto-*/; do
python3 ~/.nvm/versions/node/v25.7.0/lib/node_modules/openclaw/skills/skill-creator/scripts/package_skill.py "${skill%/}" ./dist
done
```
### Customize Automation Policies
Edit orchestratore conflict resolution:
```bash
# 1. Modify conflict policies
vim orto-skills/build/orto-orchestratore/SKILL.md
# Search: "Conflict Resolution"
# 2. Update QA thresholds
# Search: "QA Score"
# 3. Re-package
python3 ... package_skill.py orto-orchestratore ./dist
```
---
## Running a Full Garden Planning Session
### Step-by-Step Workflow
```bash
# 1. Init
openclaw invoke orto-init --id orto_test_001 --name "Test" --provincia Roma --regione Lazio --lat 41.8782 --lon 12.4922
# 2. Onboarding (answer 5 blocchi interactively)
openclaw invoke orto-onboarding --orto-id orto_test_001
# 3. Full plan (all skills)
openclaw invoke orto-orchestratore --orto-id orto_test_001
# Output files generated at:
# ~/.openclaw/workspace/Orti/orto_test_001/
# ├── config/
# │ ├── garden_config.md
# │ └── community_profile.md
# ├── dati/
# │ ├── colture/piano_colture_annuale.md
# │ ├── calendario/calendario_operativo_settimanale.md
# │ ├── layout/aiuole_dimensioni.md
# │ ├── irrigazione/sistema_irrigazione.md
# │ ├── meteo/dati_meteo_giornalieri.md
# │ └── trattamenti/diagnosi_problemi.md
# └── log/
# ├── audit_trail.md
# └── PlanBundle_Master.md
# 4. Weekly briefing (every Monday)
openclaw invoke orto-meteo-decisioni --orto-id orto_test_001 --week-ahead
# Output:
# briefing_settimanale_week_N.md (weekly task list + meteo alerts)
```
### Expected Output
All files are **markdown** (human-readable, editable):
```markdown
# PlanBundle Master — orto_test_001
**Garden:** Test (Roma, Lazio, 41.8782°N)
**Community:** 4 people, Misto diet, Dilettante
**Area:** 50 m², Zone: Centro (Frost: 15 apr - 25 oct)
## Plan Summary
- Crops: 12 varieties (Pomodoro, Basilico, Lattuga, ...)
- Annual yield: ~100 kg
- Maintenance: 3-4h/week
- Water: ~10,000 L/season
- Weekly briefing: See briefing_settimanale_week_1.md
## Weekly Task (Week 1)
- [ ] Preparazione semenzaio (1.5h)
- [ ] Controllo strumenti (0.5h)
- [ ] Meteo: Mixed (rain Wed-Thu)
- [ ] Irrigazione: Baseline
[... full plan continues ...]
```
---
## Support & Documentation
### Included Documentation
- **README.md** — Quick overview
- **COMPLETION_SUMMARY.md** — Delivery summary
- **PACKAGING_COMPLETE.md** — Packaging details
- **Each SKILL.md** — Full skill documentation + examples
### Additional Resources
- **ClawHub:** https://clawhub.com/orto-suite
- **OpenClaw Docs:** https://docs.openclaw.ai
- **GitHub Issues:** Report problems
### Getting Help
**Questions about specific skills:**
```bash
# Read skill documentation
cat ~/.openclaw/skills/orto-suite/orto-init/SKILL.md | less
# Run with --help flag
openclaw invoke orto-init --help
```
**Integration questions:**
- See `ORTO_SKILL_ANALYSIS.md` (architecture overview)
- See `TEST_PLAN.md` (testing strategy)
---
## System Requirements
| Requirement | Version | Notes |
|------------|---------|-------|
| OpenClaw | ≥ 25.7 | For skill orchestration |
| Python | ≥ 3.8 | For scripts |
| Bash | ≥ 4.0 | For workflow automation |
| Filesystem | POSIX | Linux/macOS/WSL2 |
| Internet | Optional | For weather API (fallback available) |
---
## Uninstallation
```bash
# Remove local installation
rm -rf ~/.openclaw/skills/orto-suite/
# Remove garden projects
rm -rf ~/.openclaw/workspace/Orti/
# If via clawhub:
clawhub uninstall orto-init
clawhub uninstall orto-orchestratore
# ... etc
```
---
## License & Attribution
**Orto Skills Suite v1.0** — Derived from Orto v1 Framework (2026-03-06)
Transformed into AgentSkills format by automated pipeline.
**Language:** Italian (Italiano)
**Domain:** Garden management (Italian climate, regions, crops)
---
## Next Steps
1. ✅ **Installation:** Choose option (local, system, or ClawHub)
2. ✅ **First Garden:** Run init + onboarding + orchestratore
3. ✅ **Weekly Briefing:** Set up recurring meteo-decisioni calls
4. ✅ **Feedback:** Share improvements/suggestions
**Ready?** Start with: `openclaw invoke orto-init --id orto_mytown_001 ...`
🌱 **Happy gardening!**

View file

@ -1,396 +0,0 @@
# Orto Skills Suite v1.0 — Quick Start (Team Edition)
**Version:** 1.0
**Release:** 2026-03-06
**Status:** Production-Ready
---
## 🚀 Install in 3 Minutes
### Step 1: Extract Package
```bash
# Download orto-skills-v1.0-dist.tar.gz, then:
tar -xzf orto-skills-v1.0-dist.tar.gz
cd orto-skills
```
### Step 2: Run Installation Script
```bash
# Make executable (if needed)
chmod +x INSTALL.sh
# Run installer
./INSTALL.sh
# Output:
# ✅ 9 skills installed to ~/.openclaw/skills/orto-suite/
```
### Step 3: Create Your First Garden
```bash
# Initialize garden (Roma example)
openclaw invoke ~/.openclaw/skills/orto-suite/orto-init/SKILL.md \
--id orto_roma_001 \
--name "My Garden" \
--provincia Roma \
--regione Lazio \
--lat 41.8782 \
--lon 12.4922
# Output:
# ✅ Garden created at ~/.openclaw/workspace/Orti/orto_roma_001/
```
---
## 📋 Complete Workflow (15 Minutes)
### 1. Onboarding (Collect Profile)
```bash
openclaw invoke ~/.openclaw/skills/orto-suite/orto-onboarding/SKILL.md \
--orto-id orto_roma_001
# Interactive questionnaire (5 blocks):
# - Localizzazione (location, access, property)
# - Layout spazio (area, soil, sun exposure)
# - Irrigazione (water source, constraints)
# - Comunità & Dieta (people, diet preferences)
# - Obiettivi & Vincoli (time, goals, experience)
```
### 2. Generate Full Plan
```bash
openclaw invoke ~/.openclaw/skills/orto-suite/orto-orchestratore/SKILL.md \
--orto-id orto_roma_001
# Runs all 7 planning skills in sequence:
# - orto-agronomo (crop selection)
# - orto-calendario (weekly schedule)
# - orto-layout (bed design)
# - orto-irrigazione (irrigation zones)
# - orto-meteo-decisioni (weather forecast)
# - orto-fitopatologo (disease prevention)
# - Orchestration (merge + conflict resolution)
# Output: 10+ markdown files in ~/.openclaw/workspace/Orti/orto_roma_001/
```
### 3. Check Your Plan
```bash
cat ~/.openclaw/workspace/Orti/orto_roma_001/PlanBundle_Master.md
# View complete seasonal plan with:
# - 12 crop varieties (selected for your diet + space)
# - 52-week calendar with task list
# - 3-zone irrigation schedule
# - Disease prevention plan (biologico)
# - Accessibility notes (if needed)
```
### 4. Weekly Briefing (Every Monday)
```bash
openclaw invoke ~/.openclaw/skills/orto-suite/orto-meteo-decisioni/SKILL.md \
--orto-id orto_roma_001
# Weekly briefing with:
# - 7-day weather forecast
# - Irrigation adjustments
# - This week's task list
# - Alerts (frost, heat, wind)
```
---
## 🎯 Use Cases
### Use Case 1: Individual Gardener
```bash
# 1. Install skills
./INSTALL.sh
# 2. Create garden
./init.sh my_garden Rome
# 3. Run onboarding (answer 5 questions)
# 4. Get full plan (init → plan → briefing)
```
### Use Case 2: Community Garden (Multiple Gardens)
```bash
# Initialize multiple gardens
for location in roma milano torino; do
openclaw invoke ... --id orto_${location}_001 ...
done
# Batch weekly briefings
for garden_id in orto_roma_001 orto_milano_001 orto_torino_001; do
openclaw invoke ... --orto-id $garden_id
done
```
### Use Case 3: Educational Program
```bash
# Create gardens for students
for student_id in 001 002 003 004 005; do
openclaw invoke ... --id orto_student_${student_id} ...
done
# Each student gets:
# - Personal garden plan
# - Weekly task list
# - Learning materials (via outputs)
# - Community collaboration
```
---
## 📚 Documentation
### Included Files
| File | Purpose |
|------|---------|
| **README.md** | Project overview |
| **INSTALLATION_GUIDE.md** | Detailed setup instructions |
| **INDEX.md** | Master navigation |
| **DELIVERY_SUMMARY.md** | Full project summary |
| **QUICK_START.md** | This file (quick reference) |
| **INSTALL.sh** | Automated installation script |
### Skill Documentation
Each skill folder contains **SKILL.md** with:
- Full documentation
- Usage examples
- Input/output schemas
- Error handling
- References
### Test Results
See **test/** folder for:
- Unit tests (9/9 PASS)
- Integration test (PASS)
- Smoke test (PASS)
- QA score: 0.94
---
## ⚙️ Configuration
### Change Installation Directory
```bash
export OPENCLAW_SKILLS_DIR=/custom/path
./INSTALL.sh
# Skills will install to: /custom/path/orto-suite/
```
### Customize Knowledge Base
Edit before installation:
```bash
# 1. Add crops to reference
vim references/colture_it.md
# 2. Add regional calendars
vim references/calendario_it.md
# 3. Re-run installation
./INSTALL.sh
```
### Tune Conflict Resolution Policies
Edit skill after installation:
```bash
vim ~/.openclaw/skills/orto-suite/orto-orchestratore/SKILL.md
# Search: "Conflict Resolution"
# Modify policies as needed
```
---
## 🐛 Troubleshooting
### Issue: "Command not found: openclaw"
**Solution:**
```bash
# Ensure OpenClaw is installed & in PATH
which openclaw
# If not found, install:
npm install -g @openclaw/cli
# Add to PATH (if needed):
export PATH="$PATH:/usr/local/bin"
```
### Issue: "Directory already exists"
**Solution:**
```bash
# INSTALL.sh backs up existing automatically
# Check backup:
ls -la ~/.openclaw/skills/orto-suite.backup.*/
# Or start fresh:
rm -rf ~/.openclaw/skills/orto-suite/
./INSTALL.sh
```
### Issue: "Weather API unreachable"
**Solution:**
```bash
# wttr.in fallback to open-meteo (automatic)
# If both fail, skills use cached forecast
# Check connectivity:
curl -s https://wttr.in/Roma
# Should return weather data
```
---
## 🔗 Quick Commands Reference
```bash
# Install skills
./INSTALL.sh
# Initialize garden
openclaw invoke ~/.openclaw/skills/orto-suite/orto-init/SKILL.md \
--id orto_TOWN_001 --name "Garden" --provincia PROV --regione REG \
--lat LAT --lon LON
# Collect profile
openclaw invoke ~/.openclaw/skills/orto-suite/orto-onboarding/SKILL.md \
--orto-id orto_TOWN_001
# Full planning
openclaw invoke ~/.openclaw/skills/orto-suite/orto-orchestratore/SKILL.md \
--orto-id orto_TOWN_001
# Weekly briefing
openclaw invoke ~/.openclaw/skills/orto-suite/orto-meteo-decisioni/SKILL.md \
--orto-id orto_TOWN_001
# View master plan
cat ~/.openclaw/workspace/Orti/orto_TOWN_001/PlanBundle_Master.md
# View weekly briefing
cat ~/.openclaw/workspace/Orti/orto_TOWN_001/briefing_settimanale_week_1.md
```
---
## 📊 What You Get
### Garden Planning
✅ Seasonal planning (init → profile → full plan)
✅ Crop selection (12+ varieties matching your diet)
✅ Weekly task lists (52 weeks × 3-5 tasks/week)
✅ Irrigation scheduling (3 zones, baseline + meteo-adaptive)
### Support & Safety
✅ Disease prevention (biological treatments)
✅ Accessibility features (family-friendly)
✅ Weather integration (forecast → decisions)
✅ Audit trail (every operation logged)
### Tools & Integration
✅ Markdown output (editable, versionable)
✅ Modular skills (use independently)
✅ Conflict resolution (policies built-in)
✅ Open references (Italian domain data)
---
## 🎓 Learning Path
**Beginner:** Start with QUICK_START.md (this file)
**Intermediate:** Follow INSTALLATION_GUIDE.md
**Advanced:** Read individual SKILL.md files
**Expert:** Review test artifacts + architecture docs
---
## 🌱 Next Steps
1. ✅ **Install locally**`./INSTALL.sh`
2. ✅ **Create first garden**`orto-init` + `orto-onboarding`
3. ✅ **Generate plan**`orto-orchestratore`
4. ✅ **Get weekly briefing**`orto-meteo-decisioni`
5. ✅ **Share with team** — Distribute this package
---
## 💬 Support
**Questions about installation?**
→ See INSTALLATION_GUIDE.md
**Questions about a specific skill?**
→ Read that skill's SKILL.md
**Issues or bugs?**
→ Check test/ folder (all tests pass)
**Want to customize?**
→ Edit references/ or skill SKILL.md files
---
## 📋 System Requirements
| Requirement | Version | Notes |
|------------|---------|-------|
| OpenClaw | ≥ 25.7 | For skill orchestration |
| Python | ≥ 3.8 | For internal scripts |
| Bash | ≥ 4.0 | For INSTALL.sh script |
| Internet | Optional | For weather API (fallback available) |
---
## 🎁 Distribution
### Share This Package With Your Team
```bash
# Send to team:
# 1. orto-skills-v1.0-dist.tar.gz (77 KB)
# 2. QUICK_START.md (this file)
# 3. INSTALLATION_GUIDE.md (for detailed help)
# Each team member:
# 1. Extract tar.gz
# 2. Run ./INSTALL.sh
# 3. Follow QUICK_START (above)
# 4. Start gardening!
```
---
**Version:** 1.0
**Release Date:** 2026-03-06
**Status:** Production-Ready
🌱 **Orto Skills Suite — Ready to cultivate with your team!**

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -1,271 +0,0 @@
---
name: orto-agronomo
description: Selezionare e pianificare colture per calendario annuale dell'orto basato su dieta, spazio, clima e principi agronomici. Usare quando: (1) generare selezione colture corrispondente a preferenze dieta comunitaria e bilancio nutrizionale, (2) applicare regole consociazione e rotazione colture, (3) stimare rese e pianificare tempi successioni, (4) considerare clima regionale e finestre stagionali. Output: Piano colture annuale (markdown con piano colture) con varietà, date semina, spaziature, classe acqua, consociazioni, rese attese.
---
# Orto Agronomo — Selezione e Pianificazione Colture
Selezionare colture e generare piano colture annuale basato su preferenze comunitarie, clima, spazio e best practice agronomiche.
## Quando Usare Questa Skill
- **Dopo onboarding:** Profilo utente (GardenConfig + CommunityProfile) è completo
- **Selezione colture:** Scegliere verdure corrispondenti a dieta, spazio, livello esperienza
- **Pianificazione stagionale:** Mappare colture a finestre di semina (date gelate, requisiti temperatura)
- **Pianificazione rotazione:** Assicurare rotazione famiglia negli anni per prevenire accumulo parassiti/malattie
## Processo
### Fase 1: Filtra Colture per Vincoli
**Applicare filtri in sequenza:**
1. **Filtro zona climatica:** (Da GardenConfig)
- Filtrare colture_it.md per macro-zona (nord/centro/sud)
- Mantenere solo colture adatte a date gelate e lunghezza stagione della zona
2. **Filtro esposizione solare:** (Da GardenConfig)
- Sole pieno richiesto (6-8h): Pomodoro, Peperone, Zucchina, Melone, Mais, Carota
- Sole parziale (4-6h): Cavolo, Lattuga, Spinacio, Carota
- Tolleranti ombra (< 4h): Lattuga, Spinacio (limitato)
3. **Filtro spazio:** (Da GardenConfig)
- area < 20m²: piccole + a rapido ciclo (Lattuga, Spinacio, Rucola, Insalata, Erbe)
- 20-50m²: medie + diverse (+ Cavolo, Fagiolo, Basilico)
- > 50m²: grandi + forti consumatori possibili (+ Pomodoro, Peperone, Zucchina, Mais)
4. **Filtro disponibilità acqua:** (Da GardenConfig)
- Acqua limitata (< 150 mm): Carota, Cipolla, Spinacio, Pisello, Fagiolo
- Acqua media: Lattuga, Basilico, Cavolo, Broccoli
- Acqua abbondante: Pomodoro, Peperone, Zucchina, Melone, Cocomero
5. **Filtro preferenze dieta:** (Da CommunityProfile)
- Includere tutte le preferenze_colture listate
- Escludere tutte colture_evitare
- Bias verso profilo dieta (vegano → legumi; onnivoro → diverse)
6. **Filtro esperienza:** (Da CommunityProfile)
- Esperienza "nessuna": Filtrare per colture robuste e indulgenti (Lattuga, Carota, Zucchina, Basilico, Cipolla)
- Esperienza "dilettante": Aprire più opzioni
- Esperienza "esperto": Consentire colture impegnative (Melanzana, Melone, etc.)
### Fase 2: Lista Colture Candidate
**Output:** Lista candidate con score confidence
```markdown
## Colture Candidate (Ordinate per Probabilità)
| # | Coltura | Varietà Suggerite | Ciclo (gg) | Acqua | Spazio | Confidence | Note |
|----|---------|-----------------|-----------|-------|--------|------------|------|
| 1 | Pomodoro | San Marzano, Ciliegia | 80 | Medio-Alto | Medio | 0.95 | Preferenza esplicita |
| 2 | Basilico | Basilico Genovese | 60 | Medio | Piccolo | 0.90 | Dieta; consociazione pomodoro |
| 3 | Lattuga | Romana | 60 | Basso | Piccolo | 0.88 | Successioni; facile |
| ... | ... | ... | ... | ... | ... | ... | ... |
```
### Fase 3: Costruisci Piano Colture Annuale
**Per ogni coltura candidata:**
1. **Mappa a finestre di semina:** (Da calendario_it.md)
- Trovare date di semina adatte per zona
- Considerare date gelate, requisiti temperatura
- Identificare opportunità successioni (2-3x/anno se ciclo breve)
2. **Assegna gruppi rotazione:** (Da colture_it.md > Famiglia)
- Tracciare famiglia botanica (Solanaceae, Brassicaceae, etc.)
- Assicurare nessuna coltura stessa famiglia su stesso aiuola per 2-3 anni
- Pianificare rotazione prossimo anno se applicabile
3. **Stima rese:** (Da colture_it.md > Rese)
- Usare rese min/typ/max per coltura
- Aggiustare per area, esperienza, clima
- Calcolare volume produzione totale (kg/stagione)
4. **Assegna input layout spaziale:** (Per skill orto-layout)
- Requisiti spaziatura per coltura
- Classe water zoning (basso/medio/alto)
- Requisiti esposizione sole
- Gruppi consociazione (positive consociazioni)
### Fase 4: Output Piano Colture Annuale
**File:** `dati/colture/piano_colture_annuale.md`
**Structure:**
```markdown
# Piano Colture Annuale — [ORTO_ID]
**Zona Climatica:** [ZONE]
**Area disponibile:** [AREA] m²
**Comunità:** [DIET] | [N_PERSONE] pp
**Esperienza:** [LEVEL]
---
## Riepilogo Stagionale
### Primavera (Mar-Mag)
- Lattuga (marzo, successioni)
- Spinacio (aprile)
- Pomodoro (trapianto post-gelo)
- Basilico (maggio, post-freddo)
**Totale area occupata:** XX m²
**Stima rese:** XX kg
### Estate (Giu-Ago)
- Pomodoro (raccolta continua)
- Peperone (raccolta continua)
- Zucchina (raccolta continua)
- Lattuga estiva (ombra parziale)
- Fagiolo rampicante (successione giugno)
### Autunno (Set-Nov)
- Cavolo/Broccoli (trapianto agosto)
- Lattuga/Spinacio (successioni)
- Carota (raccolta da agosto)
- Ravanello (rapido)
### Inverno (Dic-Feb)
- Pisello/Fava (semina autunno, raccolta primavera)
- Riposo relativo
---
## Dettagli Colture
### 1. Pomodoro
| Proprietà | Valore |
|-----------|--------|
| **Varietà consigliata** | San Marzano (determinato), Ciliegia (indeterminato), Cuor di Bue |
| **Ciclo** | 70-90 gg (post-trapianto) |
| **Trapianto** | Post-[LAST_FROST], min T notte 15°C |
| **Raccolta** | [ZONE]-specific dates |
| **Esigenza luce** | Pieno sole (6-8h) |
| **Esigenza acqua** | Medio-Alto; classe: **ALTO** |
| **Spaziatura** | 40-60cm |
| **Stima resa** | 3-6 kg/m² |
| **Consociazioni** | ✅ Basilico (classico), Carota, Cipolla |
| **Famiglia** | Solanaceae (Rotazione: attendere 2-3 anni) |
| **Malattie** | Peronospora, Oidio, Verticillium; Bio: Rame, Zolfo, Neem |
| **Note** | Tutore necessario (bambù, spago), cesellatura regolare |
**Piano temporale (ZONA CENTRO, es. Roma):**
- Semina indoor: Gen-Feb
- Trapianto: Post-15 aprile
- Prima raccolta: Giugno
- Raccolta massima: Lug-Ago
- Fine raccolta: Ott (gelo)
---
### 2. Basilico
| Proprietà | Valore |
|-----------|--------|
| **Varietà** | Basilico Genovese (dolce), Basilico Rosso, Thai |
| **Ciclo** | 45-60 gg |
| **Semina** | Maggio post-freddo, diretto o trapianto |
| **Raccolta** | Continua (cesellatura) giu-set |
| **Esigenza acqua** | Medio; classe: **MEDIO** |
| **Spaziatura** | 20-25cm |
| **Stima resa** | 0.5-1.5 kg/m² |
| **Consociazioni** | ✅ Pomodoro (benefici reciproci), Peperone |
| **Famiglia** | Lamiaceae |
| **Note** | Termofilo; stop < 15°C; ama sole |
---
### [Continua per altre colture candidati...]
---
## Rotazione Pluri-Annuale
**Anno 1:** Pomodoro (A1), Cavolo (A2), Legume (A3)
**Anno 2:** Cavolo (A1), Legume (A2), Pomodoro (A3)
**Anno 3:** Legume (A1), Pomodoro (A2), Cavolo (A3)
---
## Stima Nutrizionale
**Comunità:** [N_PERSONE] pp, Dieta [DIET]
**Target nutritivo:** [Calcolo dieta giornaliera × giorni stagione]
**Produzione stimata:** [TOT kg] / stagione
**Allineamento:** ✓ Sufficiente / ⚠️ Marginal / ❌ Insufficiente
*(Da migliorare con maggiore area/succesioni)*
---
## Prossimi Passi
1. → **orto-calendario:** Generare timeline settimanale per task
2. → **orto-layout:** Assegnare colture a aiuole con consociazioni
3. → **orto-irrigazione:** Definire water zoning per zone acqua alta/media/bassa
---
**Data generazione:** [TODAY]
**Confidence globale:** [AVG_CONFIDENCE]
**Última revisione:** [AUTO_UPDATE_READY]
```
## Riferimenti
**Consultati:**
- `references/colture_it.md` — Database colture (120+ varietà), parametri, consociazioni, rotazione famiglie, rese
- `references/calendario_it.md` — Date gelate, finestre semina per zona
- `references/consociazioni_layout.md` — Matrice consociazione per ottimizzazione layout
- `references/irrigazione_parametri.md` — Classe acqua colture per raggruppamento
## Script (Opzionale)
Script Python (opzionale) per parsare colture_it.md e filtrare candidati:
```bash
scripts/filter_crops_by_constraints.py \
--area <area_mq> \
--zone <nord|centro|sud> \
--sun <h_per_day> \
--diet <list> \
--experience <none|dilettante|esperto>
```
## Gestione Errori
| Errore | Fallback |
|-------|----------|
| Nessuna coltura passa filtri | Suggerire ampliamento vincoli; fornire lista robusta default |
| Confidence < 0.5 su selezione | Flaggare come sperimentale; suggerire consultazione esperto |
| Area troppo piccola per bisogni dieta | Suggerire successioni, varietà compatte, o approccio fagiato |
| Acqua insufficiente | Bias verso colture tolleranti siccità; aggiungere compost/pacciame |
## Assunzioni
1. CommunityProfile è completo e validato
2. GardenConfig include zona, area, sole, disponibilità acqua
3. Inferenza zona climatica da GardenConfig è accurata
4. Database colture (colture_it.md) è aggiornato
## Checklist Validazione
- ✓ Colture corrispondono preferenze dieta e liste evitamento
- ✓ Rotazione colture rispettata (nessuna famiglia stessa 2+ anni)
- ✓ Date semina entro finestre gelate
- ✓ Spazio allocato non eccede area
- ✓ Gruppi consociazione positive coerenti
- ✓ Classe acqua allineata con disponibilità
- ✓ Rese sommate a target ragionevole per dimensione comunità
---
**Skill: orto-agronomo** | Versione 1.0 | Status: Pronto per Produzione

View file

@ -1,355 +0,0 @@
---
name: orto-calendario
description: Generare calendario operativo stagionale con schedule task settimanale per orti italiani. Usare quando: (1) creare timeline task da piano colture (semina, trapianto, raccolta, trattamenti), (2) adattare a date gelate regionali e finestre climatiche, (3) taggare task sensibili al meteo per reschedule automatico, (4) coordinare con previsioni meteo. Output: Calendario operativo settimanale (markdown) con liste task, date, ubicazioni, dipendenze, tag meteo.
---
# Orto Calendario — Schedule Task Stagionale e Settimanale
Generare calendario operativo mappando colture da piano_colture_annuale a checklist task settimanale, rispettando finestre climatiche e sensibilità meteo.
## Quando Usare Questa Skill
- **Dopo orto-agronomo:** Piano colture è finalizzato
- **Pianificazione task settimanale:** Spezzare piano annuale in checklist settimanale azionabile
- **Adattamento meteo:** Taggare task che necessitano reschedule consapevole del meteo
- **Gestione successioni:** Tracciare date semina per colture multi-generazione (successioni lattuga, etc.)
## Processo
### Fase 1: Estrai Timeline Colture da Piano Colture
**Input:** `dati/colture/piano_colture_annuale.md`
**Per ogni coltura, estrarre:**
- Data semina (finestra inizio/fine)
- Data trapianto (finestra)
- Periodo raccolta (range date)
- Resa attesa & volume
**Esempio (Pomodoro, ZONA CENTRO):**
- Semina indoor: Feb 1-28
- Trapianto: Apr 20 - 5 Mag (post-gelata)
- Raccolta inizio: 15 Giu (circa)
- Raccolta fine: 15 Ott
### Fase 2: Traduci in Task Settimanali
**Expand to granular tasks with metadata:**
```markdown
## Settimana 1 (Jan 1-7)
### Sabato 1-7 Gennaio
**Task 1.1 — Preparazione Semenzaio**
- Coltura: Pomodoro, Peperone, Melanzana
- Azione: Preparare terriccio, vasetti, ripiani in semenzaio
- Difficoltà: Bassa
- Ubicazione: Semenzaio (interno)
- Stima tempo: 1.5h
- Prerequisiti: None
- Meteo-sensibile: No
- Note: Preparare in anticipo per semina Jan 15-20
**Task 1.2 — Pianificazione Annuale**
- Azione: Revisionare piano_colture_annuale, marcare date critiche
- Difficoltà: Bassa
- Stima tempo: 0.5h
- Prerequisiti: piano_colture completo
---
## Settimana 5 (Jan 29 - Feb 4)
### Lunedì 29 Gennaio
**Task 5.1 — Semina Pomodoro (INDOOR)**
- Coltura: Pomodoro
- Azione: Seminare in vasetti (2-3 semi/vasetto)
- Difficoltà: Bassa
- Ubicazione: Semenzaio
- Stima tempo: 0.5h
- Temperatura richiesta: 20-25°C indoor
- Cura: Mantenere umido, luce LED 12-14h/gg
- Germinazione attesa: 5-10 giorni
- Meteo-sensibile: No (indoor)
- Critical date: YES (finestra ristretta)
- Precedente: Task 1.1 ✓
---
## Settimana 16 (Apr 20-26) — TRAPIANTO POMODORO
**⚠️ METEO-SENSIBILE CRITICA**
**Task 16.1 — Trapianto Pomodoro**
- Coltura: Pomodoro (piantine 5-6 foglie vere)
- Azione: Messa a dimora in campo
- Pre-requisiti: Ultima gelata passata (post-25 apr), notti > 15°C, piantine 5-6 foglie
- Difficoltà: Bassa-Media
- Ubicazione: A1, A2 (assegnazione da orto-layout)
- Stima tempo: 2h (50 piante = tempo circa)
- Spaziatura: 40-60cm tra piante, 60cm tra file
- Tutori: Preparare bambù/spago prima
- Concimazione: NPK 1.5:1:1.5 (per coltura solanacee)
- **Meteo-sensibile:** YES
- Rinviare se: vento > 8kn, pioggia imminente, T < 12°C
- Delay notification: send to orto-meteo-decisioni, reschedule +3 gg se risky
- Confidence in date: MEDIA (frost date margin 1 settimana)
---
## Settimana 27 (June 29 - Jul 5)
**Task 27.1 — Inizio Raccolta Pomodoro**
- Coltura: Pomodoro
- Azione: Raccolta frutti rossi maturi (non verdi)
- Difficoltà: Bassa
- Ubicazione: A1, A2
- Stima tempo: 1h (raccolta 1x/sett ~4-8 frutti)
- Frequenza: 2-3x/settimana (estate)
- Note: Raccogliere mattina presto per freschezza
- Resa attesa: 3-6 kg/m² stagione
- **Meteo-sensibile:** No (può raccogliere sotto pioggia)
---
## Settimana 42 (Oct 15-21)
**Task 42.1 — Fine Raccolta Pomodoro**
- Azione: Raccolta frutti verdi in caso di gelo imminente (trasportare indoor a maturare)
- Stima resa totale: [FORECAST kg da aprile]
- Post-raccolta: Smaltire piante (compost)
```
### Fase 3: Taggare Task Sensibili al Meteo
**Identificare task che necessitano check previsione meteo (48h prima):**
| Task | Tag Meteo | Condizione Skip | Reschedule |
|------|-----------|---|---|
| Trapianto | **METEO_CRITICA** | Vento > 8kn, gelo, pioggia | +2-7 gg |
| Trattamento fogliare | **METEO_DEFER** | Vento > 5kn, pioggia, T < 10°C | +1-3 gg |
| Innesto | **METEO_MONITOR** | Freddo < 5°C | +1-2 gg |
| Raccolta | **NO_DEFER** | (raccogliere comunque, salvo gelo) | No reschedule |
| Irrigazione | **METEO_SKIP** | Pioggia > 10mm/24h prevista | Skip / Delay 48h |
### Fase 4: Output Calendario Operativo
**File:** `dati/calendario/calendario_operativo_settimanale.md`
**Structure:**
```markdown
# Calendario Operativo — [ORTO_ID] — [YEAR]
**Zona climatica:** [ZONE]
**Ultima gelata:** [LAST_FROST]
**Prima gelata:** [FIRST_FROST]
**Lunghezza stagione:** [LENGTH] gg
---
## Indice Rapido Colture
- Pomodoro: Semina W5, Trapianto W16, Raccolta W26-42
- Basilico: Semina W20, Raccolta W24-39
- Cavolo: Semina W22 (semenzaio), Trapianto W32, Raccolta W40-48
- [Continua per ogni coltura]
---
## Gennaio — Preparazione Invernale
### Settimana 1 (1-7 Gen)
**Lunedì**
- [ ] Preparazione semenzaio interno
- [ ] Check riscaldamento semenzaio (20-25°C)
- Tempo: 1.5h
**Mercoledì**
- [ ] Pianificazione settimanale
- Tempo: 0.5h
---
## Febbraio — Semina Indoor
### Settimana 5 (29 Gen - 4 Feb) ⚠️ CRITICA
**Lunedì 29 Gen** — **SEMINA POMODORO**
- Azione: Seminare 60 semi pomodoro (3-4 semi/vasetto)
- Ubicazione: Semenzaio
- Temperatura: 20-25°C
- Luce: LED 12h/gg
- Innaffiatura: Mantenere umido (non saturo)
- Germinazione: 5-10 gg
- **METEO:** No (interno)
- Tempo: 0.5h
**Giovedì 1 Feb** — **SEMINA PEPERONE + MELANZANA**
- Azione: Seminare peperone (esigente, più lento), melanzana
- Tempo: 0.5h
- Note: Peperone germina 15-20 gg (più lento pomodoro)
**Sabato 3 Feb** — **CONTROLLO LUCE/UMIDITÀ**
- Check: Led funzionante, umidità terriccio
- Tempo: 0.25h
---
## Aprile — Trapianti Pre-Gelo
### Settimana 15 (Apr 13-19)
**Prepare zone per trapianti:**
- [ ] Preparare aiuole A1, A2 per pomodoro
- [ ] Togliere pacciamatura, vangare, aggiungere compost
- [ ] Preparare tutori (bambù, spago)
- Tempo: 3h
---
### Settimana 16 (Apr 20-26) — 🚨 TRAPIANTO POMODORO 🚨
**⚠️ METEO-SENSIBILE CRITICA**
**Martedì 21 Apr**
- **TRAPIANTO POMODORO** (post-gelo confermato)
- Pre-check: Ultima gelata > 25 Apr? ✓
- Notti > 15°C previsione? ✓
- Piantine pronte (5-6 foglie)? ✓
- Azione: Messa a dimora 40 piante, distanza 50cm
- Acclimatazione: Semi-ombra 3 gg poi sole pieno
- Concimazione: NPK 1.5:1:1.5 (es. sangue secco + letame)
- Irrigazione: Dopo trapianto, poi ogni 2-3 gg
- **METEO-DECISION:** Controllare previsione 48h prima. Se vento > 8kn o pioggia imminente: RINVIARE +3 gg
- Tempo: 2.5h
- Confidence: 0.85 (margine +/- 1 sett frost window)
---
## Giugno — Raccolta Inizio
### Settimana 26 (Jun 23-29)
**Martedì 24 Giu** — **INIZIO RACCOLTA POMODORO**
- Azione: Raccogliere frutti rossi maturi
- Ubicazione: A1, A2
- Stima: 4-8 frutti
- Frequenza: 2-3x/settimana inizio estate
- Tempo: 1h
- Note: Raccogliere mattina presto
---
## Agosto — Picco Raccolta, Caldo
### Settimana 35 (Aug 24-30)
**Lunedì** — **IRRIGAZIONE INTENSIVA (CALDO)**
- ⚠️ Temp > 30°C prevista
- Azione: Aumentare irrigazione (mattina + sera se possibile)
- Mulching: Check pacciamatura, aggiungere se necessario
- Tempo: 1h
**Mercoledì** — **RACCOLTA INTENSIVA POMODORO**
- Azione: Raccogliere continuamente (frutti maturi)
- Stima: 8-15 frutti
- Temp: 1h
---
## Settembre — Trapianti Autunnali
### Settimana 37 (Sep 7-13)
**Semenzaio autunnale:** Cavolo, Broccoli, Cavolfiore
- Azione: Seminare per trapianto agosto
- Ubicazione: Semenzaio ombra (troppo sole = piante bruciate)
- Tempo: 0.5h
---
## Ottobre — Fine Raccolta Pomodoro, Raccolti Autunnali
### Settimana 42 (Oct 19-25)
**Lunedì 20 Ott** — **RACCOLTA FINALE POMODORO**
- Azione: Raccogliere frutti verdi (gelo previsto week 44)
- Destinazione: Cartone/cassa a maturare indoor (2-3 settimane)
- Resa totale: [FORECAST ~120-180 kg per 40 piante × 3-6 kg/m²]
- Post-raccolta: Smantellamento tutori, sradicamento piante
- Compostaggio: Piante sane → compost; piante malate → rifiuti
- Tempo: 1.5h
**Mercoledì 22 Ott**
- [ ] Raccolta Cavolo/Broccoli autunnali (W32 trapianto + 50gg = inizio oct raccolto)
- [ ] Raccolta Lattuga autunnale
- Tempo: 1h
---
## Novembre-Dicembre — Chiusura Stagione
### Settimana 48 (Nov 23-29)
- [ ] Raccolte finali (ultime lattughe, cavoli)
- [ ] Pulizia aiuole (rimozione detriti, piante)
- [ ] Preparazione compost
- [ ] Previsione: Semente pisello/fava settimane prossime
- Tempo: 2h
---
## Riepilogo Stima Raccolta (ZONA CENTRO, A1+A2 = 50 m²)
| Coltura | Ciclo | Resa /m² | Area (m²) | Resa Tot | Note |
|---------|-------|----------|-----------|----------|------|
| Pomodoro | 70-90gg | 4 kg | 15 | ~60 kg | 40 piante, raccolta 2-3 mesi |
| Basilico | 45-60gg | 1 kg | 5 | ~5 kg | Cesellatura continua |
| Cavolo | 60-90gg | 3 kg | 8 | ~24 kg | Autunno |
| Lattuga | 45-70gg | 0.7 kg | 12 | ~8 kg | Successioni (4x/anno est.) |
| Carota | 60-80gg | 1.5 kg | 10 | ~15 kg | Successioni (2-3x) |
| **TOTALE** | | | 50 | ~112 kg | Stagione ~9 mesi |
---
## Meteo Alerts Integration
**Questo calendario integra con orto-meteo-decisioni:**
- Task con tag **METEO_CRITICA**: 48h prima, check previsioni + reschedule se needed
- Task con tag **METEO_DEFER**: Flip to "on-hold" se condizioni avverse
- Task con tag **METEO_SKIP**: Skip automatio se pioggia > soglia
**Notifiche settimanali:** Elenco task + meteo alert summary
---
## Riferimenti
- `references/calendario_it.md` — Date gelate regionali, finestre semina/raccolta per coltura, lunghezze stagione
- `references/colture_it.md` — Cicli colturali, successioni timing
- `references/meteo_soglie.md` — Meteo-sensitive task tagging e rescheduling logic
## Assunzioni
1. Piano colture annuale è completo
2. Zona climatica correttamente inferita
3. Previsioni meteo disponibili per decisioni reschedule (integrazione orto-meteo-decisioni)
4. Calendario è lineare (non account per "catch-up" se attività saltata)
## Checklist Validazione
- ✓ Tutte colture da piano_colture mappate
- ✓ Date semina entro finestre climatiche
- ✓ Task sensibili meteo taggati
- ✓ Stima tempo totale settimanale ≤ vincolo ore disponibili
- ✓ Successioni identificate (es. 3x lattuga, 2x carota)
- ✓ End-date raccolte prima prima gelata
---
**Skill: orto-calendario** | Versione 1.0 | Status: Pronto per Produzione

View file

@ -1,299 +0,0 @@
---
name: orto-fitopatologo
description: Diagnosticare malattie colture e raccomandare trattamenti biologici. Usare quando: (1) utente riporta sintomi su colture (macchie foglia, appassimento, insetti, etc.), (2) generare schedule trattamento preventivo per stagione, (3) selezionare trattamenti biologici con vincoli sicurezza (DPI, timing, periodi carenza), (4) loggare trattamenti in audit trail. Output: Markdown diagnosi con ID patogeno e confidence, piano trattamento con timing e note sicurezza, schedule monitoraggio preventivo.
---
# Orto Fitopatologo — Diagnosi Malattie e Trattamenti Biologici
Diagnosticare malattie piante e raccomandare trattamenti biologici con vincoli sicurezza.
## Quando Usare Questa Skill
- **Reattivo:** Utente riporta sintomi (danno foglia, appassimento, insetti, etc.)
- **Preventivo:** Generare schedule trattamento stagionale per colture alto-rischio (Pomodoro → peronospora)
- **Selezione trattamento:** Scegliere opzione biologica corrispondente a vincoli sicurezza/timing
- **Valutazione rischio:** Valutare pressione malattia & confidence prima di raccomandare azione
## Processo
### Fase 1: Raccolta Sintomi e Filtraggio Iniziale
**Utente fornisce:**
- Nome coltura (es. "Pomodoro")
- Descrizione sintomo (es. "Foglie gialle con macchie scure, bagnate")
- Ubicazione (es. "A1, 5 piante")
- Inizio (es. "Ultimi 3-4 giorni")
- Condizioni osservate (es. "Umidità alta, pioggia notturna frequente")
**Filtrare candidati da malattie_trattamenti.md:**
| Sintomo | Coltura | Patogeno Candidati | Confidence |
|---------|---------|-------------------|-----------|
| Macchie giallo-brune, margine indefinito | Pomodoro | Peronospora (Phytophthora) | 0.70 |
| | | Alternaria (Alternaria solani) | 0.60 |
| | | Stemphylium | 0.30 |
### Phase 2: Diagnostic Tree
**Ask clarifying questions:**
1. **Localizzazione foglia:** Bassa/media/alta canopia? (Peronospora bassa; Oidio alta)
2. **Aspetto lato foglia:** Dorso sporco? Pagina inferiore muffa? (Peronospora = dorso sporco)
3. **Progressione veloce?** (Peronospora rapida; Alternaria lenta)
4. **Temperatura/umidità:** >80% RH, T 15-25°C? (Peronospora loves this)
5. **Fragranza:** Odore marcio? (Marciume batterico)
**Example output:**
```
Q: Foglie interessate bassa canopia? Sì
Q: Dorso foglia sporco? Sì
Q: Umidità alta ricorrente? Sì
Q: Progressione veloce? Sì
→ DIAGNOSIS SCORE: Peronospora 0.92 (Very High)
```
### Fase 3: Scoring Confidence e Valutazione Rischio
**Calcola confidence:**
```
base_score = sum(feature_matching) / total_feature
es., 4 matching / 4 asked = 1.0 → 0.92 (penalità interna per incertezza)
Se confidence < 0.60: Flagga come incerto; raccomanda revisione foto esperto
```
**Valutazione rischio:**
- **Confidence:** 0.92 (Molto Alto) → Tratta
- **Severità:** 5 piante su 40 pomodori (12.5%) → Basso rischio diffusione, intervento precoce
- **Urgenza:** Pioggia prevista domani (alta umidità continua) → Azione IMMEDIATA
### Fase 4: Raccomandazione Trattamento
**For each candidate pathogen, retrieve from malattie_trattamenti.md:**
| Treatment | Active | DPI | Timing | Carency | Efficacy | Notes |
|-----------|--------|-----|--------|---------|----------|-------|
| Rame (fungicida) | Cupric oxide | Gloves, respir | Pre/early | 14 gg | 75% | Preventivo migliore |
| Zolfo | Zolfo micronizzato | Gloves | Pre/early | 7 gg | 60% | OK oidio; meno peronospora |
| Bacillus subtilis | Bio fungicida | None | Early stage | 0 gg | 50% | Limitato; provare subito |
| Neem oil | Azadirachtin | Gloves | Evening | 7 gg | 40% | Last resort |
**Selection logic:**
```
IF confidence > 0.85 AND urgency HIGH:
→ Recommend rame (highest efficacy, preventivo)
→ Check DPI disponibili (gloves, respirator se spray)
→ Advise timing: Sera (no sole direct), T < 25°C
ELIF confidence 0.70-0.85 AND severity LOW:
→ Suggest monitoring first (2-3 gg)
→ If spreading: escalate to rame
→ Try Bacillus subtilis (bio-friendly, low risk)
ELIF confidence < 0.60:
→ Advise expert consult (photo to agronomist)
→ Meanwhile: improve conditions (areazione, reduce umidità)
```
### Fase 5: Schedule Preventivo
**Per colture alto-rischio (es. Pomodoro in zona umida):**
```
CALENDARIO PREVENTIVO (Bio):
**Giugno (Inizio stagione, giovani piante):**
- Week 1-2: Nessun trattamento (piante robuste giovani)
- Week 3: Primo trattamento preventivo (rame 5g/L) se pioggia frequente
**Luglio (Picco rischio: caldo + umidità notturna):**
- Spray rame settimanale (Lunedì) — timing: sera post-pioggia
- Alternare con Bacillus subtilis (Giovedì) — rotazione per resistenza
**Agosto:**
- Mantenere cadenza settimanale (caldo alto, umidità notturna)
**Settembre-Ottobre:**
- Ridurre (temperature calano, umidità meno propizia)
- Spray PRN (se sintomo osservato)
**Logistica:**
- Stock: 500g rame micronizzato (stagione, ~€8)
- Spray: Pompa manuale 5L (riutilizzabile, €15)
- Tempo: 30 min/settimana
```
### Fase 6: Output Diagnosi e Trattamenti
**File:** `dati/trattamenti/diagnosi_problemi.md`
```markdown
# Diagnosi Problemi — [ORTO_ID]
**Date:** [TODAY]
**Reporter:** [USER_NAME]
---
## Diagnosi #1 — Pomodoro Peronospora (2026-03-XX)
### Descrizione Sintomi
- Coltura: Pomodoro (20 piante, A1)
- Sintomi osservati: Foglie gialle, macchie scure irregolari, dorso sporco grigio-bianco
- Zona: Bassa canopia (foglie inferiori) → superiore
- Onset: 3-4 giorni fa
- Velocità progressione: Veloce (aumenta daily)
### Condizioni Ambientali
- Umidità: 85-90% (alta)
- Temperatura: 18-22°C (ideale peronospora)
- Precipitazione: Pioggia notturna, 2-3 giorni precedenti
- Ventilazione: Mediocre (spalliera fitta)
### Diagnostic Scoring
| Feature | Match | Weight | Score |
|---------|-------|--------|-------|
| Macchie foglia bassa | ✓ | 0.3 | 0.3 |
| Dorso sporco grigio | ✓ | 0.3 | 0.3 |
| Umidità alta | ✓ | 0.2 | 0.2 |
| Temp 15-25°C | ✓ | 0.1 | 0.1 |
| Fog gialle (stress) | ✓ | 0.1 | 0.1 |
| | **TOTAL** | | **0.90** |
### **DIAGNOSIS: Peronospora (Phytophthora infestans) — Confidence 0.90 (Very High)**
---
## Raccomandazioni Trattamento
### Azione Immediata (Oggi)
1. **Isolare zona:** Mark A1 (quarantine mentally; no spread other zones)
2. **Rimozione foglie infette:**
- Strappa tutte foglie gialle-macchiate (bassa canopia)
- Destina compost/rifiuti (NON suolo orto)
- Disinfetta cesoie (alcol 70%) tra piante
3. **Spray preventivo (sera, domani):**
- **Prodotto:** Rame micronizzato, 5g/L acqua
- **Dosaggio:** 1 L spray per 10 m² (A1 = 15m², serve 1.5L)
- **Timing:** Domani sera 18:30, T < 20°C, no sole diretto
- **Copertua:** Interamente (dorso foglia importante)
- **DPI:** Gloves + respir (rame polvere irritante)
- **Carency:** 14 gg (no raccolta prima)
- **Efficacy:** 75% (prevenzione > cura)
4. **Condition improvement:**
- **Ventilazione:** Pota rami inferiori (aria circola)
- **Umidità:** Irrigazione mattina (no sera; riduce umidità notturna)
- **Spacing:** Aumenta distanze tra piante (areazione)
---
### Preventive Schedule Pomodoro (Stagione)
**A partire da giugno (nuovo ciclo):**
| Settimana | Azione | Prodotto | Timing | Note |
|-----------|--------|----------|--------|------|
| 1-2 | Nessuno | - | - | Piante giovani, vigore alto |
| 3+ | Preventivo | Rame 5g/L | Lunedì | Cadenza settimanale |
| Alternato | Bio-rotation | Bacillus subtilis | Giovedì | Resistenza crociata |
| Post-pioggia | Extra spray | Rame | +1 gg pioggia | Umidità propizia |
---
### Costi & Logistica
- **Rame:** €8 (500g, stagione)
- **Spray:** €15 (pompa manuale, one-time)
- **Tempo:** 30 min/trattamento × 12-15 trattamenti = 6-8 ore/stagione
- **Total cost:** ~€23 (one-time, poi ~€5/anno ricaricare rame)
---
## Monitoraggio (Follow-up)
**Prossimi 7 giorni:**
- [ ] **Giorno 1 (Oggi):** Rimozione foglie, spray sera
- [ ] **Giorno 3:** Verifica se new symptomi → successful
- [ ] **Giorno 7:** Secondo spray (rame OR Bacillus rotation)
- [ ] **Giorno 14:** Inizio raccolta (carency passato rame, 14 gg)
**Success criterion:** No new leaf symptoms by day 5
**If spreading:**
- Escalate to more frequent spray (2-3x/week)
- Consider removing heavily affected plants (if <10% piante)
- Consult expert if confidence < 0.60
---
## Archive & Audit Trail
**Stored:** `dati/trattamenti/`
**Logged:** `log/audit_trail.md` (Event: trattamento_peronospora, timestamp, prodotto, qty, risultato)
---
**Diagnosi completata:** 2026-03-XX
**Confidence:** 0.90 (Very High)
**Risk level:** MEDIUM (manageable with immediate action)
**Prognosis:** Good (early intervention + ventilazione improvement)
```
---
## References
- `references/malattie_trattamenti.md` — Symptom database, pathogen bio, treatments, DPI, carency
## Fallback & Uncertainty
| Confidence | Azione |
|------------|--------|
| > 0.85 | Tratta con confidenza (alta certezza) |
| 0.70-0.85 | Raccomanda monitoraggio 3-5 gg; escalate se diffonde |
| 0.50-0.70 | Suggerisci foto a esperto; nel frattempo migliora condizioni (ventilazione, etc.) |
| < 0.50 | NON TRATTARE (rischio danno). Ottieni opinione esperto. |
## Gestione Errori
| Errore | Fallback |
|-------|----------|
| Combo coltura/sintomo sconosciuto | Query malattie_trattamenti.md; se no match, consiglia revisione foto esperto |
| Multipli patogeni probabili | Elenca top 3 candidati con score confidence; tratta candidato top |
| DPI/Equipaggiamento mancante | Suggerisci alternativa più sicura (es. Bacillus al posto rame se no respiratore) |
## Assunzioni
1. malattie_trattamenti.md è aggiornato con malattie colture
2. Utente può fornire foto o descrizione sintomo dettagliata
3. Trattamenti biologici/bio sono preferiti (no chimici sintetici)
4. Periodi carenza rispettati (14 giorni prima raccolta per certi trattamenti)
## Riferimenti
- `references/malattie_trattamenti.md` — Mapping sintomi→patogeno, trattamenti biologici autorizzati Italia, DPI, carenza
- `references/colture_it.md` — Famiglia botanica colture per risk assessment
## Checklist Validazione
- ✓ Sintomi raccolti comprensivamente
- ✓ Confidence diagnostica > 0.60 O esperto referenziato
- ✓ Requisiti DPI trattamento documentati (vedi malattie_trattamenti.md)
- ✓ Periodi carenza annotati per sicurezza raccolta
- ✓ Schedule preventivo definito per colture alto-rischio
- ✓ Audit trail loggato (trattamento applicato, risultati)
---
**Skill: orto-fitopatologo** | Versione 1.0 | Status: Pronto per Produzione

View file

@ -1,336 +0,0 @@
---
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, decimale
- `longitude`: -180 a 180, decimale
- `area_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)
```markdown
# 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)
```markdown
# 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`)
```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`:
```markdown
# 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):**
```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:
```bash
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
1. Codex è in esecuzione su una macchina con accesso filesystem a `/home/<user>/.openclaw/workspace/`
2. L'utente ha permessi di scrittura per creare directory e file
3. La zona climatica è inferita solo da latitudine (semplificazione; da raffinare se necessario)
4. Tutti i template sono in lingua italiana
5. 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

View file

@ -1,315 +0,0 @@
---
name: orto-irrigazione
description: Progettare sistema irrigazione multi-zona con baseline scheduling e logica automazione. Usare quando: (1) definire zone acqua per classe fabbisogno acqua coltura, (2) calcolare fabbisogni idrico giornalieri (ET, coefficienti Kc), (3) specificare emettitori e placement sensori, (4) scrivere baseline watering schedule e regole trigger meteo. Output: Config sistema irrigazione (markdown) con zone, emettitori, baseline schedule, soglie sensori umidità suolo, regole decisioni meteo.
---
# Orto Irrigazione — Progettazione Sistema Irrigazione Multi-Zona
Progettare zone irrigazione, baseline schedule, e regole automazione basate su fabbisogni acqua coltura, suolo e meteo.
## Quando Usare Questa Skill
- **Dopo orto-layout:** Assegnazione colture a beds/zone è nota
- **Pianificazione sistema:** Definire infrastruttura (emettitori, zone, sensori, controlli)
- **Baseline schedule:** Calcolare fabbisogni acqua giornalieri e frequenza irrigazione
- **Automazione:** Definire trigger umidità suolo + regole override meteo
## Processo
### Fase 1: Classificazione Fabbisogno Acqua da Colture
**Mappare colture → classe acqua (da colture_it.md):**
```
BASSO: Carota, Cipolla, Spinacio, Pisello, Aglio (~100-150 mm/stagione)
MEDIO: Lattuga, Cavolo, Broccoli, Fagiolo (~150-250 mm/stagione)
ALTO: Pomodoro, Peperone, Zucchina, Melone, Cocomero (~300-500 mm/stagione)
MOLTO_ALTO: (Raro; non tipico orto domestico)
```
### Fase 2: Inferisci Zone da Layout
**Input:** `dati/layout/aiuole_dimensioni.md` (zone + assegnazione colture)
**Example:**
```
Zone A1 (15 m²): Pomodoro (ALTO) + Basilico (MEDIO) → Zone ALTA
Zone A2 (15 m²): Cavolo (MEDIO) + Lattuga (MEDIO) → Zone MEDIA
Zone A3 (20 m²): Carota (BASSO) + Cipolla (BASSO) → Zone BASSA
```
### Phase 3: Calculate Baseline Water Needs
**Formula (simplified):**
```
Daily water need (mm) = ET0 × Kc × Area_fraction
Where:
- ET0 (ref evapotranspiration) = climate-based (lookup from zone)
- Kc (crop coefficient) = 0.4-1.2 (depends crop growth stage)
- Running frequency = Daily need / Emitter rate
Example (Zone ALTA, July, North Italy):
- ET0 ≈ 6 mm/day (summer peak)
- Kc (Pomodoro, mid-season) ≈ 0.9
- Daily need ≈ 6 × 0.9 = 5.4 mm/day
- If drip emitter 2 l/h spaced 0.5m = ~4 mm/h per m
- Runtime ≈ 5.4mm / 4mm_per_h ≈ 1.3h ≈ 80 min/day
- Frequency: 1x daily or split 2x (morning/evening in heat)
```
### Fase 4: Definisci Infrastruttura Zone
**Per ogni zona, specificare:**
| Parametro | Zona BASSA | Zona MEDIA | Zona ALTA |
|-----------|-----------|-----------|----------|
| **Tipo emettitore** | Goccia (0.5-1 l/h) | Goccia (1-2 l/h) | Goccia (2-4 l/h) + microspruzzatore |
| **Spaziatura** | 0.75m | 0.5-0.75m | 0.4-0.5m |
| **Runtime baseline** | 20-30 min | 40-60 min | 60-90 min |
| **Frequenza** | 2-3x/sett | 3-4x/sett | 4-6x/sett |
| **Sensore suolo** | Opzionale | Opzionale | Consigliato |
| **Soglia sensore (suolo %)** | 40% VWC | 50% VWC | 60% VWC |
### Fase 5: Delinea Logica Automazione
**Regola baseline (se no sensore):**
```
Zona ALTA (Pomodoro):
- Giugno-Luglio: Daily 7am + 5pm (split dovuto caldo)
- Agosto: Daily 6am + 6pm
- Pre-gelo (Ott): Skip se pioggia > 5mm in 24h
```
**Con sensore suolo:**
```
Zona ALTA:
- SE soil_moisture < 60% VWC AND (no pioggia ultime 24h) Irriga 60 min
- SE soil_moisture > 70% VWC → Skip
- Override: SE air_temp > 35°C → Irriga comunque (stress caldo)
```
**Override meteo (da orto-meteo-decisioni):**
```
- SE rain_forecast > 10mm in 24h → Skip 24h
- SE frost_alert → Muovi irrigazione a mattina (protezione radici)
- SE wind_alert → Sospendi spruzzatori (solo goccia)
```
### Fase 6: Output Config Sistema Irrigazione
**File:** `dati/irrigazione/sistema_irrigazione.md`
```markdown
# Sistema Irrigazione — [ORTO_ID]
**Area totale:** [AREA] m²
**Acqua disponibile:** [SOURCE] — [PORTATA] l/min
**Vincoli:** [CONSTRAINTS_FROM_ONBOARDING]
**Automazione:** [LEVEL]
---
## Zone Irrigue
### Zona ALTA (A1 — Pomodoro, Basilico)
**Colture:** Pomodoro (ALTO) + Basilico (MEDIO)
**Area:** 15 m²
**Sole:** Pieno (6-8h)
**Emitters:**
- Tipo: Dripper 2 l/h + microsprayer 4 l/h (angoli)
- Spacing: 0.4m
- Numero emitters: ~40 drippers
**Layout:**
```
[A1 Pomodoro — Area 15 m²]
Drip line 1 ──────────────────→
Drip line 2 ──────────────────→
Drip line 3 ──────────────────→
Drip line 4 ──────────────────→
Linea manifold: 16mm PE
Main inlet: 20mm PE (from rubinetto)
```
**Baseline Schedule (June-August, North Italy):**
| Mese | Frequency | Timing | Runtime | Note |
|------|-----------|--------|---------|------|
| Jun | 4x/week | 7am | 60 min | Inizio stagione |
| Jul | Daily | 7am, 5pm | 60 min each | Peak heat |
| Aug | Daily | 6am, 6pm | 80 min each | Peak caldo + ciclo lungo |
**Soil Sensor (Optional but recommended):**
- Model: Capacitive VWC sensor (es. SMT100)
- Placement: 20cm depth, centro aiuola A1
- Threshold: 60% VWC → Irrigate (trigger)
- Confidence: Sensor ±3% accuracy
**Meteo Override Rules:**
- IF rain_forecast > 10mm → Skip next 24h
- IF temp_forecast > 35°C → Force irrigate (heat stress priority)
- IF frost_alert → Early morning irrigation only
**Safety Interlocks:**
- Max runtime: 120 min/zone/day (prevent overwatering)
- Flow monitoring: IF flow sensor detects 0 l/min for 5 min → STOP + ALERT
**Cost estimate:**
- Drip tubing + emitters: €15 (DIY, PE budget)
- Sensor (if): €30-50
- Timer (if): €20-50
- Total: €65-115
**Expected water consumption:**
- Zone ALTA: 5.4 mm/day × 15 m² = 81 liters/day
- 30 days June-August: ~2,400 liters/mese
- Totale stagione (Jun-Oct): ~10,000 liters
---
### Zona MEDIA (A2 — Cavolo, Lattuga)
**Colture:** Cavolo (MEDIO) + Lattuga (MEDIO)
**Area:** 15 m²
**Baseline Schedule:**
| Mese | Frequency | Runtime |
|------|-----------|---------|
| Jun | 3x/week | 40 min |
| Jul | 4x/week | 50 min |
| Aug | 4x/week | 60 min |
| Sep-Oct | 2-3x/week | 40 min |
**Emitters:** Dripper 1-2 l/h, spacing 0.5m
---
### Zona BASSA (A3 — Carota, Cipolla)
**Colture:** Carota (BASSO) + Cipolla (BASSO)
**Area:** 20 m²
**Baseline Schedule:** 2-3x/week, 20-30 min
**Emitters:** Dripper 0.5-1 l/h, spacing 0.75m
**Note:** Post-raccolta (cipolla maturazione), ridurre irrigation (rischio marciume)
---
## Irrigation Circuit Layout (Diagram Testuale)
```
[Rubinetto]
[Timer/Controller]
[Linea principale 20mm PE]
├─→ [Regolatore pressione]
│ ├─→ Valvola solenoide Zona ALTA (A1)
│ ├─→ Valvola solenoide Zona MEDIA (A2)
│ └─→ Valvola solenoide Zona BASSA (A3)
└─→ [Sensore flusso totale (optional)]
└─→ [Manometro]
```
---
## Automazione Opzioni
### Opzione 1: Manuale (Budget basso)
- Timer meccanico semplice (€20)
- Avvio manuale o timer accensione
- Pro: Semplice, economico
- Contro: Meno preciso, niente sensori
### Opzione 2: Timer programmabile (Budget medio)
- Timer digitale (€30-50) con 4+ programmi
- Cron settimanale customizzabile
- Sensor input: None (rule-based only)
- Pro: Flessibile, reliable
- Contro: No adaptive weather
### Opzione 3: Smart controller (Budget alto)
- Controller IoT (es. Rasprry Pi + Sonoff relays, ~€80-150)
- WiFi integration: Previsioni meteo automatiche
- Sensor integration: Capacitive VWC input
- Pro: Full automation, adaptive
- Contro: Setup tecnico, power requirement
---
## Meteo Integration
**Input from orto-meteo-decisioni:**
Weekly briefing (ogni lunedì):
```
ZONA ALTA:
- Previsione pioggia: 15mm Wed (expected coverage 60%)
- Azione: Skip Wednesday+Thursday (2 days)
- Reschedule: Riprendere Friday
ZONA MEDIA:
- Nessun cambiamento (pioggia marginale)
ZONA BASSA:
- Previsione caldo (T > 32°C) Fri-Sun
- Nota: Carota in raccolta; ridurre irrigation (no stress)
```
---
## Troubleshooting
| Problema | Causa | Soluzione |
|----------|-------|----------|
| Emitter intasato | Calcare/sporco | Pulizia nozzle; demineralizzare se needed |
| Flusso ridotto | Perdita linea | Check connection; sostituire se bucata |
| Piante appassite | Sotto-irrigazione | Aumentare runtime o frequenza |
| Marciume radicale | Over-irrigazione | Ridurre frequenza; migliorare drenaggio |
---
## Manutenzione Annuale
- **Maggio:** Test controller, verifica emettitori (pulizia)
- **Giugno:** Calibrazione sensori (se presenti)
- **Agosto:** Check pressione sistema, riparazione leak
- **Settembre:** Preparare per riduzione irrigazione autunno
- **Novembre:** Svuotare linee, immagazzinare per inverno
---
## Riferimenti
- `references/irrigazione_parametri.md` — ET0 per zone, Kc per colture, classe acqua (BASSO/MEDIO/ALTO), soglie sensori, baseline schedule
- `references/colture_it.md` — Fabbisogni colture specifici per zone
- `references/meteo_soglie.md` — Override meteo (pioggia, gelo, caldo) per reschedule irrigazione
## Assunzioni
1. Fonte acqua disponibile (rubinetto, pozzo, raccolta pluviale)
2. Layout zone già definito (orto-layout)
3. Drenaggio suolo accettabile (>mediocre)
4. No rischio inondazione (topografia)
## Checklist Validazione
- ✓ Tutte zone hanno emettitori + baseline schedule
- ✓ Pressione sistema adeguata (0.5-1.5 bar goccia, 2-3 bar sprinkler)
- ✓ Consumo acqua max ≤ capacità fonte (l/min × runtime)
- ✓ Logica automazione coerente (no conflitti sensore/meteo)
- ✓ Safety interlocks presenti
- ✓ Stima costo ragionevole
---
**Skill: orto-irrigazione** | Versione 1.0 | Status: Pronto per Produzione

View file

@ -1,309 +0,0 @@
---
name: orto-layout
description: Progettare layout orto con aiuole rialzate, consociazioni e assegnazioni zone. Usare quando: (1) assegnare colture a aiuole basato su consociazioni e raggruppamento fabbisogno acqua, (2) creare layout spaziale (dimensioni aiuola, sentieri, accessibilità), (3) raggruppare colture per zona irrigazione (classe acqua), (4) disegnare mappe aiuole ASCII con etichette colture. Output: Layout markdown con assegnazioni aiuole, matrice consociazione, note accessibilità, assegnazioni zone per irrigazione.
---
# Orto Layout — Progettazione Aiuole Orto e Consociazione Piante
Mappare colture a aiuole fisiche, applicare regole consociazione piante, raggruppare per zone acqua, assicurare accessibilità.
## Quando Usare Questa Skill
- **Dopo piano colture:** Lista colture è finalizzata
- **Prima di irrigazione:** Necessitare raggruppamenti zona per scheduling acqua
- **Pianificazione spazio:** Layout fisico con dimensioni aiuola e sentieri
- **Accessibilità:** Assicurare sentieri calpestabili, adatti per minori/anziani se necessario
## Processo
### Fase 1: Estrai Requisiti Colture da Piano Colture
**Input:** `dati/colture/piano_colture_annuale.md`
**Per ogni coltura, raccolgi:**
- Classe acqua (BASSO, MEDIO, ALTO)
- Spaziatura (cm tra piante, cm tra file)
- Requisito sole (pieno/parziale/ombra)
- Gruppi consociazione (match positivi/negativi)
- Area necessaria (m²) = piante × area_spaziatura
### Fase 2: Raggruppa per Zona Acqua
**Logica:**
1. **ZONA ALTA (acqua-intensiva):** Pomodoro, Peperone, Zucchina, Melone, Basilico
2. **ZONA MEDIA:** Lattuga, Cavolo, Broccoli, Fagiolo, Carota
3. **ZONA BASSA:** Carota, Cipolla, Spinacio, Pisello, Barbabietola
**Constraint:** Avoid mixing high + low in same bed (diff watering needs)
### Phase 3: Apply Companion Rules
**Matrice consociazione (da colture_it.md):**
```
POSITIVO (✓):
- Pomodoro + Basilico → odore basilico repelle insetti
- Pomodoro + Carota → radici diverse (non competono)
- Fagiolo + Mais + Zucca → "Trio di sorelle" (N fixation, support, ombra)
ANTAGONISMO (✗):
- Pomodoro + Brassica → malattie compartite
- Cipolla + Fagiolo → sopprimono N fixation
- Carota + Finocchio → competizione radicale
```
**Output:** Raggruppamento aiuole rispettando:
1. Match zona acqua
2. Consociazioni positive quando possibile
3. No antagonismi in stessa aiuola
4. No stessa famiglia 2+ anni (check rotazione con storia)
### Fase 4: Progettazione Layout
**Raccomandazioni dimensioni aiuola (da colture_it.md):**
- Larghezza: 1.0-1.5 m (raggiungibile dai lati)
- Lunghezza: 2-4 m (modulare)
- Profondità: 0.3-0.5 m (rialzate), o 0 (a terra)
- Sentiero: 0.5 m min (accessibilità)
**Esempio per area 50 m²:**
```
Area 50 m² → Dividi in 4-5 aiuole + sentieri
Opzione 1: Rialzate (4 aiuole)
Ogni aiuola: 1.2m × 3m × 0.4m = 3.6 m²
Total aiuole: 4 × 3.6 = 14.4 m²
Sentiero: ~5 m² (10%)
Usable: ~14.4 m² ← Conservativo
Opzione 2: A terra (4 file parallele)
Ogni fila: 1m wide × 12m long = 12 m²
Total: ~36 m² (usable)
Sentiero: ~8 m² (20%)
Migliore: Mix (2 rialzate + 2 file) = ~20-25 m² usable
```
### Fase 5: Genera Mappa Layout e Assegnazione
**Output:** `dati/layout/aiuole_dimensioni.md`
```markdown
# Layout Orto — [ORTO_ID]
**Area totale:** 50 m²
**Area usable:** 25 m²
**Tipologia:** 2 aiuole rialzate + 2 file a terra
---
## Map Testuale
```
[NORD - Sole max al mattino]
AIUOLA A1 (Rialzata) AIUOLA A2 (Rialzata)
1.2m × 3m × 0.4m 1.2m × 3m × 0.4m
┌─────────────────────┐ ┌─────────────────────┐
│ POD │ POD │ POD │ POD│ │ CAV │ CAV │ LAT │ LAT│
│ + │ + │ + │ + │ │ +FR │+TIM │ │ │
│ BAS │ BAS │ BAS │ BAS│ │ │ │ │ │
└─────────────────────┘ └─────────────────────┘
[ZONA ALTA] [ZONA MEDIA]
Acqua: Daily Acqua: 3-4x/sett
PATHWAY 0.5m ↔
FILA A3 (A terra) FILA A4 (A terra)
1m × 12m 1m × 12m
[CAR || CAR || CAR] [CIP || CIP || CIP]
[ x || x || x ] [ x || x || x ]
[ x || x || x ] [ x || x || x ]
[ZONA MEDIA] [ZONA BASSA]
Acqua: 3x/sett Acqua: 2-3x/sett
[SUD - Ombra pomeridiana]
```
---
## Assegnazione Aiuole Dettagliata
### AIUOLA A1 — Zona ALTA (Pomodoro + Basilico)
**Dimensioni:** 1.2m × 3m (3.6 m²)
**Esposizione:** Pieno sole (6-8h)
**Acqua:** ALTA (daily 60-80 min)
**Layout (vista dall'alto):**
```
3 metri (NORD → SUD)
┌─────────────────────────┐ 1.2 m
│ POD │ POD │ POD │ POD │ (OVEST)
│ 0.6m │ 0.6m │ 0.6m │ 0.6m│
│ 60cm│ 60cm│ 60cm│ 60cm│
│ (distanza file) │
│ ┌──────────────────────┐ │
│ │BASILICO (bordure) │ │
│ └──────────────────────┘ │
└─────────────────────────┘
```
**Piante:**
- Pomodoro: 4 piante (1 per colonna, distanza 60cm)
- Basilico: 4 piante (bordure, angoli e centro tra righe)
- Tutori: Bambù per pomodori (centro aiuola, 2m height)
**Consociazione:** ✓ Positiva (basilico odore repelle insects)
**Cura:** Cesellatura basilico, tutoraggio pomodoro regolare
---
### AIUOLA A2 — Zona MEDIA (Cavolo + Lattuga + Timo)
**Dimensioni:** 1.2m × 3m (3.6 m²)
**Esposizione:** Pieno sole (6-8h)
**Acqua:** MEDIA (3-4x/sett 40-50 min)
**Layout:**
```
┌──────────────────────────┐
│ CAV │ CAV │ CAV │ CAV │ (60cm spacing)
│ │ │ │ │
│ LAT │ LAT │ LAT │ LAT │ (SECOND row, 30cm spacing)
│ │ │ │ │
│ TIM (corners, perennial, tutor fixed)
└──────────────────────────┘
```
**Piante:**
- Cavolo: 4 piante (60cm spacing)
- Lattuga: 8-12 piante (30cm spacing, second row)
- Timo: 2 piante (corners, permanent)
**Consociazione:** ✓ Positiva (timo + cavolo repelle; lattuga diversa root depth)
---
### FILA A3 — Zona MEDIA (Carota)
**Dimensioni:** 1m × 12m
**Esposizione:** Pieno sole parziale (4-6h ok)
**Acqua:** MEDIA (3x/sett 40 min)
**Layout:**
```
Carota: 3 righe parallele (distanza 20cm)
Ogni riga: ~30 piante (spacing 5-8cm, diradare crescita)
┌──────────────────────────────┐
│ C C C C C ... (30 plants) │ Riga 1 (0-20cm)
│ │
│ C C C C C ... (30 plants) │ Riga 2 (20-40cm)
│ │
│ C C C C C ... (30 plants) │ Riga 3 (40-60cm)
│ │
│ C C C C C ... (30 plants) │ Riga 4 (60-80cm) [optional]
└──────────────────────────────┘
```
**Succesioni:** Carota può seminare 2-3 volte (mar/mag-giu, lug-ago uscita ott)
---
### FILA A4 — Zona BASSA (Cipolla)
**Dimensioni:** 1m × 12m
**Esposizione:** Sole parziale ok (4-6h)
**Acqua:** BASSA (2-3x/sett 20-30 min)
**Layout:**
```
Cipolla: 2 righe (25cm spacing tra file, 15cm tra piante)
┌──────────────────────────────┐
│ O O O O O ... (40 bulbilli) │ Riga 1
│ │
│ O O O O O ... (40 bulbilli) │ Riga 2
└──────────────────────────────┘
Trapianto: Marzo-Aprile (bulbilli)
Raccolta: Luglio-Agosto (bulbi maturi)
```
---
## Accessibilità & Sicurezza
**Persone coinvolte:** [From CommunityProfile]
- Se minori (children): Remove toxic/irritating plants (no ruta, attenzione rovo)
- Se anziani: Rialzate preferred (no piegamento eccessivo)
- Se PMR: Pathways ≥0.7m, rialzate a 0.6-0.8m (wheel accessible)
**Pathways in layout:**
```
Main path (NORD-SUD): 0.7m wide (wheelchair OK)
Side paths (access to beds): 0.5m min
```
---
## Irrigation Zone Assignment (Summary)
| Aiuola | Zona Acqua | Baseline |
|--------|-----------|----------|
| A1 (POD+BAS) | **ALTA** | Daily 60-80 min |
| A2 (CAV+LAT) | **MEDIA** | 3-4x/sett 40-50 min |
| A3 (CAR) | **MEDIA** | 3x/sett 40 min |
| A4 (CIP) | **BASSA** | 2-3x/sett 20-30 min |
**Manifold layout:**
- Main 20mm → Split to 3 zones (ALTA, MEDIA, BASSA)
- Zone ALTA: Drip 2 l/h, Zone MEDIA: 1-2 l/h, Zone BASSA: 0.5-1 l/h
---
## Rotation Plan (Multi-Year)
**Anno 1:**
- A1: Solanaceae (Pomodoro)
- A2: Brassicaceae (Cavolo) + Asteraceae (Lattuga)
- A3: Apiaceae (Carota)
- A4: Amaryllidaceae (Cipolla)
**Anno 2 (Rotazione):**
- A1: Legume (Fagiolo) [N fixation benefit post-Solanaceae]
- A2: Apiaceae (Carota)
- A3: Amaryllidaceae (Cipolla)
- A4: Solanaceae (Pomodoro)
---
## Riferimenti
- `references/colture_it.md` — Spaziatura, consociazioni, classe acqua, famiglie botaniche
- `references/consociazioni_layout.md` — Matrice consociazione completa (positivo/antagonismo), dimensioni aiuole, spacing, accessibilità
- `references/irrigazione_parametri.md` — Classe acqua (BASSO/MEDIO/ALTO) per zone allocazione
## Assunzioni
1. Lista colture piano colture finalizzata
2. Dimensioni area fornite (GardenConfig)
3. Requisiti accessibilità da CommunityProfile
4. Esposizione sole misurata/stimata (GardenConfig)
## Checklist Validazione
- ✓ Tutte colture da piano colture assegnate a aiuole
- ✓ Zone acqua coerenti (ALTA/MEDIA/BASSA non miste)
- ✓ Consociazioni positive massimizzate
- ✓ No antagonismi in stessa aiuola
- ✓ Sentieri accessibilità ≥0.5m
- ✓ Piano rotazione copre 2-3 anni
- ✓ Disegno layout chiaro e azionabile
---
**Skill: orto-layout** | Versione 1.0 | Status: Pronto per Produzione

View file

@ -1,278 +0,0 @@
---
name: orto-meteo-decisioni
description: Analizzare previsione meteo e generare modifiche task operativi (aggiustamenti irrigazione, reschedule task, alert). Usare quando: (1) ottenere previsione 7-giorni per localizzazione orto, (2) calcolare precipitazione effettiva e deficit idrico, (3) decidere skip/delay irrigazione basato su pioggia, vento, gelo, caldo, (4) taggare task calendario per reschedule meteo-driven. Output: Briefing meteo settimanale (markdown) con decisioni irrigazione specifiche zona, raccomandazioni reschedule task, alert gelo/caldo/vento.
---
# Orto Meteo Decisioni — Decisioni Operative Basate su Meteo
Ottenere previsione meteo, calcolare bilancio acqua, generare aggiustamenti irrigazione e raccomandazioni reschedule task.
## Quando Usare Questa Skill
- **Settimanale:** Ogni lunedì, generare brief meteo per settimana avanti
- **Task critico:** Prima di trapianto, trattamenti, o operazioni alto-fabbisogno-acqua
- **Scheduling adattivo:** Real-time O lookahead 7-giorni (no, non intra-gg)
- **Integrazione:** Link con orto-calendario (task meteo_defer), orto-irrigazione (decisioni zona)
## Processo
### Fase 1: Ottieni Previsione Meteo
**Fonte dati:** wttr.in (o open-meteo fallback, no API key richiesta)
**Periodo previsione:** 7 giorni avanti (Lunedì-Domenica)
**Estrarre:**
- Tmax, Tmin giornalieri
- Precipitazione (mm, probabilità)
- Velocità vento (kn)
- Umidità relativa (%)
- Rischio gelo (T < 0°C notti)
### Fase 2: Calcola Bilancio Acqua per Zona
**Per ogni zona, computare:**
```
Precipitazione effettiva (mm) = Precip_mm × 0.85 (fattore infiltrazione suolo)
Deficit idrico (mm) = Zona_classe_acqua_bisogno_giornaliero (mm) - Precip_effettiva (mm)
Regola decisione:
SE Precip_effettiva >= 70% bisogno zona:
→ SALTA irrigazione (pioggia sufficiente)
→ Ritarda 24-48h se pioggia durante ore applicazione
SE PURE Precip_effettiva >= 30%:
→ RIDUCI runtime 30-50%
SE NO:
→ MANTIENI baseline O aumenta (alert caldo)
```
### Fase 3: Valuta Fattori Rischio
| Fattore | Threshold | Azione |
|--------|-----------|--------|
| **Gelo** | T < 0°C notte | Alert; differisci trapianto delicato +3-7 gg; irriga mattina (proteggi radici) |
| **Stress caldo** | T > 35°C gg | Forza irrigazione (priorità su previsione pioggia); aumenta frequenza |
| **Vento** | > 5 kn | Differisci spray fogliari, trapianto (piante stress); riduci irrigazione sprinkler |
| **Vento forte** | > 8 kn | DIFFERISCI trapianto critico, trattamenti |
| **Pioggia forte** | > 20mm/24h | Alert rischio inondazione (esp. se drenaggio scarso); controlla campo |
| **Grandine** | Alert grandine | Stop irrigazione immediato; valuta danni post-grandine |
### Fase 4: Genera Brief Settimanale
**Output:** `dati/meteo/dati_meteo_giornalieri.md`
```markdown
# Meteo Brief — Week [WK] ([DATE_RANGE]) — [ORTO_ID]
**Location:** [PROVINCIA], [REGIONE], [LAT], [LON]
**Zone climatica:** [ZONE]
**Data forecast:** [RETRIEVED_DATE]
---
## Riepilogo Settimanale
| Giorno | Tmax | Tmin | Precip (mm) | Vento (kn) | Allerta |
|--------|------|------|-------------|-----------|---------|
| Lun | 22 | 14 | 0 | 3 | ✓ OK |
| Mar | 24 | 15 | 2 | 4 | ✓ OK |
| Mer | 20 | 12 | 8 | 5 | ⚠️ VENTO |
| Gio | 19 | 10 | 12 | 2 | ✓ OK (pioggia) |
| Ven | 23 | 13 | 0 | 3 | ✓ OK |
| Sab | 26 | 16 | 0 | 4 | ✓ OK |
| Dom | 28 | 18 | 1 | 6 | ⚠️ CALDO + VENTO |
**Tendenza:** Instabile martedì-giovedì (pioggia intermittente), then dry + warm weekend
---
## Decisioni per Zone Irrigue
### ZONA ALTA (A1 — Pomodoro, Basilico)
**Baseline:** Daily 7am + 5pm, 60 min each (summer schedule)
**Meteo-adjusted schedule:**
| Giorno | Baseline | Precip | Effective | Decision | New Schedule | Nota |
|--------|----------|--------|-----------|----------|--------------|------|
| Lun | 7am+5pm | 0 mm | 0 mm | Irrigate full | 7am 60min, 5pm 60min | ✓ |
| Mar | 7am+5pm | 2 mm | 1.7 mm | Irrigate reduced | 7am 45min, skip 5pm | Pioggia leggera |
| Mer | SKIP | 8 mm | 6.8 mm | **SKIP** | **SKIP** | Vento 5kn (no spray) |
| Gio | SKIP | 12 mm | 10.2 mm | **SKIP** | **SKIP** | Pioggia adeguata, vento cala |
| Ven | 7am+5pm | 0 mm | 0 mm | Irrigate full | 7am 60min, 5pm 60min | Post-pioggia, recuperare |
| Sab | 7am+5pm | 0 mm | 0 mm | Irrigate full | 7am 60min, 5pm 60min | ✓ |
| Dom | 7am+5pm | 1 mm | 0.85 mm | 🔥 CALDO ALERT | 6am 80min, 5pm 80min | T > 28°C, vento 6kn (monitor) |
**Summary:**
- **Water saved Wed-Thu:** 240 min (pioggia sufficient)
- **Water added Dom:** +40 min (heat stress override)
- **Vento impact:** Mer risky (defer), Dom monitor
---
### ZONA MEDIA (A2 — Cavolo, Lattuga)
**Baseline:** 3-4x/week, 40-50 min per session
**Decision:** Baseline ridotto mercoledì (pioggia). Giovedì skip. Normale altri giorni.
---
### ZONA BASSA (A3 — Carota, Cipolla)
**Baseline:** 2-3x/week, 20-30 min (low water need)
**Decision:** Skip Wed-Thu (pioggia sufficiente). Cipolla in maturazione → ulteriore riduzione (evitare marciume).
---
## Task Rescheduling (Meteo-Sensitive Calendar)
**Calendar reference:** `dati/calendario/calendario_operativo.md`
### ⚠️ TASK CRITICA QUESTA SETTIMANA
**[Se presente] Task 16.1 — Trapianto Pomodoro**
Original date: Martedì (19 Apr)
**Meteo check:** Vento martedì 4 kn (OK), mercoledì 5 kn (borderline)
**Decision:** PROCEED martedì (vento tollerabile). Proteggere piantine da vento (wind break se needed).
**If trapianto fosse mercoledì:** RINVIARE +2 gg (vento 5+ kn non ideale; piante freshe soffrono)
---
### Task con meteo-tag METEO_DEFER
| Task | Scheduled | Meteo Issue | Action |
|------|-----------|-------------|--------|
| Trattamento fogliare (se presente) | Mercoledì | Vento > 5 kn | RINVIARE Venerdì |
| Concimazione (se presente) | Mercoledì | Pioggia imminente | POSTPONE Giovedì post-pioggia |
---
### Task con meteo-tag METEO_SKIP (None per questa settimana)
---
## Allerte Importanti
### 🟡 ATTENZIONE VENTO (Mercoledì)
**Vento 5 kn mercoledì.**
- NO trattamenti fogliari (spray non effective, drift)
- NO trapianti se piantine sensibili
- Irrigazione: Preferire goccia a spray
- Consiglio: Posticipare attività outdoor critiche
---
### 🔥 ALLERTA CALDO (Domenica)
**T max 28°C, possibile > 30°C domenica.**
- **Irrigazione:** Aumentate di +30% (heat stress override)
- **Mulching:** Check pacciamatura è adequata
- **Ombra:** Se lattuga estiva in bolognaise, aumentate copertura
- **Orario:** Irrigare presto mattina (6am) + sera (6pm), evitare ore 12-15 (radiazione massima)
---
### ✅ OK — Pioggia Prevista (Gio)
**Pioggia 12 mm giovedì** → SKIP irrigazione
- Effective rainfall ~10 mm (copre 70% zone MEDIA/ALTA)
- Opportunità: Ridurre pressione sull'acqua
- Nota: Post-pioggia (venerdì), monitorare marciume se drenaggio scadente
---
## Consigli Operative
**Lunedì:**
- [ ] Mantenere irrigazione baseline (niente pioggia)
- [ ] Check manometro pressione sistema
- [ ] Preparare strumenti (se trattamento necessario venerdì)
**Martedì:**
- [ ] Monitorare vento (possibile irrigazione ridotta se >5kn)
- [ ] Irrigazione 7am + 5pm (schedule normale)
**Mercoledì:**
- [ ] **SKIP irrigazione** (pioggia + vento)
- [ ] NO trattamenti fogliari (vento)
- [ ] Monitorare pioggia cumulo (potrebbe meno di forecast)
**Giovedì:**
- [ ] **SKIP irrigazione** (pioggia adequate)
- [ ] Check drenaggio post-pioggia (evitare ristagno)
**Venerdì:**
- [ ] **Riprendere irrigazione** full (baseline restored)
- [ ] Eseguire trattamenti fogliare se posticipato mercoledì (condizioni OK)
- [ ] Monitorare umidità suolo sensore (dovrebbe calare post-pioggia)
**Sabato:**
- [ ] Irrigazione baseline (sole, no pioggia)
**Domenica:**
- [ ] **AUMENTATE IRRIGAZIONE** (caldo, 28°C+)
- [ ] Controllare temperature (T > 30°C = heat stress risk)
- [ ] Cercare ombra naturale per lattuga/cavolo
---
## Forecast Confidence & Updates
**Confidence this forecast:** 0.82 (Day 1-3 high, Day 5-7 medium)
**Update schedule:**
- Monday 8am: Full 7-day
- Thursday 6pm: 2-day update (Fri-Sat precision)
- Real-time: Critical alerts (frost, hail, extreme wind)
**Source:** wttr.in (UK MetOffice data); fallback open-meteo (OM)
---
## Note Storiche (Opzionale)
*Campo tracking opzionale: Il meteo effettivo ha corrisposto alla previsione? Usare per calibrazione.*
- Scorsa settimana previsione pioggia Mer, effettiva Gio: errore -1 gg
- Margini confidenza migliorano con dati calibrazione
---
## Riferimenti
- `references/meteo_soglie.md` — Valori threshold completi (vento, pioggia, gelo, caldo, umidità), trigger operativi per reschedule
- `references/irrigazione_parametri.md` — Calcolo effective rainfall per decisioni irrigazione
- `references/calendario_it.md` — Date gelate regionali per frost alerts
## Assunzioni
1. Connessione internet disponibile (fetch meteo API)
2. Localizzazione orto lat/lon accuratamente registrata
3. Dati previsione sono rolling 7-giorni (refresh giornaliero)
4. Precipitazione effettiva = precip × 0.85 (fattore infiltrazione standard)
## Checklist Validazione
- ✓ Dati previsione recuperati e parsati
- ✓ Bilancio acqua calcolato per zona
- ✓ Raccomandazioni reschedule task coerenti con calendario
- ✓ Alert triggerati se threshold ecceduti (gelo, caldo, vento, pioggia)
- ✓ Markdown output azionabile (decisioni giornaliere chiare)
---
**Skill: orto-meteo-decisioni** | Versione 1.0 | Status: Pronto per Produzione

View file

@ -1,327 +0,0 @@
---
name: orto-onboarding
description: Raccogliere profilo completo orto tramite 5 blocchi questionario. Usare quando: (1) raccogliere specifiche orto dopo orto-init (spazio, suolo, capacità irrigazione), (2) comprendere preferenze dieta utente/comunità e vincoli, (3) definire disponibilità manutenzione e requisiti sicurezza/accessibilità, (4) preparare dati validati per pianificazione stagionale (orto-agronomo, orto-calendario, etc.). Output: Blocchi questionario compilati (Markdown), GardenConfig e CommunityProfile validati, pronti per workflow planning.
---
# Orto Onboarding — Raccolta Profilo Orto 5-Blocchi
Raccogliere informazioni complesse orto e comunità tramite questionario strutturato 5-blocchi. Questo è il secondo passo dopo orto-init.
## Quando Usare Questa Skill
- **Post-init:** Utente ha inizializzato un orto (orto-init completo)
- **Raccolta profilo:** Raccogliere dettagli su spazio, ambiente, comunità, dieta, vincoli
- **Preparazione planning:** Raccogliere dati necessari per pianificazione stagionale, selezione colture, design layout
- **Revisione accessibilità:** Assicurare design rispetta accessibilità, sicurezza e vincoli manutenzione
## Panoramica Processo
**5 Blocchi, Sequenziale o Parallelo:**
1. **Blocco 1 — Localizzazione** (localizzazione, accesso, tipo proprietà)
2. **Blocco 2 — Layout Spazio** (area, suolo, esposizione sole, topografia)
3. **Blocco 3 — Irrigazione** (disponibilità acqua, infrastruttura, vincoli)
4. **Blocco 4 — Comunità e Dieta** (utente/comunità, preferenze dieta, allergie)
5. **Blocco 5 — Obiettivi e Vincoli** (tempo manutenzione, obiettivi, preferenze stagionali)
**Flow Tipico:**
- Codex presenta ogni blocco
- Utente riempie dettagli (interattivamente o batch markdown edit)
- Codex valida input
- Al completamento: merge in file GardenConfig + CommunityProfile markdown
## Specifiche Blocchi
### Blocco 1 — Localizzazione
**Purpose:** Confermare dettagli localizzazione e accessibilità.
**Domande:**
| Q | Type | Default | Validation |
|---|------|---------|-----------|
| Q1.1 | Confirm provincia | Auto-filled from init | Read-only or allow edit |
| Q1.2 | Confirm regione | Auto-filled from init | Read-only or allow edit |
| Q1.3 | Indirizzo (opz.) | None | String, optional |
| Q1.4 | Accessibilità | Choose 3 options | Enum: easy/moderate/difficult |
| Q1.5 | Proprietà/Gestione | Choose 4 options | Enum: private/community/leased/other |
| Q1.6 | Note/Descrizione | Free text | Optional |
**Outputs:**
- `localizzazione.provincia`
- `localizzazione.regione`
- `localizzazione.accessibilita`
- `localizzazione.tipo_proprieta`
---
### Blocco 2 — Layout Spazio
**Purpose:** Define space constraints, soil, sun exposure.
**Questions:**
| Q | Type | Example | Validation |
|---|------|---------|-----------|
| Q2.1 | Area disponibile (m²) | 50 | Float > 0 |
| Q2.2 | Tipologia spazio | Choose: aiuole rialzate / a terra / vasi | Enum |
| Q2.3 | Sole diretto (ore/gg) | 6 | Integer, 0-12 |
| Q2.4 | Tipo suolo | Choose: sabbioso / limoso / argilloso / misto | Enum |
| Q2.5 | Drenaggio | Choose: ottimo / buono / mediocre / pessimo | Enum |
| Q2.6 | Topografia | Choose: piano / leggera pendenza / forte pendenza | Enum |
| Q2.7 | Vicinanza alberi/muri | Descrivi | String |
**Outputs:**
- `layout.area_mq`
- `layout.tipo_spazio`
- `layout.ore_sole_giornaliere`
- `layout.tipo_suolo`
- `layout.drenaggio`
- `layout.topografia`
**Hints:**
- Sole < 4h = parziale (verdure da foglia)
- Sole 4-6h = medio (alcune ortaggi)
- Sole > 6h = pieno (pomodoro, peperone, zucchina)
- Drenaggio scarso = rischio marciume
---
### Blocco 3 — Irrigazione
**Purpose:** Assess water infrastructure and constraints.
**Questions:**
| Q | Type | Choices | Validation |
|---|------|---------|-----------|
| Q3.1 | Fonte acqua disponibile | Choose: rubinetto / pozzo / raccolta pluviale / altro | Enum, ≥1 |
| Q3.2 | Portata rubinetto (l/min) | Input numeric (es: 10) | Float, optional |
| Q3.3 | Vincoli idrici | Choose: nessuno / razionamento estivo / razionamento tutto anno / altro | Enum |
| Q3.4 | Tipo irrigazione attuale | Choose: manuale / impianto goccia / impianto aspersione / nessuno | Enum |
| Q3.5 | Disponibilità sensori umidità | Choose: no / sì, da installare / sì, già presenti | Enum |
| Q3.6 | Automazione desiderata | Choose: nessuna / timers semplici / smart controller / altro | Enum |
| Q3.7 | Note / Vincoli speciali | Free text | Optional |
**Outputs:**
- `irrigazione.fonte_acqua`
- `irrigazione.portata_lmin`
- `irrigazione.vincoli`
- `irrigazione.tipo_impianto`
- `irrigazione.sensori_disponibili`
- `irrigazione.automazione_desiderata`
**Logic:**
- If portata < 5 l/min flag: "acqua limitata, design conservativo raccomandato"
- If razionamento estivo → nota: "attivare mulching, irrigazione serale/notturna"
---
### Blocco 4 — Comunità & Dieta
**Purpose:** Understand dietary preferences and community structure.
**Questions:**
| Q | Type | Input | Validation |
|---|------|-------|-----------|
| Q4.1 | Numero persone | Numeric | Integer ≥ 1 |
| Q4.2 | Profilo dieta | Choose: onnivoro / vegetariano / vegano / mixto | Enum, may select multiple |
| Q4.3 | Preferenze cultivi | Multi-select: pomodoro, zucchina, lattuga, basilico, carota, cipolla, ... | List |
| Q4.4 | Colture da evitare | Multi-select | List |
| Q4.5 | Allergie / Intolleranze | Text, list | Free text, optional |
| Q4.6 | Figli / Anziani in orto | Choose: no / sì, figli / sì, anziani / sì, entrambi | Enum |
| Q4.7 | Safety notes | Text | Optional (allergie piante, animali domestici) |
**Outputs:**
- `community.n_persone`
- `community.dieta` (list)
- `community.preferenze_colture` (list)
- `community.colture_evitare` (list)
- `community.allergie`
- `community.minori_anziani`
- `community.note_safety`
**Logic:**
- If vegano + fertilizzante preferito → bias toward nitrogen-fixing crops (fagiolo, pisello, fava)
- If bambini → safety: avoid highly toxic plantas; flag allergie comuni (arachidi grow no, ma altri)
- If allergie riportate → consulta reference e segnala colture compatibili
---
### Blocco 5 — Obiettivi & Vincoli
**Purpose:** Define maintenance capability and goals.
**Questions:**
| Q | Type | Input | Validation |
|---|------|-------|-----------|
| Q5.1 | Tempo settimanale disponibile | Choose: < 2h / 2-5h / 5-10h / > 10h | Enum |
| Q5.2 | Frequenza accesso | Choose: giornaliero / 2-3 volte sett / settimanale / bisettimanale / altro | Enum |
| Q5.3 | Obiettivi primari | Multi-select: orto terapeutico / approvvigionamento / educazione / comunità / hobby | List |
| Q5.4 | Esperienze precedenti | Choose: nessuna / dilettante / esperto | Enum |
| Q5.5 | Stagione preferita | Choose: primavera / estate / autunno / tutto l'anno | Enum |
| Q5.6 | Tolleranza rischio / fallimenti | Choose: bassa (voglio certezza) / media / alta (sperimentazione ok) | Enum |
| Q5.7 | Cosa non vuoi fare | Multi-select: concimazione chimica / trattamenti / potatura aggressiva / altro | List |
**Outputs:**
- `vincoli.ore_settimanali`
- `vincoli.frequenza_accesso`
- `vincoli.obiettivi` (list)
- `vincoli.esperienza`
- `vincoli.stagione_preferita`
- `vincoli.tolleranza_rischio`
- `vincoli.evitare` (list)
**Logic:**
- If ore < 2/sett design basso-manutenzione: colture robuste, pacciamatura, automazione
- If frequenza bisettimanale + caldo estivo → warning: "piante soffrono, pianificare coperture/ombra"
- If Obiettivo "educazione" → bias verso varietà interessanti, osservabili
---
## Validation & Merge
### Validation Rules
**Per-block validation:**
| Block | Rule | Error | Action |
|-------|------|-------|--------|
| 1 | provincia/regione match | Mismatch | Flag, suggest correction |
| 2 | area > 0 | area = 0 | Reject, ask again |
| 2 | sole ore > suolo drainsge | conflitto | Warning: "sole alto + scarso drenaggio → marciume" |
| 3 | fonte_acqua ≠ None | No water source | Flag: critical, ask fallback |
| 4 | n_persone > 0 | Empty | Default 1 |
| 5 | ore_settimanali > 0 | Empty | Ask, flag risk |
**Cross-block validation:**
| Check | Condition | Action |
|-------|-----------|--------|
| Coherence | minori/anziani + ore < 2/sett | Warning: "poco tempo per accessibilità; pianificare percorsi sicuri" |
| Diet alignment | dieta + colture evitare incompatible | Flag: "preferenze dieta e colture evitare conflittano" |
| Goal alignment | goal "approvvigionamento" + area < 20m² | Warning: "area piccola per approvvigionamento; puntare qualità/successioni" |
### Merge to GardenConfig & CommunityProfile
**After validation, create/update:**
1. **dati/config/garden_config.md**
- Top-level config: area, zone, vincoli ambientali
- Soloinfo oggettiva (coordinate, suolo, sole, irrigazione)
2. **dati/config/community_profile.md**
- Community: n_persone, dieta, preferenze, allergie
- Obiettivi: ore disponibili, goals, esperienza
- Constraints: cosa NON fare, minori/anziani, tolleranza rischio
3. **log/audit_trail.md**
- Event: onboarding_complete
- Timestamp, blocks completed, validation status
## Output
**Console Output:**
```markdown
# ✅ Onboarding Completato
**Orto:** [ORTO_NAME]
**Area:** [AREA] m²
**Zona climatica:** [ZONE]
**Comunità:** [N_PERSONE] persone
**Dieta:** [DIET_LIST]
**Tempo disponibile:** [HOURS]/settimana
## Profilo Validato ✓
- [✓] Localizzazione confermata
- [✓] Layout spazio raccolto
- [✓] Irrigazione pianificata
- [✓] Community profile completato
- [✓] Vincoli e obiettivi definiti
## Prossimi Passi
1. **orto-agronomo** → Piano colture (30 min)
2. **orto-calendario** → Timeline stagionale (20 min)
3. **orto-irrigazione** → Design irrigazione (20 min)
4. **orto-orchestratore** → Merge piano finale (10 min)
**Tempo totale planning:** ~80 minuti
```
## Error Handling
| Error | Fallback |
|-------|----------|
| Q3.1 (no water source) | Critical error; suggest alternative (raccolta pluviale, well pump) or suggest not proceeding |
| Q2.1 (area = 0) | Re-ask, provide hints (typical ranges: 20-100 m²) |
| Missing mandatory field | Highlight, require answer before merge |
| Allergia allergia | Cross-check with colture preferite; flag conflicts |
## References
- `references/colture_it.md` — Colture e preferenze
- `references/calendario_it.md` — Zone climatiche e validazione
## Assets
- `assets/blocco_template.md` — Template vuoto per ogni blocco (riempibile manualmente se preferito)
---
## Examples
### Example 1: Roma Comunità, Orto Terapeutico
**Blocco 1:** Roma, Lazio, Facile accesso, Orto comunitario
**Blocco 2:** 40 m², Aiuole rialzate, 7h sole, Suolo misto, Buon drenaggio
**Blocco 3:** Rubinetto disponibile, Razionamento estivo, Nessun impianto, Sensori da installare
**Blocco 4:** 8 persone, Misto, Piacerebbe pomodoro/basilico/insalata, No allergie, Con anziani
**Blocco 5:** 3-5h/settimana, Settimanale, Terapeutico + Comunità, No esperienza, Estate preferita
**Output:**
- garden_config.md: 40m², Zone centro, Sole buono, Irrigazione manuale da migliorare
- community_profile.md: 8pp, Misto, Therapeutic goal, Low maintenance experience, Accessibility required
---
### Example 2: Milano Famiglia, Approvvigionamento
**Blocco 1:** Milano, Lombardia, Accesso moderato, Privato
**Blocco 2:** 60 m², A terra, 6h sole, Suolo misto, Scarso drenaggio
**Blocco 3:** Rubinetto 8 l/min, No razionamento, Nessun impianto, Sensori interessano
**Blocco 4:** 3 persone, Onnivoro, Ama pomodoro/zucchina/carota, No allergie
**Blocco 5:** 5-10h/sett, 2-3 volte/sett, Approvvigionamento + Hobby, Dilettante, Tolleranza rischio media
**Output:**
- garden_config.md: 60m², Zona nord, Drenaggio scadente → pianificare rialzature, Irrigazione progettabile
- community_profile.md: 3pp, Onnivoro, Goal approvvigionamento, Esperienza dilettante, Willing to learn
---
## Assunzioni
1. Blocchi questionario sono presentati sequenzialmente (o utente può editare tutto markdown simultaneamente)
2. Validazione è leggera (non bloccante, ma flaggando problemi)
3. Allergie/note sicurezza sono check contro knowledge base piante
4. Dimensione comunità affetta raccomandazioni colture (più persone → più diverse)
5. Tutti output in formato Markdown, human-readable e editable
## Checklist Validazione
- ✓ Tutti campi obbligatori compilati
- ✓ No contraddizioni tra blocchi
- ✓ Area, tempo, vincoli acqua coerenti
- ✓ Dieta + preferenze colture compatibili
- ✓ garden_config.md aggiornato e leggibile
- ✓ community_profile.md creato e validato
- ✓ Evento audit_trail.md loggato
---
**Skill: orto-onboarding** | Versione 1.0 | Status: Pronto per Produzione

View file

@ -1,510 +0,0 @@
---
name: orto-orchestratore
description: Orchestrare workflow multi-skill, risolvere conflitti tra piani, validare completezza dati, e merge in PlanBundle unificato. Usare quando: (1) eseguire pipeline full planning stagionale end-to-end, (2) gestire conflitti (zona irrigazione vs. consociazioni, task calendario vs. previsione meteo), (3) assicurare QA checks passino prima finalizzazione, (4) generare weekly operational briefing per utenti. Output: PlanBundle unificato (documento markdown master) con tutti piani integrati, audit log, weekly briefing pronto per pubblicazione.
---
# Orto Orchestratore — Orchestrazione Workflow Master
Coordinare tutti skill planning, risolvere conflitti, validare vincoli, merge in piano unificato.
## Quando Usare Questa Skill
- **Planning completo:** Dopo onboarding, eseguire pipeline completa per generare master plan
- **Weekly briefing:** Merge calendario + meteo-decisioni + stato corrente → task list settimanale azionabile
- **Risoluzione conflitti:** Quando skill producono raccomandazioni conflittuali
- **Revisione piano:** Validazione QA prima di publicare piano a utente
## Gestione Progetti & Registry
### Struttura File Progetti
Ogni orto gestito è organizzato in struttura standardizzata:
```
/home/<user>/.openclaw/workspace/Orti/
├── orti_registry.json # Registry centrale (JSON)
└── orto_PROVINCIA_LOCALITA_NNN/ # Cartella progetto
├── README.md
├── config/ # Config statiche
│ ├── garden_config.md
│ └── ambiente_vincoli.md
├── dati/ # Dati operazionali
│ ├── questionario/
│ ├── calendario/
│ ├── layout/
│ ├── irrigazione/
│ ├── meteo/
│ ├── colture/
│ ├── nutrizione/
│ ├── trattamenti/
│ └── raccolti/
├── log/ # Log e audit
│ ├── audit_trail.md
│ └── note_osservazioni.md
├── media/ # Foto, video
│ ├── foto/
│ └── video/
└── report/ # Report generati
```
### Registry Centrale
**File:** `/home/<user>/.openclaw/workspace/Orti/orti_registry.json`
Mantiene indice tutti orti:
```json
{
"orti": [
{
"orto_id": "orto_roma_testaccio_001",
"name": "Orto Testaccio Roma",
"provincia": "Roma",
"regione": "Lazio",
"latitude": 41.8782,
"longitude": 12.4922,
"zone": "centro",
"created_at": "2026-03-06T23:18:00Z",
"status": "active",
"path": "/home/noe/.openclaw/workspace/Orti/orto_roma_testaccio_001"
}
]
}
```
### Funzioni Orchestrator su Progetti
**Lettura:**
- Carica registry
- Locate progetto orto
- Legge tutti file dati/ per orchestration
**Scrittura:**
- Aggiorna file dati/ (piano_colture_annuale, calendario, etc.)
- Aggiorna audit_trail.md con evento orchestration
- NO modifica registry (orto-init responsabile)
**Validazione:**
- Verifica tutti prerequisito skill hanno completato (file exist)
- Check integrità dati (no corrupted markdown)
---
## Processo
### Fase 1: Checklist Pre-Volo
**Verificare tutti skill prerequisito sono completi:**
```
✓ orto-init: Progetto orto creato, config registrato
✓ orto-onboarding: GardenConfig + CommunityProfile completo e validato
✓ orto-agronomo: Piano colture annuale completato
✓ orto-calendario: Calendario operativo (task settimanali) completato
✓ orto-irrigazione: Sistema irrigazione progettato
✓ orto-layout: Aiuole assegnate, zone definite
✓ orto-meteo-decisioni: Previsione settimanale & decisioni disponibili
Se QUALSIASI skill incompleto → PAUSA e notifica utente (dati mancanti)
```
### Fase 2: Rilevazione Conflitti e Risoluzione
**Verificare pattern conflitti noti:**
| Tipo Conflitto | Rilevamento | Politica Risoluzione |
|---------------|-----------|-------------------|
| **Irrigation zone vs. Consociations** | Crop A (ZONA ALTA) + Crop B (ZONA BASSA) same bed | Split bed OR adjust watering (ZONA ALTA priority due stress) |
| **Calendar task vs. Weather** | Task "Trapianto" scheduled Tue, wind > 8kn | Auto-reschedule +2 gg (contact user) |
| **Layout accessibility vs. Space** | Path < 0.5m needed for accessibility | Reoptimize layout (may reduce usable area) |
| **Water availability vs. Irrigation plan** | Total water need > available | Reduce crop area OR shift to drought-tolerant crops |
| **Area too small vs. Diet** | Community needs > feasible harvest | Suggest successions, off-season storage |
**Resolution logic:**
```
CONFLICT: A1 (Pomodoro ALTA) + Basilico (MEDIO) same bed?
→ Check: Can adapt watering?
→ ALLOW (Basilico tolera extra water; Pomodoro critical)
→ Flag: "Basilico may over-irrigate; monitor"
CONFLICT: Trapianto task Tue, vento 8kn?
→ Check: orto-meteo-decisioni says DEFER
→ AUTO-RESCHEDULE: Trapianto → Thursday +2 gg
→ NOTIFY: User reason + new date
CONFLICT: Path 0.4m (wheelchair needs 0.7m)?
→ Check: Critical accessibility?
→ REOPTIMIZE: Shift beds, sacrifice ~5% usable area
→ OR: Escalate to user (accept smaller accessible area)
```
### Fase 3: Validazione Dati (Checklist QA)
**Esegui verifiche comprehensive:**
| Verifica | Regola | Status | Fix |
|-------|------|--------|-----|
| **Diversità colture** | ≥4 gruppi (Solanaceae, Brassica, Legume, Leafy, Aromatica) | PASS | ✓ |
| **Bilancio nutrizionale** | Copertura profilo dieta ≥80% | PASS | ✓ |
| **Adeguatezza acqua** | Pioggia pianificata + irrigazione ≥ domanda coltura | WARN | ⚠️ Deficit estate 15%; mitigazione: mulching |
| **Coerenza rotazione** | No stessa famiglia 2+ anni per aiuola | PASS | ✓ |
| **Accessibilità** | Sentieri ≥ requisito (se necessario) | PASS | ✓ |
| **Tempo manutenzione** | Ore settimanali totali ≤ disponibili | PASS | ✓ |
| **Consociazioni** | % positivo > antagonismi | PASS | ✓ 85% positivo |
| **Accuratezza previsione** | Fonte dati meteo corrente | PASS | ✓ wttr.in (3-5 gg alta conf.) |
**Sommario:** QA SCORE = 0.92 (Molto Buono). Procedi con merge.
### Fase 4: Merge Fonti Dati
**Aggregare output da tutti skill in struttura markdown unificata:**
**File:** `dati/PlanBundle_Master.md`
```markdown
# PLAN BUNDLE — [ORTO_ID] — [YEAR]
**Generated:** [TODAY]
**Confidence:** 0.92 (Molto Buono)
**Status:** Pronto per Pubblicazione
---
## 1. CONFIGURAZIONE ORTO
(Copia da GardenConfig)
- Localizzazione: [PROVINCIA], [REGIONE]
- Area: [AREA] m²
- Zona: [ZONE]
- Suolo: [SOIL]
- Sole: [HOURS] h/gg
## 2. PROFILO COMUNITÀ
(Copia da CommunityProfile)
- Persone: [N]
- Dieta: [DIET_LIST]
- Esperienza: [LEVEL]
- Tempo: [HOURS]/settimana
- Accessibilità: [NEEDS]
## 3. PIANO COLTURE
(Excerpt da Piano Colture Annuale)
- Colture totali: 12 varietà
- Area allocato: 25 m²
- Resa est.: 120 kg/stagione
- Rotazione: Piano multi-anno incluso
## 4. PIANO LAYOUT
(Excerpt da Aiuole Dimensioni)
- Aiuole: 4 (2 rialzate + 2 file)
- Zone Acqua: 3 (ALTA, MEDIA, BASSA)
- Sentieri: Main 0.7m, lato 0.5m
- Accessibilità: ✓ Conforme
## 5. SISTEMA IRRIGAZIONE
(Excerpt da Sistema Irrigazione)
- Emettitori: Goccia + microspruzzatori
- Zone: 3 (ALTA/MEDIA/BASSA)
- Baseline: Daily (ALTA) ~ 2-3x/sett (BASSA)
- Automazione: [Timer/Smart]
## 6. CALENDARIO STAGIONALE
(Link a Calendario Operativo)
- Task settimanali: 52 sett × media 3-5 task = ~200 task annuali
- Task meteo-sensibili: ~40 task (taggati per reschedule)
- Date critiche: 12 (trapianti, raccolte)
## 7. PREVENZIONE MALATTIE
(Excerpt da Diagnosi Problemi)
- High-risk crop: Pomodoro (peronospora)
- Preventive schedule: Weekly rame spray (June-Sept)
- Organic treatments: Rame, Bacillus subtilis, Neem
- Cost: €25 (season)
## 8. WEEKLY BRIEF
(Latest from Meteo Decisioni + Calendar)
- This week: [DATE RANGE]
- Tasks: 5 items
- Meteo alerts: [WIND? FROST?]
- Irrigation adjustments: [SKIP WED-THU, INCREASE SUN]
## 9. AUDIT TRAIL
(Excerpt from Log)
- Garden created: [DATE]
- Onboarding completed: [DATE]
- Plans generated: [DATE]
- Conflicts resolved: 2 (irrigation zone vs consociation, calendar vs weather)
- QA score: 0.92
---
## METRICS
- **Total effort:** 120 hours/year (avg. 2.3h/week)
- **Total water:** ~10,000 liters/season
- **Total harvest:** ~120 kg/season
- **Cost:** €65 (setup) + €25 (yearly maintenance)
- **ROI:** High (fresh vegetables + health + community)
---
**PlanBundle Status:** ✅ COMPLETE & VALIDATED
```
### Phase 5: User Notification & Publishing
**Generate summary report:**
```markdown
# ✅ PIANO COMPLETO — [ORTO_ID]
**Buongiorno [USER]!**
Il tuo orto **[ORTO_NAME]** è pronto per il 2026.
## Cosa è stato pianificato:
**Colture:** 12 varietà selezionate (dieta bilanciata)
**Layout:** 4 aiuole organizzate per zone acqua
**Calendario:** 52 settimane di task settimanali
**Irrigazione:** Sistema multi-zona automatizzabile
**Malattie:** Piano prevenzione biologica (Pomodoro peronospora)
## Prossimi Passi:
1. **Leggi il piano master:** `dati/PlanBundle_Master.md` (30 min)
2. **Prepara strumenti:** Acquista emitters/timer (1-2 giorni)
3. **Settimana 1 (gen):** Preparazione semenzaio indoor
4. **Settimana 5 (feb):** Prima semina (Pomodoro)
## Supporto Settimanale:
Ogni lunedì ricevi:
- [ ] Briefing meteo (pioggia, vento, freddo)
- [ ] Task settimanale da fare
- [ ] Irrigazione schedule adjustments
- [ ] Allerte problemi
## Domande?
Se qualcosa non è chiaro, contatta l'agronomo. Buon orto! 🌱
---
**Piano generato:** [TODAY]
**Confidence:** Very Good (92%)
**Ultima revisione:** [AUTO-DATE_NEXT_WEEK]
```
### Phase 6: Weekly Briefing Integration
**Every Monday, generate integrated briefing:**
```markdown
# BRIEFING SETTIMANALE — Week [WK] ([DATE]) — [ORTO_ID]
**Data:** Lunedì [DATE] 8:00 AM
---
## 📊 Meteo (da orto-meteo-decisioni)
| Giorno | Tmax | Tmin | Pioggia | Vento | Alert |
|--------|------|------|---------|-------|-------|
| Lun | 22 | 14 | 0 mm | 3 kn | ✓ OK |
| Gio | 19 | 10 | 12 mm | 2 kn | ✓ Pioggia |
| Dom | 28 | 18 | 0 mm | 6 kn | ⚠️ Caldo |
---
## 📋 TASK SETTIMANALE (from orto-calendario)
### Lunedì 6 Gen
- [ ] **Preparazione Semenzaio** (1.5h)
- Terriccio, vasetti, riscaldamento check
- Ubicazione: Semenzaio indoor
- Meteo: ✓ OK (indoor)
- [ ] **Controllo Strumenti** (0.5h)
- Innaffiatore, guanti, forbici
- Test timer irrigazione
**Totale giornata:** 2h
### Mercoledì 8 Gen
- [ ] **SKIP Irrigazione** (pioggia prevista, vento)
- Meteo decision: Effective rainfall adeguata
- [ ] Controllo drenaggio post-pioggia
### Giovedì 9 Gen
- [ ] **Irrigazione ripresa** (30 min)
- Baseline schedule restored
---
## ⚠️ ALLERTE
🟡 **VENTO MER-GIO (4-6 kn)**
- Defer foliar sprays
- Monitor young plants (wind stress)
🔥 **CALDO DOM (28°C+)**
- Aumentate irrigazione +30%
- Check mulching
---
## 🎯 FOCUS COLTURA
**Pomodoro (Gennaio = Semina Indoor)**
- Settimana prossima: Semina Pomodoro 1-4 Feb
- Requisiti: T 20-25°C, luce LED 12h/gg
- Germinazione attesa: 5-10 gg
- Cura: Mantenere umido, no ristagno
---
## 📈 PROGRESS
- Year-to-date tasks: 2/52 settimane
- Onboarding: 100% ✓
- Planning: 100% ✓
- Implementation: 5% (starting)
---
## 💧 IRRIGAZIONE SETTIMANALE
| Zona | Baseline | Meteo Adjust | Note |
|------|----------|--------------|------|
| ALTA | Daily 60m | Skip Wed-Thu | Pioggia sufficient |
| MEDIA | 3-4x/sett | Normal | OK |
| BASSA | 2-3x/sett | Normal | OK |
**Totale acqua:** ~500 liters (January low due dormancy)
---
**Briefing generato:** Lunedì 6 Gen 8:00 AM
**Prossimo briefing:** Lunedì 13 Gen
**Contatti:** [SUPPORT_EMAIL]
```
---
## Conflict Resolution Examples
### Example 1: Irrigation vs. Consociations
**Conflict:** A1 layout puts Pomodoro (ZONA ALTA, daily) + Basilico (MEDIO, 3x/sett)
**Resolution:**
- Option A: Split beds (separate ZONA ALTA + MEDIA) → But reduces usable area
- Option B: Accept mixed zone → Keep in same bed, adapt watering (ALTA priority)
- **RECOMMENDATION:** Option B (Basilico tolerates extra water; Pomodoro critical)
- **MITIGATION:** Flag "Watch for basilico over-watering; adjust on-the-fly if wilt + root smell"
### Example 2: Calendar vs. Weather
**Conflict:** "Trapianto Pomodoro Tue" scheduled; orto-meteo-decisioni says "Vento 8kn Tue, DEFER"
**Resolution:**
- Auto-reschedule: Trapianto → Thursday +2 gg (vento cala, temp stable)
- Notify user: "Trapianto rimandato Tue→Thu (wind risk). New: Giovedì 10 Apr 9am"
- Update calendar + audit trail
### Example 3: Water Availability vs. Irrigation Plan
**Conflict:** Total water need (10,000 L/season) > Available (8 m³ = 8,000 L if constrained)
**Resolution:**
- Reduce irrigation frequency (use deficit irrigation) → Risk: crop stress
- Add rain capture tank (+100 L) → Marginal
- Shift a colture tolleranti siccità (Carota, Cipolla, Legume) → Riduci area Pomodoro del 30%
- **RACCOMANDAZIONE:** Accetta deficit idrico 15%; usa heavy mulching + compost suolo (migliora ritenzione)
---
## Audit Trail & Project Updates
**Ad ogni orchestration (pianificazione completa o weekly update), registrare:**
**File:** `log/audit_trail.md` (append entry)
```markdown
## Evento: Orchestration — PlanBundle Merge
| Campo | Valore |
|-------|-------|
| **Timestamp** | [TODAY_ISO] |
| **Evento** | orchestratore_merge_plan |
| **Tipo** | Full Planning / Weekly Briefing |
| **Status** | success / warning / error |
| **Orto ID** | [ORTO_ID] |
| **Coordinatore** | Codex (skill: orto-orchestratore) |
| **QA Score** | 0.92 (Excellent) |
| **Conflitti Risolti** | 2 (Irrigazione zone, Calendar task) |
| **Raccomandazioni** | Mulching per deficit acqua 15% |
| **Output Files** | dati/PlanBundle_Master.md, dati/calendario/calendario_operativo_settimanale.md |
| **Dettagli** | Orchestration completa: init→onboarding→agronomo→layout→irrigazione→meteo→merge. PlanBundle generato e validato QA. User notificato. |
```
Questo crea cronologia completa di ogni decisione orchestrator per tracciabilità e debugging.
---
## Gestione Errori
| Errore | Fallback |
|-------|----------|
| Output skill mancante | Usa piano anno precedente (se disponibile) o fallback rule-based |
| Raccomandazioni conflittuali | Elenca top 3 opzioni, lascia scegliere utente |
| Fallimento QA (critico) | NON PUBLICARE; flagga e richiedi revisione esperto |
## Riferimenti
**Questo skill legge e applica politiche da:**
- `references/conflitti_risoluzione.md` — Matrice conflitti, politiche risoluzione per tutti i pattern comuni
- `references/qa_checklist.md` — Checklist validazione PlanBundle, criteri QA score
- `references/meteo_soglie.md` — Soglie meteo (vento, pioggia, gelo, caldo) per reschedule task
- `references/irrigazione_parametri.md` — Parametri ET, Kc, calcolo fabbisogni per acqua feasibility
- `references/consociazioni_layout.md` — Matrice consociazioni per verificare coerenza layout
- `references/malattie_trattamenti.md` — Dati trattamenti e DPI per validazione sicurezza
- `references/colture_it.md` — Database colture (varietà, parametri, famiglie) per rotazione
- `references/calendario_it.md` — Date gelate regionali, finestre stagionali per frost checks
## Assunzioni
1. Tutti skill predecessore hanno completato
2. Integrità dati: no file markdown corrotti
3. Politiche risoluzione conflitti documentate e tuned (vedi conflitti_risoluzione.md)
4. Canale notifica utente disponibile (email/chat)
5. Tutti reference file sono disponibili e up-to-date
## Checklist Validazione
- ✓ Tutti output skill caricati e parsati
- ✓ Conflitti identificati e risolti
- ✓ QA score ≥ 0.70 (accettabile)
- ✓ PlanBundle unificato coerente e completo
- ✓ Weekly briefing generato e azionabile
- ✓ Audit trail documentato
- ✓ Notifica utente pronta
---
**Skill: orto-orchestratore** | Versione 1.0 | Status: Pronto per Produzione