fix: install.sh — read et fzf lisent depuis /dev/tty (compatibilité curl | bash)
Sans </dev/tty, stdin est le pipe curl et les prompts interactifs (question fzf, question installation fzf) ne répondent pas. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
+1
-2
@@ -2,8 +2,7 @@
|
||||
.claude/
|
||||
|
||||
# Fichiers de travail personnels (notes, brouillons)
|
||||
claude_code_skills_installer_guidelines_md.md
|
||||
future-list_skill.md
|
||||
|
||||
|
||||
# Fichiers temporaires système
|
||||
*.tmp
|
||||
|
||||
@@ -0,0 +1,153 @@
|
||||
# Consignes Claude Code — Système d’installation de Skills
|
||||
|
||||
tu est un expert senior en devellopement de script bash pour linux (debian ou ubuntu)
|
||||
tu es egalement un expret en creation de skill pour des agents ia : claude code, codex, gemini cli, hermes agent et tu connais bien la structure du skill et des dossiers attendu
|
||||
|
||||
tu t'exprimera avec moi en francais comprehensible par un novice.
|
||||
tes commentaires de code seront egalement en francais
|
||||
|
||||
tu analysera quels outils sont les plus utile pour develloper mon projet
|
||||
tu deploiera un plan de devellopement avant toute ecriture de code
|
||||
|
||||
## Objectif général
|
||||
|
||||
Développer un système simple, autonome et robuste permettant :
|
||||
- un repo comme base de mes skills_perso
|
||||
- d’installer des skills IA via une commande shell ;
|
||||
- d’activer/désactiver des skills ;
|
||||
- de gérer les dépendances minimales ;
|
||||
- de fonctionner principalement avec :
|
||||
- `bash`
|
||||
- `curl`
|
||||
- `wget`
|
||||
- `git`
|
||||
|
||||
|
||||
Le système doit être pensé pour Debian/Linux principalement.
|
||||
|
||||
---
|
||||
|
||||
# Philosophie du projet
|
||||
|
||||
Le système doit être :
|
||||
|
||||
- minimaliste ;
|
||||
- autonome ;
|
||||
- facilement portable ;
|
||||
- lisible ;
|
||||
- maintenable ;
|
||||
- compatible self-hosted ;
|
||||
- orienté CLI ;
|
||||
- compatible avec des agents IA locaux.
|
||||
|
||||
Éviter :
|
||||
|
||||
- les frameworks lourds ;
|
||||
- les installateurs complexes ;
|
||||
- les dépendances Python inutiles ;
|
||||
- Node.js ;
|
||||
- Docker ;
|
||||
- les services système complexes.
|
||||
|
||||
Le système doit pouvoir fonctionner sur :
|
||||
|
||||
- Debian ;
|
||||
- Ubuntu ;
|
||||
- Proxmox ;
|
||||
- VM Linux légères ;
|
||||
- mini-PC ;
|
||||
- environnements homelab.
|
||||
|
||||
---
|
||||
|
||||
# Fonctionnalités attendues
|
||||
|
||||
|
||||
un repo perso de stockage de mes skills perso.
|
||||
tu definira la structure des dossier affin d'avoir un classement des skill judicieux, evolutif
|
||||
|
||||
## Installation de skills sur le poste client
|
||||
|
||||
Exemple attendu :
|
||||
|
||||
```bash
|
||||
curl -fsSL https://gitea.maison43.duckdns.org/gilles/mes_skills/install.sh | bash
|
||||
```
|
||||
|
||||
tu fera un brainstorming sur la meilleur outils pour generer ce script d'installation
|
||||
|
||||
Voici mes 1ere investigation ; rien n'est obligatoire.
|
||||
Le système doit :
|
||||
- un script bash
|
||||
- installer uniquement les dépendances nécessaires ;
|
||||
- detecter quels agent ia est installe sur le systeme
|
||||
- detecter quels skills sont deja installer en global
|
||||
- cloner ou copier le dépôt de skill dans un repertoire temporaire;
|
||||
- demander pour quels agent je dois installer
|
||||
- demander si installer en global ou dans dossier projet ( dossier actuel ou je lance la commande)
|
||||
- proposer un menu avec la liste des skills installable/deja installe, a mettre a jours
|
||||
- selectionner les skils via clavier felche haut, bas; space, esc, enter
|
||||
- gerer un versioning des skill
|
||||
- detecter de nouveaux skill intalle en local et non present dans mon repo ( possibilite d'uploader vers mon repo git un new skill)
|
||||
|
||||
|
||||
tu pourra verifier sur les site suivant la structure d'un skill:
|
||||
- https://code.claude.com/docs/fr/skills
|
||||
- https://developers.openai.com/codex/skills
|
||||
- https://geminicli.com/docs/cli/skills/
|
||||
- https://hermes-agent.nousresearch.com/docs/guides/work-with-skills
|
||||
|
||||
## Suggestion
|
||||
|
||||
Exemple :
|
||||
|
||||
```bash
|
||||
https://github.com/NousResearch/hermes-agent/blob/main/scripts/install.sh
|
||||
```
|
||||
|
||||
analyse se script, sa mecanique me semble correspondre a ce que je veux
|
||||
|
||||
---
|
||||
|
||||
|
||||
|
||||
## Détection automatique
|
||||
|
||||
Le script doit détecter automatiquement :
|
||||
|
||||
- présence de `git`
|
||||
- présence de `curl`
|
||||
- présence de `wget`
|
||||
- présence de `python3`
|
||||
- présence de `uv`
|
||||
- présence de `docker`
|
||||
- présence de `podman`
|
||||
|
||||
Puis adapter l’installation.
|
||||
|
||||
---
|
||||
|
||||
## Gestion Python
|
||||
|
||||
Si un skill nécessite Python :
|
||||
|
||||
Préférer :
|
||||
|
||||
```bash
|
||||
python3 -m venv
|
||||
```
|
||||
|
||||
ou idéalement :
|
||||
|
||||
```bash
|
||||
uv venv
|
||||
```
|
||||
|
||||
Éviter :
|
||||
|
||||
```bash
|
||||
pip install globalement
|
||||
```
|
||||
|
||||
Chaque skill doit idéalement avoir son environnement isolé.
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
# en vrac, liste de skill a creer
|
||||
|
||||
- home assistant : debug log, automatisation, dashboard optimization, service, entitie
|
||||
- esphome ; creation, debuggazge amelioration
|
||||
- esp32 : iot vias esp32, analyse puce et gpio, platformio, webserver, wifi,ap, ds18b20, dht22, relay, switch, rules, ota, ethernet, carte kincony
|
||||
- traducteur de page markdown ( ne pas traduire les lien ), screen, touchscreen
|
||||
- docker compose expert
|
||||
- analyse reseau
|
||||
- proxmox
|
||||
- opensense expert
|
||||
- serveur dns api
|
||||
- cura printer
|
||||
- bash expert
|
||||
- rpi expert for iot
|
||||
- nodered writer
|
||||
- linux hardware optimisation
|
||||
- selhosted homelab
|
||||
- tuto ia ; ollama, hermes claude code, gemini cli, codex
|
||||
- web page designer for laptop/smartphone
|
||||
- matrix selfhosted expert (synapse)
|
||||
- python coding expert, rust
|
||||
- zigbee expert
|
||||
- weewx expert ( merge old database)
|
||||
- mqtt optimizer
|
||||
- coral et expert image analyser
|
||||
- create plan de dev pour un app selhosted
|
||||
- debian et ubuntu optimizer
|
||||
- asus tuf gaming (recherche internet evolution compatibilite avec linux)
|
||||
- ia selfhosted ollazma, lmstudio cpu, nvidia, intel arc
|
||||
- expert jardinnage
|
||||
- expert diy et iot (recherche web)
|
||||
+2
-2
@@ -76,7 +76,7 @@ _install_fzf_binary() {
|
||||
install_fzf() {
|
||||
warn "fzf non trouvé."
|
||||
echo -e " ${GRV_FG}Installer fzf ? [o/N]${RESET} \c"
|
||||
read -r answer
|
||||
read -r answer </dev/tty
|
||||
[[ "$answer" != "o" && "$answer" != "O" ]] && err "fzf requis. Abandon." && exit 1
|
||||
if command -v apt-get &>/dev/null; then
|
||||
debug "Installation via apt"
|
||||
@@ -392,7 +392,7 @@ LIST_EOF
|
||||
--prompt="Skills > " \
|
||||
--header="$legend" \
|
||||
--bind="tab:execute-silent($cycle_script '$STATE_FILE' '$fns_file' {n})+reload($list_script)" \
|
||||
< <(bash "$list_script") > /dev/null || true
|
||||
< <(bash "$list_script") > /dev/null </dev/tty || true
|
||||
|
||||
rm -f "$cycle_script" "$list_script" "$fns_file"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user