|
| 1 | +# Convenzione di triage delle issue |
| 2 | + |
| 3 | +Come etichettiamo e gestiamo le issue di questo repo. Ricostruita dalle scelte già fatte; va applicata a **ogni** issue, incluse quelle appena create. |
| 4 | + |
| 5 | +## Regola: triage sempre, alla creazione |
| 6 | + |
| 7 | +Ogni issue, nel momento in cui viene aperta, riceve subito: |
| 8 | + |
| 9 | +1. **un label di tipo** (obbligatorio); |
| 10 | +2. **un label di priorità** `priority: …` (obbligatorio). |
| 11 | + |
| 12 | +Un'issue senza questi due label è non-triata: va completata. |
| 13 | + |
| 14 | +## Prima di aprire: cerca i duplicati |
| 15 | + |
| 16 | +Prima di creare una issue, cercare tra le esistenti (aperte e chiuse) se il tema è già coperto: `gh issue list --search "<parole chiave>" --state all`. Aprire un doppione è l'errore che questo processo previene. |
| 17 | + |
| 18 | +## Gestione dei duplicati |
| 19 | + |
| 20 | +Quando due issue coprono lo stesso tema: |
| 21 | + |
| 22 | +- **Default**: si tiene la **più vecchia** (mantiene la storia e i riferimenti) e si chiude la più recente, trasferendo nella vecchia i dettagli utili che aveva la nuova. |
| 23 | +- **Eccezione**: se la più recente è **nettamente migliore** (più completa, verifiche aggiornate), si tiene quella e si trasferiscono i dettagli utili dalla vecchia. |
| 24 | +- In entrambi i casi: **cross-link** tra le due (commento con `#N`), trasferimento dei dettagli utili, chiusura con reason **`not planned`** e commento che spiega la scelta. |
| 25 | + |
| 26 | +## Label di tipo |
| 27 | + |
| 28 | +- `enhancement` — nuova feature o tool, o arricchimento di uno esistente. |
| 29 | +- `documentation` — documentazione. |
| 30 | +- `bug` — qualcosa non funziona. |
| 31 | +- `question` — serve chiarire prima di decidere. |
| 32 | +- `gap-dataset` — **additivo**, non alternativo: si aggiunge quando la **radice** del problema è un limite o un'assenza nella fonte LOD. Il codice può solo mitigare (workaround, scraping di fonti non-LOD); il caso va seguito anche col gestore del dato. Convive con `enhancement`/`documentation`. |
| 33 | + |
| 34 | +## Label di priorità |
| 35 | + |
| 36 | +Criteri (dalle descrizioni dei label): |
| 37 | + |
| 38 | +- `priority: high` — problema **reale**, **alto impatto**, **azionabile** subito. Riservata: al momento nessuna issue aperta la porta. |
| 39 | +- `priority: medium` — via di mezzo. **Euristica osservata**: nuovi tool ed enhancement di buon valore giornalistico stanno qui (es. nuove fonti, tool compositi, arricchimenti di scheda). |
| 40 | +- `priority: low` — basso impatto, oppure **bloccata** da un limite a monte, oppure **già mitigata**. Rifiniture e casi-limite. |
| 41 | + |
| 42 | +## Esempi di riferimento |
| 43 | + |
| 44 | +- `enhancement` + `priority: medium` → nuovo tool o arricchimento di valore (es. #10 enrich scheda, #18 tool documenti Camera, #45 bulk data AKN). |
| 45 | +- `enhancement` + `gap-dataset` + `priority: low` → miglioria bloccata da un'assenza nel LOD (es. #26 person_uri ministri, #33 committee-sessions Senato). |
| 46 | +- `documentation` + `priority: low/medium` → doc e verifiche (es. #11, #32). |
| 47 | +- `gap-dataset` + `priority: medium` → assenza di dato da mitigare e segnalare al gestore (es. #36 votazioni Senato mar-apr 2020). |
0 commit comments