AgentSkillsCN

code-simplifier

在保留全部功能的前提下,通过简化与优化代码,提升代码的清晰度、一致性和可维护性。除非另有指示,本技能主要聚焦于近期修改过的代码。

SKILL.md
--- frontmatter
name: code-simplifier
description: Simplifies and refines code for clarity, consistency, and maintainability while preserving all functionality. Focuses on recently modified code unless instructed otherwise.
allowed-tools: Read, Edit, Glob, Grep, Task
infer: true

Code Simplifier Skill

Simplify and refine code for clarity, consistency, and maintainability.

Usage

code
/code-simplifier                    # Simplify recently modified files
/code-simplifier path/to/file.ts    # Simplify specific file
/code-simplifier --scope=function   # Focus on function-level simplification

What It Does

  1. Analyzes code for unnecessary complexity
  2. Identifies opportunities to simplify without changing behavior
  3. Applies KISS, DRY, and YAGNI principles
  4. Preserves all existing functionality

Simplification Targets

  • Redundant code paths
  • Over-engineered abstractions
  • Unnecessary comments (self-documenting code preferred)
  • Complex conditionals that can be flattened
  • Verbose patterns that have simpler alternatives

Execution

Use the code-simplifier:code-simplifier subagent:

code
Task(subagent_type="code-simplifier:code-simplifier", prompt="Review and simplify [target files]")

Complexity Thresholds

MetricThresholdAction
Nesting depth> 3 levelsFlatten with guard clauses
Method length> 20 linesExtract focused methods
Duplicated code2+ occurrencesApply DRY, use platform patterns
Naming clarityUnclear intentMake self-documenting

EasyPlatform Patterns to Apply

Backend (C#)

  • Extract to Entity.XxxExpr() static expressions
  • Use fluent helpers: .With(), .Then(), .PipeIf()
  • Move mapping to DTO MapToObject() / MapToEntity()
  • Use PlatformValidationResult fluent API

Frontend (TypeScript)

  • Use PlatformVmStore for state management
  • Apply untilDestroyed() to all subscriptions
  • Ensure BEM class naming on all elements
  • Use observerLoadingErrorState() for loading states

Simplification Actions

ActionDescription
Reduce nestingFlatten deep if/else chains with guard clauses
Extract methodsBreak long methods into focused units
Simplify conditionalsUse early returns, named booleans
Remove duplicationApply DRY, use platform patterns
Improve namingMake code self-documenting

Workflow

  1. Identify targets

    • If no arguments: git diff --name-only HEAD~1 for recent changes
    • If arguments provided: use specified files/patterns
    • Skip: generated code, migrations, vendor files
  2. Analyze each file

    • Identify complexity hotspots (nesting > 3, methods > 20 lines)
    • Find duplicated code patterns
    • Check naming clarity
  3. Apply simplifications

    • One refactoring type at a time
    • Preserve all functionality
    • Follow platform patterns
  4. Verify

    • Run related tests if available
    • Confirm no behavior changes

Examples

Generic Example:

Before:

typescript
function getData() {
  const result = fetchData();
  if (result !== null && result !== undefined) {
    return result;
  } else {
    return null;
  }
}

After:

typescript
function getData() {
  return fetchData() ?? null;
}

Concrete Example Output:

code
User: /code-simplifier src/Domain/Entities/Employee.cs

Claude:
1. Analyzed Employee.cs (145 lines)
2. Found: 2 nested conditionals, 1 duplicated expression
3. Applied:
   - Extracted IsActiveInCompanyExpr() static expression
   - Replaced nested if with guard clause in Validate()
   - Renamed `x` to `employee` in lambda
4. Tests: All passing
5. Complexity reduced: 145 -> 128 lines

IMPORTANT Task Planning Notes

  • Always plan and break many small todo tasks
  • Always add a final review todo task to review the works done at the end to find any fix or enhancement needed