mcpField
P
principle-type-system-discipline

principle-type-system-discipline

github.com/cursor開発14.6k4.7k 回インストール1 日前に更新
リポジトリ

principle-type-system-discipline について

Type System Disciplineは、型を使って不正な状態、プリミティブの混同、未処理のバリアントを防ぐ開発スキルです。境界での外部データの解析や、信頼できるスキーマからの型導出を促します。

主な機能

  1. 01意味の異なるプリミティブへのブランド型の使用
  2. 02システム境界での未型付けデータの解析
  3. 03信頼できるスキーマからの型導出
  4. 04ハンドラー追加より不可能な状態の排除を優先

活用シーン

  1. 01同じプリミティブ型の識別子の区別
  2. 02RPCやJSONなど外部データの型付け
  3. 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 原則スキルを参照してください。

コメント