code-simplifier
pproenca/dot-skills
Simplify code while preserving behavior using 47 prioritized best-practice rules.
What is code-simplifier?
A comprehensive code simplification guide with 47 rules across 8 categories (context discovery, behavior preservation, scope management, control flow, naming, duplication, dead code, and language idioms). Use when cleaning up code, reducing complexity, improving readability, or applying refactoring patterns while maintaining exact behavior.
- Provides 47 prioritized simplification rules organized by impact (critical to incremental)
- Ensures behavior preservation through explicit guidelines on outputs, errors, APIs, and side effects
- Enforces scope discipline by focusing on recently modified code with minimal diffs
- Simplifies control flow using early returns, guard clauses, and nesting reduction
- Improves naming clarity with intention-revealing names and consistent vocabulary
- Eliminates duplication and dead code following the rule of three
How to install code-simplifier
npx skills add https://github.com/pproenca/dot-skills --skill code-simplifierHow to use code-simplifier
- 1.Read CLAUDE.md and check for linting/formatting configs in your project
- 2.Identify recently modified code sections to focus on
- 3.Apply rules in priority order: Context Discovery and Behavior Preservation first (critical)
- 4.Use Scope Management rules to keep changes small and focused
- 5.Apply Control Flow, Naming, Duplication, and Dead Code rules in sequence
- 6.Verify behavior preservation before finalizing changes
- 7.Keep diffs minimal and reviewable
Use cases
- Cleaning up and refactoring recently modified code sections
- Reducing nesting depth and cyclomatic complexity in control flow
- Improving code readability through better naming and structure
- Applying language-specific idiomatic patterns to modernize code
- Removing dead code, stale comments, and unused artifacts
- Backend and frontend developers refactoring existing codebases
- Code reviewers looking for systematic simplification patterns
- AI coding agents (Claude Code, Cursor) automating code cleanup
- Teams adopting consistent code simplification standards
- Developers working in TypeScript, Rust, Python, or Go projects
code-simplifier FAQ
No. Start with CRITICAL rules (context discovery and behavior preservation), then apply HIGH-priority rules (scope and control flow). Apply MEDIUM and LOW-MEDIUM rules selectively based on code quality needs.
Project conventions always take precedence. Read CLAUDE.md and existing code patterns first; these rules are guidelines that adapt to your project's style.
No. Focus only on recently modified code and avoid unrelated refactors. Keep changes small and reviewable; separate refactoring efforts belong in different commits.
Check that return values, error messages, side effects (logging, I/O, state changes), and public API signatures remain identical. Run tests before committing.
Context, Behavior Preservation, Scope, Control Flow, Naming, Duplication, and Dead Code rules apply universally. Language Idioms rules are specific to TypeScript, Rust, Python, and Go.
Full instructions (SKILL.md)
Source of truth, from pproenca/dot-skills.
name: code-simplifier description: Code simplification skill for improving clarity, consistency, and maintainability while preserving exact behavior. Use when simplifying code, reducing complexity, cleaning up recent changes, applying refactoring patterns, or improving readability. Triggers on tasks involving code cleanup, simplification, refactoring, or readability improvements.
Community Code Simplification Best Practices
Comprehensive code simplification guide for AI agents and LLMs. Contains 47 rules across 8 categories, prioritized by impact from critical (context discovery, behavior preservation) to incremental (language idioms). Each rule includes detailed explanations, real-world examples comparing incorrect vs. correct implementations, and specific impact metrics.
Core Principles
- Context First: Understand project conventions before making any changes
- Behavior Preservation: Change how code is written, never what it does
- Scope Discipline: Focus on recently modified code, keep diffs small
- Clarity Over Brevity: Explicit, readable code beats clever one-liners
When to Apply
Reference these guidelines when:
- Simplifying or cleaning up recently modified code
- Reducing nesting, complexity, or duplication
- Improving naming and readability
- Applying language-specific idiomatic patterns
- Reviewing code for maintainability issues
Rule Categories by Priority
| Priority | Category | Impact | Prefix | Rules |
|---|---|---|---|---|
| 1 | Context Discovery | CRITICAL | ctx- | 4 |
| 2 | Behavior Preservation | CRITICAL | behave- | 6 |
| 3 | Scope Management | HIGH | scope- | 5 |
| 4 | Control Flow Simplification | HIGH | flow- | 9 |
| 5 | Naming and Clarity | MEDIUM-HIGH | name- | 6 |
| 6 | Duplication Reduction | MEDIUM | dup- | 5 |
| 7 | Dead Code Elimination | MEDIUM | dead- | 5 |
| 8 | Language Idioms | LOW-MEDIUM | idiom- | 7 |
Quick Reference
1. Context Discovery (CRITICAL)
ctx-read-claude-md- Always read CLAUDE.md before simplifyingctx-detect-lint-config- Check for linting and formatting configsctx-follow-existing-patterns- Match existing code style in file and projectctx-project-over-generic- Project conventions override generic best practices
2. Behavior Preservation (CRITICAL)
behave-preserve-outputs- Preserve all return values and outputsbehave-preserve-errors- Preserve error messages, types, and handlingbehave-preserve-api- Preserve public function signatures and typesbehave-preserve-side-effects- Preserve side effects (logging, I/O, state changes)behave-no-semantics-change- Forbid subtle semantic changesbehave-verify-before-commit- Verify behavior preservation before finalizing
3. Scope Management (HIGH)
scope-recent-code-only- Focus on recently modified code onlyscope-minimal-diff- Keep changes small and reviewablescope-no-unrelated-refactors- No unrelated refactorsscope-no-global-rewrites- Avoid global rewrites and architectural changesscope-respect-boundaries- Respect module and component boundaries
4. Control Flow Simplification (HIGH)
flow-early-return- Use early returns to reduce nestingflow-guard-clauses- Use guard clauses for preconditionsflow-no-nested-ternaries- Never use nested ternary operatorsflow-explicit-over-dense- Prefer explicit control flow over dense expressionsflow-flatten-nesting- Flatten deep nesting to maximum 2-3 levelsflow-single-responsibility- Each code block should do one thingflow-positive-conditions- Prefer positive conditions over double negativesflow-optional-chaining- Use optional chaining and nullish coalescingflow-boolean-simplification- Simplify boolean expressions
5. Naming and Clarity (MEDIUM-HIGH)
name-intention-revealing- Use intention-revealing namesname-nouns-for-data- Use nouns for data, verbs for actionsname-avoid-abbreviations- Avoid cryptic abbreviationsname-consistent-vocabulary- Use consistent vocabulary throughoutname-avoid-generic- Avoid generic namesname-string-interpolation- Prefer string interpolation over concatenation
6. Duplication Reduction (MEDIUM)
dup-rule-of-three- Apply the rule of threedup-no-single-use-helpers- Avoid single-use helper functionsdup-extract-for-clarity- Extract only when it improves claritydup-avoid-over-abstraction- Prefer duplication over premature abstractiondup-data-driven- Use data-driven patterns over repetitive conditionals
7. Dead Code Elimination (MEDIUM)
dead-remove-unused- Delete unused code artifactsdead-delete-not-comment- Delete code, never comment it outdead-remove-obvious-comments- Remove comments that state the obviousdead-keep-why-comments- Keep comments that explain why, not whatdead-remove-todo-fixme- Remove stale TODO/FIXME comments
8. Language Idioms (LOW-MEDIUM)
idiom-ts-strict-types- Use strict types over any (TypeScript)idiom-ts-const-assertions- Use const assertions and readonly (TypeScript)idiom-rust-question-mark- Use ? for error propagation (Rust)idiom-rust-iterator-chains- Use iterator chains when clearer (Rust)idiom-python-comprehensions- Use comprehensions for simple transforms (Python)idiom-go-error-handling- Handle errors immediately (Go)idiom-prefer-language-builtins- Prefer language and stdlib builtins
Workflow
- Discover context: Read CLAUDE.md, lint configs, examine existing patterns
- Identify scope: Focus on recently modified code unless asked to expand
- Apply transformations: Use rules in priority order (CRITICAL first)
- Verify behavior: Ensure outputs, errors, and side effects remain identical
- Keep diffs minimal: Small, focused changes that are easy to review
How to Use
Read individual reference files for detailed explanations and code examples:
- Section definitions - Category structure and impact levels
- Rule template - Template for adding new rules
Reference Files
| File | Description |
|---|---|
| references/_sections.md | Category definitions and ordering |
| assets/templates/_template.md | Template for new rules |
| metadata.json | Version and reference information |
Related skills
More from pproenca/dot-skills and the wider catalog.

emilkowal-animations
Emil Kowalski's animation best practices for React, CSS, and Framer Motion.

expo-react-native-performance
42 performance optimization rules for Expo React Native apps, organized by impact.

framer-motion
Framer Motion performance optimization guidelines. This skill should be used when writing, reviewing, or refactoring React animations with Framer Motion to ensure optimal performance patterns. Triggers on tasks involving motion components, animations, gestures, layout transitions, scroll-linked effects, and SVG animations.

nuqs
Type-safe URL query state management best practices for Next.js and React frameworks.

react-hook-form
React Hook Form performance optimization guide with 35 best-practice rules across form configuration, subscriptions, and validation.

react-refactor
Architectural refactoring guide for React applications covering component architecture, state architecture, hook patterns, component decomposition, coupling and cohesion, data flow, and refactoring safety. Use when refactoring React codebases, reviewing PRs for architectural issues, decomposing oversized components, or improving module boundaries. Does NOT cover React 19 API usage (see react skill) or performance optimization (see react-optimise skill).