본문으로 건너뛰기
cccskills
무료GitHub에 공개

refactoring-mikado-strangler

Guide for large-scale refactorings with Mikado and Strangler Fig. Use for architecture migration, library replacement, module splitting, or pattern changes. Maintains a Mikado graph to track dependencies.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

설치 방법 보기

포함된 파일(1)

  • SKILL.md5.7 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Large Scale Refactoring - Mikado & Strangler Fig

Persona

Read .claude/roles/senior-dev.md — adopt this profile and follow all its rules.

Activation

This skill activates for refactorings that exceed a TDD cycle scope:

  • Architecture migration
  • Library or framework replacement
  • Splitting a monolithic module
  • Pattern change (e.g., callbacks -> promises -> async/await)
  • Bounded context restructuring

Choosing the method

CriterionMikadoStrangler Fig
Old code stays functional duringNoYes
Need to deliver incrementallyDifficultIdeal
Complex dependencies to untangleIdealPossible
Complete replacement of a systemPossibleIdeal

Ask the user which method to use if it's not obvious.


Mikado Method

Principle

  1. Try the final goal directly
  2. Observe what breaks
  3. Revert immediately (no broken code left around)
  4. Note the discovered prerequisites in the graph
  5. Recurse on each prerequisite
  6. Implement the leaves of the graph (those with no dependencies)

Interactive workflow

Step 1: Initialization

MIKADO - Initialization

Main goal: [description]
Graph file: docs/mikado/[name]-graph.md

I will create the tracking file.
Shall we begin?

Create the graph file:

# Mikado Graph: [Goal]

## Status: IN PROGRESS

## Main goal
- [ ] [Goal description]

## Discovered prerequisites
(Fills in as attempts are made)

## Attempt history
(Log of attempts and discoveries)

Step 2: Attempt

MIKADO - Attempt

I will try: [goal or prerequisite]
Expected: [what should break]

Shall we try?

After validation:

  1. Attempt the modification
  2. Run yarn test:run
  3. Note EVERYTHING that breaks
  4. REVERT IMMEDIATELY with git checkout .

Step 3: Analysis

MIKADO - Analysis

Attempt: [what we tried]
Result: [success / failure]

Errors encountered:
- [error 1] -> Prerequisite: [required action]
- [error 2] -> Prerequisite: [required action]

I'm updating the graph.
Which prerequisite do we tackle first?

Step 4: Implementation (leaves)

When a prerequisite has no dependencies:

MIKADO - Implementation

Prerequisite to implement: [description]
This is a leaf of the graph (no dependencies).

-> Activating the TDD skill for proper implementation.

Switch to the TDD skill to implement the prerequisite with RED-GREEN-REFACTOR.

Step 5: Validation

After each implementation:

MIKADO - Validation

Prerequisite completed: [description]
Updating the graph: done

Next action:
- [ ] [Another leaf to process]
- [ ] [Retry a parent goal]

What do we continue with?

Strangler Fig Method

Principle

  1. Create the new system alongside the old one
  2. Migrate calls progressively to the new system
  3. Cohabitation: both systems run in parallel
  4. Remove the old one when nothing uses it anymore

Interactive workflow

Step 1: Planning

STRANGLER - Planning

Old system: [description]
New system: [description]

Entry points to migrate:
1. [point 1]
2. [point 2]
...

I'm creating the tracking file: docs/strangler/[name]-migration.md
Which entry point do we start with?

Create the tracking file:

# Strangler Migration: [Name]

## Status: IN PROGRESS

## Old system
- Location: [path]
- Entry points: [list]

## New system
- Location: [path]
- Migrated entry points: 0/[total]

## Migration plan

| Entry point | Status | Date |
|-------------|--------|------|
| [point 1] | Pending | - |
| [point 2] | Pending | - |

## Old system removal checklist
- [ ] All entry points migrated
- [ ] No references to old code
- [ ] Old system tests removed/migrated
- [ ] Old code deleted

Step 2: Creating the new system

STRANGLER - New system

I will create the new implementation for: [entry point]
Location: [path]

-> Activating the TDD skill for proper implementation.

Switch to the TDD skill to create the new implementation.

Step 3: Migrating an entry point

STRANGLER - Migration

Entry point: [description]
Old: [code/path]
New: [code/path]

Migration plan:
1. [step 1]
2. [step 2]

Shall we migrate?

Step 4: Cohabitation verification

STRANGLER - Verification

Migration completed: [entry point]

Checklist:
- [ ] Tests pass
- [ ] Old code still functional (if other dependencies exist)
- [ ] New code used by [consumers]

Updating the tracking file.
Next entry point?

Step 5: Removal

When all entry points are migrated:

STRANGLER - Removal

All entry points have been migrated!

Old code to remove:
- [file 1]
- [file 2]

Tests to remove/migrate:
- [test 1]

Shall we clean up?

Integration with the TDD skill

Every time we need to implement code (Mikado prerequisite or new Strangler system), we switch to the TDD skill:

-> This prerequisite requires code.
-> Activating the TDD skill to implement with RED-GREEN-REFACTOR.
-> Returning to the Refactoring skill once complete.

Tracking files

Graphs and plans are stored in:

docs/
├── mikado/
│   └── [name]-graph.md
└── strangler/
    └── [name]-migration.md

These files serve as living documentation and allow resuming an interrupted refactoring.


Anti-patterns to block

  • Leaving broken un-reverted code (Mikado)
  • Removing the old system before the new one is complete (Strangler)
  • Implementing without tests (always go through the TDD skill)
  • Multiple refactorings in parallel
  • Skipping a step without user validation

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Guide for creating optimized Claude Code agents. Use to design a new specialized agent, a swarm sub-agent, or a multi-agent workflow. Follows the Skill → Agent (preloaded skills) → Skill orchestration pattern.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

DGouron/review-flow442026년 10월 21일 업데이트

Anti-overengineering guide based on YAGNI. Use before adding an architectural pattern, during code review, or to challenge an overly complex implementation.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

DGouron/review-flow442026년 10월 21일 업데이트

Clean Architecture (Uncle Bob) guide for this project. Use when creating modules, entities, use cases, presenters, controllers, gateways, guards, services. Contains tactical patterns and structure conventions.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

DGouron/review-flow442026년 10월 21일 업데이트

Audit documentation for duplication, staleness, language issues, and verbosity. Read-only — produces an actionable report.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

DGouron/review-flow442026년 10월 21일 업데이트

Local auto-review of modified code (no GitLab/GitHub). Runs 5 sequential audits and generates a local report. Ideal for validating code before creating a MR/PR.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

DGouron/review-flow442026년 10월 21일 업데이트

Clean Code (Robert C. Martin) guide to produce and challenge code that is readable, durable, simple, and consistent. Covers naming, functions, comments, smells, and refactor heuristics. Complements `/solid` (SOLID principles) and `/anti-overengineering` (YAGNI/KISS). Activate during the REFACTOR phase of the TDD cycle and during implementation self-review.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

DGouron/review-flow442026년 10월 21일 업데이트

DGouron의 스킬 모두 보기

이 스킬의 문제 신고