Skip to main content

Test Output Filter Hook — token štednja (PreToolUse Bash)

Test Output Filter Hook (PreToolUse[Bash])

MC #105580 | 2026-07-13 | Token-saving audit

Šta radi

PreToolUse hook ~/.claude/hooks/test-output-filter.py presreće test-runner komande (npm test, npx playwright/jest/vitest, pytest, go test, gradlew/gradle/mvn test) i prepiše ih tako da:

  • pass run → zadnjih 15 linija (summary) umjesto punog outputa
  • fail run → grep -B2 -A6 oko FAIL/ERROR markera, cap 200 linija
  • puni output UVIJEK ostaje na disku (/tmp/testout-XXXXXX, putanja u poruci)
  • exit code originalne komande je sačuvan (dokumentovani primjer iz code.claude.com/docs/en/costs ima bug: cmd | grep FAIL vraća grep-ov exit → prolazan run izgleda kao fail; naša verzija hvata rc prije filtriranja)

Kada NE dira komandu

  • komanda nije test runner
  • komanda već ima pipe/redirect/tee (upravlja svojim outputom)
  • SKIP_TEST_FILTER=1 u env (opt-out)
  • bilo koja interna greška → fail-open {}

Ušteda

60–90% tokena po test komandi (Bilko E2E/Gradle outputi su desetine hiljada tokena; filtrirano na stotine).

Wiring

~/.claude/settings.json → PreToolUse → matcher Bashpython3 ~/.claude/hooks/test-output-filter.py (timeout 5s).

Evidence

~/system/evidence/105580/ — E2E test 7/7 (hook-e2e-test.txt): non-test netaknut, piped netaknut, pass rc=0 + ≤20 linija, fail rc=1 + kontekst 302→13 linija.