mcpField
P
principle-foundational-thinking

principle-foundational-thinking

github.com/backnotprop開発3.1k5.7k 回インストール今日更新
リポジトリ

principle-foundational-thinking について

実装前に構造上の判断を行い、コードをシンプルに保つための開発スキルです。データ形状、並行処理の分離、基盤の早期整備、小さく一貫した変更、基盤追加前の不要コード削除を重視します。

主な機能

  1. 01ロジックより先にデータ構造を定義
  2. 02巧妙な抽象化より明示的なコードを優先
  3. 03危険な共有状態を分離
  4. 04共通基盤を早期に整備
  5. 05小さく一貫した変更
  6. 06基盤整備の前に不要コードを削除

活用シーン

  1. 01一般的なアクセスパターンに沿った型設計
  2. 02状態共有に伴う並行処理のリスク回避
  3. 03CI、リンター、テスト基盤の準備
  4. 04変更範囲を絞ったコードのリファクタリング

インストール

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

$npx skills add https://github.com/backnotprop/pstack --skill principle-foundational-thinking

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

詳細

基礎となる考え方

構造上の判断は、選択肢の価値を守ります。コードレベルの判断は、シンプルさを守ります。

**まずデータ構造から。**ロジックを書く前に、データの形を適切に整えます。中核となる型を早い段階で定義し、あらゆるアクセスパターンをたどり、主要な経路に合った構造を選びます。

コードレベルでは、すべての行ではなく構造をDRYにします。型とデータモデルは一貫させます。似た文が3つあるほうが、時期尚早な抽象化よりも優れています。巧妙さより明示性を優先します。行数ではなく、振る舞いとエッジケースをテストします。

**並行性に関する補足。**アクター間で状態を共有する前に、「別のアクターが同時にこれを変更したらどうなるか?」と問いかけます。答えが「何も起きない」でなければ、分離します。

**まず足場を整える。**後続のすべてのフェーズに役立つものがあれば、最初に行います。「これが既にあることで、以降のすべてのフェーズにメリットがあるか?」と問いかけます。CI、リンティング、テスト基盤、共有型は足場です。選択肢の価値を高める順序にします。機能の前にセットアップ、修正の前にテストを行います。コミットは小さく、単一の目的に絞ります。

各段階で、一貫した抽象化を導入するか、既存の抽象化を深めます。特別な連携処理として新機能を呼び出し側に分散させないでください。

足場を整える前に、まず削除します。最初に不要なコードを取り除き、その後で基盤を築きます。

コメント