Test Guard
Granskar AI-skrivna tester mot nio regler: mock-gränser, inga duplicerade eller tomma tester
Testad · Fungerar
Vad den gör
Test Guard är en granskningspass för testkod som en agent just skrivit eller ändrat, och tillämpar nio regler: mocka endast vid systemgränser, mocka aldrig dataclasses eller tillståndsobjekt, parametrisera nästan-duplicerade tester, radera tester som inte fångar något, namnge tester för scenariot, och behåll produktionsregressionstester. Den laddar en stack-specifik referens för pytest, Jest/Vitest, PHPUnit/Pest, eller LLM-applikationer, och rapporterar sedan överträdelser som regelnummer plus plats, orsak och fix. Utlöses vid förfrågningar om att skriva, lägga till eller granska tester, och på diffar som berör test_*.py, *Test.php, *.test.ts, *_test.go, eller filer under tests/ och __tests__/.
Testrapport
Klonade repot till en temporär HOME och bekräftade att kopian hamnar SKILL.md på ~/.claude/skills/test-guard/SKILL.md; frontmatter parsas med name+description (815 tecken), och alla fyra filer som kroppen länkar (references/pytest.md, jest.md, phpunit.md, llm-app-testing.md) returnerade HTTP 200; ingen curl|sh, base64, eller text som rör autentiseringsuppgifter någonstans. Uppgift: Jag skrev en 30-radig Python-prismodul plus en medvetet AI-smaksatt 9-test pytest-fil (MagicMock som ersättning för Cart dataclass, @patch på den privata _tax_rate, assert_called_once på log.info), producerade sedan en baslinjegranskning utan färdighet och en andra granskning enligt SKILL.md och references/pytest.md. Baslinjen fångade parametriseringsduplikationen, svag namngivning och saknade aritmetiska påståenden, men märkte aldrig den mockade dataclassen och kallade test_cart_dataclass_sets_attributes "lågt värde men ofarligt; att behålla det kostar inget"; färdighetsgranskningen flaggade samma test som en Regel 4-radering, flaggade MagicMock Cart som Regel 8 över tre tester, och skar ner 9 tester till 4 med ett "do not merge"-utlåtande och en omskriven svit vars förväntade totaler (119.00 DE, 107.10 med en 10% kod) jag verifierade genom att köra modulen. Utlösningsfraser — ska utlösas: "Jag skrev just tester för betalningsmodulen, granska dem innan jag committar", "Lägg till enhetstester för src/parser.ts som täcker den felaktigt formaterade indata-sökvägen", "Här är en PR-diff som berör tests/test_orders.py, är något fel med dessa tester?"; ska inte utlösas: "Min pytest-svit misslyckas med ett fixture ScopeMismatch-fel, hjälp mig att felsöka det", "Granska denna refaktorering av OrderService-klassen" — 5/5 korrekt, beskrivningens explicita DO NOT USE-klausul dirigerar båda negativen bort rent.
Testad: 2026-07-21 · Claude Code 2.x (agent harness)
Installation
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."
Kommandon och exempelprompter
/test-guardGranskar AI-skrivna tester mot nio regler: mock-gränser, inga duplicerade eller tomma tester
Skills triggas av vanliga förfrågningar — inga kommandon att memorera. Efter installationen aktiverar prompter som dessa skillen (på engelska):
Review these tests before I commit themWrite tests for this new functionCheck this test file for common testing mistakes