stack-spec.yaml is the desired-intent document for one StackKits workspace. Let the released CLI create the complete document, then change only the intent you understand.
stackkit/v2alpha1 document and establishes local owner custody outside the StackSpec. Do not start from an old minimal example: fields, defaults, and constraints are owned by the CUE contracts embedded in the installed release.
Common fields to review
This is an excerpt, not a replacement for the complete generated document:
Select the released Files workload
The v0.16.0 Basement and Cloud Kit contracts exposefiles as an optional workload. This selection was validated and generated with the released CLI:
workloads object into the complete StackSpec produced by init. The home site and main node are the released Basement defaults; use identifiers already present in your generated document.
Since v0.21.11, the placement block is optional. A workload selected without one receives the governed empty-placement defaults from the embedded CUE contracts, so programmatic StackSpec authors no longer need CLI-specific boilerplate.
Validate every change
validate checks the current StackSpec, generate creates governed output, and plan inspects the exact resolved plan without invoking an executor. If any command fails, fix the StackSpec; do not patch files below deploy/.
Continue with Review, apply, and verify.