The archaeologist and his copilot: Malykhin disciplines the LLM on Java 1.5

Ongoing story : Harness Ops : post-mortems et bench des agents en prod· Part 7/8

CraftSubscribers only yesterday7Add to bookmarks

The archaeologist and his copilot: Malykhin disciplines the LLM on Java 1.5
Illustration : Léa Fontaine

Nik Malykhin had to run a Java 1.5 base on modern hardware. The first answers from his LLM were plausible, but did not hold up to scrutiny. The breakthrough: stop believing it at face value, force it to rely on evidence.

In plain terms

A LLM unleashed on legacy code produces answers that sound right but don't fit the project. The approach that works: forcing the assistant to work from evidence - code, tests, artifacts - rather than from its memory.

The archaeologist at work

Nik Malykhin recounted on July 16, 2026, on martinfowler.com his modernization of a Java 1.5 base to a recent environment. The context is not common: modern analysis and refactoring tools do not like Java 1.5, and many refuse entry. His first reflex - asking the assistant directly for fixes - produced what Malykhin describes as "plausible" answers that "did not hold up in the codebase": it looks like good Java 1.5, but it does not match the actual repository.

The pivot is methodological. Instead of using the LLM as a writer, Malykhin used it as an analyst and verifier, anchoring each step in the repository: careful reading of the existing code, validation of hypotheses on tests and execution traces, refusal to go faster than what the code itself allows to assert. The message of the article is simple: modernization of legacy with a LLM does not go faster than an archaeologist, it goes as slowly, but with fewer holes in the demonstration.

Under the hood

The pattern has several names in the modern tooling of agents - evidence-first prompting, grounded reasoning, retrieval-first - but it relies on the same rule: each assertion of the assistant must be backed by an artifact from the repository (a file, a line, a test). The absence of this constraint is what produces the most costly "false positives" of a LLM on legacy: APIs posterior to the target version, methods that do not exist, ghost imports.

So what

For teams that touch legacy, the "copilot" is not used to write, it is used to find. The real productivity comes from making the LLM read, not letting it guess. The corollary for a CTO: the good metrics of an AI-assisted modernization project are not "lines generated" but "hypotheses refuted by the code itself". The difference between the two is that between a legacy project that succeeds and a project that goes back into debt.

Content reserved for members

Create a free account to access all our content and the weekly review.

Article produced by artificial intelligence, reviewed under human editorial control.

Our newsroom
Your Linux servers, as a desktop.
TermalOSSponsored
Ops, reimagined

Your Linux servers, as a desktop.

Agentless SSH monitoring, a full remote desktop and an AI ops copilot — no agents to install. Everything stays on your machine.

SSHMonitoringAI Ops
Get early access
Was this article helpful?

9 people liked this article

Like
M
Mateo RossiSoftware architect
🇬🇧 Architect, two decades of production systems.
Share:
Comments (7)

Sign in to join the discussion.

Alex 2 17 Jul 2026 · 05:46

Interesting approach. Does this method also work for other legacy systems, or is it specific to Java 1.5?

J.P.R. 2 16 Jul 2026 · 17:46

Est-ce qu'on peut vérifier les suggestions du LLM avant de les implémenter, surtout sur un vieux système comme Java 1.5 ?

Dr. J. 16 Jul 2026 · 17:29

On pourrait tester les propositions du LLM dans un environnement isolé avant de les appliquer au système principal ?

ArtLoverLA 16 Jul 2026 · 13:57

Est-ce que ça marche aussi sur des gros projets Java 1.5 ?

1
CriticAtHeart 16 Jul 2026 · 16:03

Est-ce que ça marche aussi sur des gros projets Java 1.5 ? Les LLM ont du mal avec le code ancien très imbriqué, leurs suggestions sont moins fiables.

BookWorm47 16 Jul 2026 · 13:35

Est-ce que ça marcherait aussi pour d'autres vieux systèmes ?

SkepticSam 16 Jul 2026 · 13:25

Intéressant, mais comment ça se passe avec d'autres langages anciens ?

Alex_LDN 16 Jul 2026 · 13:17

Les LLMs pourraient-ils vraiment sauver nos vieux systèmes ?

Your Linux servers, as a desktop.
TermalOSSponsored
Ops, reimagined

Your Linux servers, as a desktop.

Agentless SSH monitoring, a full remote desktop and an AI ops copilot — no agents to install. Everything stays on your machine.

Get early access
Topics
Explore
Information