What problem does it solve? Writing correct Mojolicious code requires knowing Mojo::Base's specific conventions — lazy coderef defaults, role composition order, async/await flag combinations — and getting them wrong produces subtle bugs like shared mutable state or event loops that never run. This Skill encodes verified patterns so generated Perl code follows the framework's actual behavior. ## Core Features & Use Cases - Mojo::Base object system patterns: Class, subclass, and role declarations with correct flag usage (-base, -role, -strict, -signatures, -async_await), attribute defaults, and chainable accessors. - Role composition and lazy construction: with_roles composition rules, + namespace expansion, and coderef defaults that defer expensive member construction per instance. - Mojo toolkit and async guidance: Mojo::JSON booleans, Mojo::File, Mojo::Collection, Mojo::Util, and Mojo::Promise/Mojo::IOLoop patterns including the rule that ->wait belongs only at the top level. - Use Case: When asked to write a Perl MCP server class with a name attribute, version default, and async HTTP fetching via Mojo::UserAgent, the Skill ensures the subclass redeclares has correctly, uses coderef defaults for the user agent, and combines -signatures with -async_await properly. ## Quick Start Write a Mojolicious class using Mojo::Base with attributes, a role, and an async method that fetches a URL with Mojo::UserAgent.