What problem does it solve? Solidity codebases accumulate inconsistent error handling, NatSpec, imports, and pragma versions that linters like solhint do not enforce, leading to review friction and subtle safety bugs. This Skill encodes the OpenZeppelin contract conventions so every .sol file edit follows the same rules. ## Core Features & Use Cases - Error and event conventions: Enforces ERC-6093 custom errors with domain prefixes, correct declaration location, and past-tense event naming emitted after state changes. - NatSpec and file structure: Standardizes @dev documentation, named imports, SPDX/pragma ordering, and member ordering inside contract bodies. - Safety rules for low-level code: Governs assembly memory-safe annotations, numeric literal bases, unchecked blocks with invariant comments, SafeCast narrowing casts, and inheritance ordering verified by CI. - Use Case: When adding a new ERC-20 extension contract, apply these conventions to declare errors in the right interface, write compliant NatSpec, and run the pragma minimizer before committing. ## Quick Start Review my new Solidity contract under contracts/ and rewrite it to follow the project's style and safety conventions.