mcpField
R
reuse

reuse

github.com/playful-design開発1686 回インストール1 週間前に更新
リポジトリ

reuse について

reuseは、新しいUIの実装方法を導くスキルです。既存コンポーネントを優先し、次に保守中のライブラリやプラットフォーム機能を使い、カスタムコードは最後に検討します。共通化や関連コンポーネントへの修正反映も確認します。

主な機能

  1. 01既存コンポーネント、アイコン、トークンを優先
  2. 02提供済みのバリアントとAPIを使用
  3. 03UIパターンごとの標準を統一
  4. 04共通プリミティブ内で修正
  5. 05保守中のライブラリやプラットフォーム機能を優先

活用シーン

  1. 01新しいUIの実装方法の検討
  2. 02コンポーネントやスタイルの重複防止
  3. 03関連コンポーネントへの共通修正の適用

インストール

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

$npx skills add https://github.com/playful-design/router --skill reuse

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

同梱ファイルagents/openai.yamlLICENSE

詳細

再利用

このスキルでは、新しいものを作るときの順序を定めます。まずプロジェクト独自の部品を使い、次にメンテナンスされているライブラリやプラットフォームの機能を使います。カスタムコードを使うのは最後です。

重複は指摘事項です

プロジェクトにすでにあるものと重複するコンポーネント、スタイル、アイコンを新たに作ることは、指摘事項です。共有パッケージにプリミティブを追加してから使うことは、指摘事項ではありません。共有パッケージがないプロジェクトでは、すでに依存しているライブラリを基準に判断します。

誰も求めていないものを削ることは、restraint の範囲です。外部アプリを模倣することは、match の範囲です。

まずプロジェクト独自の部品を使う

UI を書く前に、共有コンポーネントパッケージ、アイコンセット、トークンを検索します。見つかったものを明記します。プロジェクトの Input と並べて生の <input> を使うことは、reuse-house-component-first に該当します。

提供されたコンポーネントはそのまま使う

コンポーネントのバリアントと data-* 属性を使います。ローカルの className でスタイルを変更することは、reuse-no-local-restyle に該当します。

種類ごとにスタイルは1つ

メニュー、テーブル、ダイアログシェルは、それぞれ1つに統一します。ドロップダウンのスタイルを2つ目に作ることは、reuse-one-standard に該当します。

プリミティブ内で一度だけ修正する

すべてのインスタンスに適用する修正は、共有コンポーネント内で行います。5か所の呼び出し元にパッチを当てることは、reuse-fix-in-the-primitive に該当します。そのうえで、同種の箇所をすべて検索し、ローカルの修正を取り除いて、ファイルを列挙します。引用された行だけを修正することは、reuse-sweep-siblings に該当します。

次にライブラリかプラットフォームを使う

プロジェクトに使えるものがない場合は、カスタムコードを書く前に、メンテナンスされているライブラリかプラットフォームの機能を使います。日付と数値のフォーマットには Intl を使います。右クリックにはネイティブのコンテキストメニューを使います。手書きのフォーマッターは、reuse-library-before-custom に該当します。

ライブラリがメンテナンスされていることを確認します。メンテナンスされていない場合は、インストールするのではなく、そのパターンを移植します。これは reuse-no-stale-dependency に該当します。

props の前にドキュメントを読む

プリミティブを使う前にドキュメントを読み、現在の API を使います。推測した prop は、reuse-read-the-docs に該当します。

アイコンセットから、ネイティブサイズで使う

プロジェクトのアイコンセットを、描画時のサイズで使います。生成した SVG や、18px のアイコンを 12px に縮小することは、reuse-icon-set-native-size に該当します。アイコンセットにないグリフを icons で描画し、共有アイコンパッケージまたはフォルダーに追加することは、指摘事項ではありません。

ペアで確認する

各チェック項目はペアです。問題のある行と、それを置き換える行を並べます。

ルール問題のある記述置き換え
reuse-house-component-first<input className={styles.search} />プロジェクトの <Input />
reuse-no-local-restyle共有の Menu と並ぶ .menu { border-radius: 6px }提供されたままの Menu
reuse-one-standard3つの画面に3種類のドロップダウンスタイル1つの Menu
reuse-fix-in-the-primitive5か所の呼び出し元に追加したスクロールフェードScrollArea 内のフェード
reuse-sweep-siblings引用された行は修正され、同種の箇所は未修正同種の箇所をすべて修正し、ファイルを列挙
reuse-library-before-custom手書きの相対日付フォーマッターIntl.RelativeTimeFormat
reuse-no-stale-dependencyメンテナンスされていないパッケージをインストールそのパターンをプロジェクトに移植
reuse-read-the-docsすでにボタンであるトリガーに render={<button />} を指定ドキュメントに記載された prop、または何も指定しない
reuse-icon-set-native-sizewidth: 12px で表示する 18px のアイコンアイコンセットの 12px のアイコン

報告

深刻度。 既存の共有コンポーネントと重複するもの、またはプリミティブで対応できるコントロールを独自に実装したものは HIGH です。ローカルでのスタイル変更、アイコンセット外のアイコン、または1か所の呼び出し元だけに適用した共有修正は MEDIUM です。メンテナンスされているか確認せずに選んだライブラリは LOW です。

形式。 根本原因ごとに指摘を1つ記載します。

file:line - [rule-id] what is wrong

続けて Rule | Count | Severity の形式で要約します。HIGH が残っている場合は Block、それ以外は Approve とします。読んでいないファイルを Approve にしてはいけません。実行できなかったチェックはすべて Not verified と記載します。

コメント