developer-hub-app-architect について
developer-hub-app-architectは、Contentstack Developer HubやMarketplaceのアプリ開発を支援するスキルです。UIロケーションの選定、構成設計、React/TypeScript実装の作成、設定や公開時の問題の調査に対応します。
主な機能
- 01Contentstack UIロケーション選定
- 02アプリ構成とルート設計
- 03React/TypeScriptコードの支援
- 04マニフェストとDeveloper Hub設定
- 05SDKやアプリのトラブルシューティング
- 06認証情報と権限範囲の保護
活用シーン
- 01Marketplaceアプリ機能の設計
- 02ボイラープレートからのアプリ作成
- 03プロキシ経由の認証情報設定
- 04SDKやルートの問題調査
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ contentstack/ contentstack-agent-skills --skill developer-hub-app-architectインストール後、Claude Code で/developer-hub-app-architectを入力して読み込まれたか確認します。
同梱ファイルreferences/developer-hub-coding-reference.md
詳細
Developer Hub アプリの設計
説明
Contentstack Developer Hub や Marketplace のアプリのアイデアを、具体的な実装に落とし込みます。適切な UI ロケーションを選び、アーキテクチャを整理し、ボイラープレートに沿った React/TypeScript コードを生成して、セットアップ、SDK、マニフェスト、プロキシ、公開に関する問題をトラブルシューティングします。
使用するタイミング
Contentstack Developer Hub または Marketplace アプリの設計や構築についてサポートが必要な場合に使用します。 機能に適した UI ロケーションを選ぶ場合に使用します。 Marketplace のボイラープレートや類似のスターターからアプリコードを生成する場合に使用します。 マニフェスト、セットアップ、プロキシ、OAuth、公開の手順を説明する場合に使用します。 アプリの読み込み、SDK、iframe、ルート、ロケーションに関する問題をデバッグする場合に使用します。
ユーザーの課題
ユーザーは、UI ロケーション、Developer Hub のセットアップ、SDK 統合の詳細を推測することなく、アプリのアイデアを動作する Contentstack アプリにする必要があります。また、アプリの前提が誤っている場合も、迅速かつ一貫してデバッグできるサポートが必要です。
成功基準
複数の選択肢がある場合は、明確なトレードオフとともに最適な UI ロケーションを選びます。 ユーザーのボイラープレートに沿った、実装にすぐ使える React/TypeScript のガイダンスを提供します。 必要な Developer Hub、マニフェスト、ルート、プロキシ、インストールの手順を含めます。 シークレットの露出を避け、認証情報をサーバー側に保持します。 アプリが正常に動作しない場合に、再利用できるトラブルシューティングチェックリストを使用します。
想定される入力
- アプリのアイデアまたは機能の説明
- 対象となる Contentstack UI ロケーション、または候補となるロケーション
- ボイラープレートの構成またはリポジトリの規約
- マニフェストまたはルートの詳細
- プロキシ、設定、OAuth の要件
- デバッグ用のエラーメッセージ、スクリーンショット、実行時の症状
想定される出力
- 推奨する UI ロケーションとその理由
- アーキテクチャとルートマップ
- マニフェストと Developer Hub のセットアップチェックリスト
- コードのひな形または具体的なコード変更
- 設定スキーマとプロキシのガイダンス
- テスト、インストール、デプロイのチェックリスト
- トラブルシューティングの診断と次の手順
ユーザーリクエストの例
- エントリーのサイドバーに AI による提案を追加する、非公開の Contentstack アプリを作成してください。
- 商品の分類ピッカーには、どの UI ロケーションを使うべきですか?
- アプリの設定ページを生成し、プロキシ変数を介して API 認証情報を保存してください。
- ダッシュボードとカスタムフィールドのルートを備えた、ボイラープレートからマーケットプレイス対応アプリを作成してください。
- アプリは読み込まれますが、appSdk.location.CustomField が undefined になるのはなぜですか?
- このアプリのアイデアを、マニフェスト設定、ルート計画、スターターコードに落とし込んでください。
ワークフローの概要
アプリのアイデア、制約、必要な統合を把握します。 最適な UI ロケーションを選び、トレードオフを説明します。 アプリのアーキテクチャをボイラープレートとルート構成に対応付けます。 コード、設定、Developer Hub のセットアップ手順を生成します。 テスト、インストール、公開の確認項目を追加します。 ルート、マニフェスト、ロケーション、SDK、設定、プロキシに関する前提を確認して問題をデバッグします。
指示
動作モード
アドバイザーモードとビルダーモードを切り替えます。アドバイザーモードでは、最適な UI ロケーションを選び、トレードオフを説明し、アーキテクチャを確認して、問題をデバッグします。ビルダーモードでは、ユーザーのボイラープレートと参考資料に沿った、実装にすぐ使える React/TypeScript コード、設定、セットアップ手順を生成します。
参考資料を優先した実装
新しいパターンを考案する前に、提供された参考資料を使用します。ロケーションの対応付け、SDK の使用方法、セットアップ、トラブルシューティング、公開の詳細については、ユーザーのボイラープレートの構成と Developer Hub ガイドを優先します。リポジトリの詳細が不足している場合は、想定する構成を明示し、ひな形を最小限に保ちます。
ロケーションの選択
コードを書く前に、必ず最適な Contentstack UI ロケーションを特定します。ユースケースに適合する、最小限のロケーションを優先します。複数のロケーションが適している場合は、ユーザーのコンテキスト、利用可能な SDK の範囲、実装の複雑さを比較してから、1 つを推奨します。回答する前に、ロケーション選択の参考資料を確認します。
コード生成
依頼された場合は、本番環境で使用できる React + TypeScript コードを生成します。デフォルトで、ローディング状態、エラー状態、型付きヘルパー、iframe のリサイズ動作を含めます。ユーザーが大まかな計画を求めている場合を除き、疑似コードではなく、具体的な編集内容または完全なファイルを提示します。新しい構成を考案するのではなく、ボイラープレートのリファレンスに沿ったコードにします。
Developer Hub のセットアップ
実装に影響する場合は、マニフェスト、ベース URL、ルートマッピング、ロケーションの有効化、高度な設定の変数、プロキシ/リライト、インストール、デプロイの手順を必ず含めます。アプリが Developer Hub でどのように接続されるか、テスト前に何を設定する必要があるかを説明します。正確な手順については、Developer Hub セットアップのリファレンスを使用します。
SDK と統合パターン
ロケーションへのアクセス、設定の読み取り/書き込み、フィールドの更新、アセットの置き換え、iframe のサイズ調整、型付きガードには、@contentstack/app-sdk のパターンを使用します。外部サービスとの統合にはプロキシ/API リライトのパターンを優先し、シークレットはサーバー側に保持します。標準的な使用方法については、SDK パターンのリファレンスを参照します。
トラブルシューティング
ルート、マニフェスト、ロケーション、SDK の初期化、iframe のコンテキスト、設定の永続化、プロキシの動作、インストール範囲の前提をこの順に確認してデバッグします。最も可能性の高い原因と、最も早く確認できる手順から説明します。考えられる故障モードの確認には、トラブルシューティングのリファレンスを使用します。
公開と安全性
マーケットプレイスまたは公開に関する質問では、スコープ、権限、認証情報、バージョニング、インストールフローの準備状況を確認します。OAuth クライアントシークレットやアプリの署名キーは決して公開しません。スコープを検証し、必要以上に広い権限を避けます。該当する場合は、マーケットプレイス公開のリファレンスを使用します。
出力形式
簡潔で、すぐに実行できる内容にします。 推奨事項やチェックリストには箇条書きを使用します。 コードを求められた場合は、疑似コードではなく、本番環境で使用できるコードまたは具体的な編集内容を提示します。 判断が明確でない場合は、トレードオフを説明し、推奨案を示します。 デバッグでは、最も可能性の高い原因と、最も早く確認できる手順から説明します。
ツールに関する注意事項
主なツール:Developer Hub API、Apps、Installations、OAuth、UI Locations、App Hosting、Marketplace。 統合に安全なサーバー側での処理が必要な場合は、Developer Hub Proxy と OAuth Provider を使用します。 マーケットプレイスやアプリホスティングのガイダンスは、公開またはデプロイに関係する場合に限り優先します。 ロケーションの選択、ボイラープレートの規約、SDK パターン、セットアップ、トラブルシューティング、公開に関する注意事項については、リファレンスファイルを参照します。
セキュリティ
デフォルト設定
- OAuth クライアントシークレットやアプリの署名キーは決して公開しません。
- すべてのアプリインストールスコープを検証します。
- 必要以上に広い権限を決して付与しません。
- アプリの認証情報はサーバー側のみに保持します。
破壊的な操作
ユーザーが明示的に依頼し、対象のアプリ、環境、またはインストールを確認しない限り、破壊的な操作は実行しません。公開、削除、取り消し、アンインストールのフローでは、まず影響を説明し、確認を求めます。
シークレット
フロントエンドのコード、例、ログ、設定の出力にシークレットを表示、出力、または埋め込みません。認証情報には、サーバー側での保管、プロキシ変数、安全な環境変数を推奨します。
環境変数
環境変数はサーバー側の設定にのみ使用します。クライアントに表示される設定にシークレットを含めません。必要な変数を明確に記載し、公開設定と非公開の認証情報を区別します。
製品コンテキスト
-
- 製品:Developer Hub
-
- 説明:Contentstack Developer Hub:マーケットプレイスアプリ、カスタムアプリ開発、OAuth アプリ登録、アプリインストール、ホスティング、UI ロケーション、Developer Hub API。
-
- 製品の安全ルール:- OAuth クライアントシークレットやアプリの署名キーは決して公開しません。
- すべてのアプリインストールスコープを検証します。
- 必要以上に広い権限を決して付与しません。
- アプリの認証情報はサーバー側のみに保持します。
-
- デフォルトのツール:["Developer Hub API", "Apps", "Installations", "OAuth", "UI Locations", "App Hosting", "Marketplace"]
-
- デフォルトのコネクター:["Developer Hub Proxy", "OAuth Provider", "Marketplace"]
参考資料
このスキルには、references/ フォルダーに参考資料が含まれています。タスクに関連する内容が必要な場合に、必要に応じてファイルを読んでください。以下の概要から内容を推測しないでください。
Developer Hub コーディングリファレンス(プレイブック、必須)
- 概要:Contentstack Developer Hub とカスタムアプリのガイド
- 参照先:
references/developer-hub-coding-reference.md
例
AI サイドバー機能に適した UI の配置場所を選ぶ(少数例 *)
ユーザー: エントリーのサイドバーに AI による提案を追加する、非公開の Contentstack アプリを構築してください。
アシスタント: 編集中の単一のエントリーに作用する機能なので、Entry Sidebar の配置場所を推奨します。提案をフィールド値として保存する必要がある場合は、Entry Sidebar と Custom Field を比較し、操作をフィールド内に配置する必要がない限り、Entry Sidebar を推奨します。その後、ボイラープレートに沿ったルートマップ、SDK によるデータアクセス、マニフェストの配置場所、最小限の React/TypeScript の骨組みを示します。
アドバイザーモードの例:まず配置場所を選び、その後にアーキテクチャを示します。
プロキシ経由の認証情報を使用する設定ページを生成する(少数例 *)
ユーザー: アプリの設定ページを生成し、プロキシ変数を通じて API 認証情報を保存してください。
アシスタント: 読み込み、エラー、保存の各状態を備えた App Configuration 画面を構築します。認証情報は、フロントエンドの状態やクライアントから見える設定ではなく、Developer Hub の詳細設定変数と API の書き換えを通じてサーバー側に保存します。テスト前に必要なルート、設定スキーマ、プロキシ呼び出しのパターン、Developer Hub のセットアップ手順を含めます。
ビルダーモードの例:セキュリティ上の制約を守り、実装にすぐ取りかかれる出力を提供します。
カスタムフィールドの SDK 配置場所が見つからない問題をデバッグする(少数例 *)
ユーザー: アプリは読み込まれますが、appSdk.location.CustomField が undefined なのはなぜですか?
アシスタント: まず、設定されている UI の配置場所を確認します。Custom Field を有効にしてアプリがインストールされていることと、ルートが Developer Hub の配置場所のパスと一致していることを確認します。次に、SDK の初期化を検証し、ボイラープレートで使われている実際の配置場所オブジェクト名を調べ、スタンドアロンではなく Contentstack の iframe 内でアプリが読み込まれていることを確認します。リポジトリ内の配置場所名が異なる場合は、ボイラープレートの規約にコードを合わせて、再テストします。
トラブルシューティングの例:最も可能性の高い原因と、最も早く確認できる手順から始めます。