schema-dts について
TypeScriptでSchema.orgのJSON-LDを記述する開発者向けのガイダンススキルです。コンパイル時の型チェックを中心に、Graph構造、フレームワークへの埋め込み、カスタム型の生成を扱います。
主な機能
- 01Schema.org JSON-LDの型チェック
- 02WithContextとGraphドキュメントの構築
- 03複数型ノードとAction制約への対応
- 04フレームワーク埋め込みと安全なシリアライズ
- 05schema-dts-genによる型生成
活用シーン
- 01Webページ向け型付き構造化データの作成
- 02共有エンティティを含むGraph文書の構成
- 03カスタムオントロジー用TypeScript型の生成
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ dobroslavradosavljevic/ skills --skill schema-dtsインストール後、Claude Code で/schema-dtsを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
agents/openai.yamlreferences/generator-migration.mdgraphs-merge-actions.mdpatterns-frameworks.mdsetup-core.mdsource-map.md詳細
schema-dts
Schema.org JSON-LD 用の schema-dts TypeScript 型に関わる作業(構造化データオブジェクトの構築、<script type="application/ld+json"> の挿入、複数の型を持つノード、@graph ドキュメント、アクションの入力/出力制約、schema-dts-gen による型定義の再生成)では、このスキルを使用してください。
ワークフロー
- コードを変更する前に、ローカルの状況を確認します。
- パッケージ:
schema-dts(必要に応じてschema-dts-gen、schema-dts-lib、react-schemaorgも確認します)。 - バージョン:対象は v2 です(
[email protected]= Schema.org v30、[email protected])。1.xはレガシーとして扱います。 - 役割:型のみを使ったコンパイル時のチェックです(実行時の Schema.org 検証は行いません)。
- 形状:単一の
WithContext<T>ノード、@idスタブを使うGraph、またはMergeLeafTypesによる複数の@typeのいずれかです。 - 挿入方法:React/
react-schemaorg、Next のScript、Astro のset:html、Svelte の head、または標準 DOM です。
- パッケージ:
- ユーザーが最新の動作を求めている場合、インストール済みのメジャーバージョンが不明な場合、または v2 のヘルパー/ジェネレーターの出力に関わる作業では、ドキュメントを更新します。source-map.md から確認を始めてください。
- インストール、
WithContext、Thingの識別、DataTypes、型のみのインポートについては、setup-core.md を参照してください。 Graph、IdReference、*Leaf、MergeLeafTypes、WithActionConstraintsについては、graphs-merge-actions.md を参照してください。- 一般的なページスキーマ、XSS に安全なシリアライズ、フレームワークとの連携については、patterns-frameworks.md を参照してください。
schema-dts-genの CLI/プログラムによる生成と、v1 から v2 への変更については、generator-migration.md を参照してください。- 既存のプロジェクトのスタイルに合わせて実装します。
import type { … } from 'schema-dts'を優先してください。@context: 'https://schema.org'はドキュメントのルート(WithContextまたはGraph)にのみ指定してください。- パッケージを追加したりジェネレーターを実行したりするコマンド例では、
bun/bunxを優先してください。
判断基準
- 型のみです。
schema-dtsは、誤った@typeや不明なプロパティをコンパイル時に検出します。Google リッチリザルトや Schema.org に対する実行時検証は行いません。 - ビルド済みパッケージには Schema.org のコアを使用してください。保留中/実験的なレイヤーには、手作業の
asキャストではなく、カスタムのschema-dts-genの実行が必要です。 - トップレベルの JSON-LD ドキュメントには必ず
WithContext<T>(またはGraph)を使用し、@contextを必須にしてhttps://schema.orgに固定してください。 - すべてを
Thingとして型付けするのではなく、ページに合った 最も具体的な型(Product、Article、FAQPage)を優先してください。 @typeが具体的な型の配列である場合に限り、*LeafとMergeLeafTypesを使用してください。ProductのようなユニオンエイリアスをMergeLeafTypesに渡してはいけません。- クラスで Schema.org の形状を
implementsする必要がある場合は、*Leafインターフェースを使用してください。ユニオンエイリアスは実装できません。 - カスタムまたはサードパーティのオントロジーには、
schema-dts-gen2.0.1 以降を実行してください。2.0.0では、rdfs:commentのテキストによって生成される出力にコードが注入される可能性がありました(GHSA-c4f4-pq98-f2p2)。 - ネストしたオブジェクトを重複させるのではなく、
Graph内で@idとIdReferenceスタブを使ってエンティティ同士を相互参照させてください。 - サイトリンク検索ボックス/アクションのマークアップでは、
query-input(およびその他の*-input/*-output)を型チェックできるよう、WithActionConstraintsでラップするかキャストしてください。 - HTML に挿入する場合は、JSON 文字列内の
<、>、&、'を エスケープしてください(またはreact-schemaorgのJsonLdを使用してください)。 - クローラーが解決する
url、image、logo、sameAs、@idの値には、絶対 HTTPS URLを優先してください。
検証
リポジトリに既存のチェックがある場合は、そちらを優先してください。schema-dts に関する重要な作業では、次のうち該当するものを含めてください。
- JSON-LD ビルダーと、フレームワークのラッパーを型チェックします。
- ルートオブジェクトでは
WithContext/Graphを使用し、ネストされたノードでは@contextを省略していることを確認します。 - ページをスモークレンダリングし、DOM / ソースを表示で
application/ld+jsonスクリプトを確認します。 - SEO の対象となるかが重要な場合は、必要に応じて出力を Google リッチリザルト テスト または Schema Markup Validator に貼り付けます。
- v2 へのアップグレード後は、Role 形式のプロパティ、
Quantityの割り当て、複数タイプのノード、およびカスタムのschema-dts-gen出力(schema-dts-libをインポートするようになりました)を再確認します。
コメント
Markdown 対応