# Architecture de install.sh ## Vue d'ensemble `install.sh` est un script bash autonome qui : 1. Vérifie les dépendances (git, fzf) 2. Détecte les agents IA installés 3. Clone le dépôt en /tmp 4. Présente un menu fzf interactif avec état par skill 5. Installe les skills sélectionnés sans sudo 6. Affiche un bilan + commandes de test ## Variables d'environnement | Variable | Défaut | Effet | |----------|--------|-------| | `SKILLS_DEBUG=1` | non | Affiche chaque étape en détail | | `SKILLS_DRY_RUN=1` | non | Simule sans écrire de fichiers | | `SKILLS_REPO=/path` | (Gitea) | Utilise un dépôt local | | `SKILLS_TAG=bash` | (tous) | Filtre les skills par tag | | `SKILLS_AGENT=claude` | (auto) | Force un seul agent | ## Palette Gruvbox Dark (256 couleurs) | Variable | Code | Usage | |----------|------|-------| | `GRV_GREEN` | `\033[38;5;142m` | Succès, installé ✓ | | `GRV_YELLOW` | `\033[38;5;214m` | MAJ dispo ↑ | | `GRV_AQUA` | `\033[38;5;108m` | Nouveau skill + | | `GRV_GRAY` | `\033[38;5;245m` | Non applicable · | | `GRV_RED` | `\033[38;5;167m` | Erreur fatale | | `GRV_ORANGE` | `\033[38;5;208m` | Avertissement | | `GRV_BLUE` | `\033[38;5;109m` | Info, action globale | | `GRV_PURPLE` | `\033[38;5;175m` | Encadrés, titres | ## Flux d'exécution ``` check_deps() └─ fzf absent → install_fzf() ou exit └─ git absent → exit 1 detect_agents() → tableau DETECTED_AGENTS[] clone_repo() → /tmp/mes_skills_/ scan_skills() └─ pour chaque skills///.md du dépôt └─ si agent dans DETECTED_AGENTS └─ get_local_version() vs get_repo_version() └─ compare_versions() → état (✓ ↑ + ·) run_menu() [fzf + fichier état /tmp/skills_state_] └─ TAB → cycle_action() + reload └─ ENTER → liste des sélections install_selected() └─ mkdir -p destination └─ cp .md → SKILL.md print_summary() └─ bilan coloré └─ commandes de test copiables └─ liens docs agents cleanup() [trap EXIT] ``` ## Destinations d'installation (sans sudo) | Agent | Global | Local | |-------|--------|-------| | claude-code | `~/.claude/skills///SKILL.md` | `.claude/skills///SKILL.md` | | gemini-cli | `~/.gemini/skills///SKILL.md` | `.gemini/skills///SKILL.md` | | codex | `~/.codex/skills///SKILL.md` | `.codex/skills///SKILL.md` | | hermes | `~/.hermes/skills///SKILL.md` | `.hermes/skills///SKILL.md` |