backend-principle-eng-cpp-pro-max について
backend-principle-eng-cpp-pro-maxは、C++バックエンドやインフラを担当するプリンシパルエンジニア向けの指針スキルです。設計、レビュー、テスト、インシデント対応で、正確性、メモリ安全性、予測可能な性能を優先します。
主な機能
- 01RAII、境界検査、不変条件の重視
- 02タイムアウト、バックプレッシャー、正常終了の設計
- 03安全な解析とビルド強化の指針
- 04レイテンシ、メモリ割り当て、可観測性への配慮
- 05サニタイザー、ファジング、負荷テストの活用
活用シーン
- 01C++バックエンドサービスの設計・リファクタリング
- 02メモリ安全性、並行性、レイテンシのレビュー
- 03高スループットなネットワーク・ストレージの構築
- 04性能劣化やインシデントの調査
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ praxstack/ skills-and-personas --skill backend-principle-eng-cpp-pro-maxインストール後、Claude Code で/backend-principle-eng-cpp-pro-maxを入力して読み込まれたか確認します。
同梱ファイルreferences/cpp-core.md
詳細
バックエンドエンジニアリング原則 C++ Pro Max
C++ バックエンドシステム、低レイテンシサービス、インフラストラクチャ向けのプリンシパルレベルの指針です。正確性、メモリ安全性、予測可能なパフォーマンスを重視します。
適用する場面
- C++ バックエンドサービスやインフラストラクチャの設計またはリファクタリング
- メモリ安全性、並行性、レイテンシの回帰についてのコードレビュー
- 高スループットのネットワーク、ストレージ、コンピューティングシステムの構築
- インシデント対応とパフォーマンスの回帰
優先度モデル(高い順)
| 優先度 | カテゴリ | 目標 | 指標 |
|---|---|---|---|
| 1 | 正確性と未定義動作の回避 | 未定義動作を発生させない | RAII、不変条件、入力検証 |
| 2 | 信頼性とレジリエンス | 負荷時も安全に失敗する | タイムアウト、バックプレッシャー、グレースフルシャットダウン |
| 3 | セキュリティ | 悪用を困難にする | 強化ビルド、安全なパース、最小権限 |
| 4 | パフォーマンスとレイテンシ | P99 を予測可能にする | 安定したアロケーション、上限付きキュー、安全な場合のゼロコピー |
| 5 | 可観測性と運用性 | 迅速なトリアージ | トレース ID、構造化ログ、メトリクス |
| 6 | スケーラビリティと進化 | 安全な拡張 | ステートレス化、シャーディング、プロトコルのバージョニング |
| 7 | ツールとテスト | 持続可能な開発速度 | サニタイザー、ファジング、CI ゲート |
クイックリファレンス(ルール)
1. 正確性と未定義動作の回避(重大)
raii- RAII と決定的なライフタイムでリソースを所有するno-raw-ownership- 生ポインターは非所有参照にのみ使用するbounds- 境界でインデックスとサイズをすべて検証するinvariants- コアとなる不変条件と状態遷移をアサートするtime- 経過時間の計測には単調クロックを使用する
2. 信頼性とレジリエンス(重大)
timeouts- すべての外部呼び出しに明示的なタイムアウトを設定するbackpressure- 上限付きキューを使用し、負荷遮断を適用するshutdown- 期限を設けて処理中の作業を完了させるbulkheads- 依存先ごとにスレッドプールを分離する
3. セキュリティ(重大)
safe-parse- 信頼できない入力を検証し、安全でない文字列操作を避けるharden- スタック保護、PIE、RELRO、FORTIFY を有効にしてコンパイルするsecrets- ログやコアダンプにシークレットを含めないleast-priv- 可能な場合は権限を下げ、サンドボックス化する
4. パフォーマンスとレイテンシ(高)
allocs- ホットパスでのアロケーションを最小限にするcopy- 不要なコピーを避け、ムーブまたはビューを優先するcache- 局所性を高め、偽共有を避けるio- 適切な場合は非同期 I/O を使用するprofiling- 最適化の前に測定する
5. 可観測性と運用性(高)
logs- リクエスト ID とトレース ID を含む構造化ログを使用するmetrics- RED/USE とビジネス KPI を使用するtracing- スレッド間でトレースコンテキストを伝播するcrash- シンボル化されたクラッシュレポートとコアダンプのポリシーを整備する
6. スケーラビリティと進化(中)
stateless- 状態を外部化し、水平スケーリングを可能にするpartitioning- 安定したキーでシャード化するversioning- プロトコルとスキーマをバージョニングするlimits- ペイロードとキューサイズに明示的な上限を設ける
7. ツールとテスト(中)
sanitizers- CI で ASan、UBSan、TSan を使用するfuzzing- パーサーとプロトコルハンドラーをファジングするtests- ユニットテスト、統合テスト、負荷テストを実施するlint- clang-tidy、clang-format を使用し、警告をエラーとして扱う
実行ワークフロー
- レイテンシ/SLO、スループット、コストの予算を明確にする
- データフロー、スレッドモデル、障害モードを把握する
- インターフェースとメモリ所有権の契約を定義する
- 上限付きキューと明示的なタイムアウトを用いて実装する
- 可観測性とクラッシュ診断を追加する
- サニタイザー、ファジング、負荷テストで検証する
- リスクをレビューし、運用手順書を公開する
言語固有のガイダンス
ツールチェーンのデフォルト設定、並行処理パターン、強化については references/cpp-core.md を参照してください。
コメント
Markdown 対応