Skills · Claude Code · Agent Skills

既存の C を脆弱性にしない。交渉の余地はありません。

既存の C コードを保守するための防御的な最低基準です。CI でのサニタイザ、-Werror、所有権の明文化、パーサのファジングを求めます。新規コンポーネントは Rust か Zig で作り、C は例外 ADR がある場合のみです。

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

メンテナー Lucas Andrade

schematize-c · v0.4.0bash
$ schematize install c
GitHub →スキル (.zip) をダウンロード/c-help · github.com/schematizeme/schematize-cli

譲れない最低基準

「速くするため」に外すことはありません。完全な一覧はスキル内にあります。

新規コンポーネントは Rust か Zig

C は例外 ADR がある場合か既存コードに限り、適合性(fit)では採用しません。

CI でサニタイザ付きテスト

スレッドがあれば 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 でバージョン管理されたコーパスを使ってファジングし、volatile ではなく stdatomic.h を使います。

コマンド

.claude/commands/ にインストールされます。いつでも /c-help を実行できます。

/c-ccコンテキスト圧縮:ハンドオフ(コンテキスト+チェックリスト)をアーカイブに書き出し、/compact を実行します。
/c-claudeschematize-c の常時有効な CLAUDE.md をリポジトリ直下に作成またはマージします。他スキルのブロックは上書きしません。
/c-handoff圧縮せずにコンテキストのハンドオフをアーカイブに書き出します。セッション終了やタスク切り替え時に使います。
/c-helpスキルの全コマンドを一覧表示します。
/c-loadschematize-c の規範本体をすべて強制ロードし、セッション中適用します。
/c-review.c/.h とビルドを基準に照らしてレビューします。ゲート(コード+ビルド)を実行し、機械が読めない点(サニタイザ、メモリ、外部入力、適用範囲)を読みます。

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 で確認します。

インストールしたくない?

完全な規約を読み、そのままプロジェクトにコピーできます。あるいはスキルをインストールすれば、エージェントが自動で適用します。