diff --git a/.gitignore b/.gitignore index 34e2cdf..a89605a 100644 --- a/.gitignore +++ b/.gitignore @@ -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 diff --git a/claude_code_skills_installer_guidelines_md.md b/claude_code_skills_installer_guidelines_md.md new file mode 100644 index 0000000..35aeca1 --- /dev/null +++ b/claude_code_skills_installer_guidelines_md.md @@ -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é. + diff --git a/future-list_skill.md b/future-list_skill.md new file mode 100644 index 0000000..59dd130 --- /dev/null +++ b/future-list_skill.md @@ -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) \ No newline at end of file diff --git a/install.sh b/install.sh index ebc5470..c2d60cd 100755 --- a/install.sh +++ b/install.sh @@ -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/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