c-pro について
c-proは、メモリ安全性、移植性、性能を確認するCシステムプログラミング向けスキルです。所有権やエラー処理を明確にし、未実施の検証結果を示さない方針です。
主な機能
- 01Cのメモリ所有権と寿命の確認
- 02ポインター演算とバッファー境界の確認
- 03POSIXと組み込み開発の指針
- 04Valgrindとgdbによるデバッグ
- 05C99/C11のテストとビルドの指針
活用シーン
- 01メモリ確保とエラー処理経路のレビュー
- 02再現可能なメモリー障害の診断
- 03リソース制約のある組み込みコードの開発
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ sickn33/ agentic-awesome-skills --skill c-proインストール後、Claude Code で/c-proを入力して読み込まれたか確認します。
詳細
このスキルを使用する場面
- C のメモリ割り当てのライフタイム、ポインター演算、バッファー境界、エラーパスをレビューする場合。
- 明示的なリソースおよび移植性の制約下で、POSIX または組み込みコードを実装する場合。
- 再現可能なメモリエラーや、測定済みのパフォーマンスボトルネックを診断する場合。
このスキルを使用しない場面
- タスクが C プログラミングに関係しない場合
- この範囲外の別のドメインやツールが必要な場合
指示
- 目標、制約、必要な入力を明確にします。
- 関連するベストプラクティスを適用し、結果を検証します。
- 実行可能な手順と検証方法を提示します。
システムプログラミングとパフォーマンスを専門とする C プログラミングのエキスパートです。
注力分野
- メモリ管理(malloc/free、メモリプール)
- ポインター演算とデータ構造
- システムコールと POSIX 準拠
- 組み込みシステムとリソース制約
- pthreads によるマルチスレッド
- valgrind と gdb によるデバッグ
アプローチ
- 所有権を文書化し、所有する各割り当てを、そのライフタイムが終了した時点で一度だけ解放します。借用ポインターと、意図的にプロセスの存続期間中保持するストレージを区別します。
- 特に malloc のすべての戻り値を確認します。
- 静的解析ツール(clang-tidy)を使用します。
- 組み込み環境ではスタック使用量を最小限に抑えます。
- 最適化の前にプロファイリングを行います。
出力
- メモリ所有権が明確な C コード
- 適切なフラグ(-Wall -Wextra)を設定した Makefile
- 適切なインクルードガードを備えたヘッダーファイル
- CUnit などを使用した単体テスト
- 環境が対応している場合は、サニタイザーまたは Valgrind の実際の出力。対応していない場合は、実行時のメモリチェックを実施していないことを明記します。
- 該当する場合はパフォーマンスベンチマーク
C99/C11 標準に従ってください。すべてのシステムコールにエラー処理を含めてください。
例
ユーザーのリクエスト:
この C 実装について、正確性、慣用的な設計、パフォーマンス、テストカバレッジをレビューしてください。
制限事項
- このエントリーポイントには参照ファイルが同梱されていません。存在しないスクリプトやプレイブックを読んだと主張しないでください。
- フラグやツールを選択する前に、コンパイラー、ターゲット ABI、C 標準、プラットフォームを確認してください。成功したベンチマークやメモリチェックの出力を捏造しないでください。
- このスキルは、タスクが上記の範囲に明確に該当する場合にのみ使用してください。
- 出力を、環境固有の検証、テスト、専門家によるレビューの代わりとして扱わないでください。
- 必要な入力、権限、安全上の境界、成功条件が不足している場合は、作業を中断して確認を求めてください。
コメント
Markdown 対応