mcpField
P
principle-boundary-discipline

principle-boundary-discipline

github.com/mdsmithaustin開発8182 回インストール今日更新
リポジトリ

principle-boundary-discipline について

システム境界で検証とエラー処理を行い、ビジネスロジックを純粋かつフレームワーク非依存に保つソフトウェア開発の原則です。コード構成、データ処理、公開インターフェースの設計に役立ちます。

主な機能

  1. 01システム境界での検証
  2. 02内部での型付きデータ利用
  3. 03純粋なビジネスロジック
  4. 04薄いフレームワーク接続層
  5. 05ドメイン概念の公開

活用シーン

  1. 01設定解析の設計
  2. 02外部 API データの処理
  3. 03ドメインロジックとフレームワークの分離

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/mdsmithaustin/pstack --skill principle-boundary-discipline

インストール後、Claude Code で/principle-boundary-disciplineを入力して読み込まれたか確認します。

同梱ファイルagents/openai.yaml

詳細

境界の厳守

検証、型の絞り込み、エラー処理はシステム境界に配置します。内部コードは無条件に信頼します。ビジネスロジックは純粋関数に置きます。シェルは薄く、機械的なものにします。

理由: 検証があちこちに散らばると、冗長で煩雑になり、誤った安心感を与えます。フレームワークの配線からロジックを切り離せば、フレームワークなしでテストできます。

パターン:

  • 境界では(CLI 引数、設定ファイル、外部 API、ネットワークプロトコル):検証し、エラーを返し、防御的に処理します。
  • システム内部では: 型付きデータを使い、エラーを伝播させ、再検証はしません。型を信頼します。
  • 境界をまたぐ場合: 境界の内部表現ではなく、ドメインの概念を公開します。汎用的な仕組みは内部に、特殊用途のポリシーは境界に置きます。

適用例:

検証とエラー処理:

  • ビジネスロジックの内部ではなく、解析時(境界)に設定を検証します
  • 境界で生データをドメイン型に解析します
  • 公開インターフェースを通じて、トランスポート、ストレージ、フレームワーク、ワイヤーの型を再エクスポートしません
  • 境界ですでに検証済みであれば、呼び出しチェーンの深い箇所で冗長な nil チェックを行いません

コード構成:

  • フレームワークへの依存がない純粋関数にビジネスロジックを置きます
  • レビューでは、外側を参照するインポートを指摘します。ドメインまたはポリシーモジュールが、フレームワーク、ドライバー、ORM、IO ライブラリ、生成されたスキーマ型、アダプターモジュールをインポートしている場合、型専用インポートも含め、それらは呼び出し元からプレーンなデータとして受け取るべきです
  • 解析関数:生バイト列から型付き状態への純粋な変換
  • プロンプトの構築:構造化された状態を受け取り、文字列を返します
  • スコアリングと評価:状態から結果への純粋な変換

テスト:

  • 「このデータは今、システム境界を越えていますか?」そうでなければ、検証は冗長です。
  • 「シェルから呼び出すだけの純粋関数にできますか?」できる場合は、切り出します。

コメント