code-evolution Skill
Prüft durch die Analyse von Diffs und Pull Requests, ob Code-Änderungen die Designqualität beibehalten oder verschlechtern, indem die strukturelle Integrität bewertet wird.
- GitHub Stars
- 18
- Dateien
- 1
- Letzter Commit
- 8. Okt. 2026
- Lizenz
- MIT
- Erlaubte Tools
- 2
Was macht der code-evolution Skill?
code-evolution ist ein Agent Skill. Prüft durch die Analyse von Diffs und Pull Requests, ob Code-Änderungen die Designqualität beibehalten oder verschlechtern, indem die strukturelle Integrität bewertet wird.
Zusammenfassung erzeugt aus der SKILL.md des Skills.
Über den code-evolution skill
Entwickler, die Pull Requests reviewen oder kürzliche Dateiänderungen analysieren, können diesen Skill nutzen, um festzustellen, ob Code-Änderungen die strukturelle Integrität bewahren. Er fungiert als spezialisierte Linse, um zu beurteilen, ob sich eine Änderung wie ein natürlicher Teil des Systemdesigns anfühlt oder wie ein temporärer Patch. Ein Agent sollte dieses Tool laden, wenn er mit dem Review eines Diffs oder eines spezifischen Moduls beauftragt wird, um sicherzustellen, dass neue Features keine technischen Schulden oder unnötige Komplexität einführen.
Der Prozess nutzt die Read- und Grep-Tools, um den Zielcode vor der Anwendung eines strengen Evaluierungs-Frameworks zu untersuchen. Der Fokus liegt darauf, inkrementelle Komplexität wie neue Sonderfälle oder Abhängigkeiten zu identifizieren und ein Repetitions-Audit durchzuführen, um Duplikate aufzuspüren. Im Gegensatz zu Tools, die allgemeine Design Smells scannen, zielt dieser Skill spezifisch auf die Entwicklungstrajektorie einer Codebase ab und hilft Nutzern zu entscheiden, ob eine Änderung ein sofortiges Refactoring erfordert, um mit einer idealen Systemstruktur im Einklang zu bleiben.
Was ein agent damit machen kann
- 1Designqualität von Pull Requests bewertenReviewe einen Pull Request, um zu sehen, ob die Änderungen so wirken, als wären sie von Anfang an fest in das System eingeplant worden.
- 2Code auf Duplikate prüfenPrüfe, ob eine kürzliche Änderung wiederholte Logik eingeführt hat, die eigentlich hätte abstrahiert werden sollen.
Geschrieben basierend auf dem SKILL.md des skills. Jeder use case wurde gegen ein zitat daraus geprüft.
So installierst du den code-evolution Skill
Jeder Befehl kopiert den Skill-Ordner in das Skills-Verzeichnis des Clients. Starte den Client neu oder beginne eine neue Session, um ihn zu laden.Den code-evolution Skill in Plugin installieren
/plugin marketplace add codybrom/clairvoyance /plugin install clairvoyance@clairvoyance-plugins
Den code-evolution Skill in Claude Code installieren
~/.claude/skills/code-evolution/SKILL.md
$ npx degit codybrom/clairvoyance/skills/code-evolution ~/.claude/skills/code-evolutionDen code-evolution Skill in Claude Code (project) installieren
.claude/skills/code-evolution/SKILL.md
$ npx degit codybrom/clairvoyance/skills/code-evolution .claude/skills/code-evolutionDen code-evolution Skill in Codex installieren
~/.agents/skills/code-evolution/SKILL.md
$ npx degit codybrom/clairvoyance/skills/code-evolution ~/.agents/skills/code-evolutionDen code-evolution Skill in Gemini CLI installieren
~/.gemini/skills/code-evolution/SKILL.md
$ npx degit codybrom/clairvoyance/skills/code-evolution ~/.gemini/skills/code-evolutionDen code-evolution Skill in Claude.ai installieren
npx degit codybrom/clairvoyance/skills/code-evolution code-evolution && zip -r code-evolution.zip code-evolution # claude.ai → Customize → Skills → + → Create skill → Upload a skill → code-evolution.zip
SKILL.md
Auf GitHub ansehenCode Evolution Review Lens
When invoked with $ARGUMENTS, focus the analysis on the specified file, module, or pull request. Read the target code first, then apply the checks below.
Evaluate whether code modifications maintain or degrade design quality.
When to Apply
- Reviewing a PR that modifies existing code
- After adding a feature to an existing system
- When code has accumulated patches and feels degraded
- When deciding whether to refactor during a feature change
Core Principles
Technical Debt
Technical debt doesn't come from catastrophic decisions. It comes from hundreds of small, reasonable shortcuts that compound silently until the codebase starts fighting back. Calling it "debt" at all is generous because the financial kind gets repaid.
During Modifications
- Debt in the area being modified → fix it now (context is fresh, fix is cheapest)
- Debt elsewhere affecting the modification → document it, fix if feasible
- Never add to the pile. Each modification should reduce debt, not increase it
Refactoring
Refactoring is not a special event. It is the normal expression of strategic programming applied to existing code. Continuous small improvements, not periodic large refactors.
The "Designed This Way" Standard
"Ideally, when you have finished with each change, the system will have the structure it would have had if you had designed it from the start with that change in mind." — John Ousterhout, A Philosophy of Software Design
The design of a mature system is determined more by changes made during its evolution than by any initial conception. Every modifier either continues toward the original trajectory or bends away.
Three-Question Test
- If someone were designing this system from scratch knowing this requirement, what would it look like?
- Does the modified code match that ideal, or is the change visibly patched on?
- If not, what's the minimum restructuring to close the gap?
The Middle Path
When the ideal refactoring would require touching far more of the codebase than the current task budget allows, the question isn't "can I afford the full redesign?" It's "what's the best I can do within this change's scope?" That question often surfaces an approach nearly as clean as the ideal, achievable within the current diff, that the smallest-change mindset would never find because it anchors on the current code.
The "Smallest Possible Change" Trap
There is no neutral gear. Every change either improves the design or degrades it.
Each minimal change typically introduces a special case, a dependency, or a conditional that doesn't belong. Once, negligible. Across hundreds of modifications over years, this is how well-designed systems become legacy nightmares.
Repetition Audit
After a modification, ask yourself:
- Does the same logic now exist in multiple places?
- Was similar code duplicated instead of abstracted?
- Would a similar change require edits in multiple locations?
Repeated code is a red flag that the right abstraction hasn't been found yet.
Two Strategies
- Extract and call: Works best when the method forms a deep abstraction. If the snippet is two lines but requires five parameters, extraction may add more complexity than it removes.
- Restructure so the code runs once: Sometimes better because it eliminates duplication entirely.
When not to extract: Code that looks identical can represent two independent decisions that happen to be expressed the same way. Merging them creates artificial coupling.
Comment Maintenance
Stale comments are worse than missing comments because they actively mislead. Once readers discover comments can't be trusted, they stop reading them entirely.
Five maintenance rules:
-
Keep comments near the code they describe: proximity is a maintenance mechanism
-
Put comments in code, not commit logs: developers navigate code spatially, not chronologically
-
Document each decision exactly once: duplicated documentation drifts invisibly
-
Check the diffs before committing: verify documentation still matches behavior
-
Prefer higher-level comments: abstract comments that describe what and why survive code changes better than detailed how comments. As Ousterhout writes, "the farther a comment is from the code it describes, the more abstract it should be"
Review Process
- Apply the "designed this way" test: Does the modification look native or bolted-on?
- Check for incremental complexity: Did the change add special cases, dependencies, parameters, or flags?
- Run repetition audit: Did the change introduce or perpetuate duplication?
- Verify comment maintenance: Are all affected comments updated?
- Assess debt trajectory: Is the modification reducing or increasing technical debt?
- Recommend: Specific improvements to make the change feel designed-in
Red flag signals for code evolution are cataloged in red-flags (Repetition, Tactical Momentum).
Dateien in diesem Skill
1code-evolution Skill-Fragen
Wie installiere ich den code-evolution Skill in Claude Code?
Führe npx degit codybrom/clairvoyance/skills/code-evolution ~/.claude/skills/code-evolution aus. Claude Code lädt Skills aus ~/.claude/skills (alle Projekte) oder .claude/skills (ein Projekt) und nutzt einen Skill, wenn seine Beschreibung zur Aufgabe passt.
Welche Clients können den code-evolution Skill nutzen?
Jeder Client, der das Agent Skills-Format liest: Claude Code, Codex, Gemini CLI und claude.ai (als ZIP hochladen). Skripte im Skill laufen nur dort, wo der Client Codeausführung erlaubt.
Wie geht der Skill mit technischen Schulden bei Änderungen um?
Er empfiehlt, technische Schulden direkt in dem Bereich zu beheben, der gerade geändert wird, da der Kontext dort präsent ist, und Schulden an anderer Stelle zu dokumentieren, die die Änderung beeinflussen.
Was ist der 'Three-Question Test' für Designqualität?
Der Test fragt, ob das System bei einer Neuentwicklung unter Berücksichtigung der neuen Anforderung genauso aussehen würde, ob der geänderte Code diesem Ideal entspricht und welche minimale Umstrukturierung nötig ist, um die Lücke zu schließen.