77 lines
2.5 KiB
Markdown
77 lines
2.5 KiB
Markdown
# 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_<PID>/
|
|
|
|
scan_skills()
|
|
└─ pour chaque skills/<cat>/<nom>/<agent>.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_<PID>]
|
|
└─ TAB → cycle_action() + reload
|
|
└─ ENTER → liste des sélections
|
|
|
|
install_selected()
|
|
└─ mkdir -p destination
|
|
└─ cp <agent>.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/<cat>/<nom>/SKILL.md` | `.claude/skills/<cat>/<nom>/SKILL.md` |
|
|
| gemini-cli | `~/.gemini/skills/<cat>/<nom>/SKILL.md` | `.gemini/skills/<cat>/<nom>/SKILL.md` |
|
|
| codex | `~/.codex/skills/<cat>/<nom>/SKILL.md` | `.codex/skills/<cat>/<nom>/SKILL.md` |
|
|
| hermes | `~/.hermes/skills/<cat>/<nom>/SKILL.md` | `.hermes/skills/<cat>/<nom>/SKILL.md` |
|