Der Agent tippt.
Das Gate sagt nein.
Code Guardian steht zwischen Ihrem KI-Agenten und Ihrer Produktion: erst planen und freigeben lassen, dann bauen, jede Behauptung mit Kommando-Ausgabe belegen. Und vor jedem Deploy, jeder Migration und jedem neuen Paket ein Gate, das sich nicht überreden lässt.
Version v16.37
Firmenlizenz 120,00 € netto/Jahr
- 4Modi
- 5Gates
- 10Hooks
- 18Detektoren
Das hier ist die ganze Idee.
Ein Kommando, das Arbeit vernichtet, wird an der Werkzeuggrenze verweigert: bevor es läuft, nicht danach im Bericht. Wählen Sie eines aus. Die Antwort unten ist der tatsächliche Text aus dem jeweiligen Hook.
git reset --hardblockiertdestructive-command-check.sh
git reset --hard verwirft ALLE nicht committeten Änderungen im Arbeitsbaum.
Ein Gate prüft die Ausgabe, ein Guardrail begrenzt das System. Dieser Befehl gehört zu der einen Klasse, die auch git nicht rückgängig macht. Sichere den Stand zuerst: «git stash -u» oder ein Commit auf einem Wegwerf-Branch, dann ist der Befehl harmlos.
Vor der ersten Zeile Code: eine Freigabe.
Jede Aufgabe beginnt schreibgeschützt. Der Agent erkundet, stellt jede offene Entscheidung einzeln zur Wahl, mit einer Empfehlung an erster Stelle, und legt einen Plan vor. Erst Ihr Klick öffnet den Schreibzugriff.
- schreibgeschützt
Erkunden, Fakten sichern. Keine Datei kann geändert werden.
- Interview
Jede offene Entscheidung einzeln, Empfehlung zuerst. Fakten werden nachgeschlagen, nie erfragt.
- Plan
Was passiert, welche Dateien, wie es bewiesen wird. Dazu das Protokoll aller Entscheidungen.
- Ihre Freigabe
Ab hier darf gebaut werden. Vorher nicht.
Nichts erreicht einen Server unklassifiziert.
Übertragen und Existieren sind zwei verschiedene Achsen. Eine prod-.env darf nie übertragen werden und muss trotzdem dort liegen. Ein Datenbank-Dump darf beides nicht. Wer das in eine Achse presst, löscht irgendwann das Falsche.
10 Dateien in der Transferliste
- app/Http/Controllers/PostController.php
- resources/js/Pages/Home.vue
- public/build/assets/app-DI5faExM.js
- .env
- storage/app/private/
- tests/Feature/CheckoutTest.php
- .git/
- dump-2026-07-24.sql
- .audit-log.md
- database/seeders/
Eine Migration gilt als irreversibel, bis das Gegenteil bewiesen ist.
Anwendungscode holt git revert zurück. Eine gelöschte Spalte nicht. Derselbe Befehl, zweimal ausgeführt:
$table->dropColumn('rabatt_prozent');M3CREATE TABLE _backup_orders_rabatt_20260725 AS SELECT id, rabatt_prozent FROM orders;
| id | kunde | rabatt_prozent |
|---|---|---|
| 4711 | Hoffmann GmbH | 12,5 % |
| 4712 | Bauer & Söhne | 5,0 % |
| 4713 | Lentz Medien | 20,0 % |
Ein neues Paket ist eine Lieferketten-Entscheidung.
Diese Regel ist gegen eine Angriffsklasse geschrieben, die es ohne KI-Agenten nicht gäbe.
Das Modell erfindet einen Namen
Der Agent braucht einen HTTP-Client und schreibt «npm install reqests». Das Paket gibt es nicht. Noch nicht.
Die Halluzination wiederholt sich
Dasselbe Modell, dieselbe Aufgabe, derselbe Vertipper, reproduzierbar über Läufe hinweg. Damit ist der Name vorhersagbar.
Jemand registriert genau diesen Namen
Ab jetzt existiert das Paket. Die Prüfung «gibt es das Paket?» sagt Ja. Genau darauf ist der Angriff gebaut.
Der nächste Agent installiert es
Und mit «postinstall» läuft fremder Code auf dem Entwicklerrechner und geht mit in die Produktion.
Deshalb prüft das Gate Reputation statt Existenz: Alter, Download-Verlauf, ein echtes Repository mit mehr als einem Beitragenden, und die Namensnähe zu einem bekannten Paket.
Ein Urteil über Daten ist ein Urteil über das ganze Schema.
Aus einem echten Fehlurteil: Aufträge wurden für verwaist erklärt, weil niemand die Warte-Spalte kannte. Sie waren zurückgestellt, nicht kaputt.
SELECT id, kunde, status, erstellt FROM auftraege WHERE status = 'offen';| id | kunde | status | erstellt |
|---|---|---|---|
| 8801 | Hoffmann GmbH | offen | 2026-04-02 |
| 8814 | Bauer & Söhne | offen | 2026-04-11 |
| 8827 | Lentz Medien | offen | 2026-04-19 |
VERWAIST? Seit Monaten offen, nie bearbeitet. Sieht nach einem Defekt aus, und genau hier wird der Reparatur-Auftrag geschrieben, der gesunde Daten anfasst.
Keine Optionsfrage ohne Empfehlung.
Ein Agent, der drei gleichwertige Wege aufzählt und Sie wählen lässt, hat die Arbeit nur weitergereicht. So sieht stattdessen jede Frage aus, die Sie bekommen:
Wie soll die Lizenz laufen?
- Firmenlizenz, unbegrenzt (Empfohlen)Braucht kein Seat-Tracking und keinen Lizenzserver. Die Dateien liegen lokal; jede andere Zählung wäre nicht überprüfbar.
- Pro EntwicklerMehr Umsatz bei großen Teams, aber technisch nicht verifizierbar. Erzeugt Kontrollaufwand ohne Kontrolle.
- GestaffeltZwei Tarife zu pflegen, dieselbe Nicht-Überprüfbarkeit.
Das Gate empfiehlt. Entschieden haben immer Sie.
Jede Regel hat einen Schaden als Vater.
Keine dieser Regeln kommt aus einer Checkliste. Jede steht im Paket mit dem Vorfall, aus dem sie entstanden ist, und mit der Messung, die sie belegt.
- 646
- echte Migrationen geprüft
- Über drei Laravel-Projekte. Jeder Befund von Hand als echter Treffer bestätigt.
- 342
- Tests für die Detektoren
- Dazu eine Fixture mit 58 markierten Fällen als unabhängige Referenz.
- 0
- produktive Symbole je zum Löschen freigegeben
- Die harte Sicherheitsbedingung der Aufräum-Ebene. Ein Verstoß lässt den Lauf scheitern.
- 36/36
- mechanische Slop-Regeln greifen auf den Fallen
- Und null Befunde auf den sauberen Gegenstücken. Ein lauter Detektor wird abgeschaltet.
Was es nicht kann.
Drei Dinge, die Sie vor dem Kauf wissen sollten. Sie stehen auch im README, weil eine Zusage, die man erst nach dem Kauf findet, keine Zusage ist.
Die Gates sind sprachunabhängig, die Werkzeug-Ebenen nicht.
Statische Analyse und Mutationstests sind für PHP/Laravel und JS/TS/Vue verdrahtet. Der Slop-Scanner liest zusätzlich Python, Go, Rust und Ruby. Auf einem anderen Stack bekommen Sie die Gates, die Reflexe und den Scanner, aber kein Analyse-Gate: es gibt dort nichts, an das es delegieren könnte.
Ohne Superpowers fehlt eine Phase.
Das Paket verweist an einigen Stellen auf das freie Skill-Paket obra/superpowers. Ist es nicht installiert, laufen diese Verweise ins Leere. Kein Gate wird übersprungen, keine Prüfung fällt aus. Was fehlt, ist die geführte Explorationsphase bei großen Aufgaben. Superpowers ist nicht Teil der Lieferung.
Es ist kein Support-Vertrag.
Enthalten sind alle Versionen, die während Ihrer Laufzeit erscheinen. Nicht enthalten ist eine zugesagte Update-Frequenz und keine individuelle Betreuung. Nach Ablauf endet der Portalzugang; die zuletzt geladene Version dürfen Sie unbegrenzt weiter nutzen.
Eine Lizenz, ein Preis.
120,00 €netto pro Jahr
- Unbegrenzt viele Entwickler im lizenzierten Unternehmen
- Alle Updates während der Laufzeit, direkt im Portal
- Vier Modi, fünf Gates, zehn Hooks, 18 Detektoren
- Anpassbar für den internen Gebrauch
- Nach Ablauf läuft die zuletzt geladene Version weiter