Phase 4 : impacts par public, arbitrages, calendrier — les 7 critères §7 passent

Impacts : le rapport ne dresse pas de tableau texte × public, mais il consacre
un chapitre à chacun (sec04 individus, sec05 associations, sec06 entreprises).
C'est ce placement éditorial — un choix explicite de l'auteur, pas une
inférence — qui sert de base à la ventilation. Le sens vient de la cotation
manuelle de l'annexe quand elle existe, sinon du vocabulaire, et le texte est
alors marqué « à vérifier » (17 cas).

Arbitrages de la validation de phase 5 portés en points clés :
loi-riposte affiche l'AFD à 500 €, et le montant de 1 500 € n'apparaît que
présenté comme la version sénatoriale abandonnée.

Migration 004 + calendrier : 9 échéances nationales transcrites du corpus avec
leur extrait source. Celle des sénatoriales porte explicitement
concerne_guadeloupe = 0 — série 1, renouvelée en 2023.

Défaut de qualité corrigé : un titre de section nommant plusieurs textes
(« Cohésion républicaine, logement, GloBE, entrisme ») faisait hériter chaque
phrase de transition aux quatre, polluant leurs résumés. Une section n'est
dédiée que si elle nomme un seul texte.

118 tests, 92 % de couverture. Les 7 garde-fous du §7 et les 5 démos du §8.7
sont automatisés dans tests/test_acceptation.py.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Cyber Mawonaj
2026-07-25 20:23:51 -04:00
co-authored by Claude Opus 5
parent c28243cf87
commit f3e546cfc4
8 changed files with 922 additions and 3 deletions
+7 -1
View File
@@ -136,7 +136,13 @@ def parser() -> LectureChapitres:
nom = f"sec{numero:02d}"
for section in decouper_sections(fichier.read_text(encoding="utf-8"), niveau_max=4):
cibles_du_titre = _textes_designes(section.titre)
nommes_au_titre = _textes_designes(section.titre)
# Un titre qui nomme plusieurs textes — « 3.2.3 Cohésion
# républicaine, logement, GloBE, entrisme » — n'est dédié à aucun.
# Sans cette restriction, chaque phrase de transition de la section
# (« Septembre 2026 sera un mois réglementaire… ») atterrirait dans
# le résumé des quatre textes à la fois.
cibles_du_titre = nommes_au_titre if len(nommes_au_titre) == 1 else []
for paragraphe in _paragraphes(section.corps):
for phrase in _phrases(paragraphe):