mcpField
S
solid-generic

solid-generic

github.com/fusengine開発3440 回インストール2 週間前に更新
リポジトリ

solid-generic について

solid-genericは、フレームワークを使わないTypeScript、Bun、Node.jsプロジェクト向けの開発スキルです。SOLID原則に沿ったモジュール構成、再利用、エクスポートの文書化を促し、ガイドとテンプレートを備えています。

主な機能

  1. 01SOLID原則のガイド
  2. 02モジュールとインターフェースの規則
  3. 03DRYの再利用チェック
  4. 04エクスポートへのJSDoc要件
  5. 05モジュールとテストのテンプレート

活用シーン

  1. 01新しいTypeScriptモジュールの設計
  2. 02コード内の重複ロジックの確認
  3. 03インターフェースと実装の分離

インストール

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

$npx skills add https://github.com/fusengine/claude-plugins --skill solid-generic

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

詳細

SOLID Generic は、フレームワークを使用しないプレーンな TypeScript/Bun/Node.js コード(CLI ツール、ライブラリ、スクリプト、フック)にモジュール型アーキテクチャを適用します。インターフェースは `modules/[feature]/src/interfaces/` または共有型用の `modules/cores/interfaces/` に配置し、実装ファイルには配置しません。ファイルは `FUSE_SOLID_MAX_LINES` 以内に収め、それぞれが単一の責務を担います。すべてのエクスポートには JSDoc を付けます。

新しいコードを書く前には、modules/cores/lib、modules/cores/interfaces、modules/cores/errors を対象に DRY チェックを実施し、3 回以上繰り返されているものはすべて共有ヘルパーとして抽出する必要があります。5 つの SOLID 原則それぞれに詳細なリファレンス(single-responsibility.md から dependency-inversion.md まで)があり、モジュール、サービス、インターフェース、バリデーター、ファクトリー、エラー、テスト用のコピーしてすぐに使えるテンプレートも用意されています。

SOLID Generic - TypeScript / Bun / Node.js

エージェントのワークフロー(必須)

実装を行う前に、並行して 3 つのエージェントを起動してください。それぞれ 1 回の Agent 呼び出しで、name を指定します。

  1. fuse-ai-pilot:explore-codebase - プロジェクト構造と既存のパターンを分析します
  2. fuse-ai-pilot:research-expert - Context7 を通じて最新の TypeScript/Bun のドキュメントを確認します
  3. mcp__context7__query-docs - 統合の互換性を確認します

実装後、検証のために fuse-ai-pilot:sniper を実行します。


DRY - 作成する前に再利用する(必須)

新しいコードを書く前に必ず行うこと:

  1. コードベースを Grep して、類似した関数名、パターン、ロジックを探します
  2. 共有場所を確認します:modules/cores/lib/、modules/cores/interfaces/、modules/cores/errors/
  3. 類似コードがある場合 -> 重複させず、拡張または再利用します
  4. 2 つ以上のモジュールで使用するコードの場合 -> modules/cores/ に作成します
  5. 繰り返されるロジック(3 回以上)は共有ヘルパーとして抽出します

絶対ルール(必須)

1. ファイルは FUSE_SOLID_MAX_LINES 以内に収める
  • フックの上限に達する前に、責務が混在したファイルを分割します
  • モジュール、サービス、バリデーターは、それぞれ目的を 1 つにします
2. インターフェースの分離(モジュール型で必須)
modules/[feature]/src/interfaces/   # Feature types
  |- user.interface.ts
  \- service.interface.ts
modules/cores/interfaces/            # Shared types
  \- shared.interface.ts

インターフェースを実装ファイルに配置してはいけません。 フラットな src/ 構造を使用してはいけません。必ず modules/ を使用します。

3. JSDoc は必須
/**
 * Parse configuration from file path.
 *
 * @param filePath - Absolute path to config file
 * @returns Parsed configuration object
 * @throws ConfigError if file is invalid
 */
export function parseConfig(filePath: string): Config

SOLID 原則(詳細ガイド)

#原則リファレンス主なルール
S単一責任の原則single-responsibility.md1 つのファイル = 変更する理由は 1 つ
O開放/閉鎖の原則open-closed.md変更ではなく合成によって拡張する
Lリスコフの置換原則liskov-substitution.md実装はインターフェースの契約を遵守する
Iインターフェース分離の原則interface-segregation.md1 つの肥大化したインターフェースより、目的を絞った複数のインターフェース
D依存性逆転の原則dependency-inversion.md抽象に依存し、依存関係を注入する

概要は solid-principles.md を、プロジェクト構造については architecture-patterns.md を参照してください。


コードテンプレート

テンプレート用途
module.mdTypeScript/Bun モジュール
service.mdDI を使用するサービス
interface.mdTypeScript インターフェース
validator.mdZod バリデーションスキーマ
factory.mdファクトリーパターン
error.mdカスタムエラークラス
test.mdBun test/Vitest

禁止事項

  • FUSE_SOLID_MAX_LINES を超えるファイル
  • 実装ファイル内のインターフェース
  • エントリーポイント内のビジネスロジック
  • エクスポートに JSDoc がないこと
  • any 型
  • バレルエクスポート(index.ts による再エクスポート)
  • 事前に Grep 検索せずに既存のユーティリティを重複して作成すること
  • 共通関数として抽出せずにロジックブロックをコピー&ペーストすること
  • インターフェースによる抽象化を介さない具象依存関係

コメント