When I was starting out as a developer in the late 2000s, one of the must-have books was Robert Martin's Clean Code, and we all applied it. Meaningful naming, single responsibility, low coupling, high cohesion, all of it aimed at making code readable to the next person who touched it. Systems were structured so that anyone joining the team could understand what the software was doing without needing a guided tour. Different era, before “vibe coding” became a thing.
That code is now 10-15 years old. Legacy by any standard. But the discipline we put into it is exactly what makes AI-assisted discovery possible today.
Packages are named orders, customers, payments because someone insisted on it. Endpoints describe operations and frontend routes map to user journeys. The signals are there because developers put them there deliberately.
The problem has never been absence of information. It has been the effort required to reconstruct it reliably.
This is where AI changes the equation. Instead of manually piecing together intent from scattered files, teams can now surface patterns, relationships, and capabilities directly from the codebase itself, using those same signals that were written years ago with discipline.
In this post, I’ll walk through how to build a complete business capability map from legacy code, step by step. What used to take days or even weeks of fragmented analysis can now be done in a focused session, with better consistency and coverage.