Communitygithub.com

emdash-cms/emdash

WordPressプラグインの動作を分析し、カスタム投稿タイプ、ショートコード、管理ワークフロー、保存データをEmDashの拡張ポイントに移植します。WordPressプラグインの移行や、どの機能をEmDashプラグイン、サイトスキーマ、シード、Astroコードに割り当てるかを判断する際に使用します。視覚テーマのみの移植(プラグイン機能なし)には使用しないでください。

emdash とは?

このスキルは、WordPressプラグインをEmDash CMSに移行するための体系的なアプローチを提供します。EmDashはWordPressとは責任範囲の分割方法が異なるため、まず機能ごとに適切な宛先(サイトスキーマ、Astroコード、サンドボックスプラグイン、信頼済みネイティブプラグイン)を判断します。プラグインのソースコード、インストール動作、データベース変更、フック、RESTエンドポイント、バックグラウンドジョブなどを詳細に分析し、ユーザーに依存される動作をWordPress固有の実装から分離して記録することを重視します。コレクション、タクソノミー、管理画面、ショートコード、メディア操作など、主要なWordPress責任ごとにEmDashでの対応先を定義した責任マッピング表を提供します。デフォルトではサンドボックスプラグインを推奨し、ホストプロセスアクセスやReact管理画面などが必要な場合のみ信頼済みネイティブプラグインを使用します。データ移行計画では、投稿ID、スラッグ、ロケール、著者、ステータス、改訂履歴などのマッピングを明確にし、一度きりのインポートと継続的な同期を区別します。最終的には、WordPressの動作とデータのインベントリ、責任マップ、データ移行計画、実装コード、検証証拠、既知のギャップ、ライセンス情報を含む完全な移行成果物を提供します。

対応✓Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/emdash-cms/emdash/tree/HEAD/skills/wordpress-plugin-to-emdash

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

WordPressプラグインをEmDashに移植する

プラグインのユーザーから見える動作とデータモデルを保持しつつ、PHPを1行ずつ翻訳しないでください。WordPressとEmDashでは責任範囲の分割方法が異なるため、まず各機能をサイトスキーマ、Astroコード、サンドボックスプラグイン、信頼済みネイティブプラグインのいずれに割り当てるかを決定します。

プラグインコードを実装する前にプラグインの作成を読み込んでください。移植によってコレクション、シード、クエリ、フロントエンドテンプレートが変更される場合はEmDashサイトの構築を読み込んでください。これらのスキルは現在のAPIを定義し、このスキルは移行に関する判断をカバーします。

ソースを理解する

プラグインのソースコード、インストール動作、データベースの変更、フック、RESTエンドポイント、スケジュールジョブ、管理画面、ショートコードまたはブロック、フロントエンド出力、権限、外部サービスを調査します。WordPress固有の実装とは別に、ユーザーが依存する動作を特定します。

記録する項目:

  • 必要なコンテンツと設定データ;
  • データを変更または公開するアクション;
  • 認可と信頼の境界;
  • バックグラウンドまたはリトライ動作;
  • フロントエンドと管理者の操作;
  • インポート、移行、ロールバックの要件;
  • コピーされたアセットやコードのライセンス義務。

ソース、期待される動作、またはターゲットのEmDash環境が不明な場合は、同等のものを考案する代わりにギャップを報告します。

各責任を割り当てる

WordPressの責任EmDashの宛先
カスタム投稿タイプ、タクソノミー、メタデータサイトスキーマまたはシードを通じて作成されたコレクション、タクソノミー、フィールド
サイト全体の表示設定Astroテンプレートが読み取るサイト設定
プラグイン所有のユーザー設定ctx.settings;暗号化されたsecretフィールドとして資格情報を宣言
プラグイン所有のカーソル、キャッシュ、内部状態プラグインスコープのctx.kv
プラグイン所有の検索可能なレコード宣言されたctx.storage.<collection>ストレージ
コンテンツの発見、翻訳、公開ケーパビリティで制限されたctx.contentとctx.schema;ポリシーフックとアクションは別の権限を持つ
実行時のタクソノミーまたはリダイレクト管理狭い読み取り/書き込み権限を持つctx.taxonomiesまたはctx.redirects
コメント管理ctx.comments;読み取りは個人データを公開し、モデレーションは期待されるステータスを使用
WordPress RESTエンドポイント明示的なメソッド、入力、ヘッダー、レスポンスモードを持つ宣言されたプラグインルート
スケジュールイベントcronフックとctx.cronスケジューリング
管理ページまたはフォームサンドボックスプラグインにはBlock Kit;信頼済みネイティブプラグインにのみReact
投稿エディターメタボックスまたは保存エントリアクションプライベートルート上のadmin.editorPanelsまたはadmin.editorActions
ユーザーまたは著者の検索users:read権限を持つctx.users
送信HTTPリクエストnetwork:requestとallowedHostsエントリを持つctx.http.fetch()
メディア操作メタデータ、バイト読み取り、メタデータ書き込み、アップロード/削除の権限を分離
WP_QueryまたはテンプレートタグAstroサイトコード内のEmDashコンテンツAPI
ショートコードまたはエディターブロック可能な場合は既存のPortable Textコンテンツ;カスタムPortable Textブロックには信頼済みネイティブプラグインが必要
生のヘッドマークアップまたはスクリプト信頼済みネイティブpage:fragments;レジストリインストール済みプラグインは検証済みpage:metadataのみ提供可能

EmDashのシステムテーブルに直接アクセスしてコレクションやタクソノミーを作成しないでください。パブリックスキーマ、シード、CLI、管理境界を使用してください。存在しないサンドボックスAPIを模倣するために内部RESTルートを使用しないでください。

権限を分離しておく:メディアメタデータの読み取りはバイトへのアクセスを許可せず、モデレーションは削除を許可せず、公開ポリシーは公開アクションを許可せず、コンテンツ復元は通常のコンテンツ読み取りを許可しません。

プラグイン形式を選択する

デフォルトではサンドボックスプラグインを使用します。インストール時の信頼契約を通じて、ポータブルフック、ルート、宣言ストレージ、メディア、ネットワークアクセス、MCPツール、Block Kit管理UIをサポートします。

信頼済みネイティブプラグインは、機能がホストプロセスアクセス、React管理コード、Astroレンダリングコンポーネント、生のページフラグメント、またはカスタムPortable Textブロック定義を必要とする場合にのみ使用します。移行計画で追加の権限と配布制限を明記します。

一部のWordPressプラグインはEmDashプラグインを必要としません。カスタム投稿タイプとフロントエンドテンプレートは、スキーマ、シードデータ、Astroページのみで構成される場合があります。静的なサイト構造で動作がカバーできる場合は、ランタイム拡張を追加しないでください。

データ移動を計画する

ランタイムコードを作成する前に、既存のWordPressデータのマッピング方法を記述します:

  • 投稿ID、スラッグ、ロケール、著者、ステータス、改訂履歴、公開日をマッピングする;
  • 投稿、ターム、メディア、プラグイン所有レコード間の関係を維持する;
  • 一度きりのインポートと継続的な同期が必要なデータを区別する;
  • インポートを再開可能にし、重複の検出方法を定義する;
  • 調整やリダイレクトに必要な場合はソース識別子を保持する;
  • プロダクト上の判断なしでは表現できないコンテンツを特定する。

新しいサイトの初期スキーマとサンプルコンテンツにはシードデータを使用します。既存サイトの本番データにはインポーターまたは移行パスを使用します。シードはバックアップや継続的な同期メカニズムではありません。

同等の動作を検証する

ユーザーとランタイムが実行する境界を通じてテストします:

  • コンテンツモデル変更に対するスキーマとインポートデータのアサーション;
  • サンドボックスフック、ルート、ストレージ、権限に対する本番境界プラグインテスト;
  • 管理画面とフロントエンドの操作に対するブラウザ検証;
  • 再起動、重複配信、認可、失敗ケースのテスト(ソース機能がそれらに依存する場合)。

内部構造ではなく観察可能な動作を比較します。意図的な違いと、未サポートのまま残るWordPress機能を文書化します。

移植成果物を提供する

以下を提供します:

  1. WordPressの動作とデータの簡潔なインベントリ;
  2. 責任マップとサンドボックス/ネイティブの判断;
  3. データ移行またはシード計画;
  4. プラグインとサイトコードにわたる実装;
  5. 検証証拠と既知のギャップ;
  6. 再利用されたコードやアセットの帰属とライセンス通知。

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

関連スキル