Neural Inverse is Open Source →
DocsPlanning

Planning (Stage 2)

Planning takes the Discovery output and produces a structured migration roadmap: units assigned to phases, effort estimates, blocker detection, and a CPM-calculated critical path.

The plan is generated automatically after Discovery completes. You review and approve it before migration begins.

Phases

Every migration unit is assigned to one of 10 sequential phases:

PhaseDescription
foundationShared utilities, helper macros, base types — no external dependencies
bspBoard Support Package: clocks, memory map, startup, linker sections
schemaData schema and memory-map definitions
core-logicCore firmware/PLC/application logic — bulk of translation work
hal-layerHAL drivers, peripheral abstractions, RTOS integration
api-layerExternal API surface, protocol adapters (Modbus, OPC-UA, CAN)
integrationFieldbus and protocol integrations (Modbus, OPC-UA, CAN, MQTT)
complianceCompliance review and GRC sign-off
safety-criticalSIL-rated functions — functional safety sign-off required
cutoverSystem init and top-level orchestrators — migrated last

Phase Assignment

Units are assigned to phases using a priority cascade:

  1. AI override (from the roadmap supplement)
  2. Regulated data hit or hardcoded credential → safety-critical
  3. Blocking GRC violation on a critical unit → safety-critical
  4. Unit defines a data schema (table, FD, entity) → bsp
  5. Level-0 root unit with dependents, not API-facing → foundation
  6. Exposes fieldbus or protocol endpoint → integration
  7. Exposes REST, CICS, or gRPC → api-layer
  8. Level ≥ 3 with no dependents (top-level orchestrator) → cutover
  9. Default → core-logic

Language-specific overrides:

  • AUTOSAR ARXML, SVD, linker scripts → bsp
  • CAN DBC, TTCN-3 → integration

Critical Path Method (CPM)

The planner calculates forward and backward passes across all units to identify the critical path — the sequence of units with zero slack that determines the minimum migration duration.

Each unit on the schedule includes:

FieldDescription
effortHoursHighUpper-bound effort estimate
levelDependency depth (0 = root, no dependencies)
isCriticalTrue if this unit is on the critical path
earliestStartForward pass: earliest possible start
earliestFinishForward pass: earliest possible finish
latestStartBackward pass: latest allowable start
latestFinishBackward pass: latest allowable finish
slackTotal float = latestStart − earliestStart

Units with slack = 0 are on the critical path. Delaying any of them delays the entire migration.

Blockers

The planner detects units that cannot be translated without manual intervention. Blockers must be resolved before a unit can proceed to migration.

Generic Blockers

BlockerDescription
god-unitToo large and complex to translate reliably in one pass
no-target-equivalentNo known target language equivalent for this construct
hardcoded-credentialMust be extracted before translation
circular-dependencyCircular import chain — must be broken manually
xlarge-effort-criticalXL effort + critical risk combination
blocking-grc-violationActive GRC violation blocks translation
unbounded-loopAlgorithmic risk — requires human review
deep-nestingRefactor required before reliable translation
implicit-type-coercionType precision risk requiring explicit handling

Firmware Blockers

BlockerDescription
unsafe-pointer-arithmeticMMIO cast must be abstracted via HAL
isr-reentrance-riskCritical section must be added before translation
misra-c-critical-violationMandatory MISRA rule violation
hardware-dependencyDirect MCU register access — HAL abstraction required
no-hal-equivalentNo HAL function available for target platform
watchdog-gapMissing watchdog refresh (IEC 61508 violation)
timing-constraintHard real-time constraint not expressible in target RTOS

Automotive Blockers

BlockerDescription
autosar-rte-dependencyAUTOSAR Classic RTE with no Adaptive mapping
e2e-protection-gapE2E CRC or counter missing
asil-decomposition-breakASIL-D decomposition without formal rationale
can-signal-scaling-mismatchDBC factor/offset not preserved

Telecom Blockers

BlockerDescription
security-key-material3GPP AS/NAS keys must be externalised to HSM/TEE
protocol-state-machine-breakNon-serialisable RRC/NAS state
ttcn3-verdict-suppressionINCONC verdict must link to test reference

Energy / OT Blockers

BlockerDescription
goose-protection-relayIEC 61850 GOOSE bridged via TCP/MQTT — prohibited
dnp3-secure-auth-gapDNP3 SA_CHALLENGE response missing
sis-sil-downgradeChange would reduce SIL rating

Compliance Gates

Domain-specific gates must pass before migration reaches the compliance and safety-critical phases.

Automotive (ISO 26262 / AUTOSAR)

  • ASIL-D formal verification evidence required (model checking or abstract interpretation)
  • E2E protection profile configuration (CRC + counter) verified

Energy / Critical Infrastructure (IEC 61850 / IEC 61511)

  • GOOSE protection path must be isolated — OPC-UA/MQTT bridging prohibited
  • SIL verification report required (IEC 61511-1 Section 11)

Telecom (3GPP / GSMA)

  • 3GPP key material must be externalised to HSM or TEE before migration proceeds
  • TTCN-3 verdict traceability must be established

Industrial IoT / OT (IEC 62443)

  • IEC 62443 zone and conduit isolation verified

Approving the Plan

Review the plan in the Planning pane:

  • Inspect phase assignment per unit
  • Review the blocker list and resolve any blockers
  • Check the critical path

Click Approve Plan → to unlock Stage 3 (Migration). The plan is locked after approval — units can be re-translated but phase assignments cannot change.


Was this page helpful?

Last edited