fix(votes): aggancia all'atto i voti a codice secco via seduta monotematica#71
Conversation
…matica Sulla seduta s19_689 (legge elettorale, 14/7/2026) manca del tutto ocd:rif_attoCamera e solo 2 voti su 12 citano l'atto nel testo: il voto sull'emendamento preferenze (188-187) restava senza bill_uri, invisibile a chi filtra per numero di atto. Terzo livello di fallback: se l'intera seduta verte su un solo atto, quello e' l'atto anche dei voti muti. Monotematicita' calcolata con query dedicata sulla seduta completa (mai sulle righe filtrate in memoria), unendo rif_attoCamera e i numeri citati nelle altre descrizioni. Mozioni e risoluzioni escluse: sono AIC a se' stanti. +3 test, nota wiki OKF, helper resolveActUris condiviso. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Il numero d'atto si ripete tra legislature: senza chiavare la cache numero→URI anche sulla legislatura, una finestra a cavallo di 18 e 19 poteva agganciare un voto della 18 a un atto ac19_*. Documentato in LOG il residuo su --bill-code (filtra dc:description lato server, a monte dell'ereditarieta'). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
| Filename | Overview |
|---|---|
| src/tools/votes.ts | Adds monothematic-session bill inheritance, legislature-scoped act resolution, and AIC exclusions for Camera votes. |
| src/tools/bill.ts | Applies the existing HTML cleanup helper to bill show label, title, and description fields. |
| src/tools/tools.test.ts | Adds integration coverage for vote inheritance, AIC exclusion, cross-legislature URI matching, and bill text cleanup. |
| docs/lod-wiki/camera/votazioni-atto-collegato.md | Documents the missing Camera vote-to-act link patterns and the monothematic-session fallback. |
Reviews (4): Last reviewed commit: "fix(votes): guardia AIC estesa a interro..." | Re-trigger Greptile
There was a problem hiding this comment.
Pull request overview
Questo PR migliora votes (Camera) per ridurre i falsi “senza atto” quando ocd:rif_attoCamera è assente e dc:description contiene solo un codice emendamento: se la seduta è monotematica, l’atto viene ereditato anche dai voti “muti”, evitando buchi rilevanti per chi filtra per numero atto.
Changes:
- Aggiunto un terzo livello di fallback (
inheritBillFromSession) che eredita l’atto dalla seduta solo quando la seduta risulta monotematica, escludendo mozioni/risoluzioni (AIC). - Estratto l’helper
resolveActUrisper risolvere numero atto base → URI verificando viadc:identifier, con cache chiavata anche per legislatura. - Aggiunti test di integrazione e documentazione wiki (nuova nota + link nell’indice) e aggiornato
LOG.md.
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| src/tools/votes.ts | Introduce inheritBillFromSession come fallback monotematico + helper resolveActUris per risoluzione URI atti per legislatura. |
| src/tools/tools.test.ts | Aggiunge test su seduta monotematica (EM 1.1077 / 188-187), non-regressione su seduta multi-atto, finestra cross-legislatura, e guardia AIC. |
| LOG.md | Aggiunge la voce di rilascio/nota per il fix votes (Camera). |
| docs/lod-wiki/camera/votazioni-atto-collegato.md | Nuova nota wiki sulla “trappola” rif_attoCamera mancante e strategia di ricostruzione/ereditarietà. |
| docs/lod-wiki/camera/index.md | Collega la nuova nota wiki nell’indice Camera. |
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…o xsd bill show restituiva i campi di testo grezzi: entita non decodificate e, su ~6.500 atti, il suffisso ^^http://...#string incollato dentro al valore del literal alla fonte (es. ac19_2316, legge IA). bills list applicava gia' decodeHtml, bill show no. +1 test. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
Aggiunto in questa PR anche il gap 2 dello stesso report news-agent (
Caso concreto, dopo:
Nota sulla suite: i test Camera sono tutti verdi, i fallimenti Senato sono 403 del WAF dopo le molte query di verifica di stasera — endpoint, non codice; questa PR non tocca percorsi Senato. |
… Greptile PR #71) Difesa in profondita': sul grafo non esiste una sola dc:description che inizi per quei prefissi (0 su 257.751 votazioni), ma il modo di sbagliare di questa guardia e' attribuire un provvedimento a un voto che non lo riguarda, quindi l'elenco viene chiuso comunque. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Il problema
Sulla seduta
s19_689(14/7/2026, prima lettura della legge elettorale) il grafo OCD non ha nessuna triplaocd:rif_attoCamera, e solo 2 votazioni su 12 citano"PDL 2822-A"nella descrizione. Le altre dieci hannodc:descriptiona codice secco —"EM 1.1077","SUBEM 0.1.1077.4"— e restavano senzabill_uri.Tra queste c'è il voto sull'emendamento preferenze, 188 contrari / 187 favorevoli: il voto che ha deciso la vicenda. Chi filtrava i voti per numero di atto lo perdeva.
Non è un caso isolato: circa metà delle votazioni Camera è priva di
rif_attoCamerain tutte e tre le legislature nel grafo.La soluzione
Terzo livello di fallback in cascata dopo
rif_attoCamerae il numero citato nel testo: quando l'intera seduta verte su un solo atto, quello è l'atto anche dei voti muti.Due cautele nel calcolo della monotematicità:
--date-fromo unLIMITstretto possono mostrare un solo atto mentre la seduta ne tratta quattro;rif_attoCamerae i numeri citati nelle descrizioni delle altre votazioni — sus19_689il primo insieme è vuoto.Mozioni e risoluzioni sono escluse: sono AIC a sé stanti, ereditare l'atto della seduta le legherebbe a un provvedimento che non le riguarda.
La cache numero → URI è chiavata anche sulla legislatura: i numeri d'atto si ripetono tra la 18 e la 19, e una finestra a cavallo delle due avrebbe attribuito a un voto della 18 un URI
ac19_*.Numeri
dc:identifier.Test
+4 test: aggancio del voto 188-187, non-regressione su seduta multi-atto (25/6/2025, quattro atti), guardia mozioni/risoluzioni, coerenza legislatura↔atto su finestra cross-legislatura. Tutti e 10 i test
votesverdi.I test
senato-votesfalliscono con 403 dell'endpoint Senato (WAF), come già nelle release precedenti: non toccano questo percorso di codice, che è solo Camera.Residuo noto
--bill-codefiltradc:descriptionlato server, quindi a monte dell'ereditarietà: i voti a codice secco restano fuori da quel percorso e vanno raggiunti per intervallo di date filtrando poi subill_number. Renderlo consapevole della seduta significherebbe selezionare l'intera seduta e filtrare a valle, con ilLIMITche non varrebbe più sulle righe restituite — tenuto fuori deliberatamente da questa PR.Documentazione
Nuova nota wiki OKF
docs/lod-wiki/camera/votazioni-atto-collegato.md: conteggi del buco per legislatura, le tre famiglie didc:description(ODG ~58%, codice secco ~19%, AIC ~20%), distribuzione degli atti per seduta.Emerso dal report news-agent
2026-07-20_19-49.md.🤖 Generated with Claude Code