uk/03-skills/refactor/SKILL.md
Систематичний рефакторинг коду на основі методології Мартіна Фаулера. Використовуйте, коли користувачі просять рефакторити код, покращити структуру коду, зменшити технічний борг, очистити застарілий код, усунути запахи коду (code smells) або покращити супровідність коду. Ця навичка проводить через поетапний підхід з дослідженням, плануванням та безпечною інкрементальною реалізацією.
npx skillsauth add luongnv89/claude-howto refactorInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Систематичний підхід до рефакторингу коду на основі книги Мартіна Фаулера Refactoring: Improving the Design of Existing Code (2-ге видання). Ця навичка наголошує на безпечних, інкрементальних змінах, підкріплених тестами.
«Рефакторинг — це процес зміни програмної системи таким чином, що не змінює зовнішню поведінку коду, але покращує його внутрішню структуру.» — Мартін Фаулер
Фаза 1: Дослідження та аналіз
↓
Фаза 2: Оцінка покриття тестами
↓
Фаза 3: Виявлення запахів коду
↓
Фаза 4: Створення плану рефакторингу
↓
Фаза 5: Інкрементальна реалізація
↓
Фаза 6: Перегляд та ітерація
Перед початком уточніть:
Представити знахідки користувачу:
«Рефакторинг без тестів — як їзда без пасків безпеки.» — Мартін Фаулер
Тести — ключовий засіб безпечного рефакторингу. Без них ви ризикуєте внести помилки.
Перевірити наявні тести
# Пошук файлів тестів
find . -name "*test*" -o -name "*spec*" | head -20
Запустити існуючі тести
# JavaScript/TypeScript
npm test
# Python
pytest -v
# Java
mvn test
Перевірити покриття (якщо доступно)
# JavaScript
npm run test:coverage
# Python
pytest --cov=.
Якщо тести існують та проходять:
Якщо тести відсутні або неповні: Представити варіанти:
Якщо тести не проходять:
Для кожної функції, що рефакториться, забезпечити тести для:
Використовуйте цикл «red-green-refactor»:
Симптоми глибших проблем у коді. Це не помилки, а індикатори того, що код можна покращити.
Див. references/code-smells.md для повного каталогу.
| Запах | Ознаки | Вплив | |-------|--------|-------| | Довгий метод | Методи > 30-50 рядків | Важко зрозуміти, тестувати, супроводжувати | | Дубльований код | Та сама логіка в кількох місцях | Виправлення помилок потрібне в кількох місцях | | Великий клас | Клас з занадто багатьма відповідальностями | Порушує принцип єдиної відповідальності | | Заздрість до функцій | Метод використовує дані іншого класу більше | Погана інкапсуляція | | Одержимість примітивами | Надмірне використання примітивів замість обʼєктів | Відсутні доменні концепції | | Довгий список параметрів | Методи з 4+ параметрами | Складно викликати правильно | | Групи даних | Ті самі елементи даних зʼявляються разом | Відсутня абстракція | | Оператори Switch | Складні ланцюжки switch/if-else | Важко розширювати | | Спекулятивна загальність | Код «на всякий випадок» | Зайва складність | | Мертвий код | Невикористаний код | Плутанина, тягар супровідності |
Автоматичний аналіз (якщо скрипти доступні)
python scripts/detect-smells.py <file>
Ручний перегляд
Пріоритезація Зосередитися на запахах, які:
Представити користувачу:
Для кожного запаху обрати відповідний рефакторинг з каталогу.
Див. references/refactoring-catalog.md для повного списку.
| Запах коду | Рекомендований рефакторинг | |------------|---------------------------| | Long Method | Extract Method, Replace Temp with Query | | Duplicated Code | Extract Method, Pull Up Method, Form Template Method | | Large Class | Extract Class, Extract Subclass | | Feature Envy | Move Method, Move Field | | Primitive Obsession | Replace Primitive with Object, Replace Type Code with Class | | Long Parameter List | Introduce Parameter Object, Preserve Whole Object | | Data Clumps | Extract Class, Introduce Parameter Object | | Switch Statements | Replace Conditional with Polymorphism | | Speculative Generality | Collapse Hierarchy, Inline Class, Remove Dead Code | | Dead Code | Remove Dead Code |
Використовуйте шаблон templates/refactoring-plan.md.
Для кожного рефакторингу:
КРИТИЧНО: Впроваджуйте рефакторинг поступово, фазами.
Фаза A: Швидкі перемоги (Низький ризик, висока цінність)
Фаза B: Структурні покращення (Середній ризик)
Фаза C: Архітектурні зміни (Вищий ризик)
Перед реалізацією:
«Зміна → Тест → Зелений? → Коміт → Наступний крок»
Для кожного кроку рефакторингу:
Попередня перевірка
Зробити ОДНУ малу зміну
Верифікація
Якщо тести проходять (зелені)
Якщо тести не проходять (червоні)
Кожен коміт має бути:
Приклади повідомлень комітів:
refactor: Extract calculateTotal() from processOrder()
refactor: Rename 'x' to 'customerCount' for clarity
refactor: Remove unused validateOldFormat() method
Після кожної підфази звітувати користувачу:
Запустити аналіз складності до і після:
python scripts/analyze-complexity.py <file>
Представити покращення:
Представити фінальні результати:
Обговорити з користувачем:
Завжди паузу та консультацію з користувачем, коли:
До:
function processOrder(order) {
// 150 рядків коду з:
// - Дубльованою логікою валідації
// - Інлайн-обчисленнями
// - Змішаними відповідальностями
}
Кроки рефакторингу:
Після:
function processOrder(order) {
validateOrder(order);
const total = calculateOrderTotal(order);
notifyCustomer(order, total);
return { order, total };
}
scripts/analyze-complexity.py — аналіз метрик складності кодуscripts/detect-smells.py — автоматичне виявлення запахівdevelopment
Comprehensive code review with security, performance, and quality analysis. Use when users ask to review code, analyze code quality, evaluate pull requests, or mention code review, security analysis, or performance optimization.
development
<!-- i18n-source: 03-skills/refactor/SKILL.md --> <!-- i18n-source-sha: 245272f --> <!-- i18n-date: 2026-04-27 --> --- name: refactor description: Martin Fowler の方法論に基づく体系的なコードリファクタリング。ユーザーがコードのリファクタリング、コード構造の改善、技術的負債の削減、レガシーコードのクリーンアップ、コードスメルの解消、コード保守性の向上を求めた際に使用する。本スキルは、リサーチ・計画・安全な段階的実装からなる段階的アプローチを案内する。 --- # コードリファクタリングスキル Martin Fowler 著『Refactoring: Improving the Design of Existing Code』(第 2 版) に基づくコードリファクタリングへの体系的アプローチ。本スキルは、テストに支えられた安全で段階的な変更を重視する。 > "Refactoring is the process of cha
development
<!-- i18n-source: 03-skills/doc-generator/SKILL.md --> <!-- i18n-source-sha: a6380d8 --> <!-- i18n-date: 2026-04-27 --> --- name: doc-generator description: ソースコードから包括的かつ正確な API ドキュメントを生成する。API ドキュメントの作成・更新、OpenAPI 仕様の生成時、または API ドキュメント、エンドポイント、ドキュメントについて言及がある場合に使用する。 --- # API ドキュメント生成スキル ## 生成するもの - OpenAPI/Swagger 仕様 - API エンドポイントのドキュメント - SDK 利用例 - 統合ガイド - エラーコード・リファレンス - 認証ガイド ## ドキュメント構造 ### 各エンドポイントごと ````markdown ## GET /api/v1/users/:id ### Description このエンドポイントの動作を簡潔に説明 ### Pa
development
<!-- i18n-source: 03-skills/claude-md/SKILL.md --> <!-- i18n-source-sha: f78c094 --> <!-- i18n-date: 2026-04-27 --> --- name: claude-md description: Create or update CLAUDE.md files following best practices for optimal AI agent onboarding --- ## ユーザー入力 ```text $ARGUMENTS ``` ユーザー入力が空でない場合、進める前に **必ず** 内容を考慮すること。ユーザーは以下を指定する場合がある: - `create` - 新しい CLAUDE.md をゼロから作成 - `update` - 既存 CLAUDE.md を改善 - `audit` - 現在の CLAUDE.md の品質を分析しレポート - 作成・更新する具体的なパス(例: ディレクトリ固有命令向けの `src/api/CLAUDE.md`) ## 基本原則