Contract version
nika: v1, the first line of every workflow. A single version marker:
the key nika declares “this is a Nika workflow”, the value v1 pins the
language contract version. There is no separate schema: or apiVersion:
field (the engine’s internal canonical URI stays https://nika.sh/spec/v1
for RDF / conformance tooling, but the author never types a URL).
Point your editor
Add the LSP modeline at the top of any.nika.yaml so your editor’s YAML
language server consumes the JSON Schema directly:
the modeline · paste at the top of any workflow
Local validation
Versioning policy
v1is the only value for the entire lifetime of the v1 contract.- Minor additions (a new optional field, a new builtin) are additive
and never change the marker: no
@minorbumps, nonika migratefor them. - There is no
nika: v2— ever: pre-1.0 grammar changes happen insidev1(the pre-1.0 stability contract) · after engine 1.0.0 the grammar is additive only. - Anti-pattern:
nika: v1.0·nika: "1"·nika: 1.0. The value is exactlyv1.