← ClaudeAtlas

data-object-conventionslisted

Enforce consistent structure, formatting, and placement for static data objects (catalogs, config, content, lookup tables, enums-as-data) in TypeScript/JavaScript codebases. Use whenever creating, editing, refactoring, or reviewing a data file or data object — including extracting data out of logic files, splitting a monolithic file, deciding where data should live, or formatting a data array. Triggers on phrases like 'data file', 'data object', 'catalog', 'lookup table', 'extract the data', 'split this file', 'format this data', 'where should this data live', 'this data is ugly'. Do NOT use for runtime state, API responses, or database rows — those are data-in-motion, not static data.
arndvs/ctrlshft · ★ 0 · Data & Documents · score 64
Install: claude install-skill arndvs/ctrlshft
# Data Object Conventions Output "Read Data Object Conventions skill." to chat to acknowledge you read this file. Enforces a single, consistent way to structure, format, and place **static data objects** in TS/JS codebases, so data files are readable, greppable, and maintainable instead of dense one-liners. ## When to use Use when you are **creating, editing, refactoring, or reviewing** a static data object or data file. This includes extracting data out of a logic file, splitting a monolithic catch-all, deciding where data should live, or reformatting an existing data array. Do NOT use for runtime state, API responses, or DB rows. ## Core rules (the non-negotiables) 1. **Data lives in its own file** — never inline static data inside logic, components, or API handlers. Extract to a dedicated data module. 2. **One file per data domain** — a catalog, a lookup table, a config set each get their own file, named after the domain. 3. **Type + data co-located** — each data file defines its exported type immediately above the data it describes. 4. **One object per entry, one property per line** — write full object literals, never compact factory calls or single-line objects. This is the #1 readability rule. 5. **Explicit fields, no magic** — every field is spelled out. No positional args, no hidden defaults, no factory helpers that obscure the data. 6. **Derived views exported alongside canonical data** — if consumers need subsets/derived forms, export them as named constants d