Hotfix on 1.5.1 (published ~30 min earlier same day). 1.5.1's variant-template merge was structurally correct but resolveTemplatesDir() had a long-standing path-resolution bug that returned null from the bundled dist/cli.js — so applyVariantTemplate always bailed at its first guard, leaving framework.router: none in emitted configs.
Fixed
resolveTemplatesDir()path resolution for bundled cli.js (long-standing bug) — pre-1.5.2 candidates../../templatesand../../../templatesassumed cli.js was nested atdist/commands/init.jsdepth; the actual bundled location isdist/cli.js, requiring../templates. Pre-1.5.2 the function returnednullin npm-installed deployments for BOTH--template <name>mode AND (new in 1.5.1) the variant-template merge. Cited evidence:node $cli init --yesdebug instrumentation 2026-05-08 showed candidatesnode_modules/@massu/templatesandnode_modules/templates(wrong scopes) and never the actualnode_modules/@massu/core/templatesdirectory. Added../templatesas the first dist-relative candidate; older candidates retained as fallbacks.
Verification
npx --yes @massu/core@1.5.2 initagainst the 5 framework fixtures (rails, phoenix, aspnet, spring, go-chi) produces configs with the correctframework.router,paths.source,verification.<lang>.lintvalues.