Prepare OCI Target, Space.ReleaseTargetID, and matching Unit.TargetID membership. Use for "set up a target", "publish this Space to OCI", "attach Units", or "do I need a worker?". Direct ConfigHub-provider delivery is historical and unsupported in the reviewed current profile.
Execution mode: follow references/execution-modes.md. This Skill grants no automatic tool permission. Standalone use previews the before/after EffectiveReleaseSet, then submits one requested worker, Target, Space, or Unit binding change at a time to the host permission system; an external overlay may stop it before Bash.
A Unit TargetID by itself is not enough for Space Releases.
Space.ReleaseTargetID identifies the one Target consumed by cub release publish <space>.Unit.TargetID exactly equals the ReleaseTargetID.The current Release path requires an OCI Target. Argo CD or Flux consumes the resulting OCI manifest outside ConfigHub. A server worker entity backs the OCI Target; no external worker process is needed for this built-in delivery path.
cub variant create ... --target ... and cub variant upload ... --target ... can establish these relationships for new variants. This skill is the explicit repair/setup route for existing Spaces and for auditing ambiguous bindings.
Earlier surfaces taught a ProviderType ConfigHub Target for direct ConfigHub/YAML delivery. Preserve that fact only as historical context; do not present it as current Release delivery. The reviewed Release implementation rejects a non-OCI ReleaseTargetID, and the former per-Unit runtime apply path is retired. Explain that no current supported command provides that route.
cub auth status
cub worker list --space <worker-space> -o json
cub target list --space <target-space> -o json
cub space get <app-space> -o json
cub unit list --space <app-space> --select "TargetID,HeadRevisionNum,ApplyGates,ToolchainType" -o jsonBind the organization/context, SpaceID, existing ReleaseTargetID, every UnitID/TargetID, and the intended target owner/slug. If changing a current target would add or remove Units from the EffectiveReleaseSet, disclose the before/after set and require a fresh release proposal after binding.
Confirm every form with installed help immediately before submission. For a clear standalone setup request, submit the first missing step through the host permission system, verify it, then continue one requested step at a time.
cub worker create --space <worker-space> --allow-exists --is-server-worker server-workerAfter the scope preview remains unchanged, submit this one command to the host permission system. Do not combine it with Target creation.
cub target create <target-slug> '' <worker-space>/server-worker \
--space <target-space> --provider OCIThe empty string is the Target parameters argument. Do not invent cluster/namespace parameters for the OCI Target; cluster/controller configuration is a separate integration.
cub space update <app-space> --release-target <target-space>/<target-slug>This --release-target step is load-bearing. It sets Space.ReleaseTargetID; a proposal that only calls cub unit set-target is incomplete.
For one intended Unit:
cub unit set-target <unit-slug> <target-space>/<target-slug> --space <app-space>For an exact reviewed set:
cub unit set-target <target-space>/<target-slug> --space <app-space> --unit <unit-1>,<unit-2>A metadata selector is supported, but resolve it to UnitIDs and show the exact count before submitting it:
cub unit set-target <target-space>/<target-slug> --space <app-space> --where "Labels.Tier = 'backend'"Do not claim “single-Unit delivery” after setting one Unit: a later release publish captures every Unit whose TargetID matches the Space's ReleaseTargetID. If other Units already match, show them. If the user's intent is truly isolated, propose a dedicated Variant Space rather than relying on a filter the Release command cannot accept.
The scope preview must bind:
OCI;ReleaseTargetID;Changing the Target, Space, Unit selector, resolved Unit membership, provider, or command creates a new scope. After a binding completes, rebuild the release-publish preview from fresh reads; permission for target binding is not permission for release publication.
cub target get <target-slug> --space <target-space> -o json
cub space get <app-space> -o json
cub unit list --space <app-space> --select "TargetID,HeadRevisionNum,ApplyGates" -o jsonA successful binding requires:
OCI;Space.ReleaseTargetID equals that TargetID;ReleaseTargetID broadens release scope without explicit re-approval;cub space open <target-space> --print-urlcub space open <app-space> --print-urlcub unit open <unit> --space <app-space> --print-urlNavigation URLs do not replace ID/org verification.
compatibility/current-profile.v1.jsoncompatibility/no-loss-inventory.v1.jsonrelease-publish — computes the exact EffectiveReleaseSet and release approval subject.worker-bootstrap — external workers remain available for custom functions, not built-in OCI Release delivery.ba61249
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.