mcpField
N
no-skip

no-skip

github.com/proffesor-for-testingTesting & quality51960 installsUpdated today
Repository

About no-skip

no-skip is a session skill that blocks writes adding test-skipping patterns to test files. It is for teams seeking to prevent skipped, focused, or placeholder tests from being introduced during editing.

Key features

  1. 01Blocks new test-skip patterns
  2. 02Checks test and spec files
  3. 03Detects skip and focus markers
  4. 04Covers multiple test framework syntaxes

Use cases

  1. 01Preventing skipped tests in code changes
  2. 02Blocking focused tests that exclude the suite
  3. 03Stopping placeholder tests from being added

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/proffesor-for-testing/agentic-qe --skill no-skip

After installing, type/no-skipin Claude Code to confirm it loaded.

Bundled filesscripts/check-skips.sh

Details

From the project README

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

Comments

Markdown supported