Files
ben-to/.github/ISSUE_TEMPLATE/05-architecture-no-index-barrels.md
T
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

37 lines
1.6 KiB
Markdown
Raw 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: Architecture sans barrels index
about: Supprimer les index.ts barrel et verrouiller par règle / CI
title: "[Archi] Supprimer les index.ts barrel et verrouiller par règle projet"
labels: ["architecture"]
assignees: []
---
## Contexte
Les packages exposent des barrels `src/index.ts` avec `export * from "..."`. Les alias Vite dans `apps/web/vite.config.ts` pointent vers ces fichiers. Ce pattern complique le suivi des imports réels et la détection de code inutilisé.
## Objectif
Supprimer les barrels `index.ts`, migrer vers des imports **explicites**, et **verrouiller** la réintroduction du pattern (règles projet + CI).
## Travail technique
1. Remplacer les alias Vite (et chemins TypeScript si besoin) par des modules canoniques nommés (ex. `@ben-to/builder/domain`, `@ben-to/recipes/catalog`) ou par des sous-chemins `package.json` **`exports`** sans fichier nommé `index.ts`.
2. Mettre à jour tous les imports (`apps/web`, `packages/**`).
3. Supprimer les anciens `**/src/index.ts` après migration.
## Règles / outillage
- Étendre `.cursor/rules/ben-to-engineering.mdc` : pas de nouveau barrel `index.ts` ; imports depuis modules nommés.
- Optionnel : ESLint `no-restricted-imports` ou script `scripts/quality/` qui échoue si un `**/src/index.ts` barrel réapparaît.
## Critères dacceptation
- [ ] Plus de `export * from` dans des `index.ts` à la racine des packages features/shared concernés.
- [ ] CI (`check:quality` ou lint) empêche la réintroduction du pattern (selon le niveau de durcissement retenu).
## Références
- `apps/web/vite.config.ts`
- `packages/features/*/src/index.ts`, `packages/shared/*/src/index.ts`