• site
  • ia

Un site qui se met à jour (presque) tout seul chaque mois

Un agent fait la veille le 1er du mois, une skill met l'agenda à jour en deux langues, et je valide avant publication. La chaîne réelle du Manoir du Butel.

6 min de lecture

Ce mois-ci

Le Manoir du Butel propose des chambres d'hôtes et un gîte dans la Manche, à vingt minutes de Saint-Lô. Ses hôtes posent tous la même question : « qu'est-ce qu'on peut faire dans le coin ce week-end ? ». La réponse change chaque semaine. Une page « agenda » écrite à la main est à jour le jour de sa publication, puis elle vieillit, et personne n'a le temps de faire la veille chaque mois. Voici comment cette page se tient à jour depuis l'été 2026, et ce que « tout seul » veut dire, honnêtement.

La chaîne, de la veille à la page en ligne

  1. 1

    Agent planifié

    Le 1er du mois à 8 h : veille et digest Markdown sur Google Drive

  2. 2

    Skill import-digest

    Une fiche par événement, en français et en anglais ; les périmées supprimées

  3. 3

    Vérifications

    digest:check, build, relecture des 4 pages agenda

  4. 4

    Je publie

    Relecture de l'aperçu, puis mise en production

AutomatiqueLa veille, la mise en forme, la traduction et les contrôles.

Avec mon accordLa mise en ligne.

Le Manoir du Butel : trois étapes automatiques, une décision humaine.

1. Le 1er du mois, un agent fait la veille

Chaque 1er du mois à 8 h, un agent planifié cherche les événements autour du manoir et rédige un digest en Markdown, déposé dans un dossier Google Drive dédié. Depuis septembre, il couvre deux mois glissants (le mois en cours et le suivant), pour qu'un hôte qui réserve à l'avance trouve aussi des idées.

Le format est stable : deux zones géographiques, « à proximité immédiate (moins de 30 min) » et « un peu plus loin (jusqu'à 1 h 15) », des événements classés par mois, une sélection de temps forts et la liste des sources. Un extrait du digest d'octobre :

**Jeu. 8 → dim. 11 octobre — Foire de Saint-Lô (55e édition)**
Parc des expositions, route de Torigni, Saint-Lô (≈ 20-25 min). Grand rendez-vous
populaire annuel sur le thème « Fiesta Latina » […] Entrée et parking gratuits.
🔗 https://www.fest.fr/foire-de-saint-lo-2676097.html

L'agent signale aussi ce qu'il ne faut pas recommander. En octobre, il notait par exemple que le musée de la Tapisserie de Bayeux est fermé et ne doit pas être proposé aux hôtes. Le digest d'octobre est arrivé le 1er à 8 h 08.

2. Une skill transforme le digest en fiches bilingues

La deuxième étape est une skill Claude Code nommée import-digest. Je lui dis « intègre le digest du mois », et elle déroule une procédure écrite :

  • lire le digest le plus récent sur Drive ;
  • créer une fiche par événement, en français et en anglais, car le site est entièrement bilingue ;
  • supprimer les fiches dont la période est passée ;
  • lancer les vérifications, puis noter l'import dans le journal de déploiement.

Pourquoi Claude et pas un simple script ? D'abord parce que l'accès à Google Drive passe par la session Claude, pas par le terminal. Ensuite parce que la conversion demande du jugement : traduire, déduire une date de fin de « lundis 3, 10 et 17 août », choisir la bonne zone. Un script à base d'expressions régulières casserait au premier changement de formulation du digest.

Chaque événement devient un petit fichier lu par le site (Astro, un générateur de site statique) :

yaml
title: "35e Foire à l'andouille — Vire-Normandie"
date: "2026-10-31"          # dernier jour de l'événement
dateLabel: "Vendredi 30 et samedi 31 octobre 2026"
location: "Vire-Normandie"
distance: "30-35 min"
category: "plus-loin"       # zone géographique uniquement
highlight: true             # temps fort « À ne pas manquer »
title_en: "35th Andouille Fair — Vire-Normandie"

Le champ date porte toujours le dernier jour de l'événement. C'est lui qui retire l'événement de la page une fois passé (on verra plus bas à quel moment exactement) : avec la date du premier jour, un festival de trois jours quitterait la page dès son ouverture.

3. Des vérifications avant toute publication

Rien ne part sans trois contrôles, lancés par la skill elle-même :

bash
npm run digest:check   # champs requis, catégories, dates, événements expirés
npm run build          # le site doit se construire
npm run preview        # relecture des 4 pages agenda : chambres et gîte, FR et EN

digest:check est un petit script Node qui ne dépend pas de Claude : il refuse une fiche sans date, une catégorie inconnue ou un temps fort mal renseigné. C'est le même principe que les tests quand l'IA écrit le code : ce qui compte se vérifie par la machine, pas par une consigne.

4. Il prépare, je publie

Le site d'un client, c'est sa vitrine. Un agent trop zélé qui publie après chaque correction finit par mettre en ligne quelque chose que personne n'a relu.

Un hook Claude Code l'en empêche. Avant chaque commande git push, il vérifie la branche visée et bloque tout envoi vers la branche de production :

bash
if [ "$targets_master" -eq 1 ]; then
  # permissionDecision: "deny"
  # « Push vers master bloqué par le garde-fou du projet. »
fi

Pousser une autre branche reste autorisé : l'hébergeur en fait un aperçu, une adresse de test où relire le résultat. Je relis, je regroupe avec d'autres changements si possible, et je publie quand je le décide.

1er

du mois à 8 h, le digest arrive sur Drive

14

événements ajoutés à l'import d'octobre

4

pages agenda mises à jour : 2 hébergements × 2 langues

10

fiches périmées supprimées au même import

La page agenda du Manoir du Butel : l'encart « À ne pas manquer » puis les événements à proximité, classés par mois
La page agenda du Manoir du Butel : les temps forts en haut, puis les événements par zone et par mois.

Là où le jugement compte

Automatiser ne veut pas dire appliquer le digest à la lettre. Les entrées du journal de déploiement gardent la trace de chaque écart, et ce sont elles qui montrent la valeur de la relecture :

  • Une brocante à 35 minutes était classée « à proximité immédiate » par le digest. Elle a été déplacée dans « un peu plus loin », pour rester cohérente avec le seuil de 30 minutes affiché sur la page.
  • Quatre soirées isolées de la saison culturelle locale (un conte, deux pièces, un concert) sont devenues une seule carte « Saison culturelle Villes en Scène ». Quatre cartes pour quatre soirées noyaient les événements plus marquants.
  • Un défaut de conception, corrigé en août. Au départ, « temps fort » était une catégorie, au même titre que les zones. Marquer un événement comme temps fort le retirait donc de sa liste géographique : avec quatre temps forts sur deux mois, quatre événements disparaissaient des listes. La mise en avant est devenue une case à cocher indépendante de la zone.
  • Une skill invisible. Le fichier de la skill s'appelait skill.md au lieu de SKILL.md. Claude Code ne la détectait pas, et la procédure était relue à la main chaque mois. Rien ne cassait, tout était juste plus lent : le genre de défaut qu'on ne voit qu'à l'usage.

Ce que « tout seul » veut dire, honnêtement

La veille est automatique. L'import se fait en une phrase. Mais deux choses restent humaines, et c'est voulu.

D'abord, la publication. C'est un choix de contrôle : rien ne part en ligne sans relecture.

Ensuite, le site est statique. Un événement passé est masqué au moment où le site est construit, pas le lendemain de sa date. Sans nouvelle mise en production, il reste affiché. Le rafraîchissement mensuel sert donc aussi de nettoyage : l'import supprime les fiches périmées plutôt que de compter sur le masquage.

Et pour votre site ?

Le principe s'applique à tout site vitrine dont le contenu dépend de ce qui se passe autour : un agenda local pour un hébergement, les salons d'un secteur pour une entreprise, les actualités d'un territoire pour une association. Le même digest peut aussi nourrir une fiche Google, des publications sur les réseaux ou une newsletter.

C'est l'offre Un site qui vit : le système est construit une fois, puis il tourne chaque mois, et vous gardez la main sur ce qui est publié. Le projet Le Manoir du Butel le montre en place, et sa page agenda est en ligne. Si vous voulez savoir ce que ça donnerait chez vous, parlons-en.

Portrait illustré d'Antoine Lemariey

Antoine Lemariey

Développeur et fondateur de Not a Bad Company. Je conçois et je code moi-même chaque projet, de la spécification à la mise en ligne : PostOwl, Le Limier, BookFlow, AntiScam Detector…

À lire ensuite

Un projet à construire avec cette rigueur ?

Décrivez-moi votre besoin, je vous dis comment je le construirais.

Parlons de votre projet