Phase 2 : parseur de l'annexe sec10 — 52 textes, 12 affaires CC
Briques réutilisables : - dates_fr : lit les formes réelles du corpus (« 23 avr. 2026 (JO 24 avr.) », « 1er juill. », « 24.07.2026 ») et distingue une date exacte d'une échéance prévisionnelle (« Fin août 2026 » → situé au 25, libellé conservé, jamais présenté comme un fait) - markdown : découpage des tableaux (barres échappées, lignes courtes), nettoyage, extraction des marqueurs [^dim07-24^] / [^phase5-3.1^] Parseur sec10 : - 27 lois promulguées + 21 lignes simples + 2 lignes éclatées en 4 textes = 52 - éclatement justifié : les lignes « accords Kazakhstan et Colombie » et « MACF » décrivent chacune deux textes de statuts différents - migration 002 : regime_libertes stocké à part, faute de savoir quel public la cotation globale du rapport vise — dérouler « droits+ » sur les trois publics aurait inventé une ventilation absente de la source - migration 003 : la facette « devant le CC » couvre aussi les saisines sans numéro d'affaire (programmation militaire), sinon 6 textes au lieu de 7 Trois pièges du corpus, corrigés et couverts par des tests : - « eau » matchait comme sous-chaîne dans réseaux / drapeau / Retailleau - une décision citée sans saisine créait une fausse saisine (loi Philippine) - la date de saisine était pêchée dans la colonne « échéance », datant la saisine de l'aide à mourir du mois suivant 72 tests, 90 % de couverture sur pipeline/. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
31d3935bce
commit
c36b8dc631
@@ -0,0 +1,43 @@
|
||||
-- ============================================================================
|
||||
-- Migration 003 — la facette « devant le Conseil constitutionnel »
|
||||
--
|
||||
-- Trois situations désignent un texte suspendu au Conseil constitutionnel, et
|
||||
-- le corpus les documente inégalement :
|
||||
--
|
||||
-- 1. le statut vaut littéralement `saisie_cc` ;
|
||||
-- 2. une affaire est enregistrée avec le résultat `en_instance` (« 2026-915
|
||||
-- DC ») — c'est le résultat qui fait foi, et non l'absence de date de
|
||||
-- décision : le corpus cite plusieurs décisions rendues sans les dater
|
||||
-- (« Mixte ; 25 articles censurés (déc. 2026-903 DC) »), or celles-là ne
|
||||
-- sont plus en instance ;
|
||||
-- 3. la source signale la saisine sans donner de numéro d'affaire — cas de la
|
||||
-- loi actualisant la programmation militaire, « Conseil constitutionnel
|
||||
-- saisi le 6 juill. » (`sec10.md`, tableau B). Aucune ligne `decisions_cc`
|
||||
-- ne peut être créée faute de numéro : c'est l'événement `saisine_cc`,
|
||||
-- non suivi d'un `decision_cc`, qui fait foi.
|
||||
--
|
||||
-- Sans le troisième cas, la facette remonte 6 textes là où le §8.7 du cahier
|
||||
-- des charges en attend au moins 7.
|
||||
-- ============================================================================
|
||||
|
||||
DROP VIEW v_textes;
|
||||
|
||||
CREATE VIEW v_textes AS
|
||||
SELECT
|
||||
t.*,
|
||||
(SELECT COUNT(*) FROM sources s WHERE s.texte_id = t.id) AS nb_sources,
|
||||
(SELECT COUNT(*) FROM evenements e WHERE e.texte_id = t.id) AS nb_evenements,
|
||||
CASE
|
||||
WHEN t.statut = 'saisie_cc' THEN 1
|
||||
WHEN EXISTS (SELECT 1 FROM decisions_cc d
|
||||
WHERE d.texte_id = t.id
|
||||
AND d.date_decision IS NULL
|
||||
AND COALESCE(d.resultat, 'en_instance') = 'en_instance') THEN 1
|
||||
WHEN EXISTS (SELECT 1 FROM evenements e
|
||||
WHERE e.texte_id = t.id AND e.type_etape = 'saisine_cc')
|
||||
AND NOT EXISTS (SELECT 1 FROM evenements e
|
||||
WHERE e.texte_id = t.id AND e.type_etape = 'decision_cc')
|
||||
AND t.statut <> 'promulguee' THEN 1
|
||||
ELSE 0
|
||||
END AS devant_cc
|
||||
FROM textes t;
|
||||
Reference in New Issue
Block a user