Second avis du studio DA (03/11, 07h56) et relecture de fb8c71f (08h14) :
- numérique : le zigzag gauche-droite à pas égal est cassé. Électricien en M,
codeuse et cryptographe au bas de leur carte, à droite, administrateur réseau
en grand derrière Cloud libre ;
- commande : un seul côté par carte. Cycliste à gauche de la première, libraire
en grand derrière la seconde ; la lectrice se tient sur le sac de l'icône.
Le cartonnier va sur la ligne qui clôt chaque chapitre, l'empileur sur le
sommaire du livre : les 61 restent rendus ;
- au moins deux tailles dès trois oiseaux (chapitre, en-musique, événement) ;
- un oiseau de marge a les pieds sur une vraie ligne, le bas ou le haut de son
bloc ou d'une carte, jamais à mi-hauteur (« posés sans flotter ») ;
- aucun oiseau sur le haut invisible de la boîte d'un titre : dj, trapéziste,
alchimiste et droneuse se tiennent sur la dernière ligne ou au bout de
l'intitulé ;
- téléphone : le pompeur de Ğ1 au bout de la ligne de l'intitulé ;
- sous-pages numériques : poses, tailles et décalages variés malgré le sommaire
à droite ; le comédien de tarifs-eau perché sur sa carte, hors du sommaire.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Avis du studio DA du 03/11 (07h00) et relecture de 8ccdda3 :
- règle du perché : il faut au-dessus de l'arête un vide au moins égal à la hauteur
de l'oiseau, sinon il va en marge ou derrière la carte. Les perchés entre cartes
rapprochées (numérique, logiciel-libre, économique, sommaire du livre, commande,
citoyenne, événement) passent en marge, derrière, ou partent ;
- productions-collectives : 8 oiseaux ramenés à 4, sans colonne ni chevauchement.
Les oiseaux retirés vont sur des pages qui en avaient peu : monnaie-libre
(boulangère, vigneronne), tarifs-eau (potier), décision (tisserand),
cloud-libre (imprimeuse 3D). Les 61 restent rendus ;
- pas trois oiseaux sur la même verticale (commande, numérique) ;
- au téléphone, l'oiseau de la page se tient au bout de la ligne de l'intitulé ;
- seuil 1024 pour un perché dont le bloc n'a de vide au-dessus qu'en deux colonnes
(accordéoniste et factrice de l'accueil) ;
- numerique/[slug] : les oiseaux des sections larges tiennent dans 152 px de marge
à 1200 px ;
- en-tête : de 768 à 1023 px, boutons resserrés au lieu d'un débordement ; le
logotype du kit ne change pas.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Copie du kit kit-site (empreinte vérifiée) : logotype dans l'en-tête, signe §,
favicons et icônes, og-default (?v=3), frise du pied de page, 61 oiseaux.
Les shadoks positionnés à la main (HomeShadoks et les règles des 10 pages)
cèdent la place à UiOiseauPose : chaque oiseau se pose sur une arête réelle
(perché, marge gauche ou droite, derrière une carte, libre), currentColor,
largeur 72 px au moins, opacité 0,18-0,28 près du texte et 0,10-0,14 derrière,
jamais deux fois sur une page, calligraphe et typographe jamais en miroir.
Sous 768 px, un oiseau par page au plus ; seuls ceux derrière une carte
dérivent un peu, et plus du tout en mouvement réduit.
Consignes d'Yvv du 03/11 inscrites dans docs/consignes-yvv.md.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Avant tout geste, l'axe mis en avant par la rotation monte à sa graduation
(numérique 0,75, économique 0,50, citoyenne 0,667) au lieu de 0,87-0,93 ;
les deux autres gardent leur dérive basse. L'animation et la main donnent
les mêmes niveaux, et un curseur figé au premier geste ne reste plus
au-dessus de son cran. Décision d'orch (03/11, 05h51), consignée dans
docs/consignes-yvv.md.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Consigne d'Yvv du 03/11, mot pour mot dans docs/consignes-yvv.md (avec
celles du 29/09) : « Au rollover, numérique monte à 3/4, économie monte à
1/2, citoyenne monte à 2/3. Les curseurs restent. Si on rollover à nouveau
ils refont leur montée. Et le pavé correspondant s'affiche bien sûr au même
rollover. »
- survol à la souris, focus au clavier ou tap : le curseur repart d'en bas
et monte en 1,1 s à son cran (0,75 / 0,50 / 0,667), puis il y reste ;
le panneau de l'axe s'affiche au même geste (aria-selected et tabindex
suivent)
- au premier geste, la rotation s'arrête pour de bon ; les autres
curseurs restent là où ils sont dessinés, jamais survolés compris
- un défilement au doigt parti d'un curseur ne compte plus comme survol
- flèches du clavier : la montée part avec sa transition rapide
- remplace les choix d'interprétation de 230f79a (curseurs poussés en
haut, rotation qui reprend, panneau au clic seulement)
- avant tout geste, l'animation du 29/09 est inchangée ; sous
prefers-reduced-motion, mêmes crans sans transition
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- survol ou focus d'un curseur : il monte en 0,9 s ; les autres restent
figés à leur niveau tant que la main est sur la console (dérive et
rotation suspendues)
- dès le premier geste (survol, focus, clic, flèches), ce qui est monté
reste monté : le visiteur pousse les curseurs un à un
- avant tout geste, l'animation du 29/09 est inchangée (dérive lente,
un axe mis en avant à tour de rôle, arrêt au clic)
- prefers-reduced-motion : aucune transition, mêmes règles de niveaux
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- og-default.png refaite (§ Playfair, Bricolage, trois autonomies en couleurs)
- favicon.ico : § (c'était le logo Nuxt par défaut)
- JSON-LD : logo pointait vers /images/og-default.png (404) → /og-default.png
- ?v=2 sur l'og:image pour que les réseaux sociaux la reprennent
- retrait des trois tracés « spaghetti » orphelins de public/images
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- accueil : la console devient l'accueil unique (variantes B/C, sélecteur
et ancien accueil retirés) ; curseurs qui montent de l'asservissement et
dérivent seuls, un axe mis en avant à tour de rôle, arrêt au clic,
immobiles en prefers-reduced-motion ; « AUTONOMIE » devant chaque axe,
leviers mis en valeur, ligne des trois autonomies en couleurs
- logo : § de Playfair Display (SIL OFL) vectorisé, composant partagé
UiSectionSign (en-tête, page événement) + favicon.svg
- UiStatusBadge (production / développement / gestation) sur l'accueil,
les pages d'axe et les pages projet
- liens libreDecision / SejeteralO fixés sur la prod (plus de repli localhost)
- logiciel libre : bouton v1 dans la carte projet en tête de page
- couverture du livre : recadrage corrigé (BookSection)
- texte courant en Public Sans (zéros non barrés)
- lecteur : la pastille persistante ne masque plus la navigation du
BookPlayer ; lecture directe du MP3 (les .ogg n'existent pas : 404)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- typo : Bricolage Grotesque (titres) + Atkinson Hyperlegible (texte),
Syne gardée pour le logo seul ; une seule source de polices (Bunny)
- palettes : teinte propre à chaque axe dans les 4 ambiances ;
pages d'axe en axis-scope, cartes sans bordure (canon design)
- accueil : console des trois curseurs (tablist clavier), boîte à outils,
bloc format éditorial + événement + reproduction ; ?v=a|b|c|0
- numérique : carte LPK ; bouquet rendu avec statut et légende
- messages : sans bordure, deux colonnes en grand écran
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- numerique/index : overlay z-index 1 sur pillar-card, zone actions z-index 2
avec support pillar.actions (même pattern que citoyenne/index)
- home.yml + numerique.yml : bouton "Voir la v1 bridée (premier flux)"
sur le bloc Logiciel libre → https://axiom-team.fr/dons
- economique/index : déjà des NuxtLink directs comme cartes, rien à corriger
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- AxisBlock : overlay z-index 1 (au-dessus du contenu), actions z-index 2
(boutons au-dessus de l'overlay) — fix blocage du clic sur tout le bloc
- citoyenne/index : même correction overlay/z-index ; suppression des
NuxtLink "En savoir plus" devenus redondants (overlay gère la navigation)
- home.yml : ajout bouton "Ouvrir SejeteralO" sur le bloc Tarifs de l'eau
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Vouvoiement partout dans les pages numerique (cloud-libre, logiciel-libre, wot)
- Bouton "Ouvrir libreDecision" dans home AxisBlock (Décision collective)
- AxisAction supporte href pour liens externes
- URL prod : decision.librodrome.org
- Labels "Ouvrir libreDecision" (sans Ğ) dans citoyenne/index et [slug]
- app.config.ts : URL prod libredecision mise à jour
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Type badge + auteur + date comme sur la home
- Réponse avec liaison graphique (reply-thread/connector/block)
- Style adaptatif light/dark cohérent avec HomeMessages.vue
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Remplace color:white → hsl(var(--color-text)) dans tous les composants admin
(AdminFieldText, AdminFieldTextarea, AdminFormSection, AdminMarkdownEditor,
AdminMediaBrowser, AdminSidebar, book/index, book/[slug], login, messages, site, songs)
- Conserve color:white uniquement sur fond primary (AdminSaveButton, login-btn)
- Hero home : ajout bloc audience/addressees (clé distincte pour éviter conflit YAML)
- home.yml : réordonne axes (citoyenne en premier — effet triangle)
- TypewriterText : affiche le second bloc avec séparateur fin
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- BookPlayer : toutes les couleurs HSL en dur remplacées par variables CSS palette
- Admin (sidebar, formulaires, pages, book, songs, messages, media, login) : idem
- L'ambiance graphique suit maintenant la palette active partout
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Structure par section : /numerique, /economique, /citoyenne (plus de /gestation)
- Chaque section a index + sous-pages avec contenu YAML administrable
- API content supporte les chemins imbriqués ([...path])
- Admin : liste des pages + éditeur par section
- Page /economique : monnaie libre (picto Ğ1), modèle éco, productions collectives, commande livre
- Page /citoyenne : decision (CTA Glibredecision), tarifs-eau (CTA SejeteralO)
- BookActions : composant partagé (player, PDF, chapitres, commande) sur home, eco et modele-eco
- GrateWizard remonté dans la section économique de la home
- Palette été par défaut, choix persisté en localStorage
- Fix lisibilité été (text-white/65 + variables CSS)
- Shadoks thématiques sur toutes les pages (8-10 par page, métiers variés)
- Redirections 301 : /gestation/*, /modele-eco/*, /decision, /lire/*
- README, CONTRIBUTING, CLAUDE.md mis à jour
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- GrateWizard : lancement URL simple (plus de popup embed), bloc
dédié violet sur la home entre axes et événement
- Messagerie : plus de champs obligatoires, plus de champ email
séparé, hint email dans le message, remerciement onboarding
- Page /numerique : 3 piliers (Logiciel libre, WoT, Cloud libre)
avec projets associés, remplace les extraits livre hors-sujet
- Admin : carte Messages ajoutée au dashboard
- Safelist icônes complétée
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Page décision : icône gavel pour le titre, scroll-text pour Documents de référence
- GrateWizard : ouverture en mode embed (?embed=true&hideTabBar=true) avec
scrollbars=no pour supprimer le double scroll
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Le $fetch dans import.meta.client ne se ré-exécutait pas après hydratation SSR.
onMounted garantit l'exécution côté client après le montage du composant.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Ajout API /api/admin/pdf-outline (extraction sommaire PDF côté serveur via pdfjs-dist)
- Déroulant <select> dans chaque ligne de chapitre admin avec les 61 titres/sous-titres du PDF
- Sauvegarde des associations chapitre→page PDF via config YAML
- Transition douce (fondu 1s/1.2s) pour le changement de pages dans le viewer PDF
- Correction des numéros de pages réels dans chapterPages (extraits du sommaire PDF)
- URL GrateWizard prod → gratewizard.axiom-team.fr
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Viewer PDF.js mode livre : double page côte à côte, navigation prev/next visuelle et clavier
- Panneau signets (outline) avec tout déplier/replier, highlight du spread courant
- Page 1 = couverture seule, puis paires 2-3, 4-5, etc.
- Navigation clavier : flèches, espace, Home/End
- Redimensionnement auto des canvas au resize
- Fix hydratation SSR : bookData.init() sans await dans ChapterHeader et SongBadges
- BookPdfReader : iframe vers /pdfjs/viewer.html au lieu du viewer natif
- Script postinstall pour copier pdf.min.mjs depuis node_modules
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Bouton PDF blanc par chapitre avec numéro de page (ChapterHeader)
- Badges morceaux plus visibles (bordure, poids, hover) dans ChapterHeader et SongBadges
- PDF viewer : page cible + panneau signets ouverts par défaut (BookPdfReader)
- Config YAML : pdfFile dans book, chapterPages pour le mapping chapitre→page
- Admin book : section PDF du livre avec chemin éditable et sauvegarde
- Git sync automatique : chaque sauvegarde admin commit+push en prod (ADMIN_GIT_SYNC=true)
- Docker : git installé en prod, volumes pour .git/site/content/public
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Toggle discret pour les afficher au besoin (usage autonome).
Gain de place dans le panel déployé.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- BookPlayer : navigation par playlist (9 morceaux) au lieu de 11 chapitres
- stopPropagation clavier → plus de saut 1→3→5
- Sommaire aligné avec titres des morceaux
- Bouton back aligné avec clavier (toujours morceau précédent)
- Admin chapitres : tags morceaux cliquables avec étoile primary
- Admin liste chapitres : badges morceaux associés
- Éditeur markdown en vue split par défaut
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Le BookPlayer chargeait les .md via Nuxt Content — qui contenaient avant
les paroles par erreur. Maintenant que les .md ont le vrai contenu du
livre, le BookPlayer doit afficher les lyrics depuis bookplayer.config.yml.
Supprime queryCollection('book') du BookPlayer, remplace ContentRenderer
par un rendu HTML des paroles avec tags stylisés.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Le `chapter.stem` de Nuxt Content renvoie `book/01-introduction` et non
`01-introduction`. Extraction du slug final via `.split('/').pop()` dans
les liens et la navigation prev/next.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Endpoint /api/admin/auth/hint (dev-only, 404 en prod via import.meta.dev).
Le hint est aussi éliminé côté client au build grâce à import.meta.dev.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Évite les conflits de ports entre projets :
- nuxt.config.ts : devServer.port fixé à 3000
- app.config.ts : URL dev grateWizard corrigée 3009→3001
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Navigation : btn-ghost, active-class, footer, nav mobile → CSS vars adaptatifs
- Overrides light mode renforcés avec !important (scoped styles compatibles)
- btn-primary garde text-white en light mode (fond coloré)
- Logo : symbole § calligraphié SVG inline remplace lucide-book-open
- Logo text : font-display weight 300 (ronde fine) + text-gradient
- Logo SVG aussi exporté en /public/images/logo-section.svg
- Header/footer : backgrounds et bordures via CSS vars
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Le parseur markdown convertissait [Intro] en <span>Intro</span> (perte des
crochets) et les \n dans les nœuds texte étaient collapsés en espaces HTML.
- Échappe tous les crochets dans les 11 fichiers markdown (\[Intro\] etc.)
- Ajoute white-space: pre-line sur les paragraphes dans BookPlayer et
ChapterContent pour que les sauts de ligne des paroles soient visibles
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Reordonne les songs dans le config YAML selon l'ordre du PDF (01→09, 06 en dernier)
- Met à jour les titres avec les noms du PDF et la numérotation correcte
- Remplace le contenu des 11 pages markdown par les paroles des chansons associées
- Ajoute getChapterForSong() dans useBookData pour la recherche inverse
- Ajoute un watcher dans BookPlayer qui navigue au chapitre quand le morceau change
- Flag _skipSongWatch pour éviter les boucles infinies player↔navigation
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>