WordPress Block Theme Converter
HTML/CSS/JavaScript プロジェクトを、フルサイト編集(FSE)対応、theme.json スキーマ v3、ブロックパターン、テンプレート、WooCommerce 互換性を備えた、本番環境対応の WordPress Block Theme に変換します。
行動原則
以下の4つの原則は、テーマ生成中のすべての決定を統治します。これらは交渉の余地がなく、「とにかく終わらせる」という誘惑に優先します。
トレードオフ: これらの原則は、スピードよりも慎重さを重視します。単純なリクエスト(単一ブロックの編集、1行のCSS修正)の場合は、判断力を使用してください。すべてのタスクに完全な厳格さは必要ありません。
1. コードを書く前に考える
推測しないでください。混乱を隠さないでください。トレードオフを表面化させてください。
ファイルを生成する前に:
- 仮定を明示的に述べてください。 ユーザーがカラーパレット、フォントスタック、またはレイアウト戦略を指定しなかった場合は、その旨を伝えてください。デザイン上の決定を黙って発明しないでください。
- 複数の解釈が存在する場合は、それらを提示してください。 「ヒーローセクションは、
core/coverブロック(パララックス対応)またはcore/groupと背景画像(よりシンプル)のどちらにもできます。どちらが良いですか?」 - 正当な理由がある場合は、反論してください。 ユーザーが貧弱なテーマを作成するようなものを要求した場合(例:パターン内のインラインJS、単純なトグルにAlpine.js)、その旨を伝え、WordPressネイティブの代替案を提案してください。
- 不明な点がある場合は、止まってください。 何が混乱しているのかを明確に述べてください。質問してください。推測に基づいて50のファイルを生成しないでください。
2. シンプルさを第一に
問題を解決する最小限のコード。推測的なものは一切なし。
- 要求された以上の機能は追加しないでください。 ユーザーがランディングページテーマを欲している場合、「念のため」WooCommerceサポート、ダークモード、またはニュースレターパターンをスキャフォールディングしないでください。
- 単一使用のコードに抽象化はしないでください。 1つの関数のために
ThemeHelperクラスを作成しないでください。1回しか読み取られないconfig.phpを作成しないでください。 - 要求されていない「柔軟性」は追加しないでください。 ユーザーが要求していないテーマオプションパネル、カスタマイザー設定、または追加のブロックバリエーションを追加しないでください。
- 200行を50行にできる場合は、書き直してください。 すべての行はその場所に値する必要があります。
- カスタムパターンよりもコアブロックを優先してください。
core/media-textブロックは、同じことを再実装するカスタムメディア+テキストパターンよりも優れています。 - CSSよりも theme.json を優先してください。 スタイルが theme.json で表現できる場合は、そうしなければなりません。theme.json がネイティブに処理するものにCSSを書かないでください。
テスト: シニアなWordPressテーマレビューアーはこれを複雑すぎると言うでしょうか? はいの場合は、簡素化してください。
3. 外科的な変更
必要なものだけに触れてください。自分の後始末だけをしてください。
ユーザーが既存のテーマを持っていて変更を希望する場合:
- 隣接するコードを「改善」しないでください。 フッターパターンを追加するように依頼された場合、ヘッダーパターンをリファクタリングしないでください。
- 壊れていないものをリファクタリングしないでください。 既存のテーマが何かに
wp_enqueue_script()を使用している場合、要求されない限りInteractivity APIに移行しないでください。 - 既存のスタイルに合わせてください。 テーマがインデントにタブを使用している場合は、タブを使用してください。関数名に
snake_caseを使用している場合は、それに従ってください。 - 無関係な問題に気付いた場合は、修正せずに言及してください。 「ヘッダーパターンにインラインの
style属性があるのに気付きました。それも修正しますか?」
あなたの変更によって孤立が生じた場合:
- あなたの変更によって未使用になったインポート/変数/関数を削除してください。
- 要求されない限り、以前から存在するデッドコードは削除しないでください。
テスト: 変更されたすべての行は、ユーザーのリクエストに直接関連している必要があります。
4. 目標駆動型の実行
成功基準を定義してください。検証されるまでループしてください。
すべてのタスクについて、コードを書く前に検証可能な成功基準を定義してください:
| タスク | 成功基準 |
|---|---|
| ランディングページをWPテーマに変換 | テーマがエラーなく有効化される。フロントページがソースと視覚的に同一にレンダリングされる。すべてのパターンがサイトエディターで編集可能。 |
| theme.json を生成 | JSON が v3 スキーマに対して検証される。カラーパレットがソースと一致する。タイポグラフィスケールがソースと一致する。 |
| ブロックパターンを作成 | パターンが正しいカテゴリの下でインサーターに表示される。コンテンツが編集可能。インラインスタイルがない。すべての文字列が翻訳可能。 |
| WooCommerce サポートを追加 | 製品アーカイブ/単一/カート/チェックアウトテンプレートがレンダリングされる。HPOS互換性が宣言される。WCブロックが正しく読み込まれる。 |
| エディターのパリティを修正 | すべてのフロントエンドCSSルールに、editor.css 内に一致するルールがある。エディターとフロントエンド間の視覚的な差異がゼロ。 |
命令的なタスクの説明を、開始する前に検証可能な目標に変換してください:
| 次の代わりに... | 次のように変換... |
|---|---|
| 「正しく見えるようにする」 | 「フロントページがソースHTMLと視覚的に一致してレンダリングされる。インラインスタイルなし。」 |
| 「PHPエラーを修正する」 | 「WP_DEBUG をオンにし、エラーを再現、修正を適用 — debug.log がクリーン。」 |
| 「WooCommerceサポートを追加する」 | 「カート、チェックアウト、製品アーカイブが警告なしでレンダリングされる。HPOSが宣言される。」 |
| 「パターンを編集可能にする」 | 「サイトエディターのインサーター内のすべてのパターン。パターンファイルに触れることなく、すべてのテキスト/画像要素が編集可能。」 |
マルチステップタスクの場合は、各ステップで検証を含む簡潔な計画を述べてください:
1. ソースHTMLを監査 → 検証: コンポーネントマップが作成され、未解決の曖昧さがない
2. theme.json を生成 → 検証: JSONが検証され、すべてのデザイントークンがマッピングされる
3. テンプレートを作成 → 検証: すべてのページに対応するFSEテンプレートがある
4. パターンを登録 → 検証: パターンがインサーターに表示され、コンテンツが編集可能
5. アセットをエンキュー → 検証: コンソールエラーがなく、スタイルが正しく読み込まれる
6. アクセシビリティパス → 検証: スキップリンクが機能し、コントラスト比がパスし、ARIA属性が存在する
強力な成功基準により、独立して作業できます。弱い基準(「見栄え良くする」)は、絶え間ない説明を必要とします。
このスキルを使用するタイミング
ユーザーが次のことを希望する場合に、このスキルをトリガーしてください:
- 静的HTML/CSS/JSをWordPressテーマに変換する
- スクラッチからフルサイト編集(FSE)テーマを構築する
- theme.json、ブロックパターン、またはブロックテンプレートをスキャフォールディングする
- 既存のランディングページ、ポートフォリオ、またはeコマースサイトをWordPressに移植する
- WooCommerce互換のブロックテーマを作成する
- HTMLスニペットから個々のブロックパターンまたはテンプレートを生成する
カスタムスラッシュコマンド
| コマンド | 目的 | 参照ファイル |
|---|---|---|
/convert-to-wp-theme | HTML/CSS/JSプロジェクトを完全なブロックテーマに完全変換 | commands/convert-to-wp-theme.md |
/scaffold-wp-theme | 空のブロックテーマスキャフォールドを作成(ソース変換なし) | commands/scaffold-wp-theme.md |
/wp-pattern | 単一のHTMLセクションを登録済みブロックパターンに変換 | commands/wp-pattern.md |
/wp-theme-json | デザインシステム/CSSカスタムプロパティからtheme.jsonを生成 | commands/wp-theme-json.md |
/wp-template | 単一のHTMLページをFSEテンプレートに変換 | commands/wp-template.md |
/wp-block | カスタムブロックをスキャフォールディング(block.json, edit.js, save.js/render.php, CSS) | commands/wp-block.md |
/wp-migrate | 既存のWPコンテンツ(クラシックエディター、ACF、ウィジェット、CPT、ショートコード)をブロックテーマに移行 | commands/wp-migrate.md |
/wp-plugin-theme | プラグインの依存関係を宣言し、プラグイン固有のCSS/互換性コードを生成 | commands/wp-plugin-theme.md |
/wp-variation | スタイルバリエーション(styles/*.json)— ダークモード、カラーパレットの交換、フォントの交換を生成 | commands/wp-variation.md |
/wp-classic-to-fse | 既存のWordPressクラシックテーマ(PHPテンプレート)をFSEブロックテーマに変換 | commands/wp-classic-to-fse.md |
/wp-debug | WordPressブロックテーマの問題(ホワイトスクリーン、エディターエラー、スタイルのリグレッション)を体系的にデバッグ | commands/wp-debug.md |
ユーザーがこれらのコマンドのいずれかを入力した場合、commands/ 内の対応するコマンドファイルを読み取り、そこで定義されたワークフローを実行してください。
コアワークフロー
あらゆる変換リクエスト(スラッシュコマンドまたは自然言語によってトリガーされた場合)に対応:
ステップ 1: 考える — 収集して明確化(原則 1)
これらの入力を収集してください(提供されていない場合のみ質問してください):
- テーマID(名前、スラッグ、作者、説明)
- ソースプロジェクトタイプ(ランディングページ、ブログ、eコマース、ポートフォリオ、SaaS)
- 変換するHTMLファイル
- デザイントークン(色、フォント、スペーシング)
- ビルドシステムの好み(Vite 6 デフォルト、またはwp-scripts、またはなし)
- WooCommerceサポート(はい/いいえ)
続行する前に、明示的に述べてください:
- あなたが想定していること(例:「WordPress.orgへの提出について言及されたので、GPL-2.0-or-laterライセンスを想定しています」)
- あなたが行わないこと(例:「eコマースについて言及されなかったので、WooCommerceサポートをスキャフォールディングしません」)
- 解決する必要のあるあいまいさ(例:「ヒーローがビデオ背景を使用しています — これは
core/coverとビデオにするべきか、それとも<video>タグ付きのカスタムパターンにするべきですか?」)
ユーザーが沈黙している場合のデフォルト値については、references/defaults.md のテーブルを使用してください。
ステップ 2: 計画 — 成功基準を定義(原則 1 + 4)
コードを書く前に、以下をマッピングする変換計画を作成してください:
- 各ソースHTMLファイル → WordPressテンプレート
- 各繰り返しセクション → ブロックパターン
- ヘッダー/フッター → テンプレートパーツ
- インタラクティブコンポーネント → JS戦略(Interactivity API推奨、複雑なライブラリにはクラシックエンキュー —
references/modern-blocks.mdを参照) - デザイントークン → theme.json 構造
- 動的データのニーズ → Block Bindings API の候補
また、この特定の変換の成功基準も述べてください:
SUCCESS CRITERIA:
1. テーマがWordPress [バージョン] でPHPエラーや通知なしで有効化される
2. [ページリスト] がソースHTMLと視覚的に一致してレンダリングされる
3. すべてのパターンがサイトエディターのインサーターに [カテゴリ] の下に表示される
4. すべてのインタラクティブコンポーネントが機能する(リストアップ)
5. ブロックマークアップにインラインスタイルがない
6. すべての文字列が翻訳準備完了
7. PHPCS WordPress-Extra がエラーゼロでパスする
8. [プロジェクト固有の基準]
この計画をユーザーに示してください。ファイル生成に進む前に確認を得てください(ユーザーが明示的に「とにかく作って」と言わない限り)。
ステップ 3: 実行 — 10フェーズ手法(原則 2)
references/methodology.md に文書化されたフェーズに従ってください。すべてのフェーズで「シンプルさを第一に」を適用し、プロジェクトに必要なものだけを生成してください:
- 監査と抽出 — ソースを解析し、再利用可能なコンポーネントを特定
- theme.json — 完全な設定+スタイルを含むスキーマv3を生成(セクションスタイル、ディメンション、位置を含む)
- テンプレートとパーツ — HTMLページをFSEブロックマークアップに変換
- ブロックパターン — セクションを再利用可能なパターンとして登録
- ブロックスタイルとバリエーション — theme.json + PHP を介してカスタムバリアントを登録
- JavaScript統合 — インタラクティブパターンにはInteractivity API; 複雑なライブラリにのみ
wp_enqueue_script()。最初にreferences/modern-blocks.mdを読んでください。 - functions.php と inc/ — WPコーディング基準に従ったブートストラップファイル
- アクセシビリティとパフォーマンス — WCAG 2.1 AA + Core Web Vitals + ブロックごとのCSS読み込み + フォントのプリロード
- i18n — すべての場所で翻訳準備完了の文字列
- README とドキュメント — WordPress.org 形式の readme.txt
実行中のシンプルさチェック:
- この特定のプロジェクトに不要なファイルを生成していませんか? → 削除してください。
- ユーザーが要求していないパターンを追加していませんか? → 削除してください。
- theme.json が処理するものにCSSを書いていませんか? → theme.json に移動してください。
- 1回しか使用しない抽象化を作成していますか? → インライン化してください。
- この200行のファイルを50行にできますか? → 書き直してください。
ステップ 4: ファイルを出力(原則 3)
references/file-structure.md に文書化されたファイル構造を使用してください。すべてのファイルを明確なヘッダーとともに出力してください:
=== FILE: {{theme-slug}}/path/to/file.ext ===
<content>
大規模プロジェクト(10+ HTMLページまたはWooCommerceテーマ)の場合は、references/multi-turn-strategy.md を使用して、3ターンにわたって配信を分割してください。
既存テーマへの外科的な正確さ: 既存のテーマを変更する場合は、変更されたファイルのみを出力してください。何が変更されたのか、その理由を正確に示す差分サマリーを含めてください。
ステップ 5: 検証 — 生成後(原則 4)
最初に自動化されたドクターを実行してください。 ユーザーに出力を提供する前に、以下を実行してください:
node scripts/doctor.mjs <theme-dir>
これにより、4つの品質チェック(theme.json 検証、ブロックマークアップリント、パターン登録チェック、i18nカバレッジ)がすべて実行されます。doctor が終了コード 0 で終了するまで成功を宣言しないでください。 ゼロ以外で終了した場合は、関連するフェーズにループバックし、続行する前に報告されたすべての違反を修正してください。
次に、以下を提供してください:
- インストール手順
- インストール後のチェックリスト(有効化、フロントページの設定、必要なプラグインのインストール)
- ビルドコマンド(
npm install、npm run dev、npm run build) - 「行われた決定」セクション — 理由とともにすべての仮定をリストアップ
- 検証手順 — 各成功基準が満たされたことを確認する方法:
VERIFICATION:
✅ node scripts/doctor.mjs <theme-dir> → 終了コード0(すべてのチェックに合格)
✅ テーマを有効化 → debug.log にPHPエラーがないことを確認
✅ フロントページにアクセス → ソースとの視覚的な一致を確認
✅ サイトエディターを開く → すべてのテンプレートがリストされていることを確認
✅ ブロックを挿入 → すべてのパターンが正しいカテゴリの下に表示されることを確認
✅ `npx phpcs --standard=WordPress-Extra .` を実行 → エラーゼロを確認
✅ ブラウザコンソールを確認 → JSエラーゼロを確認
✅ Lighthouse を実行 → アクセシビリティスコア ≥ 90 を確認
いずれかの検証手順に失敗した場合は、関連するフェーズにループバックし、完了と報告する前に修正してください。チェックに失敗したまま成功を宣言しないでください。
ユーザーが生成されたテーマで問題を報告した場合は、/wp-debug に誘導してください。完全な症状→根本原因→修正リファレンスについては、references/troubleshooting.md を参照してください。
品質ルール — 交渉の余地なし
これらのルールは、生成されるすべてのファイルに適用されます。詳細は references/quality-rules.md を参照してください。
❌ 絶対にしないこと:
- ブロックマークアップでのインライン
style=""属性 - テンプレート/パーツ/パターン内の
<style>または<script>タグ - CSS でのハードコードされた色/スペーシング —
var(--wp--preset--color--{slug})を使用 - 非推奨のWordPress関数
- エスケープされていない出力(常に
esc_html()、esc_attr()、esc_url()、wp_kses_post()を使用)
依存関係
このスキルは、以下のコマンドファイルとリファレンスドキュメントに依存しています。
| ファイル | 目的 |
|---|---|
commands/convert-to-wp-theme.md | 完全な変換ワークフロー |
commands/scaffold-wp-theme.md | 空のテーマスキャフォールディング |
commands/wp-pattern.md | ブロックパターン生成 |
commands/wp-theme-json.md | theme.json 生成 |
commands/wp-template.md | FSEテンプレート生成 |
commands/wp-block.md | カスタムブロックスキャフォールディング |
commands/wp-migrate.md | クラシック→FSE移行 |
commands/wp-plugin-theme.md | プラグイン互換性コード |
commands/wp-variation.md | スタイルバリエーション |
commands/wp-classic-to-fse.md | クラシックテーマ→FSE変換 |
commands/wp-debug.md | デバッグワークフロー |
references/defaults.md | デフォルト値と規則 |
references/methodology.md | 10フェーズ手法の詳細 |
references/file-structure.md | テーマファイル構造 |
references/modern-blocks.md | Interactivity API と最新ブロックのガイド |
references/quality-rules.md | 完全な品質ルール |
references/troubleshooting.md | トラブルシューティングリファレンス |
references/multi-turn-strategy.md | 大規模プロジェクト配信戦略 |
scripts/doctor.mjs | 品質チェックスクリプト |
すべてのコマンドとリファレンスファイルが利用可能であり(存在する場合)、このスキルで指定されたワークフローに従ってください。