← ClaudeAtlas

magento-modulelisted

Correct Magento 2 / Mage-OS / Adobe Commerce module development: scaffolding new modules, extending core behavior (plugin vs observer vs preference decisions), declarative schema, dependency injection patterns, admin configuration (system.xml/ACL), layout XML and view models, and debugging playbooks for setup:di:compile failures, layout not applying, and stuck indexers/cron. Use this skill whenever the user mentions Magento, Mage-OS, or Adobe Commerce in a development context — creating or modifying a module/extension, intercepting or customizing core behavior, adding database tables, admin settings, frontend blocks or templates, or debugging errors from bin/magento commands — even if they don't say "module" explicitly. Also trigger for questions like "how do I override X in Magento", "my Magento layout/plugin/observer isn't working", or anything touching app/code, di.xml, or layout XML.
staksoft/magento-claude-skills · ★ 0 · AI & Automation · score 72
Install: claude install-skill staksoft/magento-claude-skills
# Magento 2 / Mage-OS Module Development Expertise for writing Magento 2 modules that compile, pass `phpcs --standard=Magento2`, and follow current (2.4.x / Mage-OS) conventions. Magento has accumulated a decade of outdated tutorials; this skill exists because the *obvious* approach found in old blog posts is often wrong today. When in doubt, prefer the conventions here over patterns seen in older code. ## Non-negotiable conventions (why they matter) These are the mistakes that get extensions rejected from the marketplace and break upgrades: - **Never use `ObjectManager::getInstance()` in your own code.** Constructor injection only. ObjectManager hides dependencies, breaks compilation analysis, and fails code review. (Exceptions: factories/proxies *generated* by Magento may use it internally — that's fine.) - **Declarative schema (`db_schema.xml`), never `InstallSchema`/`UpgradeSchema` scripts.** Install scripts have been deprecated since 2.3 and make schema state unauditable. - **Plugins over preferences.** A preference (class rewrite) conflicts with every other module that rewrites the same class. A plugin composes. See the decision tree before choosing any extension mechanism. - **View models, not block classes, for template logic.** Custom blocks are legacy; a view model is a plain class injected into a template via layout XML. - **Escape all template output** with `$escaper->escapeHtml()` / `escapeHtmlAttr()` / `escapeUrl()`. Unescaped `echo` in `.phtml