first
This commit is contained in:
147
AGENTS.md
Normal file
147
AGENTS.md
Normal file
@@ -0,0 +1,147 @@
|
||||
# AGENTS.md
|
||||
|
||||
## But du depot
|
||||
|
||||
Ce projet construit un framework de post-installation pour Debian 13, lance via :
|
||||
|
||||
```bash
|
||||
curl -fsSL https://gitea.maison43.duckdns.org/gilles/postinstall-debian/raw/branch/main/install.sh | bash
|
||||
```
|
||||
|
||||
L'objectif est de proposer une base modulaire, testable et evolutive pour installer et configurer un systeme Debian apres installation.
|
||||
|
||||
## Regles de travail
|
||||
- ecrire les commentaires et les explication en francais
|
||||
- Toujours privilegier une architecture modulaire.
|
||||
- Chaque outil doit vivre dans son propre module.
|
||||
- Ne pas melanger logique framework, logique UI et logique d'installation d'un outil.
|
||||
- Eviter les actions destructives ou silencieuses sur le systeme.
|
||||
- Garder le code compatible avec Debian 13 et un shell Bash standard.
|
||||
- Favoriser du code lisible, structure et compose de fonctions courtes.
|
||||
|
||||
## Structure cible
|
||||
|
||||
Le depot doit converger vers cette structure :
|
||||
|
||||
```text
|
||||
install.sh
|
||||
README.md
|
||||
consigne.md
|
||||
tools.md
|
||||
CHANGELOG.md
|
||||
AGENTS.md
|
||||
|
||||
assets/
|
||||
config/
|
||||
core/
|
||||
docs/
|
||||
hardware/
|
||||
lib/
|
||||
menus/
|
||||
modules/
|
||||
profiles/
|
||||
tests/
|
||||
```
|
||||
|
||||
## Responsabilites par zone
|
||||
|
||||
- `install.sh` : point d'entree compatible `curl | bash`.
|
||||
- `core/` : bootstrap, runtime, registre des modules, dispatch.
|
||||
- `lib/` : fonctions reutilisables UI, logs, validations, paquets, systeme, reseau.
|
||||
- `menus/` : menus interactifs.
|
||||
- `modules/` : outils installables, un dossier par outil.
|
||||
- `profiles/` : groupes de modules predefinis.
|
||||
- `hardware/` : selections liees au materiel.
|
||||
- `assets/` : themes, polices, wallpapers, icones et ressources visuelles.
|
||||
- `tests/` : tests framework et tests de modules.
|
||||
- `docs/` : documentation de conception et d'usage.
|
||||
|
||||
## Contrat d'un module
|
||||
|
||||
Chaque module doit idealement contenir :
|
||||
|
||||
```text
|
||||
modules/<categorie>/<outil>/
|
||||
module.sh
|
||||
config.sh
|
||||
metadata.conf
|
||||
tests.sh
|
||||
```
|
||||
|
||||
Fonctions attendues quand elles sont pertinentes :
|
||||
|
||||
- `module_<outil>_metadata`
|
||||
- `module_<outil>_check`
|
||||
- `module_<outil>_install`
|
||||
- `module_<outil>_configure`
|
||||
- `module_<outil>_test`
|
||||
|
||||
## Standards Bash
|
||||
|
||||
- Utiliser `set -u` et une gestion d'erreurs explicite lorsque l'architecture sera en place.
|
||||
- Citer correctement les variables.
|
||||
- Preferer `command -v` pour verifier les dependances.
|
||||
- Centraliser les logs, messages UI et validations dans `lib/`.
|
||||
- Garder les effets de bord dans des fonctions nommees clairement.
|
||||
- Prevoir ShellCheck des que les scripts existent.
|
||||
|
||||
## Experience utilisateur
|
||||
|
||||
Le framework doit fournir :
|
||||
|
||||
- une interface console claire
|
||||
- des messages colores et coherents
|
||||
- des etapes visibles
|
||||
- des confirmations quand une action est sensible
|
||||
- un resume final des operations
|
||||
|
||||
Fonctions UI a prevoir :
|
||||
|
||||
- `ui_header`
|
||||
- `ui_section`
|
||||
- `ui_info`
|
||||
- `ui_success`
|
||||
- `ui_warn`
|
||||
- `ui_error`
|
||||
- `ui_menu`
|
||||
- `ui_confirm`
|
||||
- `ui_pause`
|
||||
|
||||
## Securite
|
||||
|
||||
- Verifier la distribution et les privileges avant toute installation.
|
||||
- Verifier le reseau si une action distante est necessaire.
|
||||
- Ne pas modifier silencieusement des fichiers critiques.
|
||||
- Preferer des changements explicites, journalises et reversibles quand possible.
|
||||
|
||||
## Methode pour ajouter un outil
|
||||
|
||||
Avant implementation, passer par :
|
||||
|
||||
1. Brainstorming de l'outil.
|
||||
2. Decision d'architecture.
|
||||
3. Implementation du module.
|
||||
4. Integration menu, profil ou materiel si necessaire.
|
||||
5. Tests.
|
||||
6. Documentation.
|
||||
|
||||
Les informations minimales d'un outil dans `tools.md` sont :
|
||||
|
||||
- nom
|
||||
- description
|
||||
- categorie
|
||||
- questions
|
||||
- methode d'installation
|
||||
- tests
|
||||
- statut
|
||||
|
||||
## Priorite immediate
|
||||
|
||||
Avant d'ajouter des outils, construire l'ossature du framework :
|
||||
|
||||
- point d'entree `install.sh`
|
||||
- dossiers standards
|
||||
- bibliotheques de base
|
||||
- mecanisme de chargement
|
||||
- premiers menus
|
||||
- documentation de demarrage
|
||||
Reference in New Issue
Block a user