ジェネレーターCLIテスト
Claude Codeスキルを使ったcreate-zudo-docジェネレーターCLIのテスト方法。
create-zudo-docジェネレーターCLIは、さまざまな機能の組み合わせで新しいzudo-docプロジェクトを生成します。テストでは、各組み合わせがビルド・実行でき、正しいファイルと設定が生成されることを検証します。
2つのClaude Codeスキルでこのワークフローを自動化しています:
| スキル | 目的 |
|---|---|
/ | 単一の生成パターンをテスト |
/ | 全9パターンを実行し、バグを修正して検証 |
テストパターン
各パターンは異なる機能の組み合わせを有効にします:
| パターン | 説明 |
|---|---|
barebone | すべてOFF — 最小構成 |
search | 検索のみ有効 |
i18n | i18nのみ有効 |
sidebar-filter | サイドバーフィルターのみ有効 |
claude-resources | Claude Resourcesのみ有効 |
design-token-panel | Design Token Panelのみ有効(API使用) |
light-dark | ライト・ダークカラースキームモード |
lang-ja | デフォルト言語を日本語に設定 |
all-features | すべてON |
テストの実行
全テストスイート
全9パターンをエンドツーエンドで実行し、失敗を自動修正して検証します:
/l-run-generator-cli-whole-test ヘッドレスブラウザによるレンダリングチェック付き:
/l-run-generator-cli-whole-test --headless 単一パターン
1つのパターンを個別にテストします:
/l-generator-cli-tester barebone
/l-generator-cli-tester all-features --headless 各テストのチェック内容
各パターンは以下のステップを実行します:
スキャフォールド — パターン固有のフラグでジェネレーターCLI(またはプログラマティックAPI)を実行
インストール — 生成されたプロジェクトで
pnpm installビルド —
pnpm buildで静的エクスポートの成功を検証開発サーバー —
pnpm devを起動し、8秒待ってプロセスがまだ実行中か確認ファイル検証 — 有効な機能に基づいて、期待されるファイルの存在/不在を確認
設定検証 — 生成された
zfb.config.tsを読み、zudoDoc({ … })呼び出しが期待されるフィールドを持つことを確認(デフォルトとの差分。別個のsettings.tsはありません)ショーケース比較 — 生成されたコードをメインのzudo-docショーケースと比較
ヘッドレスブラウザ(
--headless使用時) — 実際のブラウザでページをレンダリングし、JSエラーを確認、視覚要素(検索アイコン、言語切り替え、テーマトグルなど)を検証
バグ修正ワークフロー
/スキルには構造化されたバグ修正フェーズがあります:
フェーズ1 — 全9パターンを実行し、結果を収集
フェーズ2 — 各失敗について:失敗ステップの診断、関連ソースファイルの確認、最小限の修正適用、CLIの再ビルドと再テスト、個別コミット
フェーズ3 — 全9パターンを最初から再実行し、リグレッションがないことを確認
フェーズ4 — サマリーレポートを出力
よくある失敗パターン
| 失敗内容 | 原因 | 修正対象 |
|---|---|---|
| ビルド時にモジュールが見つからない | 生成されたpackage.jsonに依存関係がない | scaffold.ts — generatePackageJson() |
zfb.config.tsのフィールドが誤り/不足 | zudoDoc()のデフォルト差分が正しく出力されていない | zfb-config-gen.ts |
| 生成された設定の型エラー | フィールドがZudoDocConfigと不一致 | zfb-config-gen.ts |
| 機能ファイルが見つからない | 機能モジュールがファイルをコピーしていない(今もファイルを出荷する少数の機能のみ) | features/*.tsまたはtemplates/features/*/files/ |
| アンカーが出力に残っている | injectionアンカーが未クリーンアップ(ANCHOR_FILESは現在空) | compose.ts — cleanAnchors() |
主要なジェネレーターファイル
| ファイル | 役割 |
|---|---|
packages/ | パイプライン統括: ベースコピー、設定生成、機能合成 |
packages/ | 合成エンジン: injection、アンカークリーンアップ、機能解決 |
packages/ | 機能モジュール — 現在はほぼ設定フィールドの出力のみ。ファイルをコピーするのは一部だけ |
packages/ | 唯一の設定ジェネレーター — zfb.config.tsをzudoDoc({ … })のデフォルト差分呼び出しとして出力(旧settings-gen.tsは廃止) |
packages/ | CLIとAPIで共有される機能プリセットの解決 |
packages/ | 新しいプロジェクト形状向けのプロジェクトCLAUDE.mdを生成 |
packages/ | 機能定義、カラースキームリスト |
packages/ | CLI引数のパース |
packages/ | プログラマティックAPI |
注意事項
テストディレクトリは
__inbox/(gitignored)に作成され、リポジトリを汚染しませんbareboneパターンがベースライン — 失敗した場合、他のテストの前に修正してくださいdesignTokenPanelは--design-token-panelCLIフラグとしても利用可能ですが、design-token-panelやall-featuresなどのパターンは他のテストパターンとの一貫性のためプログラマティックAPIで駆動しています--headlessフラグはプロセスレベルのチェックに加えて、ブラウザレベルのレンダリングチェックを追加しますテスト前と各修正後には必ずCLIを再ビルド(
packages/create-zudo-docでpnpm build)してください