You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
refactor(vote-detail): togli gli esempi di sigla dai testi utente + LOG
I messaggi citavano AZ-PER-RE → APERRE e la forma "M-*" delle componenti
Misto: sono fatti di oggi sulla fonte, che diventerebbero testo sbagliato e
branch morta se la Camera allinea le sigle. L'hint mantiene il valore
diagnostico senza codificarli, perché nomina già il candidato reale e elenca
le sigle restituite dalla query; la nota sul Misto ora dipende dalla stringa
richiesta, non dalla forma dei dati.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: LOG.md
+8Lines changed: 8 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,13 @@
1
1
# LOG
2
2
3
+
## 2026-07-26
4
+
5
+
- **fix `vote-detail` — `--group-acronym` non restituisce più zero righe in silenzio** (#77, PR #80) — la sigla passata dall'utente finiva dritta in un `FILTER(STR(?_sg) = "…")`: se non esisteva nel dataset votazioni il risultato era vuoto, con exit 0 e nessun avviso, indistinguibile da "il gruppo non ha votato". E le sigle divergono per davvero: `groups list` espone `AZ-PER-RE` e `IV-CR`, i voti della stessa legislatura portano `APERRE` e `IVICRE`, e il Misto lato voto è disaggregato in `M-ALT`/`M-MIN`/`M-+EUR`. Seguendo il flusso documentato (cerca la sigla in `groups`, poi filtra) si concludeva il falso. Nemmeno `group_uri` era una chiave utilizzabile: per Azione è `gr4135` nella risorsa gruppo e `gr4212` sui voti, e le componenti del Misto ce l'hanno vuoto. Ora, quando `--group-acronym` è valorizzato, una query leggera recupera le sigle **realmente presenti in quella votazione** e la richiesta viene risolta contro quelle (esatta → case-insensitive → senza punteggiatura); se risolve, la query principale è invariata, quindi performance e semantica del `LIMIT` non cambiano. Se non risolve: righe vuote più una nota (stderr in CLI, testo nell'MCP) con l'elenco delle sigle presenti, la più simile in testa (Dice sui bigrammi, soglia 0,4) e la spiegazione per il Misto. Nessun alias `AZ-PER-RE → APERRE` nel codice: il disallineamento è della fonte e si romperebbe al primo cambio di denominazione — il codice interroga il dato e rende visibile il problema, non lo compensa. +10 test sulle due funzioni pure, 199/199 verdi. Emerso dal report news-agent `2026-07-26_08-58.md`. **Residuo noto**: le sigle sono raccolte senza applicare `--vote-type`, quindi una sigla valida ma senza voti di quel tipo resta un vuoto senza nota — comportamento corretto (il gruppo ha votato, non in quel modo), fuori dallo scopo di #77.
6
+
7
+
- **segnalata a monte la radice del problema** — punto 9 della nota `docs/note-gestori-lod/camera-assistenza-dati.md`: sigla della risorsa gruppo diversa da quella dei voti (`gr4211`: `IV-CR` nella label, `IVICRE` in `ocd:siglaGruppo`), URI referenziati dalle votazioni ma mai descritti (`gr4212` con 160.881 voti e `gr4234`: zero triple come soggetto), denominazione storica sovrascritta (`gr4135` ha oggi la label `AZ-PER-RE` ma i suoi 88.475 voti portano `AIV-RE`), componenti del Misto senza URI, e nessuna proprietà "sigla" sulla risorsa gruppo — l'acronimo è estraibile solo dalla label, che per giunta arriva troncata (punto 4 della stessa nota). Il fenomeno è generale e vale per entrambe le camere, quindi è anche scheda **B5** del dossier di campagna (`docs/campagna-parlamento-aperto/02-dossier-tecnico.md`) con riga in tabella di sintesi: al Senato il legame voto→gruppo non esiste proprio (la votazione punta ai senatori con `osr:favorevole`/`osr:contrario`/`osr:astenuto`, nessuna proprietà di gruppo) e va ricostruito dalle adesioni valide alla data.
8
+
9
+
- **gap analysis news-driven** (`docs/news-agent/2026-07-26_08-58.md`) — 6 notizie mai testate prima (Giunta autorizzazioni/chat Delmastro, riforma forense al Senato, mozioni di sfiducia Santanchè e Nordio, DL 130/2020 immigrazione e DL 137/2020 Ristori). Copertura piena su 5 storie su 6, storico leg. 18 lato Camera senza degrado. Tre issue aperte con triage: #77 (sopra), #78 (`which` non trova "giunta per le autorizzazioni" e instrada "immunità parlamentare" verso `search find`, un falso positivo peggiore di un no-match), #79 (`confidence_vote=true` marca anche le mozioni di sfiducia individuale ex art. 115: è `ocd:richiestaFiducia` della fonte, non un valore derivato, quindi `documentation` + `gap-dataset`). Un quarto rilievo del report — quoting CSV rotto in `groups list` — **non è stato aperto**: verificato con un parser CSV vero su leg. 17, 18 e 19, tutte le righe hanno 6 colonne e il campo con le virgole è quotato correttamente. Era un artefatto del `cut -d,` usato per leggere l'output, non un difetto.
10
+
3
11
## 2026-07-25
4
12
5
13
-**v0.26.2** — release patch. Due fix e la misura del limite di dimensione delle richieste al Senato (2047 byte accettati, 2048 rifiutati), che spiega e chiude una classe di 403 finora attribuita al blocco anti-burst. PR #75 e #76, mergiate via squash. 43 tool invariati, 189/189 test verdi.
Copy file name to clipboardExpand all lines: src/tools/vote-detail.ts
+12-9Lines changed: 12 additions & 9 deletions
Original file line number
Diff line number
Diff line change
@@ -14,7 +14,7 @@ const inputSchema = z.object({
14
14
.string()
15
15
.optional()
16
16
.describe(
17
-
"Filtra per sigla gruppo (es. 'FDI', 'M5S', 'APERRE'). Le sigle sono quelle del dataset votazioni, che NON sempre coincidono con l'acronym di `groups list` (es. AZ-PER-RE → APERRE, IV-CR → IVICRE) e in cui il gruppo Misto è disaggregato nelle sue componenti (M-ALT, M-MIN, …). Maiuscole/minuscole e punteggiatura sono irrilevanti; se la sigla non esiste in quella votazione il risultato è vuoto con l'elenco delle sigle presenti.",
17
+
"Filtra per sigla gruppo (es. 'FDI', 'M5S'). Le sigle sono quelle registrate sui voti, che non sempre coincidono con l'acronym di `groups list`, e il gruppo Misto può comparire disaggregato nelle sue componenti. Maiuscole/minuscole e punteggiatura sono irrilevanti; se la sigla non esiste in quella votazione il risultato è vuoto e l'elenco delle sigle presenti viene restituito come nota.",
18
18
),
19
19
voteType: z
20
20
.enum(["Favorevole","Contrario","Astensione","Non ha votato"])
@@ -31,11 +31,12 @@ function stripLegLabel(label: string): string {
0 commit comments