feature-arch について
機能単位で React アプリを構成するためのリファレンススキルです。ディレクトリ構成やインポート境界から、データ取得、状態管理、テスト、命名まで8分野の42ルールを扱います。
主な機能
- 018カテゴリ、42のルール
- 02機能単位のディレクトリ構成
- 03インポート境界と公開 API
- 04機能の分離と契約
- 05データ取得と状態管理の指針
- 06コンポーネント、テスト、命名の実践
活用シーン
- 01新しい React 機能の構成
- 02インポート規則とモジュール境界の設定
- 03アーキテクチャ違反のレビュー
- 04機能単位のデータ取得とテストの計画
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ pymodel/ react-frontend-skills --skill feature-archインストール後、Claude Code で/feature-archを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/bound-event-based-communication.mdbound-feature-isolation.mdbound-feature-scoped-routing.mdbound-feature-size.mdbound-interface-contracts.mdbound-minimize-shared-state.mdfcomp-colocate-styles.mdfcomp-composition-over-props.mdfcomp-container-presentational.mdfcomp-error-boundaries.mdfcomp-props-as-data-boundary.mdfcomp-single-responsibility.mdfquery-avoid-n-plus-one.mdfquery-colocate-with-feature.mdfquery-feature-scoped-keys.mdfquery-parallel-fetching.mdfquery-server-component-fetching.mdfquery-single-responsibility.mdfstate-context-sparingly.mdfstate-feature-scoped-stores.mdfstate-lift-minimally.mdfstate-reset-on-unmount.mdfstate-server-state-separation.mdimport-avoid-barrel-files.mdimport-no-cross-feature.mdimport-path-aliases.mdimport-public-api.mdimport-type-only.mdimport-unidirectional-flow.mdname-descriptive-exports.md詳細
機能ベースアーキテクチャのベストプラクティス
機能ごとに React アプリケーションを整理し、チームが独立してスケーラブルに開発できるようにする包括的なアーキテクチャガイドです。8 つのカテゴリにわたる 42 のルールを収録し、重要度に応じて、最重要のディレクトリ構造やインポートから、段階的に適用する命名規則まで優先順位を付けています。
適用する場面
次のような場合に、これらのガイドラインを参照してください。
- 新しい機能やモジュールを作成するとき
- プロジェクトのディレクトリ構造を整理するとき
- インポートルールと境界を設定するとき
- データ取得パターンを実装するとき
- 複数の機能からコンポーネントを構成するとき
- アーキテクチャ違反がないかコードをレビューするとき
優先度別のルールカテゴリ
| 優先度 | カテゴリ | 影響度 | プレフィックス |
|---|---|---|---|
| 1 | ディレクトリ構造 | 最重要 | struct- |
| 2 | インポートと依存関係 | 最重要 | import- |
| 3 | モジュール境界 | 高 | bound- |
| 4 | データ取得 | 高 | fquery- |
| 5 | コンポーネントの整理 | 中〜高 | fcomp- |
| 6 | 状態管理 | 中 | fstate- |
| 7 | テスト戦略 | 中 | test- |
| 8 | 命名規則 | 低 | name- |
クイックリファレンス
1. ディレクトリ構造(最重要)
struct-feature-folders- 技術的な種類ではなく、機能ごとに整理するstruct-feature-self-contained- 機能を自己完結させるstruct-shared-layer- 本当に汎用的なコードに限り、共有レイヤーを使うstruct-flat-hierarchy- ディレクトリ階層を浅く保つstruct-optional-segments- 必要なセグメントのみを含めるstruct-app-layer- アプリケーションレイヤーと機能を分離する
2. インポートと依存関係(最重要)
import-unidirectional-flow- インポートの一方向の流れを徹底するimport-no-cross-feature- 機能間のインポートを禁止するimport-public-api- 公開 API 経由でのみエクスポートするimport-avoid-barrel-files- 深い階層でのバレルファイルからの再エクスポートを避けるimport-path-aliases- 一貫したパスエイリアスを使うimport-type-only- 型には型専用インポートを使う
3. モジュール境界(高)
bound-feature-isolation- 機能の分離を徹底するbound-interface-contracts- 明示的なインターフェース契約を定義するbound-feature-scoped-routing- ルーティングの範囲を機能に関する処理に限定するbound-minimize-shared-state- 機能間の共有状態を最小限にするbound-event-based-communication- 機能間の通信にはイベントを使うbound-feature-size- 機能の規模を適切に保つ
4. データ取得(高)
fquery-single-responsibility- クエリ関数の責務を単一に保つfquery-colocate-with-feature- データ取得処理を機能と同じ場所に配置するfquery-parallel-fetching- 独立したデータは並列に取得するfquery-avoid-n-plus-one- N+1 クエリパターンを避けるfquery-feature-scoped-keys- 機能ごとのクエリキーを使うfquery-server-component-fetching- サーバーコンポーネントのレベルでデータを取得する
5. コンポーネントの整理(中〜高)
fcomp-single-responsibility- コンポーネントに単一責任の原則を適用するfcomp-composition-over-props- プロップスのバケツリレーよりコンポジションを優先するfcomp-container-presentational- コンテナーの役割と表示の役割を分離するfcomp-props-as-data-boundary- プロップスを機能の境界として使うfcomp-colocate-styles- スタイルをコンポーネントと同じ場所に配置するfcomp-error-boundaries- 機能レベルのエラーバウンダリーを使う
6. 状態管理(中)
fstate-feature-scoped-stores- 状態ストアの範囲を機能に限定するfstate-server-state-separation- サーバー状態とクライアント状態を分離するfstate-lift-minimally- 必要な範囲に限って状態を引き上げるfstate-context-sparingly- 機能の状態にはコンテキストを必要最小限で使うfstate-reset-on-unmount- アンマウント時に機能の状態をリセットする
7. テスト戦略(中)
test-colocate-with-feature- テストを機能と同じ場所に配置するtest-feature-isolation- 機能を分離してテストするtest-shared-utilities- 機能ごとのテストユーティリティを作成するtest-integration-at-app-layer- アプリケーションレイヤーで統合テストを書く
8. 命名規則(優先度低)
name-feature-naming- ドメインに基づいた機能名を使用しますname-file-conventions- 一貫したファイル命名規則を使用しますname-descriptive-exports- 内容がわかりやすいエクスポート名を使用します
使用方法
上記のルールのうち、タスクに該当するものについて、references/<rule-id>.md を読みます。重要な理由と、誤ったコードと正しいコードが記載されています。
レイヤー化と境界に関するルールは、最も広く採用されている React アーキテクチャ標準である Feature-Sliced Design(FSD)に準拠しています。手法の全容については、feature-sliced.design をご覧ください。
関連スキル
- データフェッチについては、
tanstack-queryスキルをご覧ください - React コンポーネントのパターンについては、
reactスキルをご覧ください
コメント
Markdown 対応