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/17

Craft Jul 16, 2026 at 17:457Add 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.

Resources, try it

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?

31 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 ?

Story timeline

Harness Ops : post-mortems et bench des agents en prod

  1. 1Migrating a production agent to GPT-5.6: 2.2× faster, 27% cheaper - the real post-mortem13/07/2026
  2. 233k vs 7k tokens: what the comparative overhead reveals about Claude Code and OpenCode13/07/2026
  3. 3Google Genkit v.Agents: detached turns and human-in-the-loop are now in preview14/07/2026
  4. 4Three loops in a trench coat: the real anatomy of an agent14/07/2026
  5. 5« Loop engineering »: new discipline or cron job rebranding?15/07/2026
  6. 6Benchmark Stripe: agents connect APIs, they do not validate them15/07/2026
  7. 7The archaeologist and his copilot: Malykhin disciplines the LLM on Java 1.516/07/2026
  8. 8QCon AI Boston: "prompts → platforms, harnesses, evals" - the field validates the thesis17/07/2026
  9. 9Beyond grep: the thesis of the rich-context AI coding harness20/07/2026
  10. 10InAgent achieves 90.2% on OSWorld: the computer-use agent gap narrows for the Chinese stack03/08/2026
  11. 11Wallfacer: a terminal session manager built for Claude Code and multi-agent workflows06/08/2026
  12. 12Claude Code inter-session messaging ships - agent-to-agent coordination gets its first native primitive08/08/2026
  13. 13AI agent Skills are getting standardized: Codex and VS Code are in, Claude is not yet10/08/2026
  14. 14AI agents lie, cheat, and steal—and it's slowing adoption faster than any benchmark can measure.13/08/2026
  15. 15Context engineering: why 300 well-chosen tokens beat 100k noisy ones14/08/2026
  16. 16OneCLI (YC S26) ships an OSS sandboxed agent harness - the team-scale answer to Claude Code19/08/2026
  17. 17Cursor Origin and the Agent Version Control Problem: Why Git Was Never Designed for This25/08/2026
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