zudo-doc
GitHub repository

Type to search...

to open search from anywhere

Generator CLI Testing

Created Mar 20, 2026Updated Jul 10, 2026Takeshi Takatsudo

How to test the create-zudo-doc generator CLI with Claude Code skills.

The create-zudo-doc generator CLI scaffolds new zudo-doc projects with various feature combinations. Testing it requires verifying that each combination builds, runs, and produces the correct files and config.

Two Claude Code skills automate this workflow:

SkillPurpose
/l-generator-cli-tester <pattern>Test a single generation pattern
/l-run-generator-cli-whole-testRun all 9 patterns, fix bugs, verify everything passes

Test Patterns

Each pattern enables a different feature combination:

PatternDescription
bareboneEverything OFF — minimal project
searchOnly search enabled
i18nOnly i18n enabled
sidebar-filterOnly sidebar filter enabled
claude-resourcesOnly Claude Resources enabled
design-token-panelOnly design token panel enabled (uses API)
light-darkLight-dark color scheme mode
lang-jaJapanese as default language
all-featuresEverything ON

Running Tests

Full test suite

Run all 9 patterns end-to-end, automatically fix any failures, and verify:

/l-run-generator-cli-whole-test

With headless browser rendering checks:

/l-run-generator-cli-whole-test --headless

Single pattern

Test one pattern in isolation:

/l-generator-cli-tester barebone
/l-generator-cli-tester all-features --headless

What Each Test Checks

Each pattern goes through these steps:

  1. Scaffold — Run the generator CLI (or programmatic API) with pattern-specific flags

  2. Installpnpm install in the generated project

  3. Buildpnpm build to verify static export succeeds

  4. Dev server — Start pnpm dev, wait 8 seconds, verify the process is still running

  5. File verification — Check expected files are present/absent based on enabled features

  6. Config verification — Read the generated zfb.config.ts and confirm the zudoDoc({ … }) call holds the expected fields (diff-from-defaults; there is no separate settings.ts)

  7. Showcase comparison — Compare generated code against the main zudo-doc showcase

  8. Headless browser (with --headless) — Render pages in a real browser, check for JS errors, verify visual elements (search icon, language switcher, theme toggle, etc.)

The Bug-Fix Workflow

The /l-run-generator-cli-whole-test skill has a structured bug-fix phase:

  1. Phase 1 — Run all 9 patterns and collect results

  2. Phase 2 — For each failure: diagnose which step failed, read the relevant generator source file, apply a minimal fix, rebuild the CLI and re-test the failing pattern, then commit each fix individually

  3. Phase 3 — Re-run all 9 patterns from scratch to ensure no regressions

  4. Phase 4 — Output a summary report

Common failure categories

FailureLikely causeFix location
Missing module at build timeDependency not in generated package.jsonscaffold.tsgeneratePackageJson()
Wrong/missing field in zfb.config.tszudoDoc() diff-from-defaults emitted incorrectlyzfb-config-gen.ts
Type error in generated configField mismatched against ZudoDocConfigzfb-config-gen.ts
Feature file missingFeature module not copying files (only the few features that still ship files)features/*.ts or templates/features/*/files/
Anchor remnant in outputInjection anchor not cleaned up (ANCHOR_FILES is now empty)compose.tscleanAnchors()

Key Generator Files

FileRole
packages/create-zudo-doc/src/scaffold.tsOrchestrates pipeline: copy base, generate config, compose features
packages/create-zudo-doc/src/compose.tsComposition engine: injection system, anchor cleanup, feature resolution
packages/create-zudo-doc/src/features/*.tsFeature modules — mostly settings-field emission now; only a few still copy files
packages/create-zudo-doc/src/zfb-config-gen.tsThe single config generator — emits zfb.config.ts as a zudoDoc({ … }) diff-from-defaults call (the former settings-gen.ts is gone)
packages/create-zudo-doc/src/preset.tsFeature-preset resolution shared across CLI and API
packages/create-zudo-doc/src/claude-md-gen.tsGenerates the project CLAUDE.md for the new project shape
packages/create-zudo-doc/src/constants.tsFeature definitions, color scheme lists
packages/create-zudo-doc/src/cli.tsCLI argument parsing
packages/create-zudo-doc/src/api.tsProgrammatic API

Notes

  • Test directories are created under __inbox/ (gitignored) to avoid polluting the repo

  • The barebone pattern is the baseline — if it fails, fix it before testing others

  • designTokenPanel is exposed as the --design-token-panel CLI flag, but patterns like design-token-panel and all-features drive it through the programmatic API for consistency with the other test patterns

  • The --headless flag adds browser-level rendering checks on top of process-level checks

  • Always rebuild the CLI (pnpm build in packages/create-zudo-doc) before testing and after each fix

Revision History

Takeshi TakatsudoCreated: 2026-03-20T16:35:39+09:00Updated: 2026-07-10T01:57:35Z

AI Assistant

Ask a question about the documentation.

Preview theme

Loading theme previews…