From magento2-tools
Scaffold a Swissup Breeze (Breezefront) child theme — theme.xml with a Swissup/breeze-* parent, registration.php, composer.json, a Breeze-only layout handle, and Breeze-side overrides in web/css/breeze/_default.less with @critical guards. Use when the user wants a new Breeze child or custom theme. Detects Breeze via magento2-context (theme.breeze) and refuses with the install command when Breeze is absent. Sibling to magento2-frontend-create, which builds generic Luma/Hyva/custom themes plus RequireJS/Knockout/Alpine components; this skill is Breeze-specific. To adapt an existing module to Breeze use magento2-breeze-module-adapt; to check a module's Breeze compatibility use magento2-breeze-compat-audit.
How this skill is triggered — by the user, by Claude, or both
Slash command
/magento2-tools:magento2-breeze-child-themeThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Scaffolds a [Swissup Breeze](https://breezefront.com/docs/child-theme) child theme. Breeze is a
Scaffolds a Swissup Breeze child theme. Breeze is a
high-performance frontend framework that replaces RequireJS/Knockout/jQuery with a Cash-based
stack; a Breeze child theme inherits one of the Swissup Breeze parent themes and overrides assets
through the Breeze-specific web/css/breeze/ directory.
magento2-context and read theme.breeze.installed. If it is
false, do NOT scaffold — print the install path and stop:
composer require swissup/breeze-evolution && \
bin/magento setup:upgrade --safe-mode=1 && \
bin/magento marketplace:package:install swissup/breeze-evolution
theme.xml / registration.php; if the target
theme directory already exists, stop and report rather than clobber.<parent> is Swissup/breeze-blank,
Swissup/breeze-evolution, or Swissup/breeze-enterprise — default to the detected installed
parent (theme.breeze.parent or the matched theme.breeze.packages), else ask.web/css/breeze/. Storefront CSS goes in
web/css/breeze/_default.less (auto-included by Breeze on every page) and uses the @critical
guard. web/css/source/_extend.less remains the Luma-side hook for any blank/luma fallback.--standard=Magento2 PHPCS is the gate. See
magento2-context/references/php-coding-style.md.app/code/vendor/*/Magento core to infer conventions, entity shapes,
naming, or wiring. Narrow exceptions: the target module/class of this operation, and the specific
contract of a module this code explicitly depends on. Affirm sources in the final report. See
magento2-context/references/source-of-truth.md.Invoke magento2-context. Capture theme.breeze (installed / active / parent / packages) and
php_constraint / framework_constraint. Enforce the Breeze-required rule above.
Ask (offer detected defaults):
Acme) — default {ctx.vendor}.BreezeCustom).breeze-blank | breeze-evolution | breeze-enterprise — default = detected.Target: {ctx.magento_root}/app/design/frontend/{Vendor}/{Theme}/.
If bin/magento is available AND the user opts in, prefer the Breeze generator and then layer the
templated overrides on top:
{ctx.magento_cli} breeze:theme:create {vendor_lower}/{theme_lower} --parent=Swissup/breeze-{parent}
Otherwise scaffold manually from templates:
registration.php (from templates/theme-registration.php)theme.xml (templates/theme.xml; <parent>Swissup/breeze-{parent}</parent>)composer.json (templates/theme-composer.json)web/css/breeze/_default.less (templates/breeze_default.less)web/css/source/_extend.less (templates/_extend.less)Magento_Theme/layout/breeze_default.xml (templates/breeze_default-layout.xml)xmllint --noout on theme.xml and the layout file.php -l on registration.php.theme.breeze.packages entry.${CLAUDE_PLUGIN_ROOT}/skills/magento2-context/scripts/add-license-headers.sh {ctx.magento_root}/app/design/frontend/{Vendor}/{Theme} {Vendor}
to stamp the standard copyright header onto every new .php (e.g. registration.php;
idempotent — it skips files that already carry it). When adding a composer.json require
entry, resolve a bounded constraint via
${CLAUDE_PLUGIN_ROOT}/skills/magento2-context/scripts/resolve-dep-constraint.sh <vendor/package>
— never "*". See magento2-context/references/module-hygiene.md.Files created + activation:
{ctx.magento_cli} setup:upgrade
{ctx.magento_cli} setup:static-content:deploy -f
Then set the theme active in Content → Design → Configuration (per store view) or via
config:set design/theme/theme_id.
/magento2-breeze-child-theme [--vendor=Acme] [--name=BreezeCustom] [--parent=breeze-evolution]
A registered Breeze child theme under {ctx.magento_root}/app/design/frontend/{Vendor}/{Theme}/.
references/breeze-theme-patterns.md — directory layout, parent choice, @critical LESS
guard, web/css/breeze/ vs web/css/source/ and activation.magento2-context/references/source-of-truth.md — source-of-truth hierarchy + the
no-unrelated-module-scanning rule (allowed reads, live-doc fetch protocol, report affirmation).templates/theme.xmltemplates/theme-registration.phptemplates/theme-composer.jsontemplates/breeze_default.lesstemplates/_extend.lesstemplates/breeze_default-layout.xmlapp/design/frontend/{Vendor}/{Theme}/ with a Swissup/breeze-*
parent.theme.xml and the layout file pass xmllint --noout; registration.php passes php -l.web/css/breeze/_default.less exists and uses the @critical guard.theme.breeze.installed is false.| Phase | Skill |
|---|---|
| 0 | magento2-context |
| (sibling) | magento2-frontend-create for non-Breeze themes/components |
| (next) | magento2-breeze-module-adapt to adapt modules to the theme |
| (check) | magento2-breeze-compat-audit to verify a module's Breeze compatibility |
npx claudepluginhub muon-m2/magento2-toolsGuides completion of development work by verifying tests, detecting environment, and presenting structured options for merge, PR, or cleanup.
Enforces test-driven development: write failing test first, then minimal code to pass. Use when implementing features or bugfixes.
Guides creation and editing of skills using test-driven development with pressure scenarios and subagents to verify agent compliance.
2plugins reuse this skill
First indexed Jul 9, 2026