Agent Skills: No-Skip Mode

Use when you want to prevent .skip(), .only(), xit(), and xdescribe() from being committed to test files. Activate with /no-skip for session-scoped test skip prevention.

UncategorizedID: proffesor-for-testing/agentic-qe/no-skip

Install this agent skill to your local

pnpm dlx add-skill https://github.com/proffesor-for-testing/agentic-qe/tree/HEAD/assets/skills/no-skip

Skill Files

Browse the full folder contents for no-skip.

Download Skill

Loading file tree…

assets/skills/no-skip/SKILL.md

Skill Metadata

Name
no-skip
Description
"Use when you want to prevent .skip(), .only(), xit(), and xdescribe() from being committed to test files. Activate with /no-skip for session-scoped test skip prevention."

No-Skip Mode

When activated, blocks any write that adds test-skipping patterns to test files.

What It Does

Prevents these patterns from being written to test files:

  • .skip() — skips individual tests
  • .only() — runs only one test (excludes all others)
  • xit( / xdescribe( — Jasmine skip syntax
  • test.todo( — unimplemented test placeholders
  • @Skip / @Disabled — JUnit skip annotations

Activation

/no-skip

Hook Configuration

{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Write|Edit",
        "hook": ".claude/skills/no-skip/scripts/check-skips.sh",
        "condition": "file matches **/*.test.{ts,js,tsx,jsx} OR **/*.spec.{ts,js}"
      }
    ]
  }
}

Enforcement Logic

#!/bin/bash
# check-skips.sh
CONTENT="$1"

SKIP_PATTERNS=(
  '\.skip\s*\('
  '\.only\s*\('
  '\bxit\s*\('
  '\bxdescribe\s*\('
  '\bxcontext\s*\('
  'test\.todo\s*\('
  '@Skip'
  '@Disabled'
  '@Ignore'
)

for pattern in "${SKIP_PATTERNS[@]}"; do
  if echo "$CONTENT" | grep -qP "$pattern"; then
    echo "BLOCKED: Found skip pattern '$pattern'"
    echo "Remove the skip and either fix the test or delete it."
    exit 1
  fi
done

Gotchas

  • This catches NEW skips being written, not existing ones — run grep -r '.skip(' tests/ to find existing skips
  • .only() is sometimes used intentionally during debugging — deactivate with /no-skip off if needed
  • Some frameworks use pending() instead of .skip() — add to patterns if using Jasmine