4.5 KiB
AGENTS.md
Consignes pour les agents IA qui modifient ce dépôt. Ce fichier est une boussole opérationnelle, pas une documentation complète.
Références À Lire
- Vue d'ensemble:
docs/00_INDEX.md - Règles métier:
docs/30_REGLES_METIER.md - Modèle de données:
docs/50_MODELE_DONNEES.md - Architecture:
docs/60_ARCHITECTURE.md - Sécurité:
docs/80_SECURITE.md - Exploitation:
docs/90_EXPLOITATION.md - Déploiement Ansible:
docs/91_DEPLOIEMENT_ANSIBLE.md - Multi-groupe:
docs/93_MULTI_GROUPE.md - Garde-fous sociaux:
docs/94_GARDE_FOUS_SOCIAUX.md
Lire les documents pertinents avant un changement large. Ne pas recopier leur contenu ici.
Intention Du Projet
Application PWA mobile-first pour soutenir la vie d'un ou plusieurs groupes AA, sans créer d'interdépendance entre les groupes. L'application doit rester un outil de service, pas une autorité ni un outil de surveillance.
Principes à préserver:
- simplicité pour des membres sur petits téléphones;
- confidentialité et minimisation des données personnelles;
- isolation stricte des groupes;
- journal lisible pour corriger les erreurs et préserver l'historique;
- reprise papier possible;
- ton sobre, pratique, non promotionnel.
Discipline De Changement
- Limiter les changements au périmètre demandé.
- Ne faire un passage transversal que pour une refonte, un renommage, une sécurité ou une infra explicitement concernés.
- Séparer les commits quand les changements sont de nature différente: fonctionnel, infra, documentation, nettoyage.
- Ne pas modifier les docs sauf si un comportement, une commande ou une règle documentée change.
- Ne pas renommer les variables internes stables sans gain clair ou demande explicite.
- Ne pas nettoyer des fichiers sans lien avec la demande.
- Ne jamais modifier les données métier réelles pour un renommage technique.
Invariants Fonctionnels
Groupe Démonstrationest protégé et existe sur une installation vanille.- Le sysadmin d'instance est séparé des sysadmins de groupe.
- Le PIN initial du sysadmin est
0000; il doit pouvoir être changé. - Une saisie de PIN ne doit jamais être lisible à l'écran.
- Les membres se connectent dans un groupe précis.
- Les routes backend doivent vérifier l'appartenance au groupe courant pour tout ID reçu du client.
- Le frontend peut masquer des modules, mais le backend doit toujours vérifier les permissions.
- Une route multi-groupe doit être revue avec
docs/93_MULTI_GROUPE.md.
Déploiement Et Noms Techniques
Nom technique actuel: app.
- URL publique:
https://app.87-16.org - service systemd:
app - chemin applicatif:
/opt/app - frontend servi depuis:
/var/www/app - sauvegardes:
/var/backups/app - cron sauvegarde:
/etc/cron.daily/app-backup - hôte Ansible courant:
app-prod
Le dépôt conserve encore des variables Ansible internes nommées groupe_meditation_*. Ne pas les renommer sans demande explicite.
Sauvegardes Et Multi-Groupe
L'application produit:
- un dump PostgreSQL global;
- une archive JSON restaurable par groupe;
- un dump PostgreSQL par schéma tenant.
Chaque groupe a un tenant_schema PostgreSQL. La voie applicative principale utilise encore les tables publiques filtrées par groupe_id; les schémas tenant sont préparés pour une bascule future.
Validations
Choisir les validations selon le changement:
python3 -m py_compile <fichiers_python>
.venv/bin/python -m pytest backend/tests/test_business_rules.py
npm run build
ansible-playbook ansible/site.yml --syntax-check
ansible-playbook ansible/verify.yml --syntax-check
ansible-playbook ansible/backup-now.yml --syntax-check
Après déploiement demandé:
ansible-playbook ansible/site.yml
ansible-playbook ansible/verify.yml
ansible-playbook ansible/backup-now.yml
Git Et Déploiement
- Committer seulement quand demandé ou quand la tâche inclut explicitement push/déploiement.
- Pousser seulement quand demandé.
- Déployer seulement quand demandé.
- Avant un final, vérifier
git status --short. - Ne jamais annuler des changements non faits par l'agent.
Points De Vigilance
- Les sauvegardes contiennent des données personnelles.
- Le journal doit être présenté comme outil de protection de l'historique, pas de surveillance.
- Les changements de trésorerie, décisions, mandats et rapports ont souvent des effets de causalité documentés.
- Les composants doivent rester ergonomiques au pouce sur petit téléphone.
- Les tuiles de sélection ou consultation sont généralement fermées par défaut, sauf besoin explicite contraire.