Hi all,
I run a Horizon-based store and use the Shopify AI Toolkit plugin in Claude Code. The Liquid validator has never worked out of the box for me, and it looks like 2.0.0 didn’t change that, so I wanted to raise it here since the GitHub repo says feedback goes to this forum.
What happens
The skill tells the agent to validate every Liquid block with scripts/validate.mjs. On a fresh install that fails right away:
Error [ERR_MODULE_NOT_FOUND]: Cannot find package '@shopify/theme-check-common'
The skill’s package.json declares @shopify/theme-check-common, -docs-updater and -node, but the plugin doesn’t include node_modules. The agent then tries to fix it itself and ends up looping on failed validations.
This is GitHub issue #11, open since April with no response yet:
What I checked in 2.0.0
I grabbed a clean copy of 2.0.0 from the repo to check, and --api liquid still fails the same way. What threw me off at first is that validate.mjs --help runs fine now, even with nothing installed. It seems the new version only loads each validator when you actually use it, so the error doesn’t show up until you run a real Liquid validation.
What stood out to me is that the GraphQL and Functions validators are already bundled and don’t need anything installed. Only _validate_theme.mjs imports the three theme-check packages. The components validator also imports typescript, so it may have the same problem, though I haven’t tested that one.
My workaround
I run npm install --no-package-lock in the skill folder after every plugin update. The --no-package-lock part matters because the lockfile in the original report pointed at a private registry. It works, but the plugin cache gets replaced on every update, so it has to be redone each time.
Two possible fixes, if they help
- Bundle the theme-check packages into
_validate_theme.mjs, the same way the GraphQL and Functions validators are already bundled. - Or ship a small plugin hook that installs the declared dependencies into
${CLAUDE_PLUGIN_DATA}. Claude Code keeps that folder across plugin updates, and it’s meant for exactly this kind of thing.
Is a fix for this on the roadmap? I also saw #44, about shared validator runtimes, which sounds related.
Thanks! Happy to test anything.