Il C esistente non deve diventare una vulnerabilità — senza negoziazione.
Uno standard difensivo per mantenere codice C esistente: sanitizer in CI, -Werror, ownership scritto e fuzzing dei parser. I nuovi componenti nascono in Rust o Zig; C entra solo con ADR di eccezione.
$ schematize install cStandard minimi non negoziabili
Mai disattivati "per andare più veloci". L'elenco completo è nella skill.
Il nuovo componente nasce in Rust o Zig
C entra solo con ADR di eccezione, mai per fit, o per codice già esistente.
Suite con sanitizer in CI
ASan, UBSan e TSan dove ci sono thread; UBSan con -fno-sanitize-recover=all perché la CI non resti verde con il difetto nel log.
Una build che legge gli avvisi
-Wall -Wextra -Werror -Wconversion; _FORTIFY_SOURCE richiede -O1 o superiore, altrimenti non fa nulla.
Ownership e ritorni verificati
Ogni malloc ha un proprietario scritto, free(p); p = NULL; e ogni ritorno è verificato, inclusi write parziale e snprintf.
Funzioni vietate
gets, strcpy/strcat/sprintf senza limite, scanf("%s") senza larghezza, alloca di dimensione variabile e system() sono vietati.
Fuzzing e atomici corretti
Ogni parser ha fuzzing in CI con corpus versionato; si usa stdatomic.h, mai volatile.
Comandi
Installati in .claude/commands/. Esegui /c-help quando vuoi.
/c-ccContext compact: scrive l'handoff (contesto + checklist) nell'archive ed esegue /compact./c-claudeCrea o unisce il CLAUDE.md sempre attivo di schematize-c nella radice del repo, senza sovrascrivere i blocchi di altre skill./c-handoffScrive l'handoff di contesto nell'archive senza compattare: fine sessione o cambio attività./c-helpElenca tutti i comandi della skill./c-loadCarica forzatamente l'intero corpo normativo di schematize-c e lo applica nella sessione./c-reviewRivede i .c/.h e la build rispetto allo standard: esegue il gate (codice + build) e legge ciò che la macchina non legge (sanitizer, memoria, input esterno, ambito).Per gli agenti IA
Installa senza umano nel ciclo. Metadati in llms.txt.
- Esegui: git clone https://github.com/schematizeme/skill-c.git && ./skill-c/install.sh
- Oppure scarica https://github.com/schematizeme/skill-c/releases/latest/download/skill-c.zip e decomprimi in .claude/skills/.
- Copia assets/CLAUDE.md nella radice del repo (regola sempre attiva).
- Conferma con /c-help.
Discussione
Caricamento…