vaadin-check-theme-mixing
Run the bundled checker against a Vaadin project and report what it finds.
Run it
The launcher is a self-contained native binary bundled in this plugin's bin/ —
no Node.js and no JVM are required, and it does not download or search the
machine for a runtime. Claude Code puts the plugin's bin/ on PATH, so run it
by name (use . for <project-dir> if the user did not name one):
vaadin-agent-tools check-theme-mixing <project-dir> --json
If it is not on PATH, invoke it by its full path instead:
"${CLAUDE_PLUGIN_ROOT}/bin/vaadin-agent-tools" check-theme-mixing <project-dir> --json.
Read the result
The JSON envelope is:
{ "tool": "check-theme-mixing", "ok": true, "themesLoaded": [], "filesScanned": 0, "findings": [] }
Exit code: 0 = no error-level findings · 1 = mixing detected · 2 = usage
error (e.g. the directory does not exist).
Report each entry in findings with its code, message, and evidence
(each item is file + line + snippet). The codes:
MULTIPLE_BASE_THEMES(error) — both Aura and Lumo are loaded. Keep exactly one base theme.LUMO_UTILITY_WITHOUT_LUMO_THEME(error) —LumoUtilityis used while Aura is the loaded theme; its utility classes are undefined under Aura.MISMATCHED_THEME_TOKENS(warning) —--<other>-*custom properties are used under a different base theme and will not resolve.THEME_INDETERMINATE(info) — no base theme is explicitly loaded, so the theme-dependent checks were skipped. This is not a pass; say so, and suggest confirming which base theme the project loads.LEGACY_THEME_ANNOTATION(info) — a legacy@Themeannotation sits alongside@StyleSheet-based theming; worth confirming during a Vaadin 24→25 upgrade.
Treat error findings as blocking; surface warning/info findings for the
user to judge rather than failing the task on them.