Canonical workload admission

Stackied admits a Compose user block only after two independent checks: Mocker must resolve the image through block-owned mocker.images, and Stackied must reproduce the same catalog fingerprint before creating the sandbox. Docker image names, labels, commands, and bind paths are never accepted as Stackie block identity.

InputResult
Catalog runtime + one canonical source bind + allowed commandSandboxed Stackie user block
Catalog service without a source bindOrdinary Stackie service block
Unmapped imageRemains OCI; never becomes a block by name
Stale fingerprint, changed policy, or unapproved commandAdmission rejected
Missing, non-directory, ambiguous, or escaping sourceAdmission rejected

Source binds do not disable Lockbox. The admitted workload uses the catalog’s sandbox policy, executable allow-list, default command, code mount, and resolved block version.