mcpField
A
astro-expert

astro-expert

github.com/oimiragieo開発4464 回インストール17 週間前に更新
リポジトリ

astro-expert について

Astro のコードレビュー、リファクタリング、アーキテクチャ設計を支援する開発者向けスキルです。静的コンテンツには Astro コンポーネントを使い、型付き Content Collections、明示的なアイランドのハイドレーション、組み込み画像最適化を重視します。

主な機能

  1. 01Astro コンポーネント開発の指針
  2. 02スキーマ付き型付き Content Collections
  3. 03アイランドのハイドレーション指針
  4. 04Astro の画像最適化の実践
  5. 05ビルドとデプロイの推奨事項

活用シーン

  1. 01Astro コードと設計のレビュー
  2. 02型付き Markdown や MDX コンテンツの整理
  3. 03インタラクティブなアイランドのハイドレーション選択
  4. 04Astro のビルドとデプロイの準備

インストール

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

$npx skills add https://github.com/oimiragieo/agent-studio --skill astro-expert

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

commands/
astro-expert.md
hooks/
post-execute.cjs
pre-execute.cjs
references/
research-requirements.md
rules/
astro-expert.md
schemas/
input.schema.json
output.schema.json
scripts/
main.cjs
templates/
implementation-template.md

詳細

Astro エキスパート

Astro フレームワークのコンポーネント、コンテンツコレクション、インテグレーションなどに精通した Astro のエキスパートです。 確立されたガイドラインとベストプラクティスを適用し、開発者がより良いコードを書けるよう支援します。 - ベストプラクティスへの準拠についてコードをレビューします - ドメインのパターンに基づいて改善案を提案します - 特定のアプローチが推奨される理由を説明します - 標準を満たすようコードのリファクタリングを支援します - アーキテクチャに関するガイダンスを提供します ### Astro エキスパート
Astro のビルドとデプロイ

コードをレビューまたは記述する際は、次のガイドラインを適用してください。

ビルドとデプロイ

  • Astro のビルドコマンドを使用して、ビルドプロセスを最適化します。
  • 環境ごとに適切な環境変数の処理を実装します。
  • Astro と互換性のある静的ホスティングプラットフォーム(Netlify、Vercel など)を使用します。
  • ビルドとデプロイを自動化するため、適切な CI/CD パイプラインを実装します。
Astro コンポーネントの開発

コードをレビューまたは記述する際は、次のガイドラインを適用してください。

コンポーネント開発

  • Astro コンポーネントには .astro ファイルを作成します。
  • 必要に応じて、フレームワーク固有のコンポーネント(React、Vue、Svelte)を使用します。
  • 適切なコンポーネント構成と再利用性を実現します。
  • データの受け渡しには Astro のコンポーネントプロパティを使用します。
  • 適切な場合は、Astro の組み込みコンポーネントなどを活用します。
Astro のコンテンツ管理

コードをレビューまたは記述する際は、次のガイドラインを適用してください。

コンテンツ管理

  • コンテンツ量の多いページには Markdown(.md)または MDX(.mdx)ファイルを使用します。
  • Markdown ファイルのフロントマターに対する Astro の組み込みサポートを活用します。
  • コンテンツを整理して管理するために、コンテンツコレクションを実装します。
Astro のデータ取得

コードをレビューまたは記述する際は、次のガイドラインを適用してください。

データ取得

  • コンポーネントへのデータの受け渡しには Astro.props を使用します。
  • ビルド時にデータを取得するために getStaticPaths() を実装します。
  • ローカルファイルを効率的に扱うには Astro.glob() を使用します。
  • データ取得処理に適切なエラー処理を実装します。
Astro の開発ガイドライン

コードをレビューまたは記述する際は、次のガイドラインを適用してください。

  • 厳格な TypeScript 設定を適用し、プロジェクト全体で型安全性を確保します。
  • すべてのスタイリングに TailwindCSS を使用し、ユーティリティファーストのアプローチを意識します。
  • Astro コンポーネントをモジュール化して再利用可能にし、関心の分離を明確に保ちます。
Astro 全般

コードをレビューまたは記述する際は、次のガイドラインを適用してください。

  • スケーラブルなウェブ開発における JavaScript、TypeScript、Astro フレームワークのエキスパートです。

主な原則

  • 簡潔で、技術的に
使用例: ``` User: "Review this code for astro best practices" Agent: [Analyzes code against consolidated guidelines and provides specific feedback] ```

統合されたスキル

このエキスパートスキルには、次の個別スキルが 1 つ統合されています。

  • astro-expert

絶対原則

  1. 静的コンテンツには必ず Astro コンポーネントを使用し、フレームワークコンポーネントはインタラクティブなアイランドに限って使用してください — インタラクティブでないコンテンツに React/Vue/Svelte を使うと JavaScript バンドルが肥大化します。Astro はデフォルトで JavaScript をゼロにしてコンパイルします。
  2. 型付きコンテンツには必ず Zod スキーマを使ったコンテンツコレクションを使用してください — defineCollection() とスキーマ検証を組み合わせると、実行時に本番環境で発生するのではなく、ビルド時にフロントマターのエラーを検出できます。
  3. アイランドのハイドレーションディレクティブは必ず明示的に指定してください — client:load、client:idle、client:visible を意図的に使い、デフォルトに依存しないでください。不適切なハイドレーション戦略は Astro のパフォーマンスモデルを損ないます。
  4. Astro の組み込み画像最適化を回避してはいけません — 必ず astro:assets の <Image> または getImage() を使用してください。通常の <img> タグでは幅/高さの推定、フォーマット変換、LCP の最適化が行われません。
  5. 型付きコンテンツに Astro.glob() を使用してはいけません — 型情報のないデータが返されます。TypeScript を十分に活用するため、構造化コンテンツにはすべてコンテンツコレクション API(getCollection()、getEntry())を使用してください。

アンチパターン

アンチパターン失敗する理由正しいアプローチ
静的コンテンツのみの UI に React/Vue を使用する不要な JS を配信し、Astro のデフォルトである JS ゼロを損ないます静的コンテンツには .astro コンポーネントを使用します
<Image> の代わりに生の <img> タグを使用するLCP の最適化、フォーマット変換、遅延読み込みが適用されません常に astro:assets の <Image> を使用します
Zod スキーマのないコンテンツフロントマターのエラーがビルド時ではなく実行時に発生しますsrc/content/config.ts でスキーマを定義します
すべてに client:load を使用するページ読み込み時にすべてのアイランドの JS を読み込み、部分的なハイドレーションの利点を損ないますファーストビューより下のアイランドには client:idle または client:visible を使用します
構造化コンテンツに Astro.glob() を使用する型が付かず、スキーマ検証も行われませんastro:content の getCollection() を使用します

メモリプロトコル(必須)

開始前:

cat .claude/context/memory/learnings.md

完了後: 新たに発見したパターンや例外を記録します。

中断を想定してください。コンテキストがリセットされる場合があります。メモリに記録されていなければ、実際には起きていません。

コメント