mikado
Skill9 starsChanged 23 days agoMITView on GitHub
Maps the dependency tree for a refactor before changing code, using the Mikado Method — attempt the goal, revert on breakage, record prerequisites, execute leaves-first. Use when a refactor is likely to cascade into prerequisite changes or touch interdependent modules.
1 other project uses a version of this.
Adopted by
Most recently taken up by
- channingwalton/skillstheir own version, first seen Oct 13, 2026
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 1
- channingwalton/skills★ 2same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository22 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- ai-auditSkill
- bulk-readSkill
- canon-slidesSkill
- captureSkill
- context-checkSkill
- context-doctorSkill
- dead-code-cleanupSkill
- doc-auditSkill
- learnings-sweepSkill
- mutation-testSkill
- output-validatorSkill
- promote-learningsSkill
- pr-reviewSkill
- repo-auditSkill
- repo-workflow-auditSkill
- sdlc-auditSkill
- skill-evalSkill
- skill-exportSkill
- sprintSkill
- wrapupSkill
The file
We split this skill into the rules it gives an agent
1 rule. About 0 are common, 1 is distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈1
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 65
Prefer many small reversible leaves over one large risky change.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Mikado
Plan a cascading refactor as a dependency graph you discover by attempting it, so the tree stays green at every step and nothing is half-migrated.
When to Use
- A refactor likely to cascade: renaming or moving a widely-used symbol, extracting a module, inverting a dependency, replacing an API many callers touch, splitting a god-object.
- You are not sure what a change will break until you try it.
Not for: a self-contained one-file change with no dependents — that is a normal edit, not a Mikado goal.
The Method
- Set the Mikado Goal. State the end refactor in one sentence (e.g. "PaymentService no longer imports the HTTP layer"). This is the root node.
- Attempt it naively. Make the direct change toward the goal.
- Observe breakage. Build, type-check, and run the tests. Compile errors, failing tests, and broken callers are the prerequisites the naive change revealed.
- If clean (nothing breaks): the node is a leaf — keep it, mark it done.
- If broken: for each breakage, write a prerequisite node — the change that must happen
first — as a child of the current node. Then revert the naive change immediately
(
git checkout -- <files>/ undo). Never leave the tree red between steps. - Recurse. Each prerequisite becomes a sub-goal; repeat steps 2–5 on it until you reach leaves — changes that break nothing on their own.
- Execute leaves-first. Work bottom-up: do the deepest leaves, verify the tree is green after each, then move up toward the goal. If a step surprises you with a new breakage, add a new prerequisite node and revert — do not push through. The graph grows; the tree stays green.
The goal change is done last, and by then every prerequisite is already in place, so it applies cleanly.
The Mikado Graph (durable artifact)
The graph is the plan. Record it in plan.md under ## Approach (or a ## Mikado subsection).
Root = goal; children = prerequisites; check off leaves-first.
Goal: PaymentService no longer imports the HTTP layer
- [ ] Introduce a PaymentGateway interface in the domain
- [ ] Move the HTTP client behind an adapter implementing PaymentGateway
- [ ] Extract the request-building helper (leaf — no dependents)
- [ ] Inject PaymentGateway into PaymentService via constructor
- [ ] Add a constructor param with a default (leaf)Execution order is deepest-first: the two leaves, then their parents, then the interface, then the goal. Each checkbox is flipped only after the tree is verified green.
Rules
- Always revert on breakage. A discovered prerequisite is recorded, not forced through.
- The tree is green between every executed step — never commit a half-migrated state.
- The graph is the source of truth for the change order; keep it in
plan.md. - Prefer many small reversible leaves over one large risky change.
Boundaries
Mikado is a planning aid only. It produces the reversible change path and the graph; it touches no close gate. Risk tiers and the sprint reviewer/evaluator gates are unchanged — mikado decides what order to change things in, never what verification runs.
Inside a canon refactor sprint, run mikado during orient/plan and log the graph in plan.md.
It is also invokable standalone, outside a sprint, to produce a change plan.
Triggers
| Agent | How to trigger |
| Claude Code | /mikado <refactor goal> |
| Codex / Pi | "Plan this refactor with mikado" / "Map the dependencies for <goal>" |
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

