Skip to main content

simplifying-code

Simplifies, polishes, and declutters code without changing behavior. Use when asked to "simplify code", "clean up code", "polish code", "refactor", "declutter", "reduce complexity", "remove dead code", "remove AI slop", "improve readability", or "tighten up this file".

소스 정보

저장소
iliaal/whetstone
최근 소스 활동
2026년 2월 27일 14:01
감지된 SKILL.md 언어
영어
스타
36
포크
4

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

파일 탐색기
2 개 파일

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
simplifying-code
description
Simplifies, polishes, and declutters code without changing behavior. Use when asked to "simplify code", "clean up code", "polish code", "refactor", "declutter", "reduce complexity", "remove dead code", "remove AI slop", "improve readability", or "tighten up this file".
# Simplifying Code ## Principles | Principle | Rule | |-----------|------| | **Preserve behavior** | Output must do exactly what the input did — no silent feature additions or removals. Specifically preserve: async/sync boundaries, error propagation paths, and logging side effects | | **Explicit over clever** | Prefer explicit variables over nested expressions. Readable beats compact | | **Simplicity over cleanliness** | Prefer straightforward code over pattern-heavy "clean" code. Three similar lines beat a premature abstraction | | **Surgical changes** | Touch only what needs simplifying. Match existing style, naming conventions, and formatting of the surrounding code | | **Surface assumptions** | Before changing a block, identify what imports it, what it imports, and what tests cover it. Edit dependents in the same pass | ## Process 1. **Read first** — understand the full file and its dependents before changing anything 2. **Identify invariants** — what must stay the same? Public API, return types, side effects, error behavior 3. **Identify targets** — find the highest-impact simplification opportunities (see Smell → Fix table) 4. **Apply in order** — control flow → naming → duplication → data shaping → types. Structural changes first, cosmetic last 5. **Verify** — confirm no behavior change: tests pass, types check, imports resolve ## Smell → Fix | Smell | Fix | |-------|-----| | Deep nesting (>2 levels) | Guard clauses with early returns | | Long function (>30 lines) | Extract into named functions by responsibility | | Too many parameters (>3) | Group into an options/config object | | Duplicated block (**3+** occurrences) | Extract shared function. Two copies = leave inline; wait for the third | | Magic numbers/strings | Named constants | | Complex conditional | Extract to descriptively-named boolean or function | | Dead code / unreachable branches | Delete entirely — no commented-out code | | Unnecessary `else` after return | Remove `else`, dedent | ## AI Slop Removal When simplifying AI-generated code, specifically target: - **Redundant comments** that restate the code (`// increment counter` above `counter++`) — delete them - **Unnecessary defensive checks** for conditions that cannot occur in context — remove the guard - **Gratuitous type casts** (`as any`, `as unknown as T`) — fix the actual type or use a proper generic - **Over-abstraction** (factory for 2 objects, wrapper around a single call, util file with 1 function) — inline the code - **Inconsistent style** that drifts from the file's existing conventions — match the file ## Constraints - Only simplify what was requested — do not add features, expand scope, or introduce new dependencies - Leave unchanged code untouched — do not add comments, docstrings, or type annotations to lines that were not simplified - If a simplification would make the code harder to understand, skip it - When unsure whether a block is dead code, ask instead of deleting
GitHub에서 보기