Skip to content

docs: tracer le trou de nav mobile (Engagements) et les dettes remontées par les audits#259

Merged
thierryvm merged 1 commit into
mainfrom
docs/traces-nav-mobile-et-dettes-audits
Jul 25, 2026
Merged

docs: tracer le trou de nav mobile (Engagements) et les dettes remontées par les audits#259
thierryvm merged 1 commit into
mainfrom
docs/traces-nav-mobile-et-dettes-audits

Conversation

@thierryvm

@thierryvm thierryvm commented Jul 25, 2026

Copy link
Copy Markdown
Owner

Pourquoi

@Thierry a constaté que /app/commitments (« Engagements ») est inatteignable depuis la nav mobile. Il a choisi de ne pas corriger à chaud : la nav mobile est refondue d'un bloc en Phase 1 du programme UX, un patch isolé serait jeté. Cette PR ne contient donc aucun changement de code — uniquement la trace, pour que le sujet entre dans le périmètre de la Phase 1 au lieu d'être redécouvert.

Le trou, confirmé

La route existe et fonctionne, mais aucune surface de navigation mobile ne la référence :

Surface Engagements ?
Header.tsx (7 destinations) oui, mais hidden … lg:flex → desktop ≥ 1024 px
BottomTabBar (4 onglets) non
MoreSheet non
EngagementsCard (cockpit) oui — seul point d'entrée mobile

Hors du cockpit, Engagements n'existe plus sur mobile.

Le constat qui compte

C'est structurel : les destinations sont dupliquées dans trois composants sans contrat commun. Rien n'empêche d'ajouter une route et d'oublier une ou deux surfaces — c'est exactement ce qui s'est produit. La Phase 1 reçoit donc une attente explicite : un registre unique de destinations, plus un test qui échoue si une route de app/** n'y figure pas.

Également tracé

docs/audits/2026-07-25-dettes-tracees-audits-i18n-seo.md recense ce que i18n-auditor et seo-geo-auditor ont remonté pendant #258, hors de son périmètre :

  • P0 — les redirections serveur non préfixées perdent la langue (introduit par fix(i18n): résolution de langue déterministe — le préfixe d'URL décide, plus le cookie #258, arbitré par @Thierry, PR de suivi à faire). Mesuré : /app avec cookie en faisait 307 → /en/app, fait désormais 307 → /login (français). ~9 sites dans les gardes auth et Server Actions.
  • P1 — le sélecteur de langue des Réglages ne peut rien enregistrer d'autre que fr-BE (le <Select> propose fr-FR/en-GB, absents de l'enum LOCALES), et son action n'écrit ni le cookie ni ne revalide. Préexistant.
  • P1 — 4 bugs SEO préexistants : pages noindex soumises au sitemap, canoniques cross-locale sur la FAQ et les pages légales, glossaire qui se canonicalise vers l'accueil, locales non traduites indexables.
  • P2 — 3ᵉ lecteur du cookie non documenté, deep-links des locales cachées non testés, llms.txt qui surestime le périmètre livré.

Aucun n'est corrigé ici : étendre le scope d'une PR en vol est une action bannie par la doctrine.

Périmètre

Documentation uniquement — 2 fichiers, 0 ligne de code applicatif.

Summary by Sourcery

Documenter les problèmes connus d’UX et de SEO/i18n sans modifier le code de l’application afin de garantir qu’ils soient suivis et intégrés dans les travaux à venir.

Documentation :

  • Étendre la spécification de conception du programme UX avec la documentation des lacunes de navigation sur mobile et des problèmes de routage structurel liés aux Engagements.
  • Ajouter un document d’audit recensant les dettes i18n, de gestion des locales et de SEO en suspens, identifiées lors des audits récents.
Original summary in English

Summary by Sourcery

Document known UX and SEO/i18n issues without changing application code to ensure they are tracked and included in upcoming work.

Documentation:

  • Extend the UX program design spec with documented mobile navigation gaps and structural routing issues around Engagements.
  • Add an audit document capturing outstanding i18n, locale handling, and SEO debts identified during recent audits.

@Thierry reported that /app/commitments is unreachable from the mobile
navigation. Confirmed: the route exists and works, but it is referenced by no
mobile surface at all — Header lists it behind hidden lg:flex, BottomTabBar and
MoreSheet omit it entirely, and the only mobile way in is a dashboard card. So
outside the cockpit, Engagements does not exist on mobile.

Deliberately NOT patched: the mobile nav is redesigned as one block in Phase 1
of the UX program, and an isolated patch would be thrown away. @Thierry chose to
wait and just wanted the issue on record.

The finding worth keeping is the structural one: destinations are duplicated
across three components with no shared contract, so nothing stops a new route
from being added and one or two surfaces forgotten — which is exactly what
happened here. Phase 1 gets an explicit expectation: a single destination
registry plus a test that fails when a route under app/** is missing from it.

Also records the URL-segment inconsistency (/glossaire in French, /app/* in
English, no next-intl pathnames map) as an arbitration for @Thierry rather than
a bug — localising URLs means SEO impact, permanent redirects and a pathnames
table across five locales.

Separately, docs/audits/ now carries the debts i18n-auditor and seo-geo-auditor
surfaced during #258 and that were out of its scope: the unprefixed server
redirects losing the locale (arbitrated, follow-up PR), the Settings language
select that cannot save anything but fr-BE, and four pre-existing SEO canonical
and sitemap bugs.
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@vercel

vercel Bot commented Jul 25, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
ankora Ready Ready Preview, Comment Jul 25, 2026 6:52pm

@github-actions github-actions Bot added status:review-needed Ready for review type:docs Documentation only labels Jul 25, 2026
@sourcery-ai

sourcery-ai Bot commented Jul 25, 2026

Copy link
Copy Markdown
Contributor

🧙 Sourcery a terminé la revue de votre pull request !


Conseils et commandes

Interagir avec Sourcery

  • Lancer une nouvelle revue : Commentez @sourcery-ai review sur la pull request.
  • Poursuivre les discussions : Répondez directement aux commentaires de revue de Sourcery.
  • Générer une issue GitHub à partir d’un commentaire de revue : Demandez à Sourcery de créer une issue à partir d’un commentaire de revue en y répondant. Vous pouvez aussi répondre à un commentaire de revue avec @sourcery-ai issue pour créer une issue à partir de celui-ci.
  • Générer un titre de pull request : Écrivez @sourcery-ai n’importe où dans le titre de la pull request pour générer un titre à tout moment. Vous pouvez aussi commenter @sourcery-ai title sur la pull request pour (re)générer le titre à tout moment.
  • Générer un résumé de la pull request : Écrivez @sourcery-ai summary n’importe où dans le corps de la pull request pour générer un résumé de PR à tout moment, exactement à l’endroit où vous le souhaitez. Vous pouvez aussi commenter @sourcery-ai summary sur la pull request pour (re)générer le résumé à tout moment.
  • Générer le guide du relecteur : Commentez @sourcery-ai guide sur la pull request pour (re)générer le guide du relecteur à tout moment.
  • Résoudre tous les commentaires de Sourcery : Commentez @sourcery-ai resolve sur la pull request pour résoudre tous les commentaires Sourcery. Utile si vous avez déjà traité tous les commentaires et ne souhaitez plus les voir.
  • Ignorer toutes les revues Sourcery : Commentez @sourcery-ai dismiss sur la pull request pour ignorer toutes les revues Sourcery existantes. Particulièrement utile si vous voulez repartir de zéro avec une nouvelle revue – n’oubliez pas de commenter @sourcery-ai review pour lancer une nouvelle revue !

Personnaliser votre expérience

Accédez à votre dashboard pour :

  • Activer ou désactiver des fonctionnalités de revue comme le résumé de pull request généré par Sourcery, le guide du relecteur, et d’autres.
  • Changer la langue de la revue.
  • Ajouter, supprimer ou modifier des instructions de revue personnalisées.
  • Ajuster d’autres paramètres de revue.

Obtenir de l’aide

Original review guide in English

🧙 Sourcery has finished reviewing your pull request!


Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Salut - j’ai passé en revue tes modifications et elles sont super !


Sourcery est gratuit pour l’open source - si nos revues te plaisent, pense à les partager ✨
Aide-moi à être plus utile ! Clique sur 👍 ou 👎 sur chaque commentaire et j’utiliserai tes retours pour améliorer les revues.
Original comment in English

Hey - I've reviewed your changes and they look great!


Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

@thierryvm
thierryvm merged commit 258b4a0 into main Jul 25, 2026
10 checks passed
@thierryvm
thierryvm deleted the docs/traces-nav-mobile-et-dettes-audits branch July 25, 2026 19:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

status:review-needed Ready for review type:docs Documentation only

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant