Skills · Claude Code · Agent Skills
已有的 C 代码不能变成漏洞,没有商量余地。
用于维护现有 C 代码的防御性底线:CI 中运行 sanitizer、-Werror、明确所有权以及解析器模糊测试。新组件用 Rust 或 Zig 编写,C 只能通过例外 ADR 引入。
schematize-c · v0.4.0bash
$ schematize install c不可妥协的底线
绝不为了“更快”而关闭。完整清单见该技能本身。
新组件用 Rust 或 Zig
C 只能通过例外 ADR 引入,不能凭适配度选择,或仅用于已有代码。
CI 中运行带 sanitizer 的测试
有线程时使用 ASan、UBSan 和 TSan;UBSan 加 -fno-sanitize-recover=all,避免缺陷已在日志中而 CI 仍显示通过。
会认真对待警告的构建
-Wall -Wextra -Werror -Wconversion;_FORTIFY_SOURCE 需要 -O1 及以上,否则不起作用。
所有权与返回值检查
每个 malloc 都有明确的所有者,free(p); p = NULL;,并检查所有返回值,包括部分 write 和 snprintf。
禁用函数
禁止 gets、无长度限制的 strcpy/strcat/sprintf、不带宽度的 scanf("%s")、可变大小的 alloca 以及 system()。
模糊测试与正确的原子操作
解析器在 CI 中使用带版本的语料库做模糊测试;使用 stdatomic.h,绝不用 volatile。
命令
安装在 .claude/commands/。随时运行 /c-help。
/c-cc上下文压缩:将交接文档(上下文+清单)写入 archive,并运行 /compact。/c-claude在仓库根目录创建或合并 schematize-c 的常驻 CLAUDE.md,不覆盖其他技能的区块。/c-handoff不压缩,将上下文交接文档写入 archive:用于会话结束或切换任务。/c-help列出该技能的所有命令。/c-load强制加载 schematize-c 的全部规范内容,并在本次会话中应用。/c-review对照底线审查 .c/.h 与构建:运行 gate(代码+构建),并阅读机器读不出的部分(sanitizer、内存、外部输入、适用范围)。面向 AI 代理
无需人工介入即可安装。元数据见 llms.txt。
- 运行:git clone https://github.com/schematizeme/skill-c.git && ./skill-c/install.sh
- 或下载 https://github.com/schematizeme/skill-c/releases/latest/download/skill-c.zip 并解压到 .claude/skills/。
- 将 assets/CLAUDE.md 复制到仓库根目录(常驻规则)。
- 用 /c-help 确认。
讨论
加载中…