Neural Inverse is Open Source →
DocsCutover

Cutover (Stage 5)

Cutover is the final stage. The IDE checks readiness, writes all approved translated files to the target project on disk, and exports a tamper-evident audit bundle.

Cutover is irreversible — it writes to the target project filesystem. The audit bundle is your compliance record.

Readiness Gate

Before cutover can be approved, the IDE runs 8 checks:

Blocking Checks (must all pass)

CheckDescription
All units terminalNo units in pending or translating state
No pending decisionsAll blocking human decisions resolved
No unresolved divergencesAll validation divergences reviewed
Required sign-offs obtainedAll compliance officer approvals collected

If any blocking check fails, the Approve Cutover button is disabled and the failing checks are listed.

Warning Checks (flagged, not blocking)

CheckDescription
Skipped units presentOne or more units were skipped
Low-confidence unitsUnits with translation confidence below medium

Info Checks

CheckDescription
Critical path on scheduleAll critical path units are approved
Regulated data reviewedAll units with regulated data hits have been reviewed

Approving Cutover

Click Approve Cutover in the Cutover pane. If any blocking check is failing, this throws a CutoverNotReadyError and lists the unmet conditions.

Once approved, the IDE writes all approved units to disk.

File Commit

The commit writer iterates over all approved units and writes unit.targetText to unit.targetFile using the IDE's file service. Existing files are overwritten.

After writing, each unit transitions from approvedcommitted.

Audit Bundle Export

After files are committed, the IDE exports an IAuditBundle:

{
  "sessionId": "sess-b3f8c21a",
  "exportedAt": 1742300000000,
  "units": [
    {
      "unitId": "...",
      "sourceFile": "src/PAYMENT.cbl",
      "targetFile": "src/PaymentService.java",
      "sourceLang": "cobol",
      "targetLang": "java",
      "outcome": "approved",
      "confidence": "high",
      "fingerprintSimilarity": 0.94,
      "decisions": [],
      "divergences": [],
      "approvedBy": "...",
      "approvedAt": 1742299000000
    }
  ],
  "complianceFrameworks": ["iso-26262", "misra-c"],
  "bundleHash": "a3f8c21b...",
  "chainIntegrity": true
}

The bundleHash is a FNV-1a hash computed over the serialised unit records. The chainIntegrity field is true when the hash matches the computed value — it detects any post-export modification of the bundle.

See Audit Bundle for the full structure and tamper-evidence details.

After Cutover

The session state is preserved — you can open the Modernisation panel to review the audit bundle or re-run validation on specific units. The Modernisation.inverse files remain in the project roots.

To start a new session on the same projects, run End Modernisation Session and begin the wizard again.


Was this page helpful?

Last edited