agentsclimarketplace

File refactor

Skill yugasun/aiops/skills/file-refactor

Keep source files under 500 lines. Split files that mix concerns — types, utils, hooks, sub-components, constants. Use when a file approaches the limit or when the user says refactor file, split file, too long, or file too big.From its SKILL.md

Install
npx -y skills add yugasun/aiops --skill file-refactor

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 4 stars4 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

1.7 KB, as published. Nobody here has run it

File Refactor

Keep every source file under 500 lines. Split before it crosses the limit.

When to trigger

  • A file exceeds 500 lines
  • A module mixes types, utils, handlers, rendering, and constants
  • A screen component contains inline sub-components that are extractable
  • A service combines pure helpers, dataclasses, and orchestration in one file

TypeScript / React splitting order

  1. Types — interfaces, type aliases, enums → types.ts
  2. Pure utilities — formatting, grouping, transforms → utils.ts
  3. Complex state logic → hooks/useXxx.ts
  4. Sub-components — UI pieces → components/XxxYyy.tsx
  5. Constants / config — hardcoded arrays, config objects → constants.ts

Python splitting order

  1. Data models — @dataclass, TypedDict, Protocol → models.py
  2. Pure helpers — side-effect-free formatting/parsing → utils.py or *_format.py
  3. Orchestration — original file stays as coordinator (CLI entry, service facade)
  4. CLI groups — subcommand handlers → dedicated modules
  5. Constants — templates, frozensets → constants.py

Rules

  • Single responsibility — each file does one thing
  • Cohesion — related code stays together
  • Preserve exports — never break existing imports; re-export from original file if needed
  • Mirror neighbors — follow existing package layout; don't invent new patterns
  • After splitting: typecheck + lint must pass

Keep looking

Skills are one crate of 626,194. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.