Trigger the scaffold
Command palette → Scaffold New Project → pick Site Initializer, or right-click the target folder.
The full working folder tree: layouts with master pages, fragment collections (scoped under group/), style books, taxonomies, object definitions, roles, notifications. Every filename and field name matches Liferay's own samples — no more LayoutNameException or OAuth2ApplicationHomePageURLSchemeException on deploy.
Command palette → Scaffold New Project → pick Site Initializer, or right-click the target folder.
The id becomes the folder name; name is what shows up in the site initializer picker inside Liferay.
layout-set/, layouts/, layout-page-templates/master-pages/, fragments/group/, taxonomy-vocabularies/, style-books/, object-definitions/, roles.json, and notification templates.
Verified against Liferay's official reference samples — the exact field-name capitalisation and folder structure DXP expects.
Auto-declared in the same yaml with matching naming (<id>-oauth-server) so batch imports authenticate.
No LayoutNameException, no OAuth2ApplicationHomePageURLSchemeException, no missing companion files.