What problem does it solve? Writing typed Jac code fails when annotations are missing, any values leak into typed destinations, or the checker rejects valid-looking generics. This Skill provides the verified rules for Jac's type system so you can write code that passes jac check on the first attempt and diagnose type errors quickly. ## Core Features & Use Cases - Annotation rules: Covers required parameter and return types, has field typing, union and optional types (X | None), and inference inside function bodies. - Boundary handling: Documents the as cast escape hatch, the three-step playbook for any values from Python interop or walker reports, and import type for breaking circular imports. - Error diagnosis: Maps common checker errors (E1001, E1030, E1032, E2004, W1037) to concrete fixes, including generics traps and the Self return caveat. - Use Case: You call an untyped Python library from Jac and get E1002 when assigning the result to a typed field. This Skill tells you to type the source, accept-and-narrow with isinstance, or cast at the use site. ## Quick Start Load the jac-types skill and explain why my Jac function fails jac check with error E1001 when assigning a walker report to a typed list field.