--- type: todo date: "2026-05-08" tags: [todo, plan] status: in_progress project: Metamorph spec: tasks/spec.md --- # Metamorph — Plan d'implémentation > Découpage en 14 milestones livrables indépendamment. Chaque milestone a une **DoD** vérifiable. Cocher au fil de l'eau, documenter les écarts dans `CHANGELOG.md`, retours d'expérience dans `tasks/lessons.md`. ## Convention - ☐ = à faire · ☑ = fait · ⚠ = bloqué (commenter) · ↻ = en cours - Branches : `feature/m-` · commits : `feat(m): …` / `fix(m): …` - Chaque PR doit : passer lint/typecheck, mettre à jour `CHANGELOG.md`, mettre à jour `README.md` si surface utilisateur. - **Chaque milestone livre un fichier `tasks/testing-m.md`** (procédure manuelle + automatisée) **et au moins un spec Playwright `e2e/tests/m-*.spec.ts`**. - À la fin de chaque milestone : lancer le subagent `spec-reviewer` (HARD RULE 4 du CLAUDE.md global) avant de marquer le milestone done. --- ## M0 — Bootstrap repo & infra ☐ **But** : squelette buildable de bout en bout sans aucune feature métier. - ☐ `backend/` (Flask 3, Python 3.12, `pyproject.toml` avec uv ou poetry, structure `app/{api,core,db,models,services,i18n}`) - ☐ `frontend/` (Vite + React 18 + TS strict, Tailwind 3, ESLint + Prettier, alias `@/`) - ☐ Tokens design `tasks/design.md` traduits en `frontend/tailwind.config.ts` (palette CSS vars, typo JetBrains Mono / IBM Plex Sans, radii 3/4/6/10). - ☐ Composants UI de base : ``, ``, `` (avec `// `), ``, `