Winter CMS is detected as Laravel today, since it ships artisan and requires laravel/framework, so it borrows a Laravel definition for its PHP range, its workers and its commands. Its lock pins laravel/framework to a dev branch, which does not parse as a major, so which definition it lands on depends on the fallback rather than on the project.
A definition of its own would give it the right PHP range, its own migration command (winter:up rather than migrate), its own logs and doctor checks, and an asset worker that matches how the framework actually builds assets.
The asset pipeline is the part worth describing carefully. Each theme or plugin carries its own vite.config.mjs and package.json, node_modules sits at the project root as a workspace, and the watcher runs as php artisan vite:watch with the working directory set to the package, so the dev server is started indirectly and the config lerd would need to influence is the one inside the theme.
Winter CMS is detected as Laravel today, since it ships artisan and requires laravel/framework, so it borrows a Laravel definition for its PHP range, its workers and its commands. Its lock pins laravel/framework to a dev branch, which does not parse as a major, so which definition it lands on depends on the fallback rather than on the project.
A definition of its own would give it the right PHP range, its own migration command (winter:up rather than migrate), its own logs and doctor checks, and an asset worker that matches how the framework actually builds assets.
The asset pipeline is the part worth describing carefully. Each theme or plugin carries its own vite.config.mjs and package.json, node_modules sits at the project root as a workspace, and the watcher runs as php artisan vite:watch with the working directory set to the package, so the dev server is started indirectly and the config lerd would need to influence is the one inside the theme.