Files
pilot/PROMPT_CLAUDE_CODE_GNOME.md
2026-01-10 20:24:11 +01:00

44 lines
2.3 KiB
Markdown

Tu es Claude Code. Tu dois creer une extension GNOME Shell (GNOME 45+) simple, pour un debutant, qui permet de piloter l'app Pilot V2 depuis GNOME Shell.
Contexte general (application) :
- Pilot V2 est un agent qui publie des capteurs (telemetry) et recoit des commandes via MQTT.
- Sa configuration principale est dans `pilot-v2/config.yaml`.
- Les sections importantes du YAML :
- `features.telemetry.enabled` + `features.telemetry.metrics.<metric>.enabled`
- `features.commands.enabled` + `features.commands.allowlist`
- `mqtt.*` pour la connexion (host, port, user, etc.)
- L'app tourne comme service systemd (fichier `mqtt_pilot.service`) et peut etre demarree/arretee.
- Objectif utilisateur : pouvoir activer/desactiver rapidement les services, chaque capteur, et chaque commande, sans editer le YAML a la main.
Objectif V1 (indispensable) :
- Tout est accessible depuis GNOME Shell.
- L'extension affiche une liste d'entites (services + capteurs + commandes).
- Chaque ligne = nom + switch ON/OFF + bouton "..." pour editer.
- Le switch active/desactive l'entite dans `pilot-v2/config.yaml`.
- Le bouton "..." ouvre un dialogue pour editer les champs essentiels :
- Telemetry: `enabled`, `interval_s`, `name`, `unique_id`
- Commands: `enabled` + gestion de l'allowlist
- Service: enable/disable global (choisir un champ clair a creer si absent)
- IMPORTANT: Toute modification doit recharger la config pour que l'app la prenne en compte
(ex: redemarrage du service systemd ou mecanisme de reload si dispo).
Details techniques :
- GNOME 45+, GJS + libadwaita (GTK4).
- Extension "panel menu" (icone en haut a droite) avec un menu qui ouvre une fenetre principale.
- La fenetre principale affiche des sections : Services, Telemetry (sensors), Commands.
- V1 = lecture/ecriture directe du YAML, pas d'API reseau, pas de base de donnees.
- Apres modification, recharger les donnees dans l'UI.
Contraintes :
- Code clair, commente pour debutant.
- Ne pas inventer d'API reseau.
- Ecrire les fichiers de l'extension avec une structure standard GNOME (metadata.json, extension.js, prefs.js, etc.).
- Donner aussi les commandes pour installer l'extension en local.
Sortie attendue :
- Arborescence des fichiers.
- Code complet des fichiers.
- Instructions d'installation et de test.
Commence par expliquer rapidement ton plan d'implementation, puis donne le code.