Planificateur : mieux répartir les tâches substantielles (cap souple 3/jour)#178
Merged
Merged
Conversation
…3/jour) Le moteur repartit desormais en priorite selon le NOMBRE de taches substantielles (>= 1 h) par jour, et non plus seulement selon les minutes : il remplit d'abord les jours qui en comptent le moins. Le seuil de 3 taches d'au moins une heure par jour monte naturellement a 4, 5... quand tous les jours possibles sont deja pleins, tout en respectant la fenetre imposee par l'echeance ou les evenements fixes. Objectif : bien etaler la charge plutot que de tout regrouper des qu'un creneau se libere puis n'avoir plus rien a faire ensuite. - _PlanJour compte les minutes par tache (taches_min) et expose nb_substantielles() ; cle de tri de placement = (nb_substantielles, charge, jour) pour secables comme non secables. - Les taches < 1 h et les evenements fixes ne comptent pas dans ce plafond. - Tests : cap 3 puis escalade a 4 sur echeance serree ; etalement 1/jour sans echeance. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014HMmo12Zzmj91wAzVeKMf5
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 347119cfc2
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
…(P2) En excluant la tache en cours du comptage des taches substantielles, un jour ayant deja recu un premier morceau de cette tache paraissait « vide » (0 tache substantielle) et continuait de passer devant les jours portant une autre tache, quelle que soit sa charge. Une longue mission secable pouvait donc se concentrer sur un seul jour au lieu de s'etaler, contournant la nouvelle regle de repartition et l'equilibrage des longues missions. Correctif : nb_substantielles() compte desormais toutes les taches (y compris celle en cours). Un jour ou la tache a deja pose un morceau parait « plus rempli », ce qui pousse ses morceaux suivants a s'etaler. Test ajoute : une mission de 6h s'etale bien sur 3 jours meme quand 2 des 3 jours portent deja une autre tache. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014HMmo12Zzmj91wAzVeKMf5
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Objectif
Bien étaler la charge plutôt que de tout regrouper dès qu'un créneau se libère (puis n'avoir plus rien à faire ensuite).
Règle ajoutée
Le moteur répartit désormais en priorité selon le nombre de tâches substantielles (≥ 1 h) par jour, et non plus seulement selon les minutes : il remplit d'abord les jours qui en comptent le moins.
Exemple (vérifié)
Détails techniques
_PlanJourcomptabilise les minutes par tâche (taches_min) et exposenb_substantielles(exclure=...).(nb_substantielles, charge, jour): d'abord le jour le moins « chargé en tâches », puis le moins chargé en minutes, puis le plus tôt.SEUIL_TACHE_SUBSTANTIELLE = 60min.Tests
test_engine_repartition_cap_taches_substantielles(cap 3 puis escalade à 4 sur échéance serrée).test_engine_repartition_etale_sans_echeance(1/jour sans échéance).python3 -m pytest).🤖 Generated with Claude Code
https://claude.ai/code/session_014HMmo12Zzmj91wAzVeKMf5
Generated by Claude Code