Passa al contenuto principale

La tua documentazione, completamente protetta

Zenzic rileva link rotti, credenziali esposte e pagine orfane prima che raggiungano la produzione. Nessuna configurazione richiesta per iniziare. Nessuna integrazione build engine-specific richiesta.


Provalo subito — zero installazione

uvx zenzic lab

zenzic lab lancia una vetrina interattiva di ogni scanner in azione: rilevamento credenziali, link rotti, pagine orfane, path traversal guard enforcement. Eseguilo su fixture preconfezionate e osserva i risultati in tempo reale.

Esegui un audit completo rapidamente — senza installazione, senza configurazione:

uvx zenzic check all .

Scopri di più nel tutorial Interactive Lab


Due Strumenti: Check e Score

zenzic check all è un gate binario. Emette un exit code deterministico in base ai finding rilevati nello scope analizzato. Exit 0 indica nessun finding rilevato.

zenzic check all
standalone · 20 files · 0.4 s✔ Tutti i controlli superati — exit 0

zenzic score calcola uno score di qualità 0–100 tramite un modello a penalità pesate su quattro categorie: Integrità Strutturale (30%), Navigazione (25%), Brand & Assets (25%), Eccellenza dei Contenuti (20%). Un 100/100 indica zero finding penalizzati nello scope analizzato. Il contenuto escluso non è valutato. Uno score inferiore a 100/100 è un audit superato se soddisfa la soglia fail_under configurata.

Regola assoluta: qualsiasi finding Z2xx collassa lo score a 0/100 incondizionatamente, indipendentemente da fail_under.

Modello di scoring completo


Analisi Deterministica dei Fallimenti: Prima vs Dopo Zenzic

ScenarioSenza Zenzic (Linter Tradizionale)Con Zenzic
Link RottoCI fallisce con errore generico, nessun file/riga/causa.Rilevamento Zenzic: file, riga, codice (es. Z404), fix azionabile, exit code deterministico.
Rotta Virtuale (es. /blog/tags/python/)Falso positivo (404): le rotte dinamiche non vengono risolte, costretto a usare ignore/regex.Risoluzione deterministica via VRM: la rotta virtuale è mappata a source_files senza Node.js.
Leak di CredenzialiIl linter può non rilevare segreti in YAML/blocchi codice; nessun masking; l’incidente può finire in git.Credential scanner: scansiona tutto, maschera i segreti, blocca la pipeline (exitCode=2, Z201), mai stampa il segreto completo.
Codici di UscitaNon standard, ambigui o assenti.Tier: Z1xx (integrità link), Z2xx (sicurezza), Z4xx (struttura), Z6xx (governance).

Esempio: output terminale Zenzic per una Virtual Route

zenzic check all
[Z111]docs/blog/tags/python/: Rotta virtuale non mappata a nessun file sorgente
FAILED — exit 1

Questo non è un lint check. È un gate di sicurezza non negoziabile.

Come agire quando il credential scanner blocca un segreto


Quattro Punti d'Ingresso

Tutorials →Da zero a un audit superato in 3 minuti.
How-to →Integrazione con GitHub Actions per controlli CI/CD automatizzati.
Reference →Ogni flag, ogni codice Zxxx, ogni opzione.
Explanation →Come i finding abbassano la baseline di 100 punti e come fail_under imposta la soglia CI.

Integrazione Nativa con GitHub

.github/workflows/zenzic.yml

- uses: PythonWoods/zenzic-action@<version>

with:
format: sarif
upload-sarif: "true"

I finding possono apparire come annotazioni inline nelle Pull Request e nel tab Security — nessun parsing di log, nessuno script personalizzato, nessun post-processing. L'ufficiale PythonWoods/zenzic-action gestisce installazione, esecuzione e upload SARIF in un singolo step del workflow.

La verifica CI in questo repository usa un runner Ubuntu.


"The Code is Law. The Documentation is Truth. Zenzic is vigilant."