feat(cooking): moteur d'optimisation des étapes de batch-cooking #9

Closed
kyuno wants to merge 1 commit from feat/cooking-optimizer-engine into main
Owner

Cœur pur du module « Calcul batch-cooking » (specs/batch-cooking-architecture.md, jusqu'ici TODO) : optimizeCookingPlan() prend les recettes planifiées d'une semaine et les réorganise en phases ordonnées.

  • Mutualisation de la mise en place : une même technique de découpe (chop, peel, mince…) appliquée au même ingrédient par ≥ 2 recettes est regroupée en une seule tâche merged-prep (les oignons de plusieurs recettes = une découpe).
  • Parallélisme : les cuissons passives (simmer, braise, bake, marinate…) sont poussées en tâche de fond des phases suivantes pendant qu'une autre recette avance en actif.
  • Fonction pure sans base (même split matchXxx pur / loadXxx DB-backed que ingredient-matcher / tech-step-matcher), testable en isolation.

Types partagés : OptimizedCookingPlanView + schéma getCookingSessionSchema.
Tests Mocha purs (6 cas) : merge, non-merge d'une découpe solo, tâche de fond, mise à l'échelle par portions, plan vide, légende.

Bas de la stack cooking session. PR suivante : feat/cooking-session-api → cette branche.

🤖 Généré avec Claude Code

Cœur pur du module « Calcul batch-cooking » (`specs/batch-cooking-architecture.md`, jusqu'ici TODO) : `optimizeCookingPlan()` prend les recettes planifiées d'une semaine et les réorganise en phases ordonnées. - **Mutualisation de la mise en place** : une même technique de découpe (chop, peel, mince…) appliquée au même ingrédient par ≥ 2 recettes est regroupée en une seule tâche `merged-prep` (les oignons de plusieurs recettes = une découpe). - **Parallélisme** : les cuissons passives (simmer, braise, bake, marinate…) sont poussées en tâche de fond des phases suivantes pendant qu'une autre recette avance en actif. - Fonction pure sans base (même split `matchXxx` pur / `loadXxx` DB-backed que `ingredient-matcher` / `tech-step-matcher`), testable en isolation. Types partagés : `OptimizedCookingPlanView` + schéma `getCookingSessionSchema`. Tests Mocha purs (6 cas) : merge, non-merge d'une découpe solo, tâche de fond, mise à l'échelle par portions, plan vide, légende. Bas de la stack cooking session. PR suivante : `feat/cooking-session-api` → cette branche. 🤖 Généré avec [Claude Code](https://claude.com/claude-code)
kyuno added 1 commit 2026-08-28 12:45:34 +02:00
feat(cooking): moteur d'optimisation des etapes de batch-cooking
Some checks failed
CI / test (push) Failing after 3s
CI / lint (push) Successful in 1m59s
CI / build (push) Successful in 2m1s
CI / e2e (push) Successful in 9m42s
CI / intent-service-test (push) Successful in 15m43s
33b8a85204
Coeur pur du module "Calcul batch-cooking" (specs/batch-cooking-architecture.md,
jusqu'ici TODO) : optimizeCookingPlan() prend les recettes planifiees d'une
semaine et les reorganise en phases ordonnees.

- Mutualisation de la mise en place : une meme technique de decoupe (chop, peel,
  mince...) appliquee au meme ingredient par >= 2 recettes est regroupee en une
  seule tache "merged-prep" (les oignons de plusieurs recettes = une decoupe).
- Parallelisme : les cuissons passives (simmer, braise, bake, marinate...) sont
  poussees en tache de fond des phases suivantes pendant qu'une autre recette
  avance en actif.
- Fonction pure sans base (meme split matchXxx pur / loadXxx DB-backed que
  ingredient-matcher / tech-step-matcher), testable en isolation.

Types partages : OptimizedCookingPlanView + schema getCookingSessionSchema.
Tests Mocha purs (6 cas) : merge, non-merge d'une decoupe solo, tache de fond,
mise a l'echelle par portions, plan vide, legende.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Author
Owner

Regroupée dans #11 (une seule PR pour tout le bloc « Commencer à cuisiner »). Fermée.

Regroupée dans #11 (une seule PR pour tout le bloc « Commencer à cuisiner »). Fermée.
kyuno closed this pull request 2026-08-28 15:27:27 +02:00
Some checks failed
CI / test (push) Failing after 3s
CI / lint (push) Successful in 1m59s
CI / build (push) Successful in 2m1s
CI / e2e (push) Successful in 9m42s
CI / intent-service-test (push) Successful in 15m43s

Pull request closed

Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: kyuno/batchCooking#9
No description provided.