Files
ben-to/.github/ISSUE_TEMPLATE/04-refactor-builder-solid.md
kazerlelutin 785e1be2aa
CI / quality (push) Waiting to run
CI / e2e-and-a11y (push) Blocked by required conditions
CI / lighthouse (push) Blocked by required conditions
CI / android-smoke (push) Waiting to run
CI / pull-request-report (push) Blocked by required conditions
Security / codeql (push) Waiting to run
Security / deps-and-secrets (push) Waiting to run
actions
2026-07-21 16:52:43 +02:00

34 lines
1.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
name: Refactor Builder SOLID
about: Découpage SOLID du flux builder (BuilderFlow)
title: "[Refactor] Builder — découpage SOLID et responsabilités claires"
labels: ["refactor"]
assignees: []
---
## 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`