La Trinità di Zenzic: Codice, Documentazione e Action
Zenzic è molto più di un linter. È un Sistema di Conoscenza Sovrano — un ecosistema in cui logica, intenzione ed esecuzione sono permanentemente sincronizzati. Per garantire un vero Exclusion Zone, Zenzic è organizzato in una Trinità dell'Integrità: tre repository che formano un ciclo di feedback chiuso, dove ciascuno rafforza gli altri.
1. Il Core — Il Corpo
Il repository zenzic è il livello di esecuzione
tattica. Contiene ogni riga di logica di analisi che applica i Tre Pilastri.
| Componente | Ruolo |
|---|---|
| Virtual Site Map (VSM) | Costruisce una proiezione in memoria del sito finale dai soli file sorgente. Nessuna build richiesta. |
| Credential Scanner | Scansiona ogni riga del sorgente grezzo alla ricerca di pattern di credenziali prima di qualsiasi altro passaggio. |
| Adapter Protocol | Traduce la configurazione specifica del motore (Docusaurus, MkDocs, Zensical, Standalone) in un modello di analisi unificato. |
| Layered Exclusion Manager | Unifica guardrail di sistema, inclusioni forzate, override CLI, ignore VCS e configurazione utente in un’unica gerarchia di passaggi deterministica per garantire un perimetro di scansione pulito. |
Il Core applica la legge. Non la decide.
Perché Zenzic se il mio Static Site Generator (SSG) controlla già i link rotti?
- Velocità & Shift-Left: Le build SSG (basate su Node.js, Go o Python) richiedono la compilazione completa del sito e tipicamente girano in loop CI più lenti. Zenzic esegue analisi statica locale su testo sorgente e metadati prima della build, con feedback pre-commit in millisecondi.
- Sicurezza: I controlli nativi degli SSG non bloccano il commit di credenziali esposte o tentativi di path traversal. Zenzic applica finding di sicurezza nel tier
Z2xxe blocca sugli exit di sicurezza. - Governance: Gli SSG non applicano contratti di governance come obsolescenza brand (
Z601), deriva di parità i18n (Z602) o asset orfani (Z405). Zenzic li espone come contratti espliciti e auditabili. - Diagnostica azionabile: Quando falliscono rotte generate, l'output SSG è in genere un 404/fallimento build generico. Zenzic usa reverse mapping VSM per indicare il file sorgente esatto e il contesto frontmatter che generano la rotta virtuale in errore.
2. La Documentazione — L'Anima
Il repository zenzic-doc è il Livello
Costituzionale del progetto. Non è solo un manuale utente — è la fonte di verità che
definisce perché il motore esiste e perché ogni regola è quella che è.
Il Framework Diátaxis
Il contenuto è organizzato in quattro quadranti rigorosi: Tutorial (apprendimento), Guide pratiche (obiettivi specifici), Reference (dati esaustivi) ed Explanation (comprensione). Questo previene la deriva dei contenuti: ogni collaboratore sa sempre esattamente dove collocare una nuova informazione.
Architectural Decision Records (ADR)
Ogni scelta tecnica importante è codificata in un ADR archiviato in
developers/explanation/. Ogni record descrive il problema, la decisione, la
motivazione e le conseguenze permanenti. Gli ADR sono la memoria istituzionale del progetto —
la prova scritta che nessuna decisione è stata presa con leggerezza.
Il corpus degli ADR garantisce che la filosofia del Exclusion Zone rimanga stabile nel tempo, indipendentemente da chi contribuirà al progetto in futuro.
3. La Action — Il Braccio
Il repository zenzic-action è il livello
operativo. Traduce la logica del Core in un perimetro difensivo per le pipeline CI/CD reali.
- uses: PythonWoods/zenzic-action@<version>
with:
version: "<version>"
format: sarif
upload-sarif: true
fail-on-error: true
La Action espone il contratto dei codici di uscita del Core direttamente ai runner di GitHub Actions: i finding di qualità (uscita 1) sono configurabili; gli incidenti di sicurezza (uscita 2/3) non sono mai sopprimibili. Il gate CI è matematicamente identico al gate locale.
Il Ciclo di Feedback
La Trinità non è una gerarchia — è un ciclo. Ogni repository informa e vincola gli altri:
┌────────────────────────────────────────────────┐
│ │
│ Il Core applica le regole definite dall'Anima│
│ ↓ │
│ L'Anima registra le decisioni prese durante │
│ l'implementazione del Core e la revisione │
│ della community │
│ ↓ │
│ Il Braccio porta il Core nel mondo reale, │
│ restituendo i fallimenti all'Anima come │
│ candidati a nuovi ADR │
│ ↓ │
│ L'Anima aggiorna gli invarianti del Core │
│ ↑__________________________________ │
│ │
└────────────────────────────────────────────────┘
Una modifica al Core che non si riflette nell'Anima è un ghost commit. Una Action che espone comportamenti non documentati nell'Anima è un contratto silenzioso. La Trinità è completa solo quando tutti e tre sono sincronizzati — garantito dalla Legge della Testimonianza Contemporanea.
Consapevolezza Architetturale
Zenzic è progettato per la Memoria Istituzionale. Due proprietà rendono questo possibile:
Superficie Regole Deterministica — Lo Specchio Strutturale
Il core zenzic espone una superficie regole deterministica tramite registro codici,
catalogo finding e contratti adapter. Lo stato strutturale viene letto da registri
espliciti e output CLI stabili (inspect capabilities, inspect codes,
inspect routes), non inferito da euristiche runtime.
Corpus degli ADR — Lo Specchio delle Decisioni
Ogni scelta architetturale vive in un file MDX strutturato con un formato canonico:
sidebar_label, **Status:**, ## Context, ## Decision, ## Rationale. Questo rende la
storia delle decisioni leggibile per le macchine per design.
Insieme, la superficie regole deterministica e il corpus degli ADR formano un livello di contesto trasparente:
-
Per gli esseri umani: un percorso chiaro e prevedibile dalla filosofia all'implementazione —
senza dover fare archeologia nel codice.
-
Per i sistemi di automazione: un contesto strutturato e non ambiguo che mantiene i
suggerimenti generati allineati agli invarianti fondamentali del progetto.
:::info Il Exclusion Zone è un Sistema di Conoscenza Sovrano Zenzic non è solo uno strumento che usi. È un ecosistema di cui puoi fidarti — perché le sue regole, le sue decisioni e la sua struttura sono sempre leggibili, sempre sincronizzate e sempre oneste. :::