本文へ移動
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 / 1000 文字

このフォームは 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 のスキルをすべて見る

このスキルの問題を報告する