react-container-presentation-component について
Container/Presentation パターンに沿って `src/components` に React コンポーネントを作成するスキルです。`ui` と `features` の分類を支援し、不足情報の確認からファイル作成、検証、報告までを定めます。
主な機能
- 01`ui` と `features` の分類
- 02作成前の既存コンポーネント確認
- 03種類ごとに必要なファイルを指定
- 04ビルドと lint コマンドによる検証
- 05Storybook 検証前のユーザー確認
活用シーン
- 01依頼に基づく React UI コンポーネントの作成
- 02状態やロジックを持つ機能コンポーネントの実装
- 03規定パターンに沿ったコンポーネント構成
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ github/ awesome-copilot --skill react-container-presentation-componentインストール後、Claude Code で/react-container-presentation-componentを入力して読み込まれたか確認します。
同梱ファイルreferences/typescript-and-scss-rules.mdreferences/component-architecture.md
詳細
コンテナー/プレゼンテーションコンポーネント
このスキルを使用すると、Container/Presentation パターンに従った React コンポーネントを src/components 配下に作成できます。
詳しいルールについては、このスキルに同梱されている次のリファレンスを参照してください。
references/component-architecture.mdreferences/typescript-and-scss-rules.md
/react-container-presentation-component の入力が不完全な場合は、ファイルを作成する前に質問してください。
使用する場面
- ユーザーが
/react-container-presentation-componentを実行したとき - ユーザーが Container/Presentation パターンに従った React コンポーネントを明示的に依頼したとき
- Container/Presentation パターンにおける
uiとfeaturesの分類について、ユーザーが判断や実装の支援を求めたとき
必須の質問
次の情報が不足している場合は、ask_user を使ってユーザーに質問してください。
- コンポーネント名
- 種類(
uiまたはfeatures) - 既存のコンポーネントを置き換えるかどうか(
uiを作成する場合のみ)
質問の要件:
- 種類は選択肢(
ui、features)として提示してください - コンポーネント名は PascalCase にするよう求めてください
uiの場合は、既存のfeaturesで Mantine などの UI ライブラリを直接使用している箇所を、新しいコンポーネントに置き換えるかどうか質問してください
手順
- 既存のコンポーネントを確認する
src/components/ui/<ComponentName>またはsrc/components/features/<ComponentName>がすでに存在するか確認してください。- 存在する場合は上書きせず、希望する対応をユーザーに確認してください。
- 対象ディレクトリを決める
ui:src/components/ui/<ComponentName>features:src/components/features/<ComponentName>
- 分類を再確認する(
uiが指定された場合のみ)
uiが指定されていても、ファイルを作成する前にreferences/component-architecture.mdのReclassification Ruleを確認してください。- 実装に状態管理、副作用、非同期処理、コンテキスト/ストアの更新、またはビジネスロジックが含まれる場合は、
featuresとして扱ってください。 featuresに近い場合はuiとして進めず、ask_userを使って、続行する前に次のいずれかを確認してください。Create as featuresKeep ui and move state/logic to parent or features
- 必要なファイルを作成する
ui:index.tsx、index.module.scss、index.stories.tsxfeatures:index.tsx、use<ComponentName>.tsx、presentation.tsx、types.ts、presentation.module.scss、presentation.stories.tsx
- 既存の使用箇所を置き換える(
uiを作成する場合のみ)
- ユーザーの承認がある場合に限り、既存の
featuresで Mantine などの UI ライブラリを直接使用している同等の実装を、新しいuiコンポーネントに置き換えてください。
- 検証する
- ビルドと lint コマンドを実行し、どちらも成功することを確認してください。新規作成または更新したファイルが原因の問題があれば修正してください。
- ストーリーの状態を決める際は、
references/component-architecture.mdのStorybook Minimumに従ってください。 - Storybook のチェックを実行するかどうか、
ask_userを使ってユーザーに確認してください(例:「実行」/「今回はスキップ」)。 - ユーザーが「実行」を選択した場合のみ、
npm run storybookを実行してください。 - ユーザーが「今回はスキップ」を選択した場合は、最終報告で Storybook の実行をスキップしたことを明記してください。
出力要件
- 作成したファイルの一覧を報告してください。
- 置き換えを行った場合は、変更したファイルの一覧と置き換え内容を報告してください。
- 作成したコンポーネントの使用例を1つ提示してください。
- Storybook の検証を実行したか(実行/スキップ)を報告し、実行した場合は使用したコマンドも記載してください。
- コンポーネントを
uiまたはfeaturesに分類した理由を説明してください。 - 状態、副作用、レンダリングの責務をどこに配置したかを要約してください。
- 依存関係の方向に違反がなかったか確認してください。
- 未解決の項目があれば明確に記載してください。
コメント
Markdown 対応