Phase 2 — Runtime Engine Scope

Phase 1 (built) renders the 8-model schema as an AI-Safe CRUD register — browsable, with a dashboard. But the states are static: the seed shows outcomes already decided. Nothing is gated, transitioned or published by the system.

Phase 2 is the runtime that makes it live — the connection workflow (requirement identified→accepted), requirement-acceptance gating (a requirement accepts only on an accepted submission + technical review), dependency resolution, risk rating (rating = likelihood × consequence, a derived field) and the published connection events. Same shape as the (built, cluster-proven) orchestrator engine, single-app, and it plugs into the wider Renewable Generation Orchestration suite via the Orchestrator.

The scope, drawn from the pack's GOVERNANCE.md / ORCHESTRATION.md / EVENT_CATALOG.md:

  • Workflow / state machine — expose the pack's states as guarded actions per entity, instead of a free-edited status.
  • Governance gates — enforce the pack's rules at the transitions they guard.
  • Events — write the pack's published events transactionally to an outbox and deliver them to the Orchestrator with retry, so sibling apps (commissioning, gencom, opex, outage) react.
  • Dashboards/KPIs — the operational numbers this domain's owner watches.
  • Tests — straight from the component's TEST_SCENARIOS.md.

How it would be built

A per-app engine module (mirror server/lib/orchestrator_engine/) behind an opt-in env flag, plus the outbox + Orchestrator wiring (reuse the orchestrator client and event contracts). The orchestrator (built and run live this session) is the working template for the engine, scheduler, outbox and tests.