golang-refactoring
Рефакторинг Golang — безопасный процесс перестройки существующего кода Go в масштабе: защитная сеть, адаптирующаяся к покрытию тестами, трансформации, сохраняющие поведение и управляемые инструментами (gopls Rename/Inline/Extract, `gofmt -r`, `eg`, `gopatch`, исправления `go/analysis`), каталог Фаулера, адаптированный для Go, разрыв циклических импортов, перемещение типов между пакетами и рабочий процесс с участием человека (human-in-the-loop) в виде небольших стекированных PR на ветке рефакторинга. Применяйте, когда код трудно поддерживать, функция/тип стали слишком большими, нужно устранить запах кода, добавление функции заблокировано текущей структурой или пользователь просит очистить, рефакторить или улучшить код Go — также для массового переименования, извлечения функций/интерфейсов, перемещения кода между пакетами, разделения пакетов или планирования многошагового рефакторинга. Целевые стили, описанные в других навыках → см. `samber/cc-skills-golang@golang-naming` (переименования), `@golang-project-layout` (разделения), `@golang-modernize` (идиомы), `@golang-code-style` (управление потоком), `@golang-design-patterns` (паттерны/внедрение зависимостей).
Что делает навык
Рефакторинг Golang — безопасный процесс перестройки существующего кода Go в масштабе: защитная сеть, адаптирующаяся к покрытию тестами, трансформации, сохраняющие поведение и управляемые инструментами (gopls Rename/Inline/Extract, `gofmt -r`, `eg`, `gopatch`, исправления `go/analysis`), каталог Фаулера, адаптированный для Go, разрыв циклических импортов, перемещение типов между пакетами и рабочий процесс с участием человека (human-in-the-loop) в виде небольших стекированных PR на ветке рефакторинга. Применяйте, когда код трудно поддерживать, функция/тип стали слишком большими, нужно устранить запах кода, добавление функции заблокировано текущей структурой или пользователь просит очистить, рефакторить или улучшить код Go — также для массового переименования, извлечения функций/интерфейсов, перемещения кода между пакетами, разделения пакетов или планирования многошагового рефакторинга. Целевые стили, описанные в других навыках → см. `samber/cc-skills-golang@golang-naming` (переименования), `@golang-project-layout` (разделения), `@golang-modernize` (идиомы), `@golang-code-style` (управление потоком), `@golang-design-patterns` (паттерны/внедрение зависимостей).
Как подключить
SKILL.md к навыкам ассистентаНавык — папка с файлом SKILL.md (описание + инструкции) и опциональными скриптами. Ассистент (Claude, Claude Code и совместимые) подхватывает его по описанию и следует шагам.