Files
veye-lalwa/tests/fixtures/cc_decisions.html
T
Cyber MawonajandClaude Opus 5 feb5544599 Phase 5 : collecteurs officiels et run de veille — dry-run contre sources réelles
Collecteurs, chacun isolé et tolérant à l'échec :
- legifrance : OAuth PISTE validé en production. Deux pièges vérifiés sur le
  compte réel — seul le couple « Client ID / Client secret » ouvre un jeton
  (la clé d'API donne invalid_client), et les identifiants de production ne
  passent pas en bac à sable.
- senat : liste chronologique des lois promulguées. L'URL du §5.1
  (senat.fr/lois/index.html) est morte ; l'équivalent fonctionnel est
  /dossiers-legislatifs/lois-promulguees.html — 31 lois 2026 relevées.
- conseil_constitutionnel : sans le paramètre ?id=32246 la page des affaires en
  instance ne rend que des QPC et aucune affaire DC. Les colonnes DC et QPC
  diffèrent : lecture par en-tête, jamais par position.

Rapprochement à trois issues — numéro officiel, similarité de titre, et une
zone de signalement où le pipeline s'abstient plutôt que de fusionner.

make update-dry contre les sources réelles : aucun faux positif sur les 52
textes du corpus, et trois apports que le rapport n'avait pas — le numéro
d'affaire 2026-907 DC de la programmation militaire, la date de saisine du
16 juillet pour l'aide à mourir, les décisions du 23 juillet sur 908 et 909.

Une asymétrie de sources est documentée par un test plutôt que corrigée en
douce : le Sénat ne qualifie pas la loi 2026-650 d'organique, Légifrance si.
Le collecteur rapporte ce que sa source dit ; le champ  n'est pas comparé.

Fixtures HTML figées : aucun test ne touche au réseau.
156 tests, 91 % de couverture (chaque module au-dessus du seuil de 70 %).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-25 21:48:56 -04:00

345 lines
19 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<html><body><article class="landing landing--type-decisions landing--view-mode-full">
<header>
<div class="field field--name-field-image-bandeau field--type-entity-reference field--label-hidden field__item"><article class="media media--type-image media--view-mode-bandeau-landing">
<div class="field field--name-field-media-image field--type-image field--label-hidden field__item"> <picture>
<source srcset="/sites/default/files/styles/bandeau_landing_wide/public/2020-07/bg-landing-decisions.jpg.webp?h=06f6671c&amp;itok=Wyn5lULp 1x" media="all and (min-width: 1024px)" type="image/webp" width="1350" height="550">
<source srcset="/sites/default/files/styles/bandeau_landing_narrow/public/2020-07/bg-landing-decisions.jpg.webp?h=06f6671c&amp;itok=yKNGqhX1 1x" media="all and (min-width: 481px) and (max-width: 1023px)" type="image/webp" width="1024" height="417">
<source srcset="/sites/default/files/styles/bandeau_landing_mobile/public/2020-07/bg-landing-decisions.jpg.webp?h=06f6671c&amp;itok=qFsmUyCr 1x" media="all and (max-width: 480px)" type="image/webp" width="480" height="196">
<img loading="lazy" aria-hidden="true" width="480" height="196" src="/sites/default/files/styles/bandeau_landing_mobile/public/2020-07/bg-landing-decisions.jpg.webp?h=06f6671c&amp;itok=qFsmUyCr" alt="Bandeau de la landing Toutes les décisions">
</picture>
</div>
</article>
</div>
<h1 class="title">Les décisions du Conseil Constitutionnel</h1>
<div class="clearfix text-formatted field field--name-field-texte field--type-text-long field--label-hidden field__item"><p>Toutes les décisions, ainsi que des outils statistiques et explicatifs pour mieux connaître lactivité du Conseil constitutionnel depuis sa création</p>
</div>
<div class="field field--name-field-lien-decision field--type-link field--label-hidden field__item"><a href="/les-decisions/decisions-par-type">Comprendre les types de décisions</a></div>
<div class="field field--name-field-lien-affaires-instance field--type-link field--label-hidden field__item"><a href="/decisions/affaires-instances">Les affaires en instance</a></div>
<div class="formulaire-recherche-decisions"><form data-drupal-selector="cc-landing-recherche-decisions" action="/decisions" method="post" id="cc-landing-recherche-decisions" accept-charset="UTF-8">
<h3 class="titre-formulaire" data-drupal-selector="edit-titre">Rechercher une décision</h3>
<div class="js-form-item form-item js-form-type-search form-type-search js-form-item-textfield form-item-textfield">
<label for="edit-textfield">Rechercher un terme ou un numéro de décision</label>
<input list="autocomplete-list" data-drupal-selector="edit-textfield" type="search" id="edit-textfield" name="textfield" value="" size="60" maxlength="128" placeholder="Ex: égalité devant la loi" class="form-search">
</div>
<datalist id="autocomplete-list" data-drupal-selector="edit-autocomplete-list"></datalist>
<div class="js-form-item form-item js-form-type-select form-type-select js-form-item-types form-item-types form-no-label">
<select data-drupal-selector="edit-types" id="edit-types" name="types" class="form-select"><option value="all">Tous les types</option><option value="32205">Question prioritaire de constitutionnalité</option><option value="32246">Constitutionnalité des lois, traités, des règlements des Assemblées</option><option value="32797">Loi ordinaire</option><option value="32800">Loi organique</option><option value="32803">Traité</option><option value="32806">Règlement des assemblées</option><option value="32211">Élections à l'Assemblée nationale</option><option value="32220">Élections au Sénat</option><option value="32224">Loi du pays de Nouvelle-Calédonie</option><option value="32221">Compétences outre-mer</option><option value="32223">Déclassement</option><option value="32215">Incompatibilité des parlementaires</option><option value="32400">Obligations fiscales</option><option value="32216">Déchéance de parlementaires</option><option value="32222">Fins de non-recevoir</option><option value="32212">Avis de l'article 16</option><option value="32219">Élection présidentielle</option><option value="32214">Fonctionnement du Conseil constitutionnel</option><option value="32218">Référendum</option><option value="32403">Référendum d'initiative partagée</option><option value="32217">Divers élections</option><option value="32213">Autres textes et décisions</option></select>
</div>
<div class="block-facets block-facet-date-range-picker js-form-wrapper form-wrapper" id="periode" data-drupal-selector="edit-date-range"><div class="form-group js-form-wrapper form-wrapper" data-drupal-selector="edit-form-group" id="edit-form-group"><label data-drupal-selector="edit-label">Par période</label>
<div class="js-form-item form-item js-form-type-date form-type-date js-form-item-date-from form-item-date-from form-no-label">
<span class="clear-input hidden">X</span>
<input id="edit-date-from" name="date_from" data-drupal-selector="edit-date-from" type="date" value="" class="form-date">
</div>
<div class="js-form-item form-item js-form-type-date form-type-date js-form-item-date-to form-item-date-to form-no-label">
<span class="clear-input hidden">X</span>
<input id="edit-date-to" name="date_to" data-drupal-selector="edit-date-to" type="date" value="" class="form-date">
</div>
</div>
</div>
<input data-drupal-selector="edit-submit" type="submit" id="edit-submit" name="op" value="Lancer une recherche" class="button js-form-submit form-submit">
<input class="reset reload-page button js-form-submit form-submit" data-drupal-selector="edit-reset" type="submit" id="edit-reset" name="op" value="Réinitialiser">
<a href="/recherche-experte" class="lien-page-recherche" data-smarttag="[]" data-drupal-selector="edit-lien" id="edit-lien">Plus de critères de recherche</a><input autocomplete="off" data-drupal-selector="form-if1ifd6wffso28jvmkzvnsozeco7wqt14mauqf8sdi" type="hidden" name="form_build_id" value="form-_IF1iFd6WfFSo28JVMkZvnSozEcO7wQt14Mauqf8sdI">
<input data-drupal-selector="edit-cc-landing-recherche-decisions" type="hidden" name="form_id" value="cc_landing_recherche_decisions">
</form>
</div>
</header>
<div class="sidebar">
<h3>Outils et ressources</h3>
<div class="content">
<div class="item">
<div class="field field--name-field-date-analytique field--type-string field--label-above">
<div class="field__label">Les tables analytiques</div>
<div class="field__item">À jour au 1<sup>er</sup> septembre 2024</div>
</div>
<div class="field field--name-field-reference-analytique field--type-entity-reference field--label-hidden field__item"><article class="media media--type-file media--view-mode-ressource-decisions">
<a href="https://www.conseil-constitutionnel.fr/sites/default/files/2024-10/1958-202408_tables.pdf">Tables analytiques 1958-2024</a><div class="type-size"><span class="type">Pdf</span>
<span class="size">33.95 Mo</span>
</div>
</article>
</div>
<div class="field field--name-field-lien-analytique field--type-link field--label-hidden field__item"><a href="/les-decisions/tables-analytiques">En savoir plus</a></div>
</div>
<div class="item">
<div class="field field--name-field-lien-dispositions field--type-link field--label-above">
<div class="field__label">Recueil des dispositions validées</div>
<div class="field__item"><a href="/dispositions">Voir le recueil</a></div>
</div>
</div>
<div class="item">
<div class="field field--name-field-date-bilan field--type-string field--label-above">
<div class="field__label">Bilan statistique</div>
<div class="field__item">À jour au 30 juin 2025</div>
</div>
<div class="field field--name-field-lien-bilan field--type-link field--label-hidden field__item"><a href="/bilan-statistique">Voir le bilan</a></div>
</div>
<div class="item">
<div class="field field--name-field-lien-archive-seance field--type-link field--label-above">
<div class="field__label">Archives des comptes rendus de séances</div>
<div class="field__item"><a href="/les-decisions/archives-des-comptes-rendus-de-seances">En savoir plus</a></div>
</div>
</div>
</div>
</div>
<div class="wrapper-content">
<div class="wrapper-dernieres-decisions"><h2>Les dernières décisions</h2>
<article class="node node--type-decision node--promoted node--view-mode-synthetique">
<a href="/decision/2026/2026908DC.htm" rel="bookmark" title="Décision&nbsp;n°&nbsp;2026-908 DC du 23 juillet 2026">
<div class="node__content">
<h3 class="title">Décision&nbsp;&nbsp;2026-908 DC du 23 juillet 2026</h3>
<div class="field field--name-field-titre-complet field--type-string-long field--label-hidden field__item">
<p>Loi organique relative au renforcement des juridictions criminelles</p>
</div>
<div class="field field--name-field-solution-normalisee field--type-string field--label-hidden field__item">
<p>Conformité</p>
</div>
</div>
</a>
</article>
<article class="node node--type-decision node--promoted node--view-mode-synthetique">
<a href="/decision/2026/2026909DC.htm" rel="bookmark" title="Décision n° 2026-909 DC du 23 juillet 2026">
<div class="node__content">
<h3 class="title">Décision n° 2026-909 DC du 23 juillet 2026</h3>
<div class="field field--name-field-titre-complet field--type-string-long field--label-hidden field__item">
<p>Loi sur la justice criminelle et le respect des victimes</p>
</div>
<div class="field field--name-field-solution-normalisee field--type-string field--label-hidden field__item">
<p>Non conformité partielle - réserve</p>
</div>
</div>
</a>
</article>
<article class="node node--type-decision node--promoted node--view-mode-synthetique">
<a href="/decision/2026/2026906DC.htm" rel="bookmark" title="Décision&nbsp;n°&nbsp;2026-906 DC du 23&nbsp;juillet&nbsp;2026">
<div class="node__content">
<h3 class="title">Décision&nbsp;&nbsp;2026-906 DC du 23&nbsp;juillet&nbsp;2026</h3>
<div class="field field--name-field-titre-complet field--type-string-long field--label-hidden field__item">
<p>Loi visant à renforcer la sécurité, la rétention administrative et la prévention des risques dattentat</p>
</div>
<div class="field field--name-field-solution-normalisee field--type-string field--label-hidden field__item">
<p>Conformité - réserve</p>
</div>
</div>
</a>
</article>
<article class="node node--type-decision node--promoted node--view-mode-synthetique">
<a href="/decision/2026/20261213QPC.htm" rel="bookmark" title="Décision n° 2026-1213 QPC du 10 juillet 2026">
<div class="node__content">
<h3 class="title">Décision n° 2026-1213 QPC du 10 juillet 2026</h3>
<div class="field field--name-field-titre-complet field--type-string-long field--label-hidden field__item">
<p>Société Altaroc Partners et autres [Notification du droit de se taire à la personne à laquelle sont notifiés des griefs dans le cadre d'une procédure de sanction par lAutorité des marchés financiers]</p>
</div>
<div class="field field--name-field-solution-normalisee field--type-string field--label-hidden field__item">
<p>Conformité</p>
</div>
</div>
</a>
</article>
<article class="node node--type-decision node--promoted node--view-mode-synthetique">
<a href="/decision/2026/20269LP.htm" rel="bookmark" title="Décision n°&nbsp;2026-9&nbsp;LP du 9 juillet 2026">
<div class="node__content">
<h3 class="title">Décision n°&nbsp;2026-9&nbsp;LP du 9 juillet 2026</h3>
<div class="field field--name-field-titre-complet field--type-string-long field--label-hidden field__item">
<p>Loi du pays modifiant le code minier de la Nouvelle-Calédonie (partie législative)</p>
</div>
<div class="field field--name-field-solution-normalisee field--type-string field--label-hidden field__item">
<p>Conformité</p>
</div>
</div>
</a>
</article>
<article class="node node--type-decision node--promoted node--view-mode-synthetique">
<a href="/decision/2026/2026326L.htm" rel="bookmark" title="Décision n° 2026-326 L du 9 juillet 2026">
<div class="node__content">
<h3 class="title">Décision n° 2026-326 L du 9 juillet 2026</h3>
<div class="field field--name-field-titre-complet field--type-string-long field--label-hidden field__item">
<p>Nature juridique de certaines dispositions de larticle&nbsp;L.&nbsp;122-8 du code de l’énergie</p>
</div>
<div class="field field--name-field-solution-normalisee field--type-string field--label-hidden field__item">
<p>Réglementaire</p>
</div>
</div>
</a>
</article>
<article class="node node--type-decision node--promoted node--view-mode-synthetique">
<a href="/decision/2026/20261211QPC.htm" rel="bookmark" title="Décision n° 2026-1211 QPC du 3 juillet 2026">
<div class="node__content">
<h3 class="title">Décision n° 2026-1211 QPC du 3 juillet 2026</h3>
<div class="field field--name-field-titre-complet field--type-string-long field--label-hidden field__item">
<p>M.&nbsp;Maurice&nbsp;D. [Interdiction de linscription au tableau de lordre des médecins, chirurgiens dentistes et sages-femmes inscrits ou enregistrés dans un autre État]</p>
</div>
<div class="field field--name-field-solution-normalisee field--type-string field--label-hidden field__item">
<p>Conformité</p>
</div>
</div>
</a>
</article>
<article class="node node--type-decision node--promoted node--view-mode-synthetique">
<a href="/decision/2026/20261212QPC.htm" rel="bookmark" title="Décision n° 2026-1212 QPC du 3&nbsp;juillet&nbsp;2026">
<div class="node__content">
<h3 class="title">Décision n° 2026-1212 QPC du 3&nbsp;juillet&nbsp;2026</h3>
<div class="field field--name-field-titre-complet field--type-string-long field--label-hidden field__item">
<p>M.&nbsp;Valeriu M. [Circonstances justifiant laggravation de la suspension prononcée par lAgence française de lutte contre le dopage]</p>
</div>
<div class="field field--name-field-solution-normalisee field--type-string field--label-hidden field__item">
<p>Non conformité totale</p>
</div>
</div>
</a>
</article>
<article class="node node--type-decision node--promoted node--view-mode-synthetique">
<a href="/decision/2026/2026325L.htm" rel="bookmark" title="Décision n° 2026-325 L du 2 juillet 2026">
<div class="node__content">
<h3 class="title">Décision n° 2026-325 L du 2 juillet 2026</h3>
<div class="field field--name-field-titre-complet field--type-string-long field--label-hidden field__item">
<p>Nature juridique de certaines dispositions de larticle L.&nbsp;1422-3 du code du travail et de larticle L.&nbsp;131-3 du code de lentrée et du séjour des étrangers et du droit dasile</p>
</div>
<div class="field field--name-field-solution-normalisee field--type-string field--label-hidden field__item">
<p>Réglementaire</p>
</div>
</div>
</a>
</article>
<article class="node node--type-decision node--promoted node--view-mode-synthetique">
<a href="/decision/2026/20261210QPC.htm" rel="bookmark" title="Décision n° 2026-1210 QPC du 25 juin 2026">
<div class="node__content">
<h3 class="title">Décision n° 2026-1210 QPC du 25 juin 2026</h3>
<div class="field field--name-field-titre-complet field--type-string-long field--label-hidden field__item">
<p>Société Orange SA [Cumul de poursuites et de sanctions en cas de manquement aux règles encadrant la prospection directe par voie automatisée]</p>
</div>
<div class="field field--name-field-solution-normalisee field--type-string field--label-hidden field__item">
<p>Non conformité totale - effet différé - réserve transitoire</p>
</div>
</div>
</a>
</article>
</div>
<a href="/les-decisions" class="lien-toutes-decisions">Toutes les décisions</a>
</div></article><article class="node node--type-decision node--promoted node--view-mode-synthetique">
<a href="/decision/2026/2026908DC.htm" rel="bookmark" title="Décision&nbsp;n°&nbsp;2026-908 DC du 23 juillet 2026">
<div class="node__content">
<h3 class="title">Décision&nbsp;&nbsp;2026-908 DC du 23 juillet 2026</h3>
<div class="field field--name-field-titre-complet field--type-string-long field--label-hidden field__item">
<p>Loi organique relative au renforcement des juridictions criminelles</p>
</div>
<div class="field field--name-field-solution-normalisee field--type-string field--label-hidden field__item">
<p>Conformité</p>
</div>
</div>
</a>
</article><article class="node node--type-decision node--promoted node--view-mode-synthetique">
<a href="/decision/2026/2026909DC.htm" rel="bookmark" title="Décision n° 2026-909 DC du 23 juillet 2026">
<div class="node__content">
<h3 class="title">Décision n° 2026-909 DC du 23 juillet 2026</h3>
<div class="field field--name-field-titre-complet field--type-string-long field--label-hidden field__item">
<p>Loi sur la justice criminelle et le respect des victimes</p>
</div>
<div class="field field--name-field-solution-normalisee field--type-string field--label-hidden field__item">
<p>Non conformité partielle - réserve</p>
</div>
</div>
</a>
</article><article class="node node--type-decision node--promoted node--view-mode-synthetique">
<a href="/decision/2026/2026906DC.htm" rel="bookmark" title="Décision&nbsp;n°&nbsp;2026-906 DC du 23&nbsp;juillet&nbsp;2026">
<div class="node__content">
<h3 class="title">Décision&nbsp;&nbsp;2026-906 DC du 23&nbsp;juillet&nbsp;2026</h3>
<div class="field field--name-field-titre-complet field--type-string-long field--label-hidden field__item">
<p>Loi visant à renforcer la sécurité, la rétention administrative et la prévention des risques dattentat</p>
</div>
<div class="field field--name-field-solution-normalisee field--type-string field--label-hidden field__item">
<p>Conformité - réserve</p>
</div>
</div>
</a>
</article></body></html>