Test Guard

Revisiona test scritti da AI rispetto a nove regole: confini dei mock, nessun test duplicato o vuoto.

di amElnagdy · amElnagdy/guard-skills

Promosso ★ 9.2/10

Test Guard — Revisiona test scritti da AI rispetto a nove regole: confini dei mock, nessun test duplicato o vuoto.

Cosa fa

Test Guard è un passaggio di revisione per il codice di test che un agente ha appena scritto o modificato, applicando nove regole: mock solo ai confini del sistema, mai mockare dataclass o oggetti di stato, parametrizzare test quasi duplicati, eliminare test che non catturano nulla, nominare i test per lo scenario e mantenere i test di regressione di produzione. Carica un riferimento specifico per stack per pytest, Jest/Vitest, PHPUnit/Pest o applicazioni LLM, quindi riporta le violazioni come numero di regola più posizione, causa e correzione. Si attiva su richieste di scrivere, aggiungere o revisionare test, e su diff che toccano test_*.py, *Test.php, *.test.ts, *_test.go, o file sotto tests/ e __tests__/.

Rapporto di test

Clonato il repo in una HOME temporanea e confermato che la copia posiziona SKILL.md in ~/.claude/skills/test-guard/SKILL.md; il frontmatter analizza con name+description (815 caratteri), e tutti e quattro i file collegati nel corpo (references/pytest.md, jest.md, phpunit.md, llm-app-testing.md) hanno restituito HTTP 200; nessun curl|sh, base64 o testo che tocchi credenziali. Task: ho scritto un modulo Python di pricing di 30 righe più un file pytest di 9 test deliberatamente "AI-flavored" (MagicMock che sostituisce la dataclass Cart, @patch su _tax_rate privato, assert_called_once su log.info), quindi ho prodotto una revisione baseline senza skill e una seconda revisione seguendo SKILL.md e references/pytest.md. La baseline ha rilevato la duplicazione del parametro, la denominazione debole e le asserzioni aritmetiche mancanti, ma non ha mai notato la dataclass mockata e ha definito test_cart_dataclass_sets_attributes "di scarso valore ma innocuo; mantenerlo non costa nulla"; la revisione della skill ha contrassegnato lo stesso test come eliminazione di Regola 4, ha contrassegnato la MagicMock Cart come Regola 8 in tre test, e ha ridotto 9 test a 4 con un verdetto "non unire" e una suite riscritta i cui totali attesi (119.00 DE, 107.10 con un codice del 10%) ho verificato eseguendo il modulo. Frasi di attivazione — dovrebbe attivarsi: "Ho appena scritto i test per il modulo di pagamento, revisionarli prima di committare", "Aggiungi unit test per src/parser.ts che coprano il percorso di input malformato", "Ecco un diff di PR che tocca tests/test_orders.py, c'è qualcosa di sbagliato in questi test?"; non dovrebbe attivarsi: "La mia suite pytest fallisce con un errore ScopeMismatch del fixture, aiutami a debuggarlo", "Revisiona questo refactoring della classe OrderService" — 5/5, la clausola esplicita DO NOT USE della descrizione allontana pulitamente entrambi i negativi.

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

Installazione

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."

Comandi e prompt di esempio

  • /test-guardRevisiona test scritti da AI rispetto a nove regole: confini dei mock, nessun test duplicato o vuoto.

Gli skill si attivano con richieste in linguaggio naturale, senza comandi da ricordare. Dopo l'installazione, prompt come questi lo attivano (in inglese):

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