Existing C must not become a vulnerability — no negotiation.
A defensive floor for maintaining existing C code: sanitizers in CI, -Werror, written ownership and parser fuzzing. New components are born in Rust or Zig; C only enters through an exception ADR.
$ schematize install cNon-negotiable floors
Never switched off "to go faster". Full list in the skill.
New components are born in Rust or Zig
C enters only through an exception ADR, never by fit, or for code that already exists.
Sanitized suite in CI
ASan, UBSan and TSan where threads exist; UBSan with -fno-sanitize-recover=all so CI never stays green with the defect in the log.
A build that reads warnings
-Wall -Wextra -Werror -Wconversion; _FORTIFY_SOURCE needs -O1 or higher, otherwise it does nothing.
Ownership and checked returns
Every malloc has a written owner, free(p); p = NULL; and every return is checked, including partial write and snprintf.
Banned functions
gets, unbounded strcpy/strcat/sprintf, scanf("%s") without width, variable-size alloca and system() are forbidden.
Fuzzing and correct atomics
Parsers get fuzzing in CI with a versioned corpus; use stdatomic.h, never volatile.
Commands
Installed in .claude/commands/. Run /c-help anytime.
/c-ccContext compact: writes the handoff (context + checklist) to the archive and runs /compact./c-claudeCreates or merges the always-on schematize-c CLAUDE.md at the repo root, without overwriting other skills' blocks./c-handoffWrites the context handoff to the archive without compacting: session end or task switch./c-helpLists every command./c-loadForce-loads the whole schematize-c normative body and applies it for the session./c-reviewReviews .c/.h and the build against the floor: runs the gate (code + build) and reads what the machine cannot (sanitizers, memory, external input, scope).For AI agents
Install with no human in the loop. Metadata in llms.txt.
- Run: git clone https://github.com/schematizeme/skill-c.git && ./skill-c/install.sh
- Or download https://github.com/schematizeme/skill-c/releases/latest/download/skill-c.zip and unzip into .claude/skills/.
- Copy assets/CLAUDE.md to the repo root (always-on rule).
- Confirm with /c-help.
گفتگو
در حال بارگذاری…