cli_subprocess_core no longer owns built-in transport families.
If you need to add or change a built-in execution surface such as a new
surface_kind, the change belongs in execution_plane.
Ownership Rule
Transport-family ownership lives in:
ExecutionPlane.Process.Transport.SurfaceExecutionPlane.Process.Transport.Surface.Adapter- the Execution Plane adapter registry
ExecutionPlane.Process.Transport.*
cli_subprocess_core owns provider/runtime behavior above that substrate.
What Stays In This Repo
Changes belong in cli_subprocess_core when they affect:
- provider CLI command construction
- provider stdout/stderr parsing
- normalized event and payload emission
- model policy
- session or channel behavior
- provider-facing runtime errors
What Leaves This Repo
Changes belong in execution_plane when they affect:
- a new built-in
surface_kind - adapter capability declarations
- raw process startup and shutdown contracts
- transport
run/2, streaming IO, or bridge protocol logic - transport-owned result and error types
Public Seam
The core must keep using one public placement seam:
execution_surface
It must not expose adapter module selection publicly.
When the substrate gains a new landed surface, the core should normally only need:
- documentation updates
- examples
- any provider-side path-semantics or runtime-failure refinements