# Freeze Tests

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

- Skill: `proffesor-for-testing/freeze-tests` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds add proffesor-for-testing/freeze-tests`
- Raw SKILL.md: https://api.skillmd.com/api/skills/proffesor-for-testing/freeze-tests/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: proffesor-for-testing (https://skillmd.com/u/proffesor-for-testing)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/proffesor-for-testing/freeze-tests

---


# 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

```json
{
  "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

```bash
#!/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

