Files
echo-du-huit/CLAUDE.md
Pierre Martin 328df2d181 Initialise le projet : documentation et squelette
Extension Firefox pour publier une sélection d'événements du calendrier
Nextcloud de L'Atelier du Huit vers l'agenda de la mairie de Cugnaux.

- README : vue d'ensemble et installation
- CLAUDE.md : guide agent et contraintes structurantes
- docs/RECHERCHE.md : faits techniques vérifiés (CalDAV, formulaire, agenda, ICS)
- docs/DECISIONS.md : choix d'architecture et leur pourquoi
- package.json : Bun comme outil de dev minimaliste (pas de build au runtime)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-29 23:40:13 +02:00

2.3 KiB

Guide agent — Écho du Huit

Extension Firefox (Manifest V3) qui pousse une sélection d'événements du calendrier Nextcloud de L'Atelier du Huit vers le formulaire de l'agenda mairie de Cugnaux. Voir README.md pour la vue d'ensemble.

Avant de coder

  1. Lis docs/RECHERCHE.md : faits vérifiés (URLs, ids de champs, valeurs du thème, structure de l'agenda, cas limites de l'ICS). Ne redécouvre pas ce qui y est déjà confirmé.
  2. Lis docs/DECISIONS.md : choix actés et leur pourquoi. Ne les relitige pas sans raison nouvelle.
  3. Le backlog vit dans Piaire (tenant perso, projet echo-du-huit). Le code est la seule source de vérité du comportement réel.

Contraintes structurantes (ne pas violer sans accord)

  • JS vanilla, pas de build, pas de runtime. L'extension tourne dans le navigateur. Pas de Bun/Node au runtime, pas de bundler. Dépendance externe uniquement si vendorée en .js (ex. ical.js de Mozilla pour le parsing). Bun est autorisé uniquement comme outil de dev (bun test, vendoring) — jamais embarqué dans l'extension livrée.
  • Aucun secret stocké. L'accès Nextcloud passe par la session du navigateur (credentials: 'include' + host_permissions). Ne jamais écrire de mot de passe dans le repo ou la config.
  • Pas d'auto-submit du formulaire mairie. On pré-remplit le DOM ; l'humain relit, complète et envoie. Le formulaire est modéré et les descriptions méritent souvent un enrichissement.
  • Image = manuelle. Un content script ne peut pas remplir un <input type=file>. L'extension aide à glisser l'affiche, ne l'injecte pas.
  • Statut partagé dans Nextcloud. ignoré / soumis = tag CATEGORIES écrit en CalDAV (visible par tous les bénévoles, durable). publié = dérivé de l'agenda mairie. Pas d'état privé local pour ces statuts.

Conventions

  • Code simple et expressif ; commentaires seulement pour le pourquoi.
  • Nouveaux paramètres/fonctions : obligatoires par défaut (optionnels seulement si la rétrocompat l'exige).
  • Messages et UI en français (public = bénévoles associatifs).
  • TDD quand c'est pertinent.

Ne pas committer

config.local.json (organisateur/email), artefacts de packaging, .env.