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. - A future
nika: v2would be a deliberate breaking-change generation with its own spec — and since thev1envelope is frozen, that is effectively never. - Anti-pattern:
nika: v1.0·nika: "1"·nika: 1.0. The value is exactlyv1.