Die technischen Schulden werden jetzt fällig.
Technische Schulden abbauen. Jetzt. Automatisch.
Eine portable Agent-Skill-Suite für Claude Code, die ein PHP-Projekt dauerhaft unter kontrolliertem Refactoring hält: scannen, priorisieren, planen, umsetzen, lernen – immer wieder.
Auch für dein PHP-Projekt buchbar → weigandtlabs.de
Technical debt is coming due.
Paying down technical debt. Now. Automatically.
A portable agent-skill suite for Claude Code that keeps a PHP codebase under continuous, controlled refactoring: scan, prioritize, design, implement, learn — on repeat.
Also bookable for your PHP project → weigandtlabs.de
Warum jetzt?
KI-Agenten agieren zunehmend eigenständig – auch als Angreifer. Nach einem eigenen Sicherheitsvorfall zieht OpenAI ein klares Fazit:
„Sowohl Modellentwickler:innen als auch Cyberverteidiger:innen im weiteren Sinne müssen sich gegen KI-gestützte Angreifer:innen wappnen, die schneller, in größerem Maßstab und besser koordiniert agieren als menschliche Angreifer:innen.“
— OpenAI, „The Hugging Face incident and the road ahead“
Verteidigung heißt auch, die eigene Webanwendung laufend auf dem neuesten Stand zu halten. Neben CI/CD gehört deshalb auch CR – Continuous Refactoring zur Grundausstattung: eine Anwendung, die sich kontinuierlich in Richtung Wartbarkeit, Testbarkeit und Sicherheit weiterentwickelt, statt in seltenen, riskanten Kraftakten.
Why now?
AI agents are increasingly acting on their own — including as attackers. Following a security incident of its own, OpenAI drew a clear conclusion:
"Both model developers and cyberdefenders more broadly need to prepare for AI-powered adversaries that act faster, at greater scale, and with better coordination than human attackers." (own translation of the German original)
— OpenAI, "The Hugging Face incident and the road ahead"
Defense also means keeping your own web application continuously up to date. Alongside CI/CD, that's why CR — Continuous Refactoring belongs in the toolbox: an application that keeps evolving toward maintainability, testability, and security, instead of rare, risky overhauls.
Die Methode
Fünf Skills bilden einen geschlossenen Kreislauf. Jeder Durchlauf hinterlässt Spuren, an denen sich der nächste orientiert.
The method
Five skills form a closed loop. Every pass leaves traces that guide the next one.
Tippen, um direkt dorthin zu springen – sonst dreht sich der Loop von selbst weiter.
Tap to jump straight there — otherwise the loop keeps turning on its own.
-
Scan
Findet jeden aktuell unblockierten Knoten im Tooling-Baum und erkennt – ohne zu handeln – welche gemerkten Issues oder Merge Requests inzwischen erledigt sind.
Scan
Proposes every currently-unblocked tooling-tree node, and detects — never acts on — remembered issues or merge requests that have since closed or merged.
-
Priorisieren
Bewertet die Vorschläge aus dem Scan und empfiehlt den nächsten sinnvollen Schritt – oder begründet, warum diese Runde nichts beginnen sollte.
Prioritize
Ranks scan's proposals and recommends the next one to work on, or explains why nothing should start this pass.
-
Planen
Macht aus dem gewählten Knoten einen konkreten Refactoring-Plan und legt ihn als Issue an.
Design
Turns the chosen node into a concrete refactoring plan, filing it as an issue.
-
Umsetzen
Setzt den Plan testgetrieben um, Schritt für Schritt am vereinbarten Seam, prüft das Ergebnis und öffnet den Merge Request.
Implement
Executes the plan test-first, slice by slice, at the agreed seam — reviews the result, then opens the merge request.
-
Lernen
Der einzige Skill, der Buch führt: verarbeitet Scan-Befunde und frisch geöffnete Merge Requests, pflegt Ledger, ADRs, CONTEXT.md und den Zeitstempel des letzten Laufs.
Learn
The suite's only writer of bookkeeping: records the ledger, ADRs, CONTEXT.md, and the last-run stamp.
- Jeder Schritt ist reviewbar: annehmen, ändern oder ablehnen. Every step is reviewable: accept, change, or reject it.
- Testgetrieben, Schritt für Schritt – Tempo spielt keine Rolle. Test-driven, step by step — speed doesn't matter.
- Flexible Kadenz: von gelegentlich, per Hand angestoßen, bis 24/7 durchlaufend, wenn eine Gegenstelle (Mensch oder Agent) die Vorschläge akzeptiert. Flexible cadence: from occasional, manually triggered runs to running 24/7, once a counterpart (human or agent) is accepting the proposals.
Die Skills
The skills
/continuous-refactoring
Orchestrator
Führt einen Durchlauf des gesamten Loops aus – scannen, priorisieren, planen, umsetzen, lernen. Auf Zuruf oder über einen eigenen wiederkehrenden Trigger.
Orchestrator
Runs one pass of the loop — propose, prioritise, design, implement, learn. Use on demand or via your own recurring trigger.
/refactor-scan
Schlägt jeden aktuell unblockierten Tooling-Baum-Knoten vor und erkennt – ohne zu handeln – geschlossene oder gemergte Issues/Merge Requests.
Proposes every currently-unblocked tooling-tree node, and detects — never acts on — remembered issues or merge requests that have since closed or merged.
/refactor-prioritize
Rankt die Vorschläge von refactor-scan und empfiehlt den nächsten Arbeitsschritt – oder begründet, warum diese Runde pausiert.
Ranks refactor-scan's proposals and recommends the next one to work on, or says why nothing should start this pass.
/refactor-design
Macht aus dem gewählten Knoten einen konkreten Plan und legt ihn als Issue an – durchsucht bei structural-scan-Knoten zuerst den Code.
Turns the chosen node into a concrete refactoring plan, filing it as an issue — searches the codebase first when the node is structural-scan.
/refactor-implement
Setzt einen geplanten Refactoring-Plan testgetrieben um, Slice für Slice, am vereinbarten Seam – prüft das Ergebnis und öffnet den Merge Request.
Executes a designed refactor plan test-first, slice by slice, at the agreed seam — reviews the result, then opens the merge request.
/refactor-learn
Der einzige Skill, der Buch führt: verarbeitet Scan-Befunde und frisch geöffnete Merge Requests, pflegt Ledger, ADRs, CONTEXT.md und den Zeitstempel.
The suite's only writer of bookkeeping — acts on refactor-scan's reconciliation findings and refactor-implement's freshly opened merge request, records the ledger, ADRs, CONTEXT.md, and the last-run stamp.
Installation
Skills werden per Symlink ins Zielprojekt eingebunden:
Installation
Skills are wired into a target project via symlink:
ln -s /path/to/continuous-refactoring/skills/* <target>/.agents/skills/
Der Kern ist sprachneutral; die erste Spezialisierung ist ein allgemeines PHP-Projekt (Code-Style, Rector, PHPStan über den Tooling-Baum).
Der PHP-Tooling-Baum basiert auf über 20 Jahren PHP-Erfahrung von Artur Weigandt und wird laufend an den aktuellen Stand der Technik angepasst. Die Suite lernt außerdem aus jeder Entscheidung: Nimmt ein Maintainer einen Vorschlag an, lehnt ihn ab oder ändert ihn, fließt das in künftige Empfehlungen ein. Wiederkehrende Scans schlagen so immer weitere Schritte in Richtung Wartbarkeit, Testbarkeit und Sicherheit vor – eine Integration der OWASP Top 10 ist in Arbeit.
The core is language-neutral; the first specialization is a general PHP project (code style, Rector, PHPStan via the tooling tree).
The PHP tooling tree is grounded in over 20 years of PHP experience by Artur Weigandt and is continuously updated to current best practice. The suite also learns from every decision: whenever a maintainer accepts, rejects, or changes a proposal, that feeds into future recommendations. Recurring scans keep suggesting further steps toward maintainability, testability, and security — OWASP Top 10 integration is in progress.