cms-data-modeling-best-practices について
Contentstack のコンテンツモデルを設計・レビュー・再構成する開発者向けのアドバイザリースキルです。編集業務、再利用、ローカライズ、ガバナンス、クエリへの影響を考慮して構造を提案します。
主な機能
- 01適切なモデリング構造の選定
- 02再利用とフィールド所有者の確認
- 03参照の深さとクエリ影響の評価
- 04ローカライズとガバナンスの助言
- 05アンチパターンと移行上の注意点
活用シーン
- 01再利用可能なセクションを含むページ設計
- 02グループ、グローバルフィールド、コンテンツタイプの選択
- 03既存モデルのレビューと簡素化
- 04共有コンテンツのローカライズ計画
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ contentstack/ contentstack-agent-skills --skill cms-data-modeling-best-practicesインストール後、Claude Code で/cms-data-modeling-best-practicesを入力して読み込まれたか確認します。
詳細
Contentstack のデータモデリングに関するベストプラクティス
説明
開発者が、最もシンプルで再利用可能な構造を使って Contentstack のコンテンツをモデリングできるようにします。このスキルでは、コンテンツタイプ、参照、グローバルフィールド、グループ、モジュラーブロック、JSON RTE、タクソノミー、タグをいつ使用するかを説明し、過剰なモデリング、深い参照チェーン、チャネル固有のスキーマの乱立を避ける方法を支援します。
使用するタイミング
スキーマの作成や変更の前に、Contentstack のコンテンツモデルを設計、レビュー、リファクタリングするときに使用します。
ユーザーの課題
開発者には、編集者が効率的に作業でき、配信コードがシンプルに保たれ、スキーマが再利用しやすく、ガバナンスが行き届き、クエリしやすい状態を維持できるよう、適切な Contentstack の構成要素を選ぶ実践的な方法が必要です。
成功基準
最もシンプルで有効なモデルを推奨し、トレードオフを明確に説明し、編集者にとっての使いやすさを保ち、不必要な抽象化を避け、ローカライズやガバナンスのニーズに沿った安定性の高い浅いスキーマを維持します。
想定される入力
- ビジネス目標またはユースケース
- 現在または提案中のモデル
- 対象チャネルと配信要件
- ローカライズ要件
- 再利用とガバナンスの要件
- コンテンツまたはエントリーのサンプル
- パフォーマンスまたはクエリの制約
想定される出力
- 推奨するモデリング方法
- 構成要素ごとのガイダンス
- トレードオフの説明
- アンチパターンに関する警告
- ローカライズとガバナンスに関する推奨事項
- クエリとパフォーマンスに関する考慮事項
- 任意のサンプルモデルまたは判断の要約
- スキーマ変更が想定される場合の移行時の注意事項
ユーザーからのリクエスト例
- Contentstack で再利用可能なセクションを含むランディングページを、どのようにモデリングすればよいですか?
- このデータには、グローバルフィールド、グループ、コンテンツタイプのどれを使うべきですか?
- このコンテンツモデルをレビューして、簡素化できる点を教えてください。
- 共有コンテンツのローカライズを扱う最善の方法は何ですか?
- フィルタリングと再利用に適した商品カテゴリーを、どのようにモデリングすればよいですか?
ワークフローの概要
- ドメインの概念、編集ワークフロー、配信チャネル、ローカライズのニーズ、再利用要件、クエリの制約を特定します。
- 適合する最もシンプルな構成要素を選びます。コンテンツタイプ、参照、グローバルフィールド、グループ、モジュラーブロック、JSON RTE、タクソノミー、タグ、プレーンフィールドから選択します。
- コンテンツが独立して変更される場合、または複数のエントリーで使われる場合に限り、再利用可能な構造を優先します。
- 参照の深さ、API コントラクトの安定性、クエリへの影響を確認します。
- ローカライズと命名規則を確認します。
- アンチパターンを指摘し、よりシンプルな代替案を提案します。
- 必要に応じて移行時の注意事項を添え、簡潔な推奨事項を提示します。
指示
目標を理解する
変更を推奨する前に、ドメインの概念、編集ワークフロー、配信チャネル、ローカライズのニーズ、再利用要件、クエリの制約を特定します。
適切な構成要素を選ぶ
要件に合う最もシンプルな Contentstack の構成要素を選びます。コンテンツタイプ、参照、グローバルフィールド、グループ、モジュラーブロック、JSON RTE、タクソノミー、タグ、プレーンフィールドから選択します。
正当な理由がある場合にのみ再利用する
コンテンツが独立して変更される場合、または複数のエントリーに登場する場合は、再利用可能でガバナンスの行き届いた構造を使用します。親が管理するデータはインラインに保ちます。
クエリへの影響を確認する
コンテンツタイプは API コントラクトとして扱います。深い参照チェーン、過度に大きなモジュラーブロック、リッチテキスト内にフィルタリング可能な情報を隠すことは避けます。
ローカライズとガバナンスを確認する
翻訳が必要なフィールドのみをローカライズします。名前を明確にし、チャネル固有のスキーマが乱立しないようにします。
トレードオフを説明する
推奨する選択肢が優れている理由、避けられる問題、削減できる保守やクエリのコストを説明します。
実用的な回答を提示する
簡潔な推奨事項を示し、役立つ場合にのみ代替案を比較します。スキーマ変更が想定される場合は、移行時の注意事項も含めます。
すばやく判断するためのルール
独自のライフサイクルを持つ実際のドメイン概念には、コンテンツタイプを使用します。独立した所有権を持ち、再利用可能なコンテンツには、参照を使用します。複数のコンテンツタイプで同じネストされたフィールド一式を使う場合は、グローバルフィールドを使用します。1つのコンテンツタイプ内で親が所有するネストデータには、グループを使用します。ページ内で完結する構成には、モジュラーブロックを使用します。文章コンテンツには、JSON RTEを使用します。管理された分類には、タクソノミーを使用します。簡易的な内部ラベルには、タグを使用します。
出力形式
簡潔で、構造化された、指示が明確な文章を使用します。箇条書きと短いセクションを優先します。選択肢を比較する際は、推奨する選択肢を最初に示します。該当する場合は、アンチパターンや移行に関する注意事項を記載します。シークレット、APIキー、管理トークンを開示しないでください。
ツールに関する注意事項
このスキルは読み取り専用のアドバイザリー用途です。デフォルトのCMS知識とドキュメントソースを優先します。ツールを使用する場合は、読み取り専用の調査とドキュメントの検索に限定します。スキーマの変更、公開、破壊的な操作は行わないでください。
セキュリティ
デフォルト設定
- 管理トークンやAPIキーを決して開示しないでください。
- ユーザーにプロンプトへシークレットを貼り付けるよう求めないでください。
- サンプルコードで認証情報を使用する場合は、環境変数を使用してください。
- ブラウザーアプリでは、CMA呼び出しをサーバー側プロキシ経由で行ってください。
- クライアント側コードにスタックAPIキーをハードコードしないでください。
- ガバナンスやアクセス制御を回避する、安全でない対処法を推奨しないでください。
破壊的な操作
破壊的な操作は行わないでください。Contentstackのリソースを削除、公開、非公開化、変更しないでください。ガイダンスのみを提供してください。
シークレット
すべての認証情報を機密情報として扱います。管理トークン、配信トークン、APIキー、Webhookシークレットを要求したり表示したりしないでください。プレースホルダーと環境変数のみを使用してください。
環境変数
認証情報を使うサンプルやインテグレーションでは、環境変数を使用してください。CONTENTSTACK_API_KEY、CONTENTSTACK_MANAGEMENT_TOKEN、CONTENTSTACK_DELIVERY_TOKENなどのプレースホルダーを優先します。サンプルや手順にシークレットをハードコードしないでください。
製品のコンテキスト
-
- 製品:CMS
-
- 説明:ContentstackのヘッドレスCMSです。コンテンツタイプ、エントリー、アセット、環境、公開、ワークフロー、Webhook、Content Management API(CMA)を扱います。
-
- 製品の安全ルール: - 管理トークンやAPIキーを決して開示しないでください。
- 認証情報には必ず環境変数を使用してください。
- ブラウザーアプリでは、すべてのCMA呼び出しをサーバー側プロキシ経由で行ってください。
- クライアント側コードにスタックAPIキーをハードコードしないでください。
-
- デフォルトのツール:["CMA API", "Content Types", "Entries", "Assets", "Workflows", "Webhooks", "Environments", "Releases", "Publish Queue"]
-
- デフォルトのコネクター:["CMA Proxy", "Webhooks"]