Skip to main content
skill CX Codex

magento-module-developer — Claude Code skill for Magento 2 modules

A skill that walks the agent through building Magento 2 modules: directory layout, DI, service contracts, repositories and database schema.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add maxnorm/magento2-agent-skills --skill magento-module-developer -a claude-code
Open on GitHub

What magento-module-developer does

The skill lays out module development as a sequence. Planning comes first: requirements, architecture, entity relationships, service contracts. Then scaffolding — app/code/Vendor/ModuleName/ with etc/module.xml, di.xml, routes.xml, db_schema.xml and registration.php. Implementation follows: models on AbstractModel, resource models, collections, repositories in Model/ with interfaces in Api/, plus controllers for frontend, admin and API.

Dedicated sections cover design patterns. Constructor injection, before/after plugins over around plugins, events and observers, UI components for admin grids. There are blocks on REST and GraphQL, caching and cache invalidation, multi-store setups. The whole thing follows Adobe Commerce best practices.

The skill expects PSR-12 and Magento coding standards, with declare(strict_types=1); in every PHP file. If your project runs on another framework, the conventions here will fight your codebase — this is a Magento-only tool. It earns its place when a module has to plug into the core without touching vendor files.

What it helps with

  • scaffold a module with etc/module.xml and registration.php
  • define tables in db_schema.xml and wire up entities
  • move data access into repositories with interfaces in Api/
  • add an admin grid and form with UI components
  • expose a REST or GraphQL endpoint through a service contract

Example prompts for the agent

  • Create a Vendor_ModuleName module with a repository and a service contract
  • Define the order table in db_schema.xml and add a collection
  • Add a before plugin on the product save method

How to install magento-module-developer

1Skills CLI (Vercel)

npx skills add maxnorm/magento2-agent-skills --skill magento-module-developer -a claude-code

2Manually: put the files in place

~/.claude/skills/magento-module-developer/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/magento-module-developer/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about magento-module-developer

How do I install magento-module-developer in Claude?

Run npx skills add maxnorm/magento2-agent-skills --skill magento-module-developer -a claude-code. The skill file then lands at ~/.claude/skills/magento-module-developer/SKILL.md.

What does magento-module-developer do?

It guides the agent through Magento 2 module work: architecture planning, directory structure, models, repositories, controllers, DI configuration and database schema.

Which platforms does the skill support?

Claude, Codex, Cursor, GitHub Copilot, Gemini CLI and OpenCode. Each platform has its own install command.

Source text

SKILL.md · MIT
---
name: magento-module-developer
description: Creates robust, maintainable, and extensible Magento 2 modules following enterprise architecture patterns. Use when developing custom modules, implementing new functionality, creating extensions, or building Magento 2 components. Masters dependency injection, service contracts, repository patterns, and module architecture.
---

# Magento 2 Module Developer

Expert specialist in creating well-architected, maintainable, and extensible Magento 2 modules that seamlessly integrate with Magento's core framework following Adobe Commerce best practices.

## When to Use

- Creating new Magento 2 modules or extensions
- Implementing custom functionality
- Building module architecture and structure
- Setting up module dependencies and configuration
- Implementing service contracts and APIs
- Creating database schemas and data patches

## Module Development Process

### 1. Planning & Architecture
- **Requirements Analysis**: Break down functional and non-functional requirements
- **Architecture Design**: Plan module structure and integration points
- **Database Design**: Design entity relationships and data flow
- **API Design**: Define service contracts and data transfer objects
- **Performance Considerations**: Plan for scalability and optimization

### 2. Module Setup
- **Module Structure**: Create proper directory structure following Magento conventions:
  ```
  app/code/Vendor/ModuleName/
  ├── etc/
  │   ├── module.xml
  │   ├── di.xml
  │   ├── routes.xml
  │   ├── system.xml
  │   ├── acl.xml
  │   └── db_schema.xml
  ├── Model/
  ├── Block/
  ├── Controller/
  ├── Api/
  ├── view/
  └── registration.php
  ```
- **Registration**: Create `registration.php` and `composer.json`
- **Module Declaration**: Create `etc/module.xml` with proper dependencies
- **Version Control**: Set up Git with proper `.gitignore`

### 3. Core Implementation

#### Models & Entities
- Entity models extending `Magento\Framework\Model\AbstractModel`
- Resource models extending `Magento\Framework\Model\ResourceModel\Db\AbstractDb`
- Collections extending `Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection`
- Use `db_schema.xml` for database schema definitions

#### Repositories
- Implement repository pattern for data access
- Create repository interfaces in `Api/` directory
- Implement repositories in `Model/` directory
- Use service contracts for clean API interfaces

#### Service Classes
- Business logic in service classes
- Use dependency injection for all dependencies
- Implement service contracts for extensibility

#### Controllers
- Frontend controllers extending `Magento\Framework\App\Action\Action`
- Admin controllers extending `Magento\Backend\App\Action`
- API controllers implementing service contracts

### 4. Configuration Files

#### module.xml
```xml
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
    <module name="Vendor_ModuleName" setup_version="1.0.0">
        <sequence>
            <module name="Magento_Store"/>
        </sequence>
    </module>
</config>
```

#### di.xml
- Configure dependency injection
- Define preferences, virtual types, plugins
- Use proper scope (global, frontend, adminhtml, webapi_rest, webapi_soap)

#### db_schema.xml
- Define database tables, columns, indexes
- Use proper data types and constraints
- Follow Magento naming conventions

## Design Patterns & Principles

### Service Contracts
- Create interfaces in `Api/` directory
- Implement clean API interfaces
- Use data transfer objects (DTOs) for data exchange
- Maintain backward compatibility

### Repository Pattern
- Separate data access from business logic
- Use repositories for all data operations
- Implement proper error handling
- Support transactions where needed

### Dependency Injection
- Use constructor injection only
- Avoid service locator pattern
- Leverage Magento's DI container
- Use type hints for all dependencies

### Plugin System
- Use plugins to extend functionality
- Prefer before/after plugins over around plugins
- Avoid around plugins unless necessary
- Document plugin execution order

### Event/Observer Pattern
- Dispatch events for extensibility
- Implement observers for loose coupling
- Use proper event naming conventions
- Document event data structure

## Module Components

### Backend Components
- **Models**: Entity models, resource models, collections
- **Repositories**: Data access layer implementations
- **Services**: Business logic and application services
- **Controllers**: Admin controllers and API endpoints
- **Blocks**: Admin interface building blocks
- **UI Components**: Admin grids, forms, and components

### Frontend Components
- **Controllers**: Frontend page controllers and actions
- **Blocks**: View logic and data preparation
- **Templates**: PHTML template files with proper escaping
- **Layout Files**: XML layout configurations
- **JavaScript**: Frontend interaction and AJAX functionality
- **CSS/LESS**: Styling and responsive design

### Database Components
- **db_schema.xml**: Database schema definitions
- **Data Patches**: Data migration and setup scripts
- **Schema Patches**: Database structure modifications
- **Indexers**: Custom search and filter indexers

## Advanced Features

### API Development
- Create REST endpoints with proper authentication
- Implement GraphQL resolvers and schemas
- Design clean API interfaces
- Implement rate limiting and security measures

### Event System Integration
- Dispatch custom events for extensibility
- Implement event observers
- Create before/after/around plugins
- Use virtual types for flexibility

### Caching & Performance
- Implement custom cache types and tags
- Handle cache invalidation properly
- Use lazy loading for expensive operations
- Optimize database queries and joins

### Multi-Store Support
- Handle multi-store configurations
- Implement proper configuration scopes
- Ensure proper data separation
- Support store context switching

## Best Practices

### Code Quality
- Follow PSR-12 and Magento coding standards
- Use `declare(strict_types=1);` in all PHP files
- Implement comprehensive type hinting
- Write unit and integration tests
- Maintain high code coverage

### Security
- Implement input validation
- Use proper output escaping in templates
- Implement CSRF protection
- Enforce proper access control (ACL)
- Handle sensitive data appropriately

### Performance
- Optimize database queries
- Use proper indexes
- Implement caching strategies
- Monitor memory usage
- Optimize collection loading

### Extensibility
- Provide extension points via plugins
- Dispatch events for third-party integration
- Allow configuration without code changes
- Use interface segregation
- Maintain backward compatibility

## Testing

- **Unit Tests**: Test individual classes and methods
- **Integration Tests**: Test module integration with core
- **Functional Tests**: End-to-end test scenarios
- **Static Analysis**: Use PHPStan/Psalm for code quality

## Documentation

- Technical documentation for developers
- User documentation for end users
- API documentation for all public APIs
- Installation guides
- Troubleshooting guides

## References

- [Adobe Commerce Extension Development](https://developer.adobe.com/commerce/php/development/)
- [Coding Standards](https://developer.adobe.com/commerce/php/coding-standards/)
- [Best Practices](https://developer.adobe.com/commerce/php/best-practices/)

Focus on creating modules that are maintainable, extensible, and aligned with Magento's enterprise-grade architecture principles.

© maxnorm · MIT · maxnorm/magento2-agent-skills

Similar skills

All skills for Backend and APIs →

From the same set5

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor