← ClaudeAtlas

mikado-methodlisted

Use to refactor or restructure existing code IN PLACE when the change is likely to break things in ways that are hard to predict up front — drive the Mikado Method loop: attempt the change naively, capture what breaks as prerequisite graph nodes, revert, and implement bottom-up from the leaves, always keeping the codebase green. Loaded internally by brownfield-refactorer when the human chooses in-place restructuring over Strangler Fig.
SebastienDegodez/skraft-plugin · ★ 4 · AI & Automation · score 63
Install: claude install-skill SebastienDegodez/skraft-plugin
# Mikado Method A discipline for restructuring code whose true dependency graph is not knowable in advance: try the change, let the compiler and test suite reveal what it actually depends on, revert, then build the missing prerequisites bottom-up. The graph is the artifact — the failed experiment's code is always thrown away. Validation discipline adapted from [chaabani-anis/mikado-method](https://github.com/chaabani-anis/mikado-method) (MIT License): the same rigor (mandatory graph validation, traceability, golden-master gate, atomic leaf commits), reimplemented against SKRAFT's Mermaid graph convention instead of that project's rail-notation format. **Precondition.** A green safety net must exist before starting (see `characterize-with-contracts` / `brownfield-harness-builder`). Mikado surfaces prerequisites via real compiler/test failures — a codebase with weak or no test coverage gives false leaves (nothing breaks because nothing was checked, not because nothing depends on it). If the harness gate was CONCERNS or FAIL, stop and strengthen the harness first. ## The loop (four primitives — apply exactly) 1. **Goal** — one concrete, business-value-framed sentence agreed with the human. "Admin services are in a separate package deployable without customer services" is a goal. "Improve the architecture" is not — reject vague goals, ask the human to sharpen it. 2. **Naive experiment** — in an isolated worktree (`git worktree add <path> <branch>`), attempt the goal