-
Passe Impeccable 28 mai 2026
Suite design « Impeccable » : /teach-impeccable (contexte design persistant dans .impeccable.md — voix « calme · contemplatif · lettré », référence Aldo Leopold), /critique (score Nielsen 34/40 → 38/40 après corrections), puis les correctifs : lecteur audio en charte (remplace le lecteur natif), accessibilité tactile/clavier des interactions au survol (Pointer Events + :focus-within), état « aucune édition » repensé, et passe /polish (respect de prefers-reduced-motion, zone de seek audio agrandie).
-
Audit de sécurité 28 mai 2026
Revue de sécurité de l'ensemble du code (site Astro, pipeline de données, scripts, workflow CI, secrets, dépendances). Surface réduite par construction (site statique, sans serveur/auth/BD/input utilisateur). Correctifs appliqués : échappement HTML du texte LLM rendu via set:html (XSS stocké de défense en profondeur) ; inputs du workflow passés par env: (plus d'interpolation shell — script injection) ; validation du format --date (traversée de chemin) ; montée d'Astro 5 → 6.4.2 (XSS define:vars). Points informatifs documentés et acceptés (token Tempest en URL imposé par l'API et côté serveur seulement ; vuln dev-only de @astrojs/check non livrée ; SHA-pin des actions = durcissement optionnel).
-
Son de l'« Observation du jour » trop faible 28 mai 2026
Les soundscapes BirdWeather du PUC sont captés très bas (pics −42 à −64 dB selon l'extrait) ; le lecteur natif jouait au niveau brut, bien plus faible que sur BirdWeather. Correctif : le bouton « Écouter » route l'audio via Web Audio (GainNode) et normalise le pic de chaque extrait à ~−3 dB, comme le fait BirdWeather. Dégradation gracieuse si Web Audio indisponible.
-
Graphique d'observations & espèces sur 30 jours 28 mai 2026
Nouvelle sous-section d'« Activités des oiseaux », entre l'horloge 24 h et « Visiteurs les plus fréquents ». Piste retenue : barres (observations / jour) + ligne (espèces / jour) en double échelle, style sans carte comme Luminosité, tooltip au survol. Les 30 jours réels ont été comblés depuis BirdWeather (script scripts/backfill-birds.ts, idempotent) ; le cron quotidien fait avancer la fenêtre. Sur mobile, ~10 jours s'affichent à la fois avec défilement horizontal jusqu'à j-30 (départ sur le jour le plus récent). Bonus : l'historique enrichi affine aussi « Premières de la saison ».
-
Liens vers les fiches eBird sur les photos d'oiseaux 28 mai 2026
Les photos sont désormais cliquables et pointent vers la même fiche eBird que le nom de l'espèce, via le helper ebirdUrl(taxon_scientific) : photo de « Observation du jour » et vignettes de « Visiteurs les plus fréquents ». Lien posé uniquement quand un code eBird existe pour le binôme latin. Demande de MCB.
-
« Dernier orage » : labels temporels alignés sur la perspective du lecteur 27 mai 2026
Le titre principal de l'accueil dit déjà « Hier, samedi 24 mai » pour l'édition du 24 — donc le site adopte la perspective du lecteur (qui lit le lendemain matin). stormAgeLabel décalé de +1 : days_ago=0 (orage le jour de l'édition) devient « hier » au lieu de « aujourd'hui », days_ago=1 devient « avant-hier », etc. Cohérence rétablie entre le titre de la page et les cartes Météo.
-
Luminosité : sparkline + texte enrichi (remplace la jauge) 26 mai 2026
Sparkline SVG 160×40 px à gauche (courbe 24 h, aire teal pâle, icône soleil au pic), texte enrichi à droite sur 2 lignes : pic 95 000 lux à 14 h + 6 h plein soleil · 3 h voilé · 2 h couvert. Sur mobile (≤560 px) : sparkline pleine largeur en haut, texte en dessous. Stockage : nouveau champ hourly_lux_avg[24] dans WeatherDaily (moyenne horaire). Fallback gracieux (—) pour les éditions sans le nouveau champ.
-
« Dernier orage » remplace « Foudre » dans la carte Météo 26 mai 2026
Au lieu d'un compteur d'éclairs du jour (souvent à 0), la carte raconte le dernier orage connu : nombre d'éclairs + date relative + distance. Format : 24 éclairs / hier, à 35 km ou 8 éclairs / il y a 17 jours, à 23 km. Au-delà de 90 jours, simplifié en +3 mois sans distance. Calcul dans daily.ts par scan rétrograde de data/weather/*.json (cap 365 jours). Fallback gracieux pour les éditions sans le nouveau champ.
-
Protection contre écrasement d'éditions existantes 26 mai 2026
Si data/editions/{date}.json existe déjà, daily.ts skip avec un message clair. Flag --force en CLI et input booléen force dans le workflow_dispatch pour réécrire intentionnellement. Le cron automatique n'est jamais affecté (il tourne toujours sur une date neuve).
-
Vent : direction, qualificatif et heure du pic sur la carte Météo 26 mai 2026
Avant : moyenne des moyennes (artefact statistique) + rafale max sans heure ni direction. Maintenant : direction moyenne vectorielle pondérée par la vitesse en 8 points (« de l'O », « du NE »…), vitesse moyenne + qualificatif descriptif (calme plat / calme / légère brise / brise / soutenu / fort / grand vent), rafale max avec heure du pic. Cas vent < 1 km/h : « calme plat » sans direction. Anciens fichiers data/weather/ sans le nouveau champ : fallback gracieux sur l'ancien format.
-
Diversifier la base de fragments — vague 1 26 mai 2026
Ajout de 9 nouvelles citations vérifiées verbatim depuis Wikisource : Jules Renard, Histoires naturelles (Le ver luisant, Le cafard, Le serpent, La belette) et Frère Marie-Victorin, Croquis laurentiens (5 passages des chapitres 10 et 18). Ajout du champ lang: 'fr' | 'en' à toutes les citations, prompt Claude ajusté pour ne pas traduire si la source est déjà en français. Total : 22 citations (13 anglophones + 9 francophones).
-
Liens vers les fiches eBird sur les noms d'oiseaux 26 mai 2026
Dans « Observation du jour », « Visiteurs les plus fréquents » et « Premières de la saison », le nom commun est cliquable vers la fiche eBird de l'espèce (https://ebird.org/species/{code}?lang=fr). Mapping taxon_scientifique → species_code stocké dans data/ebird-species-codes.json (11 167 espèces, ~350 KB), généré par scripts/build-ebird-codes.ts depuis l'API publique eBird (sans clé). À re-générer ~1×/an (nouvelle taxonomy en octobre).
-
Pression atmosphérique sur la carte Météo 26 mai 2026
Valeur en hPa (à la station, non corrigée) + catégorie inline (basse / normale / haute, seuils ajustés pour les 377 m d'altitude). Sub-line : tendance sur 3 h avec flèche directionnelle (↗ ↘ →), label « en hausse / en baisse / stable » et delta chiffré. Effet visible dès la prochaine édition automatique du cron.
-
Éphémérides — verbes toujours au futur 26 mai 2026
Le prompt de la narration du ciel exige maintenant explicitement le futur simple ou le présent à valeur de futur, jamais d'imparfait ni de passé composé pour les événements à venir. Auparavant Claude mixait parfois les temps (« la lune s'est couchée à 2 h 26 » alors que c'était encore à venir au moment de la lecture).
-
Règle de l'« Observation du jour » pondérée fréquence × nouveauté 26 mai 2026
Avant : la détection la plus confidente du jour — favorisait toujours les espèces au chant très net (Roitelet à couronne rubis 3 jours sur 6). Maintenant : la première espèce du top par fréquence qui n'a pas été observation du jour dans les 7 derniers jours (avec fallback). Variation garantie côté code, sans surcharger la page d'explications.
-
Rotation des citations forcée 26 mai 2026
Diagnostic : Claude réutilisait Burroughs #10 5 jours sur 6 sur 13 disponibles, parce que la citation thématique de la migration de printemps revenait toujours en tête. Fix : daily.ts filtre les citations utilisées dans les 7 derniers jours avant d'envoyer la liste à Claude — la rotation est garantie côté code, sans dépendre de la mémoire du modèle.
-
Favicon (icône ✻ du topbar) 25 mai 2026
SVG en couleur accent (teal), affichée dans l'onglet du navigateur.
-
Analytique respectueuse de la vie privée 25 mai 2026
GoatCounter (SaaS gratuit, sans cookie, open source) intégré via un petit script dans le layout commun. Aucune donnée personnelle collectée, conforme RGPD.
-
Section « Pourquoi Val-des-Loups? » sur la page À propos 25 mai 2026
Trois résonances derrière le nom : la vallée du Bras du Nord-Ouest, la présence avérée de loups dans les terres du Séminaire, et le surnom « les Loups » des habitants de Baie-Saint-Paul.
-
Noms latins en italique sur la page d'accueil 25 mai 2026
Auto-détection des binômes latins via la liste blanche des taxon_scientific du jour (0 faux positif), appliquée au summary, au billet et à la narration du ciel. Robuste même quand l'IA oublie les marqueurs.
-
Caractérisation du milieu sur la page À propos 25 mai 2026
Nouvelle section « Le milieu » avec région écologique, sous-domaine bioclimatique, espèces phares (noms latins), trois plateaux du terrain, faune et mémoire orale du lieu.
-
Optimisation des balises <title> et <meta description> 25 mai 2026
Titre statique par page (au lieu de dériver de la description du jour) et description commune pour toutes les pages. Ajout aussi des balises Open Graph et Twitter Card pour le partage social.
-
Mise en ligne initiale 25 mai 2026
Site déployé sous
valdesloups.com avec HTTPS Let's Encrypt, hosting Netlify, cron quotidien automatisé via GitHub Actions, DNS chez Namecheap. Bascule de l'architecture initiale (Postgres / Railway) vers un repo Git comme état persistant.