Files
browser/openspec/changes/move-scum-feature-ownership-to-plugin/proposal.md
T

2.6 KiB

Why

The five recent SCUM deliveries implemented most SCUM-specific domain services and React panels in platform/ and platform_web/, leaving the SCUM plugin as a manifest and schema declaration. This makes the plugin non-portable, hard-codes SCUM into the platform host, and does not provide a real server-side adapter that can collect events or execute approved game operations.

What Changes

  • Move SCUM-specific feature ownership for configuration, local game-player intelligence, controlled player state changes, gifts, and map trajectories into the SCUM plugin package and its Companion runtime.
  • Introduce a long-running, platform-authorized SCUM Companion adapter that receives only typed commands, emits only declared semantic events, and reports typed, idempotent results.
  • BREAKING Replace platform-owned SCUM panels and SCUM-specific API/domain endpoints with a plugin-page module mounted by the generic platform plugin host.
  • BREAKING Replace platform-owned SCUM projections and persistence with plugin-scoped local data accessed through generic platform isolation, audit, job, and storage primitives.
  • Preserve the existing platform responsibilities for authorization, server/tenant isolation, review and approval, durable job delivery, audit records, retention enforcement, and generic page hosting.
  • Treat current platform-side implementations as transitional control-plane behavior; do not claim an operation is available until the Companion has a verified executor or event producer.

Capabilities

New Capabilities

  • scum-plugin-feature-ownership: Defines the required ownership boundary between the generic platform and the SCUM plugin, including plugin-page mounting and migration of the five SCUM feature areas.
  • scum-companion-runtime-adapter: Defines the safe, typed Companion command/event adapter needed for real SCUM operation execution and semantic event collection.

Modified Capabilities

  • None. The prior SCUM requirements currently exist only in completed change artifacts, not in the repository's canonical openspec/specs/ tree; this change establishes their replacement canonical contract.

Impact

  • Affected roots: plugins/examples/scum-server-plugin/, plugins/sdk/, platform/, and platform_web/.
  • The SCUM Companion becomes the only place that translates approved typed operations into SCUM/RCON/legitimate-extension work and translates server signals into semantic events.
  • Existing SCUM-specific platform APIs, models, services, and hard-coded frontend panels will require a staged migration with compatibility checks; unrelated platform and plugin behavior remains out of scope.