Test Guard

Przegląda testy napisane przez AI pod kątem dziewięciu zasad: granice mocków, brak duplikatów lub pustych testów

Autor: amElnagdy · amElnagdy/guard-skills

Testowano · Działa ★ 9.2/10

Test Guard — Przegląda testy napisane przez AI pod kątem dziewięciu zasad: granice mocków, brak duplikatów lub pustych testów

Co robi ten skill

Test Guard to przegląd kodu testowego, który agent właśnie napisał lub zmienił, stosując dziewięć zasad: mockowanie tylko na granicach systemu, nigdy nie mockowanie dataclasses ani obiektów stanu, parametryzowanie prawie-duplikatów testów, usuwanie testów, które nic nie wykrywają, nazywanie testów dla scenariusza i zachowanie testów regresji produkcyjnych. Ładuje referencje specyficzne dla stosu dla pytest, Jest/Vitest, PHPUnit/Pest lub aplikacji LLM, a następnie zgłasza naruszenia jako numer zasady plus lokalizację, przyczynę i poprawkę. Uruchamia się na żądania napisania, dodania lub przeglądu testów, oraz na różnicach dotykających test_*.py, *Test.php, *.test.ts, *_test.go lub plików w katalogach tests/ i __tests__/.

Raport z testu

Sklonowano repozytorium do tymczasowego HOME i potwierdzono, że kopia ląduje SKILL.md w ~/.claude/skills/test-guard/SKILL.md; frontmatter parsowany z name+description (815 znaków), a wszystkie cztery pliki, do których odwołuje się treść (references/pytest.md, jest.md, phpunit.md, llm-app-testing.md) zwróciły HTTP 200; brak curl|sh, base64 lub tekstu dotykającego poświadczeń. Zadanie: napisałem 30-liniowy moduł cenowy w Pythonie plus celowo AI-smakowy 9-testowy plik pytest (MagicMock zastępujący dataclass Cart, @patch na prywatnym _tax_rate, assert_called_once na log.info), a następnie stworzyłem bazowy przegląd bez umiejętności i drugi przegląd zgodnie z SKILL.md i references/pytest.md. Bazowy przegląd wykrył duplikację parametryzacji, słabe nazewnictwo i brakujące asercje arytmetyczne, ale nigdy nie zauważył mockowanej dataclass i nazwał test_cart_dataclass_sets_attributes „niskiej wartości, ale nieszkodliwy; jego utrzymanie nic nie kosztuje”; przegląd umiejętności oznaczył ten sam test jako usunięcie zgodnie z Regułą 4, oznaczył MagicMock Cart jako Regułę 8 w trzech testach i skrócił 9 testów do 4 z werdyktem „nie łączyć” i przepisanym zestawem, którego oczekiwane sumy (119.00 DE, 107.10 z 10% kodem) zweryfikowałem, uruchamiając moduł. Frazy wyzwalające — powinny uruchomić: „Właśnie napisałem testy dla modułu płatności, przejrzyj je przed zatwierdzeniem”, „Dodaj testy jednostkowe dla src/parser.ts obejmujące ścieżkę zniekształconego wejścia”, „Oto diff PR dotykający tests/test_orders.py, czy coś jest nie tak z tymi testami?”; nie powinny uruchomić: „Mój zestaw pytest kończy się błędem ScopeMismatch fixture, pomóż mi to debugować”, „Przejrzyj tę refaktoryzację klasy OrderService” — 5/5, jawna klauzula DO NOT USE w opisie czysto odrzuca oba negatywy.

Testowano: 2026-07-21 · Claude Code 2.x (agent harness)

Instalacja

git clone --depth 1 https://github.com/amElnagdy/guard-skills.git /tmp/test-guard-src
mkdir -p ~/.claude/skills
cp -R /tmp/test-guard-src/skills/test-guard ~/.claude/skills/test-guard
# No dependencies, no API keys, no scripts — SKILL.md plus 4 markdown references.
# The repo also ships clean-code-guard, docs-guard, wp-guard, woo-guard in /tmp/test-guard-src/skills/.
# CLI alternative (installs a copy, same result): npx skills add amElnagdy/guard-skills --skill test-guard
# Usage: after your agent writes tests, say "Use test-guard on the tests you just wrote."

Komendy i przykładowe prompty

  • /test-guardPrzegląda testy napisane przez AI pod kątem dziewięciu zasad: granice mocków, brak duplikatów lub pustych testów

Skille uruchamiają się na zwykłe polecenia — bez komend do zapamiętania. Po instalacji aktywują go prompty takie jak te (po angielsku):

  • Review these tests before I commit them
  • Write tests for this new function
  • Check this test file for common testing mistakes