principle-type-system-discipline について
Type System Disciplineは、型を使って不正な状態、プリミティブの混同、未処理のバリアントを防ぐ開発スキルです。境界での外部データの解析や、信頼できるスキーマからの型導出を促します。
主な機能
- 01意味の異なるプリミティブへのブランド型の使用
- 02システム境界での未型付けデータの解析
- 03信頼できるスキーマからの型導出
- 04ハンドラー追加より不可能な状態の排除を優先
活用シーン
- 01同じプリミティブ型の識別子の区別
- 02RPCやJSONなど外部データの型付け
- 03アプリケーションの型とプロトコルやDBスキーマの整合
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ cursor/ plugins --skill principle-type-system-disciplineインストール後、Claude Code で/principle-type-system-disciplineを入力して読み込まれたか確認します。
詳細
型システムの規律
コンパイラーに、あり得ない状態、プリミティブ型の不一致、未処理のバリアントを拒否させます。ハンドラーを増やすより、エラーや特殊ケースそのものをなくすことを優先します。TypeScript の構文については、typescript-best-practices スキルを参照してください。
- 意味を持つプリミティブ型にブランドを付けます。
UserIdとOrderIdは内部的にはどちらも文字列ですが、相互に置き換えられるべきではありません。それぞれに、TypeScript のブランド付き交差型や、ほかの言語のニュータイプなど、独自の型を定義します。作成時に一度だけ検証し、それ以降は型を信頼します。プリミティブ型が同じでも意味が異なる引数には、ブランドを付けます。 - 外部データは解析されるまで型付けされていません。 RPC ペイロード、JSON、IPC メッセージ、CLI 引数、設定ファイル、環境変数、データベースの行が該当します。境界ごとに解析関数を設け、構造化されていない入力を型付きモデルに変換します。boundary-discipline 原則スキルでは、検証をどこに配置すべきかを説明しています。
- 信頼できるスキーマから型を導出します。 Protocol Buffers、OpenAPI 仕様、GraphQL スキーマ、データベースのマイグレーション、デザイントークンファイルなど、形状を定義するファイルがある場合は、別の型を手作業で作るのではなく、そのファイルから型を導出します。encode-lessons-in-structure 原則スキルを参照してください。
コメント
Markdown 対応