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>
This commit is contained in:
46
docs/DECISIONS.md
Normal file
46
docs/DECISIONS.md
Normal file
@@ -0,0 +1,46 @@
|
||||
# Décisions d'architecture
|
||||
|
||||
Choix actés et leur pourquoi. But : éviter aux futurs agents de relitiger ce qui
|
||||
est déjà tranché. Format léger (date — décision — pourquoi).
|
||||
|
||||
## 2026-06-29 — Extension Firefox plutôt que CLI
|
||||
|
||||
Première piste : un CLI (Bun) qui fetch l'ICS et auto-soumet le formulaire.
|
||||
Abandonnée au profit d'une **extension Firefox**.
|
||||
|
||||
**Pourquoi :**
|
||||
- La revue manuelle avant envoi est le vrai besoin (descriptions à enrichir,
|
||||
formulaire modéré) → pré-remplir + envoyer soi-même bat l'auto-submit.
|
||||
- L'extension réutilise la **session du navigateur** pour Nextcloud → aucun mot
|
||||
de passe à stocker.
|
||||
- Pas de gestion des tokens CSRF : le formulaire les porte lui-même.
|
||||
|
||||
## 2026-06-29 — v1 = page autonome de l'extension
|
||||
|
||||
Plutôt que d'injecter des boutons dans le calendrier Nextcloud (SPA Vue, DOM
|
||||
fragile, casse à chaque mise à jour), la v1 est une **page propre** à
|
||||
l'extension. L'injection dans le calendrier reste un *bonus* ultérieur.
|
||||
|
||||
## 2026-06-29 — Statut dans le tag CATEGORIES (CalDAV)
|
||||
|
||||
L'intention (*ignoré* / *soumis*) est écrite dans l'événement Nextcloud, pas
|
||||
dans un stockage local.
|
||||
|
||||
**Pourquoi :** partagé entre bénévoles, durable, visible dans le calendrier.
|
||||
Un `state.json` local serait privé à une machine et invisible des autres.
|
||||
|
||||
Le statut *publié* n'est pas un tag : il est **dérivé** de l'agenda public de la
|
||||
mairie (match titre + date), ce qui donne aussi le lien direct.
|
||||
|
||||
## 2026-06-29 — Image ajoutée manuellement
|
||||
|
||||
Un content script ne peut pas remplir un `<input type=file>` (sécurité
|
||||
navigateur). L'extension facilite le geste (affiche l'image à glisser) mais ne
|
||||
l'automatise pas. L'affiche vient souvent de la newsletter Brevo, hors
|
||||
calendrier.
|
||||
|
||||
## 2026-06-29 — Pré-remplissage par content script, pas par URL
|
||||
|
||||
Gravity Forms n'accepte `?input_X=` que si chaque champ est configuré
|
||||
« population dynamique » côté mairie (improbable). On remplit donc le **DOM par
|
||||
id** (ids confirmés dans `RECHERCHE.md`).
|
||||
Reference in New Issue
Block a user