DataCoolie Release
Outcome And Boundary
Prepare or apply one deployment action for an exact verified
.builds/artifacts/{build_id} and produce a durable receipt for every attempted mutation.
Release never rebuilds or repairs the artifact.
Promotion reuses one build; rollback selects an explicit previous successful release and its build.
Own release preflight, artifact transport, target activation, deployment automation, promotion,
rollback, target observation, and release receipts. Return build defects or missing build
automation to build, missing resources to provision, and material contract changes to design.
Inputs And Authorization
Require an explicit action, target environment, an exact build ID or build current selector,
declared runner slice,
one explicitly selected successful artifact-verification receipt, exact target log and watermark
paths, and one declared runtime-state action. Promotion and rollback also require an exact active
source release receipt. Consume an explicitly selected successful provision receipt only when
target prerequisites required provisioning.
- Read-only preflight and release planning do not mutate a target.
- Every deploy, promote, rollback, or activation follows the target's release policy and records
authorization bound to the canonical digest of its exact build slice, target, action, activation
mechanism, and source/provision evidence.
- Production always requires explicit current-session authorization. Other protected targets follow
their configured release policy.
- Design, build, provision, source-environment, or earlier broad approval never authorizes release.
Resolve current once through its validated build.json, pin the exact immutable build, then
persist a prepared receipt and check authorization immediately before candidate staging. Recheck
the candidate, stable target current, deployment marker, resource/state gates, and authorization
immediately before activation. A changed build, runner, target, action, source release, runtime
path, qualification scope, state action/reference, marker, or deployment plan invalidates the
authorization.
State actions migrate, reset, and replay require current-session authorization.
Resource Routing
Load only the resource required by the selected outcome:
| Need |
Resource |
Owns |
| Deploy, promote, or rollback |
references/deployment-contract.md |
Stage, verify, activate, observe, and rollback semantics |
| Function artifact present |
references/python-functions-deployment.md |
Exact-artifact attachment, import proof, activation, and rollback |
| Consume-only release CI/CD |
references/automation-contract.md |
Build-run identity, protection gates, credential flow, and receipt persistence |
| Platform operation |
references/platform-tooling.md |
Control-plane CLI selection, installation boundary, official documentation, fallback, and command evidence |
| Runner target mapping |
references/runner-deployment-mapping.md |
Platform-native runner resource and runtime identity |
| Release evidence |
scripts/validate_release.py, schemas/release-receipt.schema.json |
Exact hashes, receipt bindings, source-release rules, and success gate |
References never choose target resources, naming, tool versions, or authentication. Target policy,
project-owned automation, installed tooling, and current official documentation are authoritative.
Preflight
- Resolve the supplied source. An explicit build ID selects its immutable artifact directly;
current is a convenience selector whose validated current/build.json is read once before
mutation. Pin that exact build ID in the prepared receipt and use only its canonical artifact
bytes afterward. Never transfer from moving current, re-resolve it during the attempt, or select
latest or a glob.
- Run the bundled release consumer validator against the exact build and successful Build v4
artifact-verification receipt. Reject modified, incomplete, symlinked, undeclared, or
insufficiently verified artifacts. Build-host runtime execution is optional evidence and never
substitutes for target qualification.
- Confirm the build receipt, manifest, environment, platform, runner, typed metadata set, and singular function artifact
describe the same exact target slice.
- Observe every required resource immediately before mutation. Continue when it is present,
accessible, and policy-compliant. Route
missing, drifted, inaccessible, or unknown
requirements to Provision. When provisioning was required, validate the exact successful apply
receipt, its plan-bound authorization, observed resources, and requirements hash that blocked
this release.
- For promotion or rollback, validate the exact active source release. Promotion requires the
same build and a declared target slice; rollback uses the candidate source release's build.
- Compare the active and candidate dataflow identity, watermark columns and known types,
destination identity/load behavior, and declared target grain or keys. Use
initialize only
without active state and preserve only when compatible. Otherwise stop for an approved
migrate, reset, or replay plan; never infer or silently execute it.
- Confirm exact target identity, temporary release-addressed candidate reference, stable target
current reference, deployment marker, and activation mechanism, plus least-privilege
credentials, environment-isolated active and qualification log/watermark paths, release policy,
and current authorization intent digest. Require passed
resource-readiness,
environment-isolation, and
runtime-state-preflight, and shared-component-compatibility checks in addition to build and
target checks. If runner slices share target metadata or functions, require the same exact
component digest or an approved isolation/coordinated-activation boundary. For an external cloud
adapter, target identity is the actual scheduler or execution host, not the cloud platform.
- Preserve a project-owned deployment mechanism when one is already approved. Otherwise follow
platform-tooling.md and select the direct tool by control plane. For Fabric targets, use Azure
CLI only for Azure/ARM readiness and Fabric CLI for Fabric-native transfer, qualification, and
activation. Resolve only the selected tooling; if it is missing, install it within the safe
tooling boundary or request installation, never in a runner or notebook.
Any mismatch stops release. Do not edit, regenerate, or rebuild artifacts here.
Deployment Transaction
- Persist the exact authorized attempt as
prepared before mutation.
- Map every declared metadata role to the fixed target
metadata component, the optional function
artifact to functions, and the runner to its declared native deployment target. Stage that
complete slice and a non-secret deployment marker in an inactive candidate. Reuse an
existing candidate only when its observable bytes match exactly; otherwise stop for
reconciliation and record failed.
- Verify candidate contents and marker identity and record
staged.
- Run the exact candidate with a target-policy-approved
isolated-smoke, representative-run, or
full-run method. When functions are present, attach the exact artifact and prove target import
plus function-backed execution. Record qualified only after all required checks pass.
- Recheck the candidate, stable target current, marker, resource/state gates, and authorization,
then replace or associate target current with the complete qualified slice using the narrowest
target-supported operation.
- Observe target current and its exact build/release marker, then record
active. A failed
observation after activation records failed with the actual active_unhealthy or partial
target state. Candidate cleanup follows target policy and is not an activation-success gate.
Update the same attempt receipt atomically after each phase. An environment with multiple runners
uses a separate ordered receipt and stable target current reference for each runner slice; report
mixed or partial state truthfully and do not claim atomicity across execution hosts.
Promotion applies this transaction to another declared target without rebuilding. Rollback stages,
qualifies, and activates the exact retained canonical build from an explicit previous successful
release; it does not require historical target folders, edit current metadata to imitate that
version, or assume the mutable watermark is compatible. If
atomic activation is unavailable, record the strategy, partial-state risk, and recovery action
before mutation.
Release Automation
Release owns consume-only deployment automation; build owns automation that creates and verifies
builds. Keep generated release automation project-owned under automation/release/. It downloads
one artifact from an explicit build run/source or resolves a verified build current selector once,
verifies its provenance, exact build receipt, and
release intent, then performs the deployment transaction. It never materializes or calls installed
skill paths at runtime; vendor the deterministic release consumer validator into automation.
Use target protection gates and short-lived workload identity when supported. Pin third-party
automation dependencies according to project security policy. Persist receipts outside ephemeral
job storage so later promotion and rollback can address one exact release.
Evidence And Handoff
Write receipts to {workspace}/.releases/{env}/{release_id}.json and validate the explicitly
selected path:
python scripts/validate_release.py --workspace <workspace> --receipt <receipt-path> [--build-selector current|<build-id>]
Consumers requiring a completed release add --require-success; this accepts only active v7
receipts. Never include credentials,
tokens, secret values, raw provider responses, or sensitive target outputs. End with exact build and
release IDs, target state, verification, skipped checks, and unresolved questions.
Release receipts use schema version 6. Earlier receipt schemas remain audit evidence only; create a
verified v6 baseline for each active runner slice before using the current promotion or rollback
flow.
1---2name: datacoolie-release3description: Plan, preflight, deploy, promote, roll back, or author consume-only release automation for an exact verified DataCoolie build. Use for explicit deployment-lifecycle work; read-only planning may precede authorization, while target mutation requires exact authorization. This skill consumes immutable build artifacts and never authors metadata or pipeline code, generates runners, rebuilds functions, provisions resources, or changes pipeline behavior.4---56# DataCoolie Release78## Outcome And Boundary910Prepare or apply one deployment action for an exact verified11`.builds/artifacts/{build_id}` and produce a durable receipt for every attempted mutation.12Release never rebuilds or repairs the artifact.13Promotion reuses one build; rollback selects an explicit previous successful release and its build.1415Own release preflight, artifact transport, target activation, deployment automation, promotion,16rollback, target observation, and release receipts. Return build defects or missing build17automation to build, missing resources to provision, and material contract changes to design.1819## Inputs And Authorization2021Require an explicit action, target environment, an exact build ID or build `current` selector,22declared runner slice,23one explicitly selected successful artifact-verification receipt, exact target log and watermark24paths, and one declared runtime-state action. Promotion and rollback also require an exact active25source release receipt. Consume an explicitly selected successful provision receipt only when26target prerequisites required provisioning.2728- Read-only preflight and release planning do not mutate a target.29- Every deploy, promote, rollback, or activation follows the target's release policy and records30 authorization bound to the canonical digest of its exact build slice, target, action, activation31 mechanism, and source/provision evidence.32- Production always requires explicit current-session authorization. Other protected targets follow33 their configured release policy.34- Design, build, provision, source-environment, or earlier broad approval never authorizes release.3536Resolve `current` once through its validated `build.json`, pin the exact immutable build, then37persist a `prepared` receipt and check authorization immediately before candidate staging. Recheck38the candidate, stable target current, deployment marker, resource/state gates, and authorization39immediately before activation. A changed build, runner, target, action, source release, runtime40path, qualification scope, state action/reference, marker, or deployment plan invalidates the41authorization.42State actions `migrate`, `reset`, and `replay` require current-session authorization.4344## Resource Routing4546Load only the resource required by the selected outcome:4748| Need | Resource | Owns |49|---|---|---|50| Deploy, promote, or rollback | `references/deployment-contract.md` | Stage, verify, activate, observe, and rollback semantics |51| Function artifact present | `references/python-functions-deployment.md` | Exact-artifact attachment, import proof, activation, and rollback |52| Consume-only release CI/CD | `references/automation-contract.md` | Build-run identity, protection gates, credential flow, and receipt persistence |53| Platform operation | `references/platform-tooling.md` | Control-plane CLI selection, installation boundary, official documentation, fallback, and command evidence |54| Runner target mapping | `references/runner-deployment-mapping.md` | Platform-native runner resource and runtime identity |55| Release evidence | `scripts/validate_release.py`, `schemas/release-receipt.schema.json` | Exact hashes, receipt bindings, source-release rules, and success gate |5657References never choose target resources, naming, tool versions, or authentication. Target policy,58project-owned automation, installed tooling, and current official documentation are authoritative.5960## Preflight61621. Resolve the supplied source. An explicit build ID selects its immutable artifact directly;63 `current` is a convenience selector whose validated `current/build.json` is read once before64 mutation. Pin that exact build ID in the prepared receipt and use only its canonical artifact65 bytes afterward. Never transfer from moving current, re-resolve it during the attempt, or select66 `latest` or a glob.672. Run the bundled release consumer validator against the exact build and successful Build v468 artifact-verification receipt. Reject modified, incomplete, symlinked, undeclared, or69 insufficiently verified artifacts. Build-host runtime execution is optional evidence and never70 substitutes for target qualification.713. Confirm the build receipt, manifest, environment, platform, runner, typed metadata set, and singular function artifact72 describe the same exact target slice.734. Observe every required resource immediately before mutation. Continue when it is present,74 accessible, and policy-compliant. Route `missing`, `drifted`, `inaccessible`, or `unknown`75 requirements to Provision. When provisioning was required, validate the exact successful apply76 receipt, its plan-bound authorization, observed resources, and requirements hash that blocked77 this release.785. For promotion or rollback, validate the exact active source release. Promotion requires the79 same build and a declared target slice; rollback uses the candidate source release's build.806. Compare the active and candidate dataflow identity, watermark columns and known types,81 destination identity/load behavior, and declared target grain or keys. Use `initialize` only82 without active state and `preserve` only when compatible. Otherwise stop for an approved83 migrate, reset, or replay plan; never infer or silently execute it.847. Confirm exact target identity, temporary release-addressed candidate reference, stable target85 current reference, deployment marker, and activation mechanism, plus least-privilege86 credentials, environment-isolated active and qualification log/watermark paths, release policy,87 and current authorization intent digest. Require passed `resource-readiness`,88 `environment-isolation`, and89 `runtime-state-preflight`, and `shared-component-compatibility` checks in addition to build and90 target checks. If runner slices share target `metadata` or `functions`, require the same exact91 component digest or an approved isolation/coordinated-activation boundary. For an external cloud92 adapter, target identity is the actual scheduler or execution host, not the cloud platform.938. Preserve a project-owned deployment mechanism when one is already approved. Otherwise follow94 `platform-tooling.md` and select the direct tool by control plane. For Fabric targets, use Azure95 CLI only for Azure/ARM readiness and Fabric CLI for Fabric-native transfer, qualification, and96 activation. Resolve only the selected tooling; if it is missing, install it within the safe97 tooling boundary or request installation, never in a runner or notebook.9899Any mismatch stops release. Do not edit, regenerate, or rebuild artifacts here.100101## Deployment Transaction1021031. Persist the exact authorized attempt as `prepared` before mutation.1042. Map every declared metadata role to the fixed target `metadata` component, the optional function105 artifact to `functions`, and the runner to its declared native deployment target. Stage that106 complete slice and a non-secret deployment marker in an inactive candidate. Reuse an107 existing candidate only when its observable bytes match exactly; otherwise stop for108 reconciliation and record `failed`.1093. Verify candidate contents and marker identity and record `staged`.1104. Run the exact candidate with a target-policy-approved `isolated-smoke`, `representative-run`, or111 `full-run` method. When functions are present, attach the exact artifact and prove target import112 plus function-backed execution. Record `qualified` only after all required checks pass.1135. Recheck the candidate, stable target current, marker, resource/state gates, and authorization,114 then replace or associate target current with the complete qualified slice using the narrowest115 target-supported operation.1166. Observe target current and its exact build/release marker, then record `active`. A failed117 observation after activation records `failed` with the actual `active_unhealthy` or partial118 target state. Candidate cleanup follows target policy and is not an activation-success gate.119120Update the same attempt receipt atomically after each phase. An environment with multiple runners121uses a separate ordered receipt and stable target current reference for each runner slice; report122mixed or partial state truthfully and do not claim atomicity across execution hosts.123124Promotion applies this transaction to another declared target without rebuilding. Rollback stages,125qualifies, and activates the exact retained canonical build from an explicit previous successful126release; it does not require historical target folders, edit current metadata to imitate that127version, or assume the mutable watermark is compatible. If128atomic activation is unavailable, record the strategy, partial-state risk, and recovery action129before mutation.130131## Release Automation132133Release owns consume-only deployment automation; build owns automation that creates and verifies134builds. Keep generated release automation project-owned under `automation/release/`. It downloads135 one artifact from an explicit build run/source or resolves a verified build current selector once,136 verifies its provenance, exact build receipt, and137 release intent, then performs the deployment transaction. It never materializes or calls installed138 skill paths at runtime; vendor the deterministic release consumer validator into automation.139140Use target protection gates and short-lived workload identity when supported. Pin third-party141automation dependencies according to project security policy. Persist receipts outside ephemeral142job storage so later promotion and rollback can address one exact release.143144## Evidence And Handoff145146Write receipts to `{workspace}/.releases/{env}/{release_id}.json` and validate the explicitly147selected path:148149```bash150python scripts/validate_release.py --workspace <workspace> --receipt <receipt-path> [--build-selector current|<build-id>]151```152153Consumers requiring a completed release add `--require-success`; this accepts only `active` v7154receipts. Never include credentials,155tokens, secret values, raw provider responses, or sensitive target outputs. End with exact build and156release IDs, target state, verification, skipped checks, and unresolved questions.157158Release receipts use schema version 6. Earlier receipt schemas remain audit evidence only; create a159verified v6 baseline for each active runner slice before using the current promotion or rollback160flow.