Skip to content

Streamline CV tools, design, and product workflows - #22

Merged
RashOps merged 5 commits into
mainfrom
feature/cv-templates-intelligence-product-polish
Jul 20, 2026
Merged

Streamline CV tools, design, and product workflows#22
RashOps merged 5 commits into
mainfrom
feature/cv-templates-intelligence-product-polish

Conversation

@RashOps

@RashOps RashOps commented Jul 20, 2026

Copy link
Copy Markdown
Owner

Description

Contexte

Cette branche fait évoluer plusieurs fondations de Mindris autour de son cœur produit : création et personnalisation de CV, génération assistée par IA,
découverte dynamique des modèles, cohérence des parcours secondaires et fiabilité des releases.

L’objectif est de rapprocher le CV Builder d’un outil structuré comme FlowCV, sans devenir un éditeur libre Canva-like, tout en conservant les invariants
du projet :

  • frontend client-only ;
  • logique métier et configuration détenues par le backend ;
  • rendu HTML/PDF centralisé dans le renderer ;
  • fonctionnement local-first et self-hosted ;
  • artefacts de release reproductibles.

La branche contient 5 commits, 113 fichiers modifiés, environ 6 242 ajouts et 1 936 suppressions.

———

1. CV Builder et personnalisation

Nouveau catalogue de templates

Le catalogue passe à dix templates structurés et pilotés par le backend.

Nouveaux styles et familles visuelles :

  • Atlas Sidebar ;
  • Executive ;
  • Ledger ;
  • Scholar ;
  • Signal ;
  • ainsi que les templates existants consolidés.

Le catalogue backend décrit désormais plus précisément :

  • les caractéristiques visuelles ;
  • les capacités du template ;
  • les variantes de mise en page ;
  • les options disponibles ;
  • les valeurs par défaut ;
  • les recommandations d’usage.

Renderer consolidé

Le renderer a été découpé afin de réduire la taille et la responsabilité de son moteur principal :

  • registre central des templates ;
  • CSS dynamique partagé ;
  • styles spécifiques par template ;
  • résolution plus cohérente des valeurs de personnalisation ;
  • support A4 et Letter ;
  • meilleure stabilité entre preview et export PDF.

Les templates sont testés avec plusieurs longueurs de CV et plusieurs formats de page.

Style Panel

Le noyau de personnalisation a été amélioré avec :

  • contrôles visuels plus explicites ;
  • meilleure organisation des options ;
  • correction des valeurs backend/frontend incohérentes ;
  • amélioration des sliders en thème clair et sombre ;
  • contrôles mieux adaptés aux différents niveaux Simple, Normal et Avancé ;
  • consolidation des options de layout et de sections.

CV Builder Ribbon

Le header du CV Builder a été restructuré sous forme de ruban réductible afin de diminuer la surcharge visuelle.

Les actions sont regroupées par intention :

  • fichier et CV actif ;
  • parsing ;
  • optimisation ;
  • provider et modèle ;
  • export ;
  • personnalisation.

La disposition de l’AppShell et de sa navigation a également été ajustée.

———

2. Découverte dynamique des modèles IA

Les modèles ne reposent plus exclusivement sur des listes écrites en dur dans le frontend.

Ajouts :

  • registre backend centralisé des modèles ;
  • catalogue par provider ;
  • découverte dynamique auprès des providers compatibles ;
  • fusion des modèles configurés, découverts et de fallback ;
  • déduplication des modèles ;
  • gestion des aliases et modèles dépréciés ;
  • informations de capacité et de disponibilité ;
  • exposition du catalogue via l’API.

Providers concernés notamment :

  • OpenAI ;
  • Mistral ;
  • Gemini ;
  • Groq ;
  • Ollama et providers locaux compatibles.

Les listes frontend utilisent désormais le contrat backend, ce qui corrige notamment les clés React dupliquées observées avec certains modèles Mistral.

———

3. Intelligence CV et workflow

Les agents et workflows de construction du CV ont été renforcés.

Améliorations :

  • modèles métier dédiés aux résultats de workflow ;
  • meilleure structuration des étapes d’analyse ;
  • conservation des preuves et résultats intermédiaires ;
  • enrichissement des métadonnées d’optimisation ;
  • amélioration du lien entre CV, offre, ATS et artefacts générés ;
  • indexation vectorielle plus fiable ;
  • meilleure normalisation des données importées ;
  • catalogue de cas d’évaluation pour mesurer la qualité des agents.

Le système conserve le Workflow en Beta, tout en rendant ses artefacts plus cohérents et mieux reliés.

———

4. Pages produit et expérience utilisateur

Les pages secondaires ont été simplifiées et harmonisées :

  • Dashboard ;
  • ATS Score ;
  • Markdown PDF ;
  • Tracker ;
  • History ;
  • Workflow Beta ;
  • Guide ;
  • Landing page.

Travail réalisé :

  • hiérarchie visuelle plus claire ;
  • CTA principaux mieux identifiés ;
  • réduction de certaines surfaces trop chargées ;
  • amélioration des états vides ;
  • meilleure continuité entre les outils ;
  • ajout de liens contextuels vers le guide ;
  • amélioration du français-first ;
  • consolidation des textes produit.

Guide

Le guide devient plus visuel et mieux aligné avec les capacités réelles de Mindris :

  • parcours par objectif ;
  • étapes structurées ;
  • checklists ;
  • liens directs vers les fonctionnalités ;
  • explications du workflow complet ;
  • meilleure présentation des outils locaux et IA.

i18n

Une première infrastructure de traduction centralisée est ajoutée :

  • provider i18n ;
  • catalogue de messages ;
  • tests associés ;
  • réduction progressive des chaînes dispersées dans les composants.

L’interface reste française en priorité, avec une base prête pour l’anglais.

———

5. Markdown et historique

Le rendu Markdown a été corrigé et renforcé :

  • réparation de la preview Markdown to PDF ;
  • meilleure gestion des styles du document ;
  • tests renderer supplémentaires ;
  • normalisation de l’ouverture des artefacts historiques ;
  • amélioration du lien entre lettres persistées, historique et workflow.

———

6. Tests renderer et backend

La couverture a été renforcée sur les zones critiques.

Renderer

  • tests des dix templates ;
  • variantes de contenu court, moyen et long ;
  • formats A4 et Letter ;
  • vérification des exports PDF réels avec Chromium ;
  • contrôle des dimensions PDF ;
  • tests du Markdown renderer ;
  • validation de la cohérence preview/export.

Backend et intelligence

  • tests du catalogue de modèles ;
  • tests de découverte dynamique ;
  • tests du registre et de la déduplication ;
  • tests des événements workflow ;
  • tests de l’index vectoriel CV ;
  • tests de l’API templates ;
  • tests des resumes ;
  • tests History ;
  • dataset d’évaluation des agents.

———

7. Refactor technique

Plusieurs modules trop volumineux ont été découpés :

  • séparation du catalogue de templates et des routes API ;
  • extraction du registre renderer ;
  • extraction du CSS dynamique ;
  • séparation des modèles du workflow ;
  • centralisation de la découverte et du registre IA.

Cibles respectées :

  • environ 500–700 lignes pour les composants et pages courants ;
  • plafond de 800 lignes pour les modules métier complexes.

———

8. Politique de release immuable

Cette branche remplace l’ancien workflow Docker unique par une politique « build once, promote by digest ».

Pull requests

ci.yml :

  • valide le backend, le frontend, le renderer et les scripts ;
  • ne dispose d’aucun droit de publication ;
  • ne publie aucune image.

Release candidates

release-candidate.yml est déclenché uniquement par :

vX.Y.Z-rc.N

Il exécute :

  • Ruff ;
  • Pytest ;
  • tests, lint, typecheck et build frontend ;
  • tests, typecheck et build renderer ;
  • validation Compose ;
  • build et publication des trois images GHCR ;
  • smoke test ;
  • E2E navigateur sur les images publiées.

Promotion stable

release-promote.yml est déclenché uniquement par un tag stable :

vX.Y.Z

Avant promotion, il vérifie :

  • le format SemVer du tag ;
  • la présence du commit stable dans main ;
  • l’ascendance du RC ;
  • l’égalité stricte des arbres Git entre RC et stable.

Les tags GHCR vX.Y.Z et latest sont ensuite créés depuis le digest du RC testé.

Aucune image Docker n’est reconstruite pendant la promotion stable.

La GitHub Release est publiée seulement après le smoke test et l’E2E des images promues.

———

9. Documentation et gouvernance

Ajouts et mises à jour :

  • ADR 022 : ruban CV Builder et registre dynamique des modèles ;
  • ADR 023 : catalogue de templates et adaptation fondée sur les preuves ;
  • ADR 024 : UI progressive, i18n backend-owned et guide ;
  • ADR 025 : RC immuables et promotion GHCR par digest ;
  • politique complète de release ;
  • architecture ;
  • installation ;
  • roadmap ;
  • statut MVP ;
  • UI system ;
  • README principal ;
  • CONTRIBUTING ;
  • README des scripts ;
  • règles AGENTS.md et .codex/AGENTS.md.

———

Validation effectuée

Backend

  • Ruff check
  • Ruff format check
  • 141 tests Python réussis
  • 2 tests ignorés selon environnement

Frontend

  • 47 tests Bun
  • lint
  • typecheck
  • build Next.js

Renderer

  • 45 tests Bun
  • typecheck
  • build
  • exports PDF Chromium A4 et Letter

End-to-end et packaging

  • E2E navigateur
  • validation Docker Compose
  • syntaxe des scripts shell
  • test positif de promotion Git
  • rejet d’une promotion dont l’arbre diffère du RC
  • parsing YAML des workflows
  • git diff --check

———

Points volontairement conservés pour la suite

  • Workflow reste marqué Beta.
  • L’i18n anglais n’est pas encore généralisé à toute l’application.
  • Desktop/Tauri reste reporté après stabilisation de la version web/self-hosted.
  • Les templates devront continuer à recevoir du polish visuel et des tests de non-régression.
  • Les agents CV pourront encore être évalués sur un dataset métier plus large.

Impact attendu

Cette PR apporte une fondation plus cohérente pour :

  • créer et personnaliser des CV professionnels ;
  • suivre les évolutions des modèles IA sans maintenance frontend constante ;
  • améliorer progressivement les agents à partir de tests mesurables ;
  • proposer une interface plus accessible aux utilisateurs non techniques ;
  • garantir qu’une release stable contient exactement les images testées en RC.

@RashOps
RashOps merged commit 5c7b84b into main Jul 20, 2026
1 of 4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant