Option
HeimHeim Skill Codeüberprüfung code-simplify

Diese Fähigkeit sollte eingesetzt werden, wenn der Benutzer darum bittet, den Code zu „vereinfachen“, zu „bereinigen“, „zur besseren Übersichtlichkeit umzugestalten“, „die Komplexität zu reduzieren“, „die Lesbarkeit zu verbessern“, „die Wartung zu vereinfachen“ oder darum bittet, kürzlich geänderten Code zu vereinfachen.

...Alle erweitern
71
Zeit aktualisiert 2. Juli 2026

Über code-simplify

Die „ code-simplify “-Fähigkeit wurde entwickelt, um bestehenden Code zu vereinfachen und dabei sein Laufzeitverhalten, seine öffentlichen Schnittstellen, seine Nebenwirkungen und seine funktionale Absicht zu bewahren. Sie hilft Entwicklern dabei, die Komplexität zu reduzieren, die Lesbarkeit zu verbessern und den Code wartungsfreundlicher zu gestalten, ohne funktionale Änderungen vorzunehmen. Die Funktion konzentriert sich auf sicheres, gezieltes Refactoring statt auf umfassende Neuprogrammierungen und stellt sicher, dass Eingaben, Ausgaben, Fehlerverhalten und extern abhängige Verträge stabil bleiben. Sie ist für Situationen gedacht, in denen Code schwer verständlich, übermäßig verschachtelt, dupliziert oder unnötig komplex geworden ist.

Die Funktion ermittelt einen geeigneten Umfang auf der Grundlage von benutzerdefinierten Zielen, kürzlich geänderten Dateien oder Änderungen im Repository. Sie analysiert den umgebenden Kontext, um vor der Durchführung von Änderungen eine Verhaltensbasislinie festzulegen. Die Vereinfachung erfolgt durch einen strukturierten Prozess, der die Vereinfachung des Kontrollflusses, die Verbesserung der Namensklarheit, die Reduzierung von Duplikaten, die Umstrukturierung komplexer Datentransformationen in klarere Schritte sowie gegebenenfalls die Verbesserung der Typ- oder Vertrags-Klarheit umfasst. Der Arbeitsablauf legt den Schwerpunkt auf kleine, rückgängig machbare Änderungen und hält sich an bestehende Projektkonventionen, Linter, Formatierer und Tests. Sicherheitsregeln verhindern verhaltensverändernde Änderungen wie die Umwandlung synchroner APIs in asynchrone, das Entfernen operativer Sicherheitsvorkehrungen oder die Änderung externer Schnittstellen ohne ausdrückliche Anweisung.

Diese Kompetenz ist nützlich für Entwickler, Betreuer und Teams, die an sich weiterentwickelnden Codebasen arbeiten und die Codequalität verbessern möchten, ohne die Funktionalität zu verändern. Häufige Anwendungsfälle sind die Bereinigung kürzlich geänderten Codes, Refactoring zur Verbesserung der Lesbarkeit, die Verringerung der kognitiven Belastung bei komplexen Funktionen, die Vereinfachung verschachtelter Logik und die Vorbereitung des Codes auf die langfristige Wartung. Sie ist besonders wertvoll in Repository-basierten Entwicklungsworkflows, bei denen Verifizierung und Verhaltensstabilität wichtige Anforderungen sind.

FAQ

Wann sollte ich diese Kompetenz einsetzen?

Verwenden Sie sie, wenn Sie Code vereinfachen, die Lesbarkeit verbessern, die Komplexität reduzieren, kürzlich geänderten Code bereinigen oder Code wartungsfreundlicher gestalten möchten, ohne sein Verhalten zu ändern.

Verändert die Funktion das Anwendungsverhalten oder öffentliche APIs?

Nein. Die Funktion ist so konzipiert, dass sie das Laufzeitverhalten, öffentliche Verträge, Nebenwirkungen, Ein- und Ausgänge sowie extern herangezogene Fehlersemantiken beibehält.

Benötigt diese Funktion ein Git-Repository?

Ja. Der Workflow beginnt mit der Überprüfung des Repository-Kontexts. Wenn das aktuelle Verzeichnis kein Git-Repository ist, wird der Prozess angehalten und es wird verlangt, dass er aus einem Repository heraus ausgeführt wird.

Wie entscheidet das Tool, welche Dateien geändert werden sollen?

Er verwendet vom Benutzer angegebene Ziele, sofern diese verfügbar sind. Andernfalls konzentriert er sich auf in der Sitzung geänderte Dateien und greift möglicherweise auf nicht festgeschriebene, verfolgte und nicht verfolgte Dateien zurück, wenn keine in der Sitzung geänderten Dateien vorhanden sind.

Gibt es Einschränkungen hinsichtlich der Art der durchgeführten Refactorings?

Ja. Der Skill vermeidet Änderungen, die das Verhalten beeinflussen, umfassende Umschreibungen, unnötige Abstraktionen, Wechsel zwischen synchronen und asynchronen APIs sowie das Entfernen von Logging, Telemetrie, Schutzmechanismen, Wiederholungsversuchen oder anderem betrieblich wichtigen Code.

Auf GitHub ansehen

Code Simplify

Objective

Simplify code while preserving behavior, public contracts, and side effects. Favor explicit code and local clarity over clever or compressed constructs.

Arguments

  • Paths, patterns, a commit/range, or a scope phrase: used in Scope Resolution step 2.
  • --no-report: Skip the full user-facing report and return terse working notes for the caller.
  • --no-verify: Skip verification because a parent orchestrator will verify the final result separately.
  • Default: verify touched behavior and present the full report.

Scope Resolution

Resolve scope once, then treat the result as fixed for the rest of the run.

  1. Verify repository context: git rev-parse --git-dir. If this fails, stop and tell the user to run from a git repository.
  2. If the request names targets — file paths/patterns, a commit/range, a natural-language subset (e.g. "the parser changes"), or a resolved-scope fenced block with one repo-relative path per line — scope is exactly those targets. Map natural-language subsets to concrete paths before continuing.
  3. Otherwise, scope is only session-modified files: files created or edited earlier in this session. Do not include other uncommitted changes.
  4. If there are no session-modified files, or earlier conversation history is not visible in this context, fall back to all uncommitted files, running each command once:
    • tracked: git diff --name-only --diff-filter=ACMR
    • untracked: git ls-files --others --exclude-standard
    • combine both lists and de-duplicate.
  5. Exclude generated/low-signal files unless explicitly requested: lockfiles, minified bundles, build outputs, vendored code.
  6. If scope resolves to zero files, report that and stop.
  7. Emit the scope as a fenced code block tagged resolved-scope, one repo-relative path per line. The block is authoritative: do not re-run scope commands or revisit exclusions afterward.

Operating Rules

  • Preserve runtime behavior exactly. Keep inputs, outputs, side effects, and error behavior stable.
  • Prefer project conventions over personal preferences. Infer conventions from existing code, linters, formatters, and tests.
  • Make small, reversible edits. Avoid broad rewrites when targeted simplifications solve the problem.
  • Call out uncertainty immediately when behavior may change.

Workflow

1) Determine Scope

  • Apply the Scope Resolution section.

2) Build a Behavior Baseline

  • Read surrounding context, not only changed lines.
  • Identify invariants that must not change:
    • function signatures and exported APIs
    • state transitions and side effects
    • persistence/network behavior
    • user-facing messages and error semantics where externally relied on
  • Note available verification commands (lint, tests, typecheck).

3) Apply Simplification Passes (in this order)

  1. Control flow:
    • Flatten deep nesting with guard clauses and early returns.
    • Replace nested ternaries with clearer conditionals.
  2. Naming and intent:
    • Rename ambiguous identifiers when local context supports safe renaming.
    • Separate mixed concerns into small helpers with intent-revealing names.
  3. Duplication:
    • Remove obvious duplication.
    • Abstract only when at least two real call sites benefit and the abstraction reduces cognitive load.
  4. Data shaping:
    • Break dense transform chains into named intermediate steps when readability improves.
    • Keep hot-path performance characteristics stable unless improvement is explicit and measured.
  5. Type and contract clarity:
    • Add or tighten type annotations when they improve readability and safety without forcing broad churn.
    • Preserve external interfaces unless asked to change them.

4) Enforce Safety Constraints

  • Do not convert sync APIs to async (or reverse) unless explicitly requested.
  • Do not alter error propagation strategy unless behavior remains equivalent and verified.
  • Do not remove logging, telemetry, guards, or retries that encode operational intent.
  • Do not collapse domain-specific steps into generic helpers that hide intent.

5) Verify

Skip when --no-verify is set. Otherwise verify per the Verification section below.

6) Report

Produce the Report section below.

Simplification Heuristics

  • Prefer explicit local variables over nested inline expressions when it reduces cognitive load.
  • Prefer one clear branch per condition over compact but ambiguous condition trees.
  • Keep function length manageable, but do not split purely for line count.
  • Keep comments that explain intent, invariants, or non-obvious constraints.
  • Remove comments that restate obvious code behavior.
  • Optimize for the next maintainer's comprehension time, not minimum character count.

Anti-Patterns

  • Do not perform speculative architecture rewrites.
  • Do not introduce framework-wide patterns while simplifying a small local change.
  • Do not replace understandable duplication with opaque utility layers.
  • Do not bundle unrelated cleanups into one patch.

Verification

Run the narrowest checks that validate touched behavior:

  • formatter/lint on touched files
  • targeted tests for touched modules
  • typecheck when relevant

Run broader checks only when risk warrants it. Name every skipped check and why.

Report

Skip when --no-report is set; return terse working notes instead: touched scope, key simplifications, residual risks.

Use these section headings, in this order. Omit sections that do not apply — do not number them and do not leave gaps or placeholders.

Scope

Files and regions changed.

Simplifications

One sentence per meaningful change, focused on the readability or maintainability gain. Confirm behavior-preservation assumptions explicitly.

Verification

Commands run and outcomes, including skipped checks.

Residual Risks

One line per risk: Assumed <assumption>; if wrong, <what breaks>; check via <command or inspection>. Plain language — expand or gloss domain-specific terms. Include questions that need a user decision, phrased directly. Write None. when there are none.

Stop Conditions

Stop and ask for direction when:

  • simplification requires changing public API/contracts.
  • behavior parity cannot be confidently verified.
  • the code appears intentionally complex due to domain constraints.
  • the requested scope implies a larger redesign rather than simplification.

Alle Dateien

1 Dateien

code-simplify installieren

Laden Sie die Skill-Dateien herunter und entpacken Sie sie in Ihr Verzeichnis „.claude/skills/“.

ZIP herunterladen

Klonen Sie das Repository und kopieren Sie die Skill-Dateien in Ihr Projekt.

git clone https://github.com/PaulRBerg/agent-skills/blob/main/skills/code-simplify/SKILL.md # Copy SKILL.md to your .claude/skills/ directory

Kopieren Kopieren
Schnelle Einrichtung: Kopiere den Skill-Ordner nach .claude/skills/. Claude erkennt den Skill automatisch und nutzt ihn.

Ähnliche Skills

requesting-code-review
Zeit aktualisiert 29. Juni 2026
Git Commit Helper
Zeit aktualisiert 29. Juni 2026
commit-standards
Zeit aktualisiert 29. Juni 2026
fetch-pr-review-comments
Zeit aktualisiert 29. Juni 2026
OR