# Safe Refactoring

> Изменять структуру и внутреннее устройство кода без изменения внешнего поведения, маленькими проверяемыми шагами. Используй при запросах "зарефактори", "упрости этот код", "убери дублирование", "перепиши для читаемости" без изменения функциональности. Не путать с фичами — если поведение должно поменяться, это не рефакторинг, а обычная реализация (см. spec-first / test-driven-development).

- **Type:** Skill
- **Install:** `agentstack add skill-alex7develop-my-agent-skills-safe-refactoring`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [Alex7develop](https://agentstack.voostack.com/s/alex7develop)
- **Installs:** 0
- **Category:** [Agent Skills](https://agentstack.voostack.com/c/agent-skills)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [Alex7develop](https://github.com/Alex7develop)
- **Source:** https://github.com/Alex7develop/my-agent-skills/tree/main/skills/safe-refactoring
- **Website:** https://skills.sh/Alex7develop/my-agent-skills

## Install

```sh
agentstack add skill-alex7develop-my-agent-skills-safe-refactoring
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# Safe Refactoring

Ключевое отличие рефакторинга от любой другой правки: внешнее поведение
не меняется. Если в процессе хочется "а заодно исправить вот эту логику" —
это уже не рефакторинг, и это стоит выделить в отдельный шаг.

## Предусловие

Перед началом рефакторинга должны быть тесты, покрывающие текущее
поведение. Если тестов нет — сначала написать характеризующие тесты
("characterization tests"), которые фиксируют текущее поведение как есть
(даже если оно неидеальное), и только потом начинать менять структуру.

## Процесс

1. **Зафиксировать текущее поведение тестами** (см. предусловие).
2. **Работать тонкими шагами.** Один рефакторинг за раз (переименование,
   выделение функции, перемещение кода) — не смешивать несколько видов
   изменений в одном шаге.
3. **Прогонять тесты после каждого шага.** Если тесты не написаны заново —
   значит, шаг не должен был менять поведение, и любой красный тест — сигнал
   немедленно откатиться, а не чинить дальше.
4. **Коммитить после каждого зелёного шага.** Маленькие коммиты — это
   возможность откатиться на последний работающий шаг, а не переписывать всё
   с нуля при ошибке.
5. **Отделять структурные изменения от изменений поведения.** Если во время
   рефакторинга видна реальная фича/фикс — зафиксировать это отдельно и не
   смешивать с текущим PR.

## Частые виды безопасного рефакторинга

- Выделение функции/метода из длинного блока кода
- Переименование для ясности (переменные, функции, файлы)
- Устранение дублирования через общую абстракцию
- Замена условной логики на полиморфизм/таблицу диспетчеризации
- Разбиение большого модуля на несколько с чёткими границами

## Чек-лист перед тем, как считать рефакторинг завершённым

- [ ] Все существующие тесты зелёные без изменений в самих тестах
- [ ] Внешний API/контракт модуля не изменился (если изменился — это не
      чистый рефакторинг, нужно явно об этом сказать)
- [ ] Каждый шаг был закоммичен отдельно, коммиты можно откатить по одному
- [ ] Нет смешанных изменений "рефакторинг + фича" в одном шаге

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [Alex7develop](https://github.com/Alex7develop)
- **Source:** [Alex7develop/my-agent-skills](https://github.com/Alex7develop/my-agent-skills)
- **License:** MIT
- **Homepage:** https://skills.sh/Alex7develop/my-agent-skills

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-alex7develop-my-agent-skills-safe-refactoring
- Seller: https://agentstack.voostack.com/s/alex7develop
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
