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