What problem does it solve? Static data in TypeScript/JavaScript projects often ends up as dense one-liners, compact factory calls, or inline blobs inside logic files, making it unreadable, hard to diff, and prone to duplication drift. This Skill enforces a single consistent way to structure, format, and place static data objects so data files stay readable, greppable, and maintainable. ## Core Features & Use Cases - Formatting rules: Requires full object literals with one property per line, explicit fields, consistent property ordering, and trailing commas — banning compact factory calls and single-line objects. - Placement conventions: Directs data into a dedicated src/lib/data/ directory with one kebab-case file per domain, keeping data files as leaf modules that import nothing local. - Types and derived views: Co-locates exported types above the data, uses readonly/as const for immutability, derives views from canonical data, and prefers enums-as-data over TS enums. - Refactoring workflow: Provides a safe, atomic procedure for extracting data out of monolithic logic files while preserving the public API. - Use Case: When a 400-line inventory file mixes a product catalog with aggregation logic, use this Skill to extract the catalog into src/lib/data/inventory-catalog.ts, format each entry as a full object literal, and re-export the public surface so no consumer breaks. ## Quick Start Ask the AI to apply the data object conventions to reformat or extract a static data file, for example: "Extract the product catalog from inventory.ts into a dedicated data file following the data object conventions."