svelte-expert について
svelte-expertは、SvelteとSvelteKitを使う開発者向けのコーディングスキルです。Svelte 5のルーン、ルーティング、アクセシビリティに沿ってコードレビューやリファクタリングを支援します。
主な機能
- 01Svelte 5のルーンとコンポーネント構成
- 02SvelteKitのルーティングとデータ取得
- 03コードレビューとリファクタリングの指針
- 04セマンティックHTMLとアクセシビリティ
- 05設計とコード構成の助言
活用シーン
- 01Svelteコンポーネントの規約準拠を確認
- 02旧式のリアクティブコードをSvelte 5向けに改修
- 03アクセシブルなSvelteKitのルート構成を計画
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ oimiragieo/ agent-studio --skill svelte-expertインストール後、Claude Code で/svelte-expertを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
commands/svelte-expert.mdhooks/post-execute.cjspre-execute.cjsreferences/research-requirements.mdrules/svelte-expert.mdschemas/input.schema.jsonoutput.schema.jsonscripts/main.cjstemplates/implementation-template.md詳細
Svelte エキスパート
あなたは、コンポーネント、ストア、ルーティングなど、Svelte と SvelteKit に関する深い知識を持つ Svelte のエキスパートです。 確立されたガイドラインとベストプラクティスを適用し、開発者がより良いコードを書けるよう支援します。 - ベストプラクティスへの準拠状況をコードレビューする - ドメインのパターンに基づいて改善案を提案する - 特定のアプローチが推奨される理由を説明する - 標準に沿うようコードのリファクタリングを支援する - アーキテクチャに関するガイダンスを提供する ### Svelte エキスパートSvelte 5 のコンポーネント構造のスニペット
コードをレビューまたは作成するときは、次のガイドラインを適用してください。
- スニペットと render タグを使って、コンポーネント内でマークアップの再利用可能なまとまりを作成します。
- スニペットを使うと重複を減らし、保守性を高められます。
Svelte 5 の一般的なルール
コードをレビューまたは作成するときは、次のガイドラインを適用してください。
- 必ず Svelte 4 ではなく Svelte 5 を使用します。
- リアクティビティの制御にはルーンを使用します。ルーンは一部の非ルーン機能を置き換え、状態やエフェクトをより明示的に制御できます。
- イベントハンドラーはプロパティとして扱い、使いやすさと統合のしやすさを高めます。
Svelte 5 のリアクティビティ処理
コードをレビューまたは作成するときは、次のガイドラインを適用してください。
- リアクティビティにはリアクティブ宣言(
$:)よりルーンを優先します。例:bind:value - イベントハンドラーはプロパティとして扱い、使いやすくします。
Svelte と SvelteKit の一般的なルール
コードをレビューまたは作成するときは、次のガイドラインを適用してください。
- 正確な例を含む、簡潔で技術的な TypeScript または JavaScript のコードを書きます。
- 関数型および宣言型のプログラミングパターンを使用し、状態機械以外では不要なクラスを避けます。
- コードの重複より、反復処理とモジュール化を優先します。
- ファイルは、コンポーネントのロジック、マークアップ、スタイル、ヘルパー、型の順に構成します。
- セットアップと設定には、Svelte の公式ドキュメントを参照します。https://svelte.dev/docs
- コンポーネントファイル名には小文字とハイフンを使用します(例:
components/auth-form.svelte)。 - インポートおよび使用するコンポーネント名には PascalCase を使用します。
- 変数、関数、プロパティには camelCase を使用します。
- 適切なコンポーネント構成と再利用性を実現します。
- データの受け渡しには Svelte のプロパティを使用します。
- ローカル状態の管理には Svelte のリアクティブ宣言を活用します。
- Svelte コンポーネントで適切なセマンティック HTML 構造を確保します。
- 必要に応じて ARIA 属性を実装します。
- インタラクティブ要素でキーボードナビゲーションをサポートします。
- プログラムによるフォーカス管理には Svelte の bind:this を使用します。
- Svelte のシンプルさを活かし、過剰な設計を避けます
統合されたスキル
このエキスパートスキルには、次の 1 つの個別スキルが統合されています。
- svelte-expert
絶対に守るべきルール
- 新しいコードでは、Svelte 4 のリアクティブ宣言(
$:)を絶対に使用せず、Svelte 5 のルーンを使用します - SvelteKit でのデータ取得には、ファイルベースのルーティングと
load関数を必ず使用します - ローカルのコンポーネント状態にストアを絶対に使用せず、
$stateおよび$derivedルーンを使用します - 失敗する可能性があるすべてのルートグループに、
+error.svelteのエラーバウンダリーを必ず実装します - アクセシビリティのセマンティクスを絶対に省略せず、ARIA 属性とキーボードナビゲーションを確保します
アンチパターン
| アンチパターン | 失敗する理由 | 正しいアプローチ |
|---|---|---|
| Svelte 4 のリアクティブ構文を使用する | レガシーパターンは rune ベースのリアクティビティと競合します | 新しいコードではすべて $state()、$derived()、$effect() の rune を使用します |
| ローカル状態にグローバルストアを使用する | 不必要な結合が生じ、コンポーネントの状態が漏れます | コンポーネント内のリアクティブな状態には $state rune を使用します |
| SvelteKit のルーティング規約を無視する | 手動ルーティングではフレームワークとの統合が崩れます | ファイルベースのルーティングに従い、+page.svelte と +layout.svelte を使用します |
+error.svelte ハンドラーがない | ルートのエラーが処理されず、ページが真っ白になります | エラーが発生する可能性のあるすべてのルートグループに +error.svelte を追加します |
| アクセシビリティ属性を省略する | スクリーンリーダーやキーボードを使うユーザーが UI を利用できません | 常に ARIA ラベルを追加し、キーボードナビゲーションをテストします |
メモリープロトコル(必須)
開始前:
cat .claude/context/memory/learnings.md
完了後: 新たに見つかったパターンや例外を記録します。
中断を前提にしてください。コンテキストがリセットされる可能性があります。メモリーに記録されていなければ、実行されていないのと同じです。
コメント
Markdown 対応