Skip to content

feat(lean,#15635): generateur de contraintes compositionnelles + demonstrateur (tranches 3+4) (cherry-pick c.1104 dissipation) - #15754

Merged
jsboige merged 1 commit into
mainfrom
fix/1104-cherrypick-15711
Sep 12, 2026
Merged

jsboige merged 1 commit into
mainfrom
fix/1104-cherrypick-15711

Conversation

@jsboige

@jsboige jsboige commented Sep 12, 2026

Copy link
Copy Markdown
Owner

Grain: MED/lean — lane myia-po-2026:CoursIA-2 — prev: LIGHT/docs #15752

feat(lean,#15635): generateur de contraintes compositionnelles + demonstrateur (tranches 3+4) (cherry-pick dissipation c.1104)

c.1107 cherry-pick dissipation INCIDENT c.1104 : PR #15711 originellement squash-mergée sur feature/15635-life-components (branche orpheline, PAS sur main). Ce PR reporte le commit 59461872765e7eb53b1686e3238df849bd4976b0 sur main via cherry-pick depuis origin/main (fc906accb0) → commit 9f6b8fc3f4.

Périmètre du changement

Fichier Δ Rôle
docs/lean/life-components-schema.md +204 (modif) Schéma de motifs/réactions compositionnels — tranches 3+4
scripts/lean/README.md +30 (modif) Index du générateur life_compose
scripts/lean/life_components_fixture.json +120 -120 (refactor) Fixture stable pour tests
scripts/lean/life_compose.py +1378 (nouveau) Générateur de contraintes compositionnelles
scripts/lean/tests/test_life_compose.py +496 (nouveau) Suite de tests pytest

Total : 5 fichiers, +2228 insertions substantielles, 0 conflit au cherry-pick.

Contexte — Epic #15635

L'Epic #15635 (Life Components, tranchage Lean Life en motifs/réactions réutilisables) comprend :

Le différentiel entre ce PR et ce qui est déjà sur main :

  • Sur main : schéma de motifs a802365d59 (tranches 1+2)
  • Manquant sur main : le générateur life_compose.py (1378 lignes) + la suite de tests test_life_compose.py (496 lignes) + le README documentant l'usage

Sans ce PR, life_compose est inaccessible aux autres lanes qui voudraient consommer la Loi II compositionnelle sur Life.

Cherry-pick mechanics

git worktree add ../CoursIA-c1107-15711 -b fix/1104-cherrypick-15711 origin/main
cd ../CoursIA-c1107-15711
git cherry-pick 59461872765e7eb53b1686e3238df849bd4976b0  # 0 conflit
git push origin fix/1104-cherrypick-15711
gh pr create --base main --head fix/1104-cherrypick-15711 ...

Vérification pre-merge

  • baseRefName strict == main : préflight gh pr view N --json baseRefName | jq -e '.baseRefName == "main"' (Tell c.1105-L1 ★★ fondateur, dissipation INCIDENT c.1104).
  • commit accessible sur main : git log origin/main | grep 9f6b8fc3f4 après merge.
  • diff == diff du squash d'origine : git diff 594618727 9f6b8fc3f4 -- scripts/lean/ docs/lean/ doit rendre 0 ligne (substance identique).

Anti-régression contenu

Le contenu substantiel de ce PR a déjà été revu et mergé sur la branche orpheline feature/15635-life-components. Le cherry-pick sur main est une dissipation d'incident (c.1104 baseRefName ≠ main), pas une réécriture.

Co-Authored-By: Claude Haiku 4.5 (1M context) noreply@anthropic.com

@jsboige
jsboige merged commit f8cccaa into main Sep 12, 2026
18 of 20 checks passed
@github-actions

Copy link
Copy Markdown
Contributor

G-VAR-2/3 GENRE signals (advisory, non bloquant, #10020).
La lane `myia-po-2026:CoursIA-2` voit ces signaux actifs sur les mergees du jour (UTC 2026-09-12) :

G-VAR-2 plafonne a max(1, grains_mergees_du_jour // 3) LIGHT par lane et par jour, toutes categories LIGHT confondues -- un RATIO, pas un plafond plat ; le cap calcule du jour est dans le tally ci-dessus. G-VAR-3 interdit deux genres LIGHT consecutifs. Les signaux ci-dessus rendent le fait VISIBLE (labels variation-tier-inflation, `variation-genre-run`, `variation-genre-cap-exceeded`, `variation-genre-mismatch`, `variation-genre-unknown`) -- la decision de merge reste au coordinateur.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant