What problem does it solve? Jac source files grow unwieldy when declarations and method bodies live together, making public APIs hard to read and large components hard to maintain. This Skill explains how to separate declarations from implementations using impl blocks, .impl.jac annex files, and directory layouts that the Jac compiler auto-pairs by basename. ## Core Features & Use Cases - Impl file layouts: Choose between side-by-side pairing, shared impl/ directories, or mod.impl/ directories for one-to-many splits, with a decision tree based on file size and structure. - Declaration-to-impl mapping: Match every declaration form (functions, methods, walkers, enums, abstract methods, property accessors) to its correct impl syntax with exact signature rules. - Client component handler annexes: Move async handler bodies out of frontend components into paired .impl.jac files while keeping reactive state access bare (no self prefix). - Use Case: A Jac frontend component file exceeds 200 lines with fetch and mutate logic mixed into render code. Apply the handler annex pattern to keep the component as a readable state-plus-render surface while bodies live in frontend.impl.jac. ## Quick Start Split my oversized Jac module into a declaration file and an impl annex file using the correct pairing layout.