Examples
Deterministic git checkout bootstrap
A focused contract that uses action.kind: ensure_git_checkout for governed sibling or vendored Git materialization without shell glue.
Typical signals
- setup truthfully owns one sibling or vendored repo checkout
- the lane is clone-if-missing materialization, not fetch/reset/update
- today the repo uses a helper shell script only to run
git cloneand optionalgit checkout
Why it matters
- it turns a repo pattern into something humans, CI, and agents can read the same way
- it makes the next command obvious instead of implied by README drift
- it keeps readiness, setup, and execution explainable in receipts and diagnostics
Example contract
Use this when one setup lane honestly owns materializing a repo-local checkout and that truth should stay on a first-class deterministic action surface instead of hiding in shell bootstrap glue.
The example keeps the parent vendor directory and the Git checkout under one governed bundle, while still keeping the checkout semantics intentionally non-destructive on repeat runs.
version: 1project: name: action-ensure-git-checkout description: Focused example for deterministic Git checkout bootstrapexecution: default_context: host contexts: host: backend: native requirements: tools: git: "*"tasks: bootstrap:deps: context: host action: kind: ensure_bundle steps: - kind: ensure_directory path: vendor - kind: ensure_git_checkout path: vendor/wagtail source: git: https://github.com/wagtail/wagtail.git ref: mainworkflows: default: local-bootstrap local-bootstrap: prepare: task: bootstrap:depsmetadata: ota: minimum_version: "1.6.22"Task notes
Use ensure_git_checkout when bootstrap truth is clone-if-missing, not implicit repo update or reset.
If the checkout should be operator-visible on its own, keep it as a dedicated action task instead of burying it inside a larger shell setup lane.
If setup also owns deterministic env/file prep, compose those steps through ensure_bundle instead of dropping back to shell orchestration.