hyva-create-module
Create a new Magento 2 module in app/code/. This skill should be used when the user wants to create a module, scaffold a new module, generate module boilerplate, or set up a custom module. It handles registration.php, composer.json, module.xml generation with configurable dependencies. Trigger phras
By hyva-themes · 1,053 installs
npx skills add hyva-themes/hyva-ai-tools --skill hyva-create-module
Source repository · Upstream listing
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 <sequence 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
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 <sequence 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 <sequence <module name="Magento Catalog"/ </sequence
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:
Example Output
For vendor Acme , module CmsComponents , with Hyva CmsBase dependency:
app/code/Acme/CmsComponents/registration.php:
app/code/Acme/CmsComponents/composer.json:
app/code/Acme/CmsComponents/etc/module.xml:
<! Copyright © Hyvä Themes https://hyva.io. All rights reserved. Licensed under OSL 3.0