Skip to content
Back to blog
Legacy migration / 2026-04-29

AI Legacy Code Modernization in 2026: Spec Kitty vs Moderne, AWS Transform, and Gemini Code Assist

Quick Answer

If you are modernizing a legacy codebase with AI, the right tool depends on the shape of the migration. Moderne and OpenRewrite are strong for deterministic code transformation recipes, especially Java and supported ecosystems. AWS Transform and the broader AWS migration and modernization portfolio are aimed at AWS-centered modernization paths. Gemini Code Assist is a developer-focused coding assistant. Spec Kitty is for teams that need to use modern AI coding models on legacy work while preserving expert knowledge, auditability, tracker visibility, and team governance.

The key distinction: the model brings language capability. Spec Kitty brings the team memory and control structure that make legacy modernization safer to attempt.

Spec Kitty reading through an old legacy system by candlelight.
Legacy modernization starts with understanding the old system before asking AI to change it.

What We Have Seen In Training

In corporate trainings, teams regularly take a real backlog ticket from a familiar system and drive it through specification, planning, task breakdown, implementation, and review in two to three hours.

Those are often tickets the team expected to take five or more days under the normal process.

That is an observed training pattern, not a universal benchmark. It depends on the ticket, the codebase, the model, test coverage, and the people in the room.

But the pattern is real enough to be useful: when domain experts, developers, and agents work from a shared spec and explicit decisions, the team spends less time re-explaining context and more time closing the actual change.

The people who understand the old system remain essential. Spec Kitty gives their knowledge a durable place to live and gives the agent a process for using it.

Legacy Code Modernization Matrix

Modernization needModerne / OpenRewriteAWS modernization suiteGemini Code AssistSpec Kitty
Best fitKnown, repeatable transformation recipes across supported languagesAWS-centered modernization programsDeveloper-led code explanation, generation, and transformationGoverned AI-assisted modernization across complex team workflows
Strongest pathJava/JVM framework upgrades and recipe-driven changes.NET, mainframe, VMware, SQL Server, and related AWS migration pathsIn-IDE and terminal coding assistanceCharter, Doctrine, decision capture, work packages, review trails, and Teamspace observability
Proprietary or rare languagesDepends on available recipes and platform supportDepends on AWS-supported transformation pathsDepends on model quality and examplesTeam encodes domain rules, constraints, and examples into Charter and Doctrine - the model inherits that context on every mission
Team governanceTransformation analytics and recipe controlsAWS-managed program controlsMostly assistant/operator workflowSpec, plan, ADRs, approvals, tracker updates, and widened decisions
Existing tracker workflowExternal to the transformation engineExternal or AWS-program dependentExternal to the IDE assistantLinear and Jira tickets can seed missions and receive status updates
Project memoryRecipe history and platform analyticsAWS modernization artifactsChat and IDE contextRepository-native kitty-specs living wiki
Best buyer question"Can this recipe safely transform thousands of repositories?""Are we modernizing into AWS?""Can this developer understand and edit this code faster?""Can our team govern AI-assisted legacy modernization?"

Why Legacy Modernization Is Hard For AI

Legacy modernization is one of the places where agentic coding should matter most.

The work is expensive. The code is hard to change. The people who understand the system are overloaded. The requirements are buried in behavior, old tickets, deployment scripts, database tables, and domain language that never made it into clean documentation.

AI models can help with that. But the hard part is not simply getting a model to write code.

The hard part is getting a team to trust the change.

The Model Is Not The Process

Spec Kitty is not the thing that understands every language, framework, proprietary runtime, or migration target.

Claude, GPT, Gemini, and other coding models bring the language capability. Their performance depends on the model, the codebase, the available examples, the surrounding tests, and the clarity of the instructions.

Spec Kitty's job is different.

Spec Kitty captures the knowledge that lets those models operate inside a team's reality: the domain language, architecture constraints, migration rules, review policies, risk boundaries, and decisions that experienced developers already know but rarely write down.

That distinction matters for rare and old stacks.

We have seen meaningful work around VB6 to .NET modernization and unusual stacks such as DataFlex and proprietary internal languages. The repeatable lesson is that experienced teams can teach the model the important local rules and ensure institutional knowledge is considered.

The same pattern matters for teams searching for AI help with COBOL modernization, IBM RPG modernization, PL/I modernization, ABAP modernization, Fortran modernization, Delphi modernization, PowerBuilder modernization, Lotus Notes modernization, VB6 modernization, DataFlex modernization, and proprietary domain-specific languages. The model still needs examples, tests, and expert review. Spec Kitty helps the team turn that knowledge into guardrails before the model starts changing behavior.

The model supplies the code intelligence. Spec Kitty supplies the governance and memory that make the model safer to use.

Top AI Legacy Code Modernization Options

Moderne and OpenRewrite

Moderne builds on OpenRewrite, which is strong when the migration can be expressed as deterministic recipes. That is especially useful for Java framework upgrades, dependency migrations, API changes, and large-scale codebase hygiene where teams want repeatable transformation rather than generative variation.

Spec Kitty is not a replacement for this kind of recipe-driven modernization. If the transformation is known, well-supported, and can be applied safely across many repositories, deterministic transformation is often the right tool.

Spec Kitty fits when the modernization depends on domain knowledge, old business behavior, unusual languages, mixed stacks, or human decisions that need to be captured before the code changes.

AWS Transform And AWS Modernization Tools

AWS's modernization story is a family of services, not one narrow product. The AWS migration and modernization portfolio frames the broader journey. AWS Transform is AWS's agentic AI service for workloads such as .NET, mainframe, and VMware. AWS also has purpose-built migration and modernization paths for Microsoft workloads, including SQL Server.

For simplicity, this post refers to that family as AWS's modernization suite, though the specific product names vary by workload.

That makes sense when the destination is AWS and the organization wants an AWS-managed modernization path.

Spec Kitty fits when the modernization is not primarily an AWS migration, when the team wants to keep its existing developer workflow, or when governance and decision history need to span tools outside one cloud modernization program.

Gemini Code Assist

Gemini Code Assist is a developer-focused coding assistant. Like Copilot and Cursor, its value is closest to the moment of coding: explaining, generating, and transforming code as a developer works.

Google also documents enterprise controls for Gemini Code Assist Standard and Enterprise, including IAM-based access control and optional network controls. Spec Kitty sits above that layer. It gives the team a spec, plan, work packages, decision ADRs, tracker status, and a durable history of what the AI-assisted modernization was supposed to achieve, regardless of which coding assistant your developers are using.

Why Legacy Work Breaks Agentic Coding

Legacy systems punish shallow context.

A function name may reflect a process from 2003. A database column may encode a business exception that only finance understands. A batch job may run because a customer contract still depends on a file format nobody likes. A migration may look easy until you discover that one regional deployment has a different integration path.

An agent can read code quickly, but it cannot automatically know which hidden constraints matter.

That is where teams get hurt. The model produces a plausible migration. The diff looks clean. Then a senior engineer asks the real questions:

  • Did it preserve the business behavior?
  • Did it respect the migration boundary?
  • Did it keep the old integration alive until the customer cutover?
  • Did it encode the naming and domain rules the team already agreed on?
  • Did it explain why this path was chosen instead of the safer alternative?

Those questions are not language questions. They are governance questions.

Charter And Doctrine Turn Expert Knowledge Into Guardrails

Spec Kitty starts legacy work by interviewing the people who know the system.

The project charter records project-specific policy: what the system does, how it is deployed, which areas are dangerous, what the team calls things, which rules are non-negotiable, and how changes should be reviewed.

Doctrine and glossary context turn that knowledge into reusable agent guidance. A team maintaining a proprietary billing engine can encode domain terms, forbidden shortcuts, reference examples, migration rules, and expected review gates. A team moving VB6 screens to .NET can record where behavior must remain identical and where the new platform is allowed to improve structure.

This is not a generic prompt pasted at the top of a chat.

It becomes repository-native memory that future missions can read. When a developer starts another modernization task weeks later, the next agent does not start from a blank prompt. It starts from the team's accumulated decisions.

Teams can also inspect the workflow surface in the Spec Kitty slash-command reference and the charter command reference.

When The Model Should Stop And Ask

Legacy modernization creates many moments where the coding assistant should not choose alone.

Should the migration preserve an awkward data shape for compatibility, or introduce a cleaner model and pay the adapter cost? Should a behavior be treated as a bug or as a customer-specific rule? Should a risky subsystem be split into smaller work packages before implementation?

In Spec Kitty, these are explicit decision points. The responsible developer can answer directly, or move the question into a Slack or Teams thread so the accountable lead, consulted domain experts, and informed stakeholders can weigh in. That matters in legacy environments because the best answer is often outside the person holding the keyboard.

The result is an ADR attached to the mission: the decision, the rationale, and the alternatives that were considered.

That ADR is useful immediately for review. It is even more useful six months later, when another developer or agent needs to know why the team preserved a behavior instead of replacing it.

Teamspace Makes Modernization Observable

Modernization work rarely happens in one neat branch.

There may be a canonical GitHub or GitLab repository, several developer checkouts, worktrees for parallel slices, CI runs, test environments, and phased migrations moving through a ticket system.

Teamspace gives the team a shared view of that motion.

It shows which Spec Kitty missions are running in which builds of which projects, what status they are in, and where attention is needed. Linear and Jira connectors let teams pull backlog items into the CLI, turn them into full specifications and plans, and keep the original ticket updated while implementation proceeds.

That is important because modernization programs already have a coordination burden. Agentic coding should reduce that burden, not create a second hidden backlog.

Spec Kitty guiding a team through a legacy modernization plan.
Legacy modernization becomes safer when the team shares the map, the decisions, and the path forward.

Which AI Modernization Tool Should You Pick?

Choose Moderne or OpenRewrite if your modernization is a supported, repeatable recipe-driven transformation and you want deterministic changes across many repositories.

Choose AWS's modernization suite if your modernization program is intentionally moving toward AWS and the supported AWS transformation paths match the work.

Choose Gemini Code Assist if an individual developer needs AI help understanding, editing, or transforming code inside an IDE or terminal workflow.

Choose Spec Kitty if the migration depends on team knowledge, rare or proprietary language patterns, domain-specific behavior, human decisions, tracker visibility, and a reviewable audit trail.

Frequently Asked Questions

Can AI modernize proprietary or rare programming languages?

Sometimes, with the right model, examples, tests, and domain experts. This is not a property Spec Kitty can claim by itself. Spec Kitty helps the team encode rare-language knowledge, business rules, architecture constraints, and review gates so the chosen AI model has better guardrails.

Is Spec Kitty a replacement for Moderne or AWS Transform?

No. Moderne and OpenRewrite are a better fit for supported deterministic code transformations. AWS's modernization suite is a better fit for AWS-centered modernization programs. Spec Kitty fits when the hard part is governing AI-assisted change across a team, a tracker, a legacy domain, and a long-running modernization effort.

Does Spec Kitty work with Claude Code, Cursor, GitHub Copilot, Gemini CLI, and Codex?

Yes. Spec Kitty is agent-agnostic. It adds a spec, governance, and memory layer around the coding agent your developers already use.

How does Spec Kitty support legacy modernization governance?

Spec Kitty captures intent before code changes, decomposes work into reviewable work packages, records decision ADRs, keeps tracker status visible, and preserves mission history under kitty-specs for future humans and agents.

A Better Standard For AI Legacy Code Modernization

The wrong promise is: any language, any system, fully automated.

That overstates what any one product should claim. The language capability belongs to the underlying model, and every serious legacy project has its own local risks.

The safer and more useful promise is this:

Spec Kitty helps experienced teams turn their legacy knowledge into reusable guardrails, then use modern AI coding models inside a governed, reviewable, observable workflow.

That is how rare-language modernization becomes possible without implying that the product itself understands every old runtime, customer exception, or deployment constraint.

The practical goal is not to make legacy experts optional. It is to turn their knowledge into shared operating context so every AI-assisted change starts from the system's real constraints. That lets teams move faster while preserving the behavior the business still depends on.