hyva-create-module

安装量: 133
排名: #6493

安装

npx skills add https://github.com/hyva-themes/hyva-ai-tools --skill hyva-create-module

Create Magento 2 Module

This utility skill creates new Magento 2 modules in app/code/. It is designed to be called by other skills that need module scaffolding.

Command execution: For commands that need to run inside the development environment (e.g., bin/magento), use the hyva-exec-shell-cmd skill to detect the environment and determine the appropriate command wrapper.

Parameters

When invoking this skill, the calling skill should provide:

Parameter Required Description vendor Yes Vendor name in PascalCase (e.g., Acme) module Yes Module name in PascalCase (e.g., CustomFeature) description No Module description for composer.json (default: "[Vendor] [Module] module") dependencies No Array of module dependencies for in module.xml composer_require No Object of composer requirements (package: version) Workflow Step 1: Validate Input Verify vendor name is PascalCase (starts with uppercase, alphanumeric only) Verify module name is PascalCase Check that app/code/{Vendor}/{Module} does not already exist Step 2: Create Directory Structure app/code/{Vendor}/{Module}/ ├── registration.php ├── composer.json └── etc/ └── module.xml

Step 3: Generate Files registration.php

Use template assets/templates/registration.php.tpl:

Replace {{VENDOR}} with vendor name Replace {{MODULE}} with module name composer.json

Use template assets/templates/composer.json.tpl:

Replace {{VENDOR}} with vendor name (PascalCase) Replace {{MODULE}} with module name (PascalCase) Replace {{vendor_kebabcase}} with kebab-case, hyphenated vendor name Replace {{module_kebabcase}} with kebab-case, hyphenated module name Replace {{DESCRIPTION}} with description Add entries from composer_require parameter to the require section module.xml

Use template assets/templates/module.xml.tpl:

Replace {{VENDOR}} with PascalCase vendor name Replace {{MODULE}} with PascalCase module name Replace {{SEQUENCE}} with block containing dependencies, or empty string if none Step 4: Run Setup (Optional)

If the calling skill requests it, run bin/magento setup:upgrade using the hyva-exec-shell-cmd skill for the appropriate wrapper.

Error Handling

Abort module creation and report the error to the calling skill when:

Condition Action Vendor name not PascalCase Report: "Invalid vendor name '{name}': must start with uppercase letter and contain only alphanumeric characters" Module name not PascalCase Report: "Invalid module name '{name}': must start with uppercase letter and contain only alphanumeric characters" Directory already exists Report: "Module already exists at app/code/{Vendor}/{Module}" Cannot create directory Report: "Failed to create directory app/code/{Vendor}/{Module}: {error}" Cannot write file Report: "Failed to write {filename}: {error}"

If hyva-exec-shell-cmd skill is unavailable when Step 4 is requested, skip the setup:upgrade step and report: "Skipped setup:upgrade - hyva-exec-shell-cmd skill not available. Run manually: bin/magento setup:upgrade"

Template Placeholders Placeholder Description Example {{VENDOR}} Vendor name (PascalCase) Acme {{MODULE}} Module name (PascalCase) CustomFeature {{vendor_kebabcase}} Vendor name (kebab-case, split on capitals) acme {{module_kebabcase}} Module name (kebab-case, split on capitals) custom-feature {{DESCRIPTION}} Module description Acme CustomFeature module {{SEQUENCE}} Module sequence XML or empty PascalCase to kebab-case Conversion

Convert module names by inserting a hyphen before each capital letter and lowercasing:

PascalCase kebab-case CustomFeature custom-feature ShoppingCartGraphQl shopping-cart-graph-ql CmsComponents cms-components MyModule my-module Usage by Other Skills

Skills should reference this skill for module creation:

To create the module, use the hyva-create-module skill with: - vendor: "Acme" - module: "CmsComponents" - dependencies: ["Hyva_CmsBase"] - composer_require: {"hyva-themes/commerce-module-cms": "*"}

Example Output

For vendor Acme, module CmsComponents, with Hyva_CmsBase dependency:

app/code/Acme/CmsComponents/registration.php:

=8.1", "hyva-themes/commerce-module-cms": "*" }, "autoload": { "files": ["registration.php"], "psr-4": { "Acme\\CmsComponents\\": "" } } } app/code/Acme/CmsComponents/etc/module.xml:

返回排行榜