Skip to content

[Task] Quality Certificate — report unificato di validazione cross-layer #403

Description

@Gabrymi93

Obiettivo

Creare un quality certificate unificato che aggreghi le validazioni di RAW, CLEAN e MART in un unico report JSON salvato a livello di run record.

Oggi ogni layer scrive il suo <layer>_validation.json separato. Non esiste un report che dica "dataset X anno Y è certificato con qualità Z".

Contesto

Dalla gap analysis di giugno 2026 (gap 4). I gap propedeutici 2 (type check) e 5 (PAQA score) sono già risolti in #399.

Il certificate va scritto in:

root/data/_runs/{dataset}/{year}/quality_certificate.json

(associato al run record, non a un layer specifico — non dentro _validate/ di un layer)

Area del toolkit

  • Pipeline (core / raw / clean / mart)
  • Plugin sorgente
  • CLI
  • Server MCP
  • Profiler
  • Config / validazione
  • Docs
  • CI / dipendenze
  • Altro

Criteri di completamento

  • Nuovo passo opzionale in run all/run full che dopo le validazioni dei singoli layer legge i 3 <layer>_validation.json e produce quality_certificate.json
  • Il certificate contiene: elenco check con status, riepilogo per layer, quality score calcolato (media pesata)
  • Formato concordato in #403
  • pytest -m core passa
  • Documentazione aggiornata (README.md o docs/)

Schema proposta

{
  "dataset": "istat_elenco_comuni",
  "year": 2026,
  "certified": true,
  "certified_at": "2026-06-24T18:00:00Z",
  "checks": [
    {"id": "clean.required_columns", "status": "pass"},
    {"id": "clean.not_null", "status": "pass"},
    {"id": "clean.min_rows", "status": "pass", "detail": "rows=7901 (min=1)"}
  ],
  "layers": {
    "raw": {"ok": true},
    "clean": {"ok": true, "rows": 7901, "cols": 12},
    "mart": {"ok": true, "tables": ["mart_a", "mart_b"]}
  },
  "quality_score": 92
}

Collegamenti

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions