`create-zudo-doc`ジェネレーターCLIは、さまざまな機能の組み合わせで新しいzudo-docプロジェクトを生成します。テストでは、各組み合わせがビルド・実行でき、正しいファイルと設定が生成されることを検証します。

2つのClaude Codeスキルでこのワークフローを自動化しています：

| スキル | 目的 |
|--------|------|
| `/l-generator-cli-tester <pattern>` | 単一の生成パターンをテスト |
| `/l-run-generator-cli-whole-test` | 全10パターンを実行し、バグを修正して検証 |

## テストパターン

各パターンは異なる機能の組み合わせを有効にします：

| パターン | 説明 |
|----------|------|
| `barebone` | すべてOFF — 最小構成 |
| `search` | 検索のみ有効 |
| `i18n` | i18nのみ有効 |
| `sidebar-filter` | サイドバーフィルターのみ有効 |
| `claude-resources` | Claude Resourcesのみ有効 |
| `codex-resources` | Codex Resourcesのみ有効 |
| `design-token-panel` | Design Token Panelのみ有効（API使用） |
| `light-dark` | ライト・ダークカラースキームモード |
| `lang-ja` | デフォルト言語を日本語に設定 |
| `all-features` | すべてON |

## テストの実行

### 全テストスイート

全10パターンをエンドツーエンドで実行し、失敗を自動修正して検証します：

```
/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
```

## 各テストのチェック内容

各パターンは以下のステップを実行します：

1. **スキャフォールド** — パターン固有のフラグでジェネレーターCLI（またはプログラマティックAPI）を実行
2. **インストール** — 生成されたプロジェクトで`pnpm install`
3. **ビルド** — `pnpm build`で静的エクスポートの成功を検証
4. **開発サーバー** — `pnpm dev`を起動し、8秒待ってプロセスがまだ実行中か確認
5. **ファイル検証** — 有効な機能に基づいて、期待されるファイルの存在/不在を確認
6. **設定検証** — 生成された`zfb.config.ts`を読み、`zudoDoc({ … })`呼び出しが期待されるフィールドを持つことを確認（デフォルトとの差分。別個の`settings.ts`はありません）
7. **ショーケース比較** — 生成されたコードをメインのzudo-docショーケースと比較
8. **ヘッドレスブラウザ**（`--headless`使用時） — 実際のブラウザでページをレンダリングし、JSエラーを確認、視覚要素（検索アイコン、言語切り替え、外観メニューなど）を検証

## バグ修正ワークフロー

`/l-run-generator-cli-whole-test`スキルには構造化されたバグ修正フェーズがあります：

1. **フェーズ1** — 全10パターンを実行し、結果を収集
2. **フェーズ2** — 各失敗について：失敗ステップの診断、関連ソースファイルの確認、最小限の修正適用、CLIの再ビルドと再テスト、個別コミット
3. **フェーズ3** — 全10パターンを最初から再実行し、リグレッションがないことを確認
4. **フェーズ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/create-zudo-doc/src/scaffold.ts` | パイプライン統括: ベースコピー、設定生成、機能合成 |
| `packages/create-zudo-doc/src/compose.ts` | 合成エンジン: injection、アンカークリーンアップ、機能解決 |
| `packages/create-zudo-doc/src/features/*.ts` | 機能モジュール — 現在はほぼ設定フィールドの出力のみ。ファイルをコピーするのは一部だけ |
| `packages/create-zudo-doc/src/zfb-config-gen.ts` | **唯一**の設定ジェネレーター — `zfb.config.ts`を`zudoDoc({ … })`のデフォルト差分呼び出しとして出力（旧`settings-gen.ts`は廃止） |
| `packages/create-zudo-doc/src/preset.ts` | CLIとAPIで共有される機能プリセットの解決 |
| `packages/create-zudo-doc/src/claude-md-gen.ts` | 新しいプロジェクト形状向けのプロジェクト`CLAUDE.md`を生成 |
| `packages/create-zudo-doc/src/constants.ts` | 機能定義、カラースキームリスト |
| `packages/create-zudo-doc/src/cli.ts` | CLI引数のパース |
| `packages/create-zudo-doc/src/api.ts` | プログラマティックAPI |

## 注意事項

- テストディレクトリは`__inbox/`（gitignored）に作成され、リポジトリを汚染しません
- `barebone`パターンがベースライン — 失敗した場合、他のテストの前に修正してください
- `designTokenPanel` は `--design-token-panel` CLIフラグとしても利用可能ですが、`design-token-panel` や `all-features` などのパターンは他のテストパターンとの一貫性のためプログラマティックAPIで駆動しています
- `--headless`フラグはプロセスレベルのチェックに加えて、ブラウザレベルのレンダリングチェックを追加します
- テスト前と各修正後には必ずCLIを再ビルド（`packages/create-zudo-doc`で`pnpm build`）してください