Session Setup
A modernisation session is the persistent unit of work that ties source and target projects together. It records the migration pattern, project roles, and current stage — and survives IDE restarts.
Topologies
The session topology determines how many source and target projects are connected.
| Topology | Source | Target | Typical Use Case |
|---|---|---|---|
| 1:1 | 1 | 1 | COBOL monolith → Java service, bare-metal → FreeRTOS |
| 1:N | 1 | Many | Monolith decomposition, microservices extraction |
| N:1 | Many | 1 | Service consolidation, vendor source merge |
| N:M | Many | Many | Microservices re-boundary, multi-vendor migration |
| Flexible | Any | Any | Custom patterns with open project count |
The topology is set by the selected migration pattern preset. Patterns with sourceCount: 'many' or flexible show add/remove buttons for additional project folders in the wizard.
The Wizard
The wizard opens after clicking New Modernisation Project. It has two panes:
Left pane — Project folders
For each role defined by the topology:
- Source project picker(s)
- Target project picker(s)
- Add/remove buttons for multi-project topologies
Right pane — Migration pattern
- 60+ preset patterns grouped by domain
- Custom text input for free-form pattern names
- Pattern description and topology indicator
Click Initialise Session once both panes are filled.
The Modernisation.inverse File
When a session is initialised, the IDE writes a Modernisation.inverse file to the root of every paired project. This file is the session contract.
Format (v2):
{
"neuralInverseModernisation": true,
"version": "2",
"role": "source",
"projectLabel": "ACME-COBOL-Mainframe",
"projectId": "proj-src-abc123",
"pairedProjects": [
{
"role": "target",
"label": "ACME-Modern-PaymentService",
"uri": "file:///path/to/modern/project",
"id": "proj-tgt-def456"
}
],
"migrationPattern": "cobol-to-typescript",
"sessionId": "sess-b3f8c21a",
"createdAt": 1742300000000
}| Field | Description |
|---|---|
role | "source" or "target" — this project's role |
projectLabel | Human-readable label for this project |
projectId | Stable UUID for this project across sessions |
pairedProjects | All other projects in the session |
migrationPattern | Pattern ID or free-form name |
sessionId | Shared across all projects in the session |
createdAt | Unix timestamp in milliseconds |
The file is written by the IDE, not generated by AI. Commit it to version control — it is the source of truth for session restoration.
Restoring a Session
Open any project that contains a Modernisation.inverse file. The IDE detects it on startup and restores the session at the stage where it was left. No manual action required.
The v1 format (legacyFolderUri/modernFolderUri) is automatically migrated to v2 on load.
Session State
The session state is stored in workspace storage (a .vscdb file in your IDE data directory). The Modernisation.inverse file provides the project pairing — the session state provides the stage progress, unit statuses, and approval records.
Stage Gates
| Transition | Gate |
|---|---|
| Discovery → Planning | Discovery completes all 11 phases |
| Planning → Migration | User clicks Approve Plan → |
| Migration → Validation | All units reach a terminal state |
| Validation → Cutover | All 4 blocking readiness checks pass |
Ending a Session
Run Neural Inverse: End Modernisation Session to clear the session state. This does not delete the Modernisation.inverse files from disk — you can restore the session by reopening the project.
To fully remove a session, delete the Modernisation.inverse files from the project roots.
Last edited