← ClaudeAtlas

structurizelisted

Finds repetition hiding in an area (Type-3/4 clones, git co-change, shotgun-surgery scatter), researches what it is actually called (an established pattern, an algorithm, an existing package), offers the named options with what each does and why it fits, then extracts only what the user picks. Use when the user names an area and says "structurize", "standardize this", "what pattern is this", "should this be centralized", or "is there a package for this".
LinardsLiepenieks/honecode · ★ 0 · Code & Development · score 72
Install: claude install-skill LinardsLiepenieks/honecode
# structurize: name the repetition hiding in an area Scope: the area the user names (directory, feature, data flow), or with none named whatever the current prompt is about, plus one hop out along imports. **Leave as is** is a real verdict: occurrences that change for *different* reasons were never one thing, and a module needing more knobs than the occurrences have lines is worse than the occurrences. (`simplify-code` deletes visible duplication in a diff; this asks what repetition should *become*.) ## 1 · Hunt: the real ones are hidden Copy-paste is the rare, easy case. Repetition usually presents indirectly, as several *related* things rather than one repeated thing: - **Type-3 / Type-4 clones**: same job, different syntax. Grep cannot see these; read for *intent*, not text. - **Temporal coupling**: `git log --name-only` over the area. Files that keep changing in the same commit have an implicit dependency and no shared module holding it. - **Shotgun surgery**: "to add one X you must edit five files." That file list *is* the candidate. - **Constellations**: a type, its validator, its serializer, its default, each declared separately in every feature. Related, not identical. - **One domain concept, many models**: the same concept re-modelled per layer or per caller. - Then the visible ones: repeated control flow over different types, inline field groups, the same `switch` on a type tag, repeated timeout/retry/error boilerplate, `fooA`/`fooB`/`fooC`. Record each candid