Skills · Claude Code · Agent Skills
既存の C++ から生の new/delete と未定義動作を排除する。交渉の余地はありません。
既存の C++ コードを保守するための防御的な最低基準です。RAII、CI でのサニタイザ、clang-tidy、オブジェクト寿命の管理を求めます。新規コンポーネントは Rust か Zig で作り、C++ は例外 ADR がある場合のみです。
schematize-cpp · v0.4.0bash
$ schematize install cpp譲れない最低基準
「速くするため」に外すことはありません。完全な一覧はスキル内にあります。
新規コンポーネントは Rust か Zig
C++ は例外 ADR がある場合のみで、適合性(fit)では採用しません。
RAII が基本の仕組み
新規コードで生の new/delete は禁止。既定は unique_ptr、shared_ptr は所有権が本当に共有される場合のみです。
ゼロの規則またはファイブの規則
デストラクタだけを書くのは、暗黙コピーによる二重解放への典型的な道です。
寿命を管理する
所有者より長く生きる string_view、span、参照は未定義動作です。非同期コードでの [&] ラムダも同じバグです。
サニタイザ付きテストと厳格なビルド
CI で ASan、UBSan、TSan を -fno-sanitize-recover=all 付きで実行し、-Werror、-Wconversion、-Wold-style-cast、_GLIBCXX_ASSERTIONS も有効にします。
例外・ロック・スレッド
catch は const 参照で受け、空の catch (...) は禁止。デストラクタは例外を投げず、手動 lock ではなく lock_guard、生の thread ではなく std::jthread を使います。
コマンド
.claude/commands/ にインストールされます。いつでも /cpp-help を実行できます。
/cpp-ccコンテキスト圧縮:ハンドオフ(コンテキスト+チェックリスト)をアーカイブに書き出し、/compact を実行します。/cpp-claudeschematize-cpp の常時有効な CLAUDE.md をリポジトリ直下に作成またはマージします。他スキルのブロックは上書きしません。/cpp-handoff圧縮せずにコンテキストのハンドオフをアーカイブに書き出します。セッション終了やタスク切り替え時に使います。/cpp-helpスキルの全コマンドを一覧表示します。/cpp-loadschematize-cpp の規範本体をすべて強制ロードし、セッション中適用します。/cpp-review.cpp/.hpp とビルドを基準に照らしてレビューします。ゲート(コード+ビルド)を実行し、機械が読めない点(RAII、寿命、未定義動作、適用範囲)を読みます。AIエージェント向け
人手を介さずにインストールできます。メタデータは llms.txt にあります。
- 実行:git clone https://github.com/schematizeme/skill-cpp.git && ./skill-cpp/install.sh
- または https://github.com/schematizeme/skill-cpp/releases/latest/download/skill-cpp.zip をダウンロードして .claude/skills/ に展開します。
- assets/CLAUDE.md をリポジトリ直下にコピーします(常時有効ルール)。
- /cpp-help で確認します。
ディスカッション
読み込み中…