AI agent skill · by @proffesor-for-testing
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.
Archived 2026-10-23 · Source updated 2026-09-13 · License: MIT. Check the original repository for the latest version.
SKILL.md instructions
# 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