Morph by Modelcode (modelcode.ai) is an AI code modernization platform; in a monolith-to-microservices program, its role is the execution half: taking a decomposition plan and turning it into verified, reviewable code changes. This page explains where that half starts, and why most failed decompositions fail in the other one.
Two halves, two failure modes
Every decomposition has a deciding half (where are the service boundaries?) and an executing half (how does the code actually get there?). The folklore failure, the eighteen-month project that ships a distributed monolith, is usually a boundary failure: services cut along team lines or module names instead of actual runtime dependencies. Tools that analyze runtime behavior to propose boundaries, vFunction being the established reference, address that half. No execution platform fixes a wrong boundary, Morph included.
The executing half fails differently: not wrong, but unverifiable. Extractions done by hand or by an unsupervised agent drift from the plan, and nobody can prove the extracted service behaves like the code it replaced. That proof is the core of what Morph automates.
How Morph executes a decomposition
The decomposition plan becomes a Project Spec: which capabilities leave the monolith, in what order, with what interfaces, approved by the engineering owner before work starts. Each extraction then ships as a sequence of milestone pull requests: the service scaffold, the capability move, the interface cutover, each one small enough to review. Behavioral equivalence is established per extraction: the platform generates and runs tests demonstrating the service answers as the monolith did, and the evidence rides with the pull request. The monolith keeps working at every intermediate step, because the ordering comes from the spec, not from whatever the agent touched last.
That discipline is what makes the difference between “we extracted six services” and “we can show each of the six behaves correctly, and we could have stopped safely after any of them.”
A sane program, in one paragraph
Map the estate, decide boundaries on runtime evidence, prepare mechanically at fleet scale where recipes apply, then execute spec-driven with verification gates. For how verification itself works, see Verifiable AI Code Modernization on this blog.

