Files
browser/openspec/changes/move-scum-deployment-lifecycle-to-plugin/proposal.md
T

1.8 KiB

Why

The current SCUM deployment flow hardcodes SteamCMD, SCUM executable paths, app id 3792580, config writes, and start arguments inside platform/run code. That violates the intended boundary: the SCUM plugin should own game lifecycle policy while platform dispatches and run executes generic, bounded actions.

What Changes

  • BREAKING: Retire the SCUM-specific deployment.scum.v1 run capability and the platform-to-run serverDeploymentPlan path for SCUM installs/adoptions.
  • Move SCUM install/update/start command ownership into the SCUM plugin action bundle.
  • Use plugin lifecycle actions for idempotent "install if missing, update if present, then start" behavior.
  • Keep platform limited to manifest/action validation, distribution packaging, lifecycle job dispatch, and generic result projection.
  • Keep run limited to generic action execution, scoped file/process operations, logs, artifacts, and capability enforcement.

Capabilities

New Capabilities

  • plugin-owned-game-lifecycle: Game plugins own game-specific lifecycle commands, default launch flags, app IDs, executable paths, install/update policies, and pre-start checks.

Modified Capabilities

  • platform-side-distribution-builds: Generated run packages must carry plugin-owned lifecycle action assets without requiring run to advertise game-specific deployment capabilities.

Impact

  • Affects plugins/examples/scum-server-plugin action assets and manifest declarations.
  • Affects platform/service, platform/domain, platform/dto, platform/validator, and protocol docs by removing SCUM-specific deployment plan dispatch/gating.
  • Affects the independent run repository by removing SCUM-specific runtime execution and capability advertisement.
  • Requires tests proving SCUM lifecycle jobs are plugin action jobs and run no longer contains a SCUM deployment executor.