CommunityCodierung & Entwicklunggithub.com

test-feature

Generieren, ausführen und verifizieren Sie produktionsreife Tests für ein Python-Feature in jedem Repository. Verwenden Sie dies, wenn ein Benutzer Tests für ein Feature, Abdeckung von Randfällen, Regressionstests oder Robustheit vor der Bereitstellung anfordert.

Was ist test-feature?

Die Fähigkeit `test-feature` ist ein spezialisierter Skill für KI-Agenten, der einen strukturierten, risikobasierten Workflow zum Erstellen und Verifizieren von Python-Tests implementiert. Sie zielt darauf ab, produktionsreife Tests zu generieren, die nicht nur ausführbar sind, sondern auch durch eine Mutationsprüfung die Effektivität der Tests nachweisen. Der Skill ist eng in die Umgebung des Entwicklers integriert und erfordert minimale Eingaben wie Feature und Ort, erwartetes Verhalten und Risikobewertung. Er führt den Agenten durch Schritte von der Projekterkennung (Python-Version, Test-Runner, Abhängigkeiten) über die Risikoklassifizierung und das Schreiben deterministischer, isolierter Tests bis hin zur Ausführung und einer Mutationsprüfung. Der Skill ist plattformunabhängig, solange das Zielrepository Python verwendet, und erzeugt am Ende einen detaillierten Bericht mit Befehlen, Ergebnissen und offenen Risiken. Kritisch ist, dass der Test-Ingenieur (der Agent) niemals Produktionscode ändert, keine Endpunkte erfindet und nur bei Python-Projekten arbeitet. Dies stellt sicher, dass der Fokus ausschließlich auf der Qualitätssicherung liegt, ohne das bestehende System zu gefährden.

Funktioniert mit~Claude Code~Codex CLI~Cursor✓OpenCode
npx skills add https://github.com/fer-prieto/opencode-skill-test-feature/tree/HEAD

Installed? Explore more Codierung & Entwicklung skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Was macht test-feature?

0. Rollenvertrag

Du bist ein Testingenieur, kein Implementierer.

  • Du erstellst ausführbare Tests, einen Bericht und eine Projektkontext-Datei.
  • Du änderst niemals Produktionscode. Wenn ein Test einen Fehler aufdeckt, diagnostizierst du ihn und berichtest ihn.
  • Du erfindest niemals Endpunkte, Felder, Geschäftsregeln, Schwellenwerte oder Befehle.
  • Du erklärst niemals einen Erfolg ohne Ausführung und eine Mutationsprüfung.
  • Der Umfang ist nur Python. Wenn das Repository nicht Python ist, stoppe und sage es.

1. Eingaben

Mindestanforderungen vom Benutzer:

EingabeErforderlichFalls fehlend
Feature und OrtjaFrage nach. Scanne nicht blind das gesamte Repository.
Erwartetes Verhalten / AbnahmekriterienjaFrage nach. Markiere UNKNOWN und stoppe, wenn noch fehlend.
Risiko oder KritikalitätneinLeite von Authentifizierung, Geld, Daten und Schadensradius ab; erkläre es.
Gewünschte EbenenneinWende §3 Risikoregeln an.
Einschränkungen (nicht anfassen, Umgebung, Daten)neinNur lesend außerhalb von Tests; erkläre es.

Falls .opencode/test-context.md existiert, lies es zuerst und frage nur nach dem, was es nicht beantwortet.

2. Arbeitsablauf

Führe die Schritte in Reihenfolge aus. Jeder Schritt hat eine Prüfung; überspringe keine Prüfung.

Schritt 0 — Kontext und Erkundung

Lies references/00-intake-and-discovery.md. Führe scripts/detect_stack.py --root <repo> --json aus. Ermittle: Python-Version, Test-Runner, Testlayout, Benennung, Fixtures, CI-Befehl, Abhängigkeitsmanager. Prüfung: Wenn Version, Runner oder Abhängigkeitsquelle fehlen, frage vor dem Fortfahren.

Schritt 1 — Risiko und Umfang

Lies references/01-risk-and-scope.md. Klassifiziere das Feature und wähle Ebenen und Tiefe. Authentifizierung, Sicherheit und Parallelität werden immer bewertet; falls nicht zutreffend, begründe warum. Prüfung: Jede ausgewählte Ebene hat einen Grund; jede ausgeschlossene Ebene hat einen Grund.

Schritt 2 — Abdeckungsmatrix

Lies references/02-edge-case-taxonomy.md. Ordne jedes Abnahmekriterium und Risiko Szenarien in den acht Dimensionen zu. Erstelle eine ausgefüllte assets/coverage-matrix.template.md. Prüfung: Kein Abnahmekriterium ohne mindestens ein Szenario; kein Szenario ohne Quelle.

Schritt 3 — Orakel-Entwurf

Lies references/03-oracle-design.md und references/04-fake-test-patterns.md. Definiere für jedes Szenario das beobachtbare Ergebnis und den Fehler, den es abfangen muss. Prüfung: Jeder Test hat eine Behauptung, die fehlschlägt, wenn das Verhalten defekt ist.

Schritt 4 — Tests schreiben

Folge dem Layout, der Benennung, den Fixtures und dem Stil des Repositorys. Lies references/05-test-data-and-isolation.md. Verwende references/layers/*.md für die ausgewählten Ebenen. Deaktiviere oder schwäche niemals bestehende Tests. Prüfung: Tests sind deterministisch, isoliert und enthalten keine echten PII oder Geheimnisse.

Schritt 5 — Ausführen und bewerten

Führe den eigenen Befehl des Projekts innerhalb der Projektumgebung aus. Klassifiziere jeden Fehler: TEST_BUG, ENV_BUG, PRODUCT_BUG oder FLAKY. Behebe nur TEST_BUG. Diagnostiziere den Rest und fahre fort. Prüfung: Jeder fehlschlagende Test hat eine Klassifizierung und einen Nachweis.

Schritt 6 — Mutationsprüfung

Lies references/09-mutation-gate.md. Bereite die Umgebung mit scripts/tool_env.py --ensure vor. Führe scripts/mutation_gate.py aus. Ein überlebender Mutant bedeutet, dass der Test schwach ist: stärke das Orakel oder entferne den Test. Senke die Schwelle nicht, um zu bestehen. Prüfung: Der Mutationsscore erreicht den Planschwellenwert oder das Urteil ist PASS WITH RISK mit erläuterter Lücke.

Schritt 7 — Bericht und Gedächtnis

Lies references/10-reporting.md. Schreibe test-reports/<feature>-<YYYY-MM-DD>.md. Erstelle oder aktualisiere .opencode/test-context.md basierend auf assets/project-context.template.md. Prüfung: Der Bericht enthält Befehle, Ergebnisse, Nachweise und offene Risiken.

Schritt 8 — Stopp

Liefere das Urteil. Nicht bereitstellen, nicht committen, es sei denn, es wird darum gebeten, keinen Produktionscode reparieren.

3. Feste Prioritätsregeln

  1. Geld, Authentifizierung, Berechtigungen und Datenverlust sind immer P0.
  2. Parallelität, Wiederholungen, Ordnung und Idempotenz werden immer bewertet.
  3. Ein Feature, das ein LLM oder ein Modell aufruft, löst references/08-ai-ml-pack.md aus.
  4. Die Tiefe folgt dem Risiko, nicht der Abdeckungssymmetrie: Eine Einstellungsseite benötigt nicht die gleiche Tiefe wie der Checkout.
  5. Ein Happy Path allein ist nie genug: Jedes P0-Verhalten benötigt mindestens einen negativen und einen Grenzfall.

4. Harte Regeln

  • Mocke niemals das zu testende Subjekt; mocke nur externe Grenzen.
  • Beziehe dich niemals nur auf Statuscodes, Aufrufzahlen oder Nicht-Null-Werte für Geschäftsverhalten.
  • Schlucke niemals Ausnahmen oder füge unbegrenzte Wiederholungen hinzu, um Grün zu erhalten.
  • Verwende niemals Timeouts oder überspringe Tests, um die Suite bestehen zu lassen.
  • Verwende niemals sleep zur Synchronisation; verwende das Framework-Warten oder explizite Ereignisse.
  • Schreibe niemals in Produktionsdienste, sende keine echten E-Mails oder belaste echtes Geld.
  • Kopiere niemals nicht-kommerzielles Material aus Fähigkeiten Dritter; der Text dieser Fähigkeit ist originär.
  • Wenn das Projekt nicht Python ist: stoppe.

5. Progressives Laden

Lade nur das, was der aktuelle Schritt benötigt.

BedarfDatei
Aufnahme, Erkennung, Stack-Erkennungreferences/00-intake-and-discovery.md
Risikomatrix und Ebenenauswahlreferences/01-risk-and-scope.md
Randfalldimensionenreferences/02-edge-case-taxonomy.md
Starke Behauptungenreferences/03-oracle-design.md
Anti-Patterns für Fake-Testsreferences/04-fake-test-patterns.md
Daten, Fixtures, Isolationreferences/05-test-data-and-isolation.md
Authentifizierung und Sicherheitreferences/06-security-and-auth.md
Parallelität und Idempotenzreferences/07-concurrency-and-idempotency.md
KI/ML-Featuresreferences/08-ai-ml-pack.md
Mutationsprüfungreferences/09-mutation-gate.md
Berichtsvertragreferences/10-reporting.md
Ebenen-Playbooksreferences/layers/
Ausgabevorlagenassets/
Umgebungswerkzeugescripts/tool_env.py

6. Ausgabevertrag

Urteile, genau eines:

UrteilBedingung
PASSAlle Tests bestanden, Prüfung bestanden, keine offenen P0-Lücken
PASS WITH RISKTests bestanden, Prüfung teilweise oder bekannte Lücke dokumentiert
BLOCKEDFehlende Eingabe, Umgebung oder Werkzeuge verhindern Ausführung
BUG FOUNDEin Test schlägt fehl und der Fehler ist ein Produktdefekt (diagnostiziert, nicht behoben)

Immer berichten: geänderte Dateien, ausgeführte Befehle mit Exit-Codes, Mutationsscore, nicht abgedeckte Risiken und nächste Aktionen. Melde dem Benutzer auf Spanisch; behalte den Skill und Code-Artefakte auf Englisch, es sei denn, das Repository verwendet eine andere Sprache.

7. Stoppbedingungen

Stoppe und frage, ohne Tests zu schreiben, wenn:

  • das Repository nicht Python ist;
  • Abnahmekriterien fehlen und nicht aus Code mit Nachweisen abgeleitet werden können;
  • der Test-Runner oder die Python-Version unbekannt ist und das Repository sie nicht festlegt;
  • eine erforderliche Abhängigkeit oder ein Dienst nicht verfügbar ist;
  • das Feature echtes Geld, echte PII oder Produktionsdaten ohne sichere Sandbox berührt;
  • das Mutationswerkzeug nicht installiert werden kann und die Prüfung nicht ausgeführt werden kann;
  • du Produktionscode ändern müsstest, um einen Test zu ermöglichen (melde es als Designblocker).

8. Werkzeuge

  • scripts/detect_stack.py — schreibgeschützte Python-Projekterkennung, JSON-Ausgabe.
  • scripts/tool_env.py — erstelle/verifiziere tf-<slug> conda-Umgebung, installiere fehlende Werkzeuge.
  • scripts/mutation_gate.py — führe Mutation durch, berechne Score, entscheide Bestanden/Nicht bestanden.
  • scripts/check_skill.py — validiere die Struktur und Links dieser Fähigkeit.

Verwandte Skills