Skills · Claude Code · Agent Skills

C que já existe não vira vulnerabilidade — sem negociação.

Piso defensivo para manter código C existente: sanitizers no CI, -Werror, ownership escrito e fuzzing de parser. Componente novo nasce em Rust ou Zig; C só entra por ADR de exceção.

v0.4.0Disciplina · C defensivogithub.com/schematizeme/skill-c

Mantido por Lucas Andrade

schematize-c · v0.4.0bash
$ schematize install c
GitHub →baixar skill (.zip)/c-help · github.com/schematizeme/schematize-cli

Pisos inegociáveis

Nunca desligados "para ir mais rápido". A lista completa está na skill.

Componente novo nasce em Rust ou Zig

C entra só por ADR de exceção, não por fit, ou para o código que já existe.

Suíte sanitizada no CI

ASan, UBSan e TSan onde há thread; UBSan com -fno-sanitize-recover=all para o CI não ficar verde com o defeito no log.

Build que lê os avisos

-Wall -Wextra -Werror -Wconversion; _FORTIFY_SOURCE exige -O1 ou mais, senão não faz nada.

Ownership e retorno conferido

Todo malloc tem dono escrito, free(p); p = NULL; e todo retorno é conferido, inclusive write parcial e snprintf.

Funções vetadas

gets, strcpy/strcat/sprintf sem limite, scanf("%s") sem largura, alloca de tamanho variável e system() são proibidos.

Fuzzing e atômicos corretos

Parser tem fuzzing no CI com corpus versionado; usa-se stdatomic.h, nunca volatile.

Comandos

Instalados em .claude/commands/. Rode /c-help quando quiser.

/c-ccContext compact: grava o handoff (contexto + checklist) no archive e roda /compact.
/c-claudeCria ou mescla o CLAUDE.md sempre-on de schematize-c na raiz do repo, sem sobrescrever blocos de outras skills.
/c-handoffGera o handoff de contexto no archive, sem compactar: fim de sessão ou troca de tarefa.
/c-helpLista todos os comandos da skill.
/c-loadCarrega à força todo o corpo normativo de schematize-c e passa a aplicá-lo na sessão.
/c-reviewRevisa .c/.h e o build contra o piso: roda o gate (código + build) e lê o que a máquina não lê (sanitizers, memória, entrada externa, escopo).

Para agentes de IA

Instale sem humano no loop. Metadados em llms.txt.

  • Execute: git clone https://github.com/schematizeme/skill-c.git && ./skill-c/install.sh
  • Ou baixe https://github.com/schematizeme/skill-c/releases/latest/download/skill-c.zip e descompacte em .claude/skills/.
  • Copie assets/CLAUDE.md para a raiz do repo (regra sempre ativa).
  • Confirme com /c-help.

Não quer instalar?

Leia as normativas completas e copie direto pro seu projeto — ou instale a skill para o agente aplicar sozinho.