Files
ben-to/docs/tickets/issue-builder-solid.body.md
T
2026-07-21 16:50:58 +02:00

1.3 KiB
Raw Blame History

Contexte

La logique et lUI du parcours builder sont concentrées dans apps/web/src/ui/BuilderFlow.tsx (fichier très volumineux). Le domaine pur existe déjà dans packages/features/builder/src/domain.ts.

Objectif

Réduire la surface « tout-en-un » du flux builder et clarifier les frontières entre UI, état du wizard, et domaine (@ben-to/builder).

Pistes techniques

  • Extraire par responsabilité unique : étapes (base / variante / recette), barre dactions, feuille recette, navigation « Continuer », synchronisation reset (builder-reset-bus).
  • Introduire des hooks / ports testables (ex. useBuilderSteps, useRecipeSheet) pour isoler les effets et la lecture du catalogue.
  • DIP : lUI consomme le domaine (domain.ts) et des interfaces stables pour le catalogue, sans détails de parsing dispersés.
  • Conserver / étendre les tests (*.unit.test.ts, e2e, Gherkin @int-builder-*).

Critères dacceptation

  • Aucun fichier du flux builder > ~250300 lignes sans justification documentée en commentaire de module.
  • Tests unitaires / intégration et e2e verts ; pas de régression sur le parcours dans specs/features/builder.feature.

Références

  • apps/web/src/ui/BuilderFlow.tsx
  • packages/features/builder/src/domain.ts
  • specs/features/builder.feature