freeze-tests

v2026.09.24

Use when refactoring production code and you want to ensure test files are not modified. Activate with /freeze-tests to block all edits to test files for safe refactoring.

GitHub
Install command
npx skhub add proffesor-for-testing/freeze-tests
Markdown
SKILL.md

Freeze Tests Mode

When activated, blocks all modifications to test files. Use during refactoring to ensure behavior (as captured by tests) is preserved.

What It Does

Blocks Write and Edit operations on any file matching test patterns:

  • **/*.test.{ts,js,tsx,jsx}
  • **/*.spec.{ts,js,tsx,jsx}
  • **/__tests__/**
  • **/tests/**

Activation

/freeze-tests

Deactivate with /freeze-tests off.

Hook Configuration

{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Write|Edit",
        "hook": ".claude/skills/freeze-tests/scripts/block-test-edits.sh",
        "condition": "file matches **/*.test.* OR **/*.spec.* OR **/__tests__/** OR **/tests/**"
      }
    ]
  }
}

Enforcement Logic

#!/bin/bash
# block-test-edits.sh
FILE="$1"

if echo "$FILE" | grep -qP '\.(test|spec)\.(ts|js|tsx|jsx)$|__tests__|/tests/'; then
  echo "BLOCKED: Test files are frozen during refactoring."
  echo "If tests need updating, deactivate with: /freeze-tests off"
  exit 1
fi

When to Use

  1. Refactoring: Changing code structure without changing behavior
  2. Performance optimization: Making code faster without changing logic
  3. Dependency updates: Upgrading libraries while preserving behavior

Gotchas

  • Frozen tests can't be fixed if they break during refactoring — that's the point (the refactoring broke behavior)
  • If a refactoring requires test changes, it's not a pure refactoring — deactivate and treat as a feature change
  • This doesn't prevent running tests — only modifying test files
Discovery
Tags

No tags published for this skill.

Version
Latest version metadata

Version

v2026.09.24

Published

Sep 24, 2026

Category

Uncategorized

License

MIT

Source path

.claude/skills/freeze-tests

Default branch

main

Latest commit

ffc0c6a

Tree SHA

ffab1a1