rails-application-ui-blocks について
Rails ビューにカタログ掲載の UI ブロックを選び、調整して組み込むためのスキルです。新規ページとリファクタリングの両方で、既存の動作やアクセシビリティ、プロジェクト規約の維持を重視します。
主な機能
- 01新規ページとリファクタリングの手順
- 02カタログに基づくブロック選定
- 03Rails の操作性とアクセシビリティ確認
- 04段階的なビュー統合
- 05動作とテストの検証
活用シーン
- 01UI ブロックを使った Rails 新規ページの作成
- 02既存 Rails ビューの領域置き換え
- 03UI 変更時の Turbo と Stimulus の動作確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ pproenca/ dot-skills --skill rails-application-ui-blocksインストール後、Claude Code で/rails-application-ui-blocksを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
metadata.jsonagents/openai.yamlreferences/selection-playbook.mdtemplate-catalog.jsonscripts/build_template_catalog.py詳細
Rails アプリケーション UI ブロック
このスキルを使って、templates/application-ui のプレミアム UI ブロックを選択、調整し、Rails のビューに統合します。
ワークフロー
- モードを決定します。
- 新しい機能やページには new-page
- 既存のビューやパーシャルには refactor-page
- まず制約を特定します。
- 必要なインタラクション(Turbo Frames/Streams、Stimulus のターゲット/アクション、フォームのセマンティクス)
- アクセシビリティの制約(ラベル、キーボード操作の流れ、ARIA)
- 既存のコンポーネント境界(パーシャル、ヘルパー、共通レイアウト)
- カタログから候補ブロックを選びます。
references/selection-playbook.mdを読みます。references/template-catalog.jsonを参照します。
- 最小限の範囲で統合します。
- 既存のルート/コントローラー/ドメインロジックは変更しません。
- 小さな段階に分けてマークアップを置き換えます(まず外枠、次にセクション、最後にマイクロコンポーネント)。
- 検証します。
- 動作、アクセシビリティ、テストカバレッジが損なわれていないことを確認します。
- プロジェクトの規約で求められる場合は、既存のデザイントークンとクラスの規約を維持します。
選択順序
new-page の場合:
- まず
ui.page-examples.*を使ってページ構成の土台を決めます。 ui.application-shells.*から外枠を選びます。ui.headings.*からページ/セクションの見出しを追加します。- 中心となるコンテンツブロック(
ui.forms.*、ui.lists.*、ui.data-display.*、ui.feedback.*)を追加します。 - 最後にナビゲーションとオーバーレイの詳細(
ui.navigation.*、ui.overlays.*)を追加します。
refactor-page の場合:
- 現在の情報設計とインタラクションの契約を維持します。
- 既存の各 UI 領域を、カタログ内の候補ブロックに対応付けます。
- 一度に 1 つの領域を置き換え、関連するテストを実行します。
- 再利用が確認できた後に限り、繰り返し使われているマークアップをパーシャルに抽出します。
ガードレール
- 明示的に依頼されていない限り、コントローラー/モデル/ポリシーは変更しないでください。
- 置き換えずに
data-controller、data-action、data-turbo-*、aria-*、フォームのフィールド名を削除しないでください。 - 競合するビジュアルシステムを導入するのではなく、プロジェクトのスタイルに合わせてブロックを調整してください。
- ネイティブコンポーネントで同じ要件を満たせる場合、既存のデザインシステムのコンポーネントと重複するブロックの追加は避けてください。
出力時の要件
このスキルを使ってタスクを完了した場合は、以下を含めてください。
- 選択したカタログ ID(追跡可能にするため)
- 使用したソーステンプレートのパス
- 導入した動作/アクセシビリティ上の差分
- 置き換えなかったものと、その理由
リソース
references/selection-playbook.md- 最初に確認するテンプレートファミリーの判断基準と、使用を避けるべき場合。
references/template-catalog.json- エイリアスとソースパスを含む、正式なブロック ID。
scripts/build_template_catalog.py- テンプレートの更新後にカタログを再生成します。
メンテナンス
templates/application-ui 内のファイルを変更した場合は、カタログを再生成します。
python3 .agents/skills/rails-application-ui-blocks/scripts/build_template_catalog.py \
--root .
コメント
Markdown 対応