LLM Skills
~/catalogue/architecture logicielle//modernize-map

Cartographie des dépendances (legacy)

/modernize-map

Construire une **carte de dépendance et de topologie** de `legacy/$1` et la rendre visuellement.

anthropicsanthropics
36.0k
5 juin 2026
Apache-2.0
// contenu du skill

description: Dependency & topology mapping — call graphs, data lineage, batch flows, rendered as navigable diagrams

argument-hint: <system-dir>


Build a dependency and topology map of legacy/$1 and render it visually.

The assessment gave us domains. Now go one level deeper: how do the pieces

connect? This is the map an engineer needs before touching anything.

What to produce

Write a one-off analysis script (Python or shell — your choice) that parses

the source under legacy/$1 and extracts the four datasets below. Three

principles apply across stacks; getting them wrong produces a misleading map:

  1. Edges live in two places — direct calls in source, and dispatcher/

router calls whose targets are variables (config tables, route maps,

dependency injection, dynamic dispatch). Resolve variables against config

before declaring an edge unresolvable.

  1. The code↔storage join is usually external configuration, not source —

job/deployment descriptors map logical names to physical stores.

  1. Entry points usually live in deployment config, not source — without

parsing it, every top-level module looks unreachable.

Extract:

  • Program/module call graph — direct calls (CALL, method invocations,

import/require) and dispatcher calls (EXEC CICS LINK/XCTL, DI

container wiring, framework routing, reflection/factory). Resolve variable

call targets against route tables, copybooks, config, or constant pools.

  • Data dependency graph — which modules read/write which data stores,

joined through the relevant config: SELECT…ASSIGN TO ↔ JCL DD (batch

COBOL), EXEC CICS READ/WRITE…FILE() ↔ CSD DEFINE FILE (CICS online),

EXEC SQL table refs (embedded SQL), ORM annotations/mappings (Java/.NET),

model files (Node/Python/Ruby). Include UI/screen bindings (BMS maps, JSPs,

templates) — they're dependencies too.

  • Entry points — whatever the stack's outermost invoker is, read from

where it's defined: JCL EXEC PGM= and CICS CSD DEFINE TRANSACTION

(mainframe), web.xml/route annotations/route files (web), main()/argv

parsing (CLI), queue/scheduler subscriptions (event-driven).

  • Dead-end candidates — modules with no inbound edges. **Only meaningful

once all the entry-point and call-edge types above are in the graph.**

Suppress the dead claim for anything that could be the target of an

unresolved dynamic call. A grep-only graph will mark most dispatcher-driven

modules (CICS programs, Spring controllers, ORM-bound DAOs) dead when they

aren't.

If the source is fixed-column (COBOL columns 8–72, RPG, etc.), slice the

code area and strip comment lines before regex matching, or you'll match

sequence numbers and commented-out code.

Save the script as analysis/$1/extract_topology.py (or .sh) so it can be

re-run and audited. Have it write a machine-readable

analysis/$1/topology.json and print a human summary. Run it; show the

summary (cap at ~200 lines for very large estates).

Render

From the extracted data, generate three Mermaid diagrams and write them

to analysis/$1/TOPOLOGY.html as a self-contained page that renders in any

browser.

The HTML page must use: dark #1e1e1e background, #d4d4d4 text,

#cc785c for <h2>/accents, system-ui font, all CSS inline (no

external stylesheets). Load Mermaid from a CDN in <head>:

html
<script type="module">
  import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid@11/dist/mermaid.esm.min.mjs';
  mermaid.initialize({ startOnLoad: true, theme: 'dark' });
</script>

Each diagram goes in a <pre class="mermaid">...</pre> block. Do not

wrap diagrams in markdown ` fences inside the HTML.

  1. **graph TD — Module call graph.** Cluster by domain (use subgraph).

Highlight entry points in a distinct style. Cap at ~40 nodes — if larger,

show domain-level with one expanded domain.

  1. **graph LR — Data lineage.** Programs → data stores.

Mark read vs write edges.

  1. **flowchart TD — Critical path.** Trace ONE end-to-end business flow

(e.g., "monthly billing run" or "process payment") through every program

and data store it touches, in execution order. If production telemetry is

available (see /modernize-assess Step 4), annotate each step with its

p50/p99 wall-clock.

Also export the three diagrams as standalone .mmd files for re-use:

analysis/$1/call-graph.mmd, analysis/$1/data-lineage.mmd,

analysis/$1/critical-path.mmd.

Annotate

Below each <pre class="mermaid"> block in TOPOLOGY.html, add a <ul>

with 3-5 architect observations: tight coupling clusters, single

points of failure, candidates for service extraction, data stores

touched by too many writers.

Present

Tell the user to open analysis/$1/TOPOLOGY.html in a browser.

// source originale publique
anthropics/claude-plugins-official
/plugins/code-modernization/commands/modernize-map.md
Licence : Apache-2.0
Projet indépendant, non affilié à Anthropic. Ce skill reste la propriété de son auteur original.
// installer ce skill
Collez cette commande dans votre terminal à la racine de votre projet :
mkdir -p .claude/commands && curl -o ".claude/commands/modernize-map.md" "https://raw.githubusercontent.com/anthropics/claude-plugins-official/main/plugins/code-modernization/commands/modernize-map.md"
Ensuite dans Claude Code, tapez /modernize-map pour l'activer.
open_in_newVoir la source originale
// sauvegarder
Sauvegarde disponible après connexion.
loginSe connecter pour sauvegarder
// informations
Créateuranthropics
Étoiles 36.0k
LicenceApache-2.0
Mis à jour5 juin 2026
Format.md
AccèsGratuit
// similaires

Skills Architecture logicielle

Voir toutarrow_forward