Skip to content

docs(openspec): add the OpenSpec baseline specification set - #27

Merged
kitsunoff merged 4 commits into
mainfrom
docs/openspec-baseline-specs
Sep 26, 2026
Merged

kitsunoff merged 4 commits into
mainfrom
docs/openspec-baseline-specs

Conversation

@kitsunoff

Copy link
Copy Markdown
Owner

What

Adds the OpenSpec baseline: nine capability specs under openspec/specs/,
describing the behaviour the operator already implements, plus the project
context block in openspec/config.yaml.

Capability Covers
machine-discovery Reachability probing, SSH credentials, architecture facts
host-convergence Single-owner gate, one-shot install, day-two cron, decommission
cluster-convergence Sticky node-group selection, node files, converge child, builder preflight
flake-source-resolution Pinned revisions, Flux artifacts, polled refs, credentials
workload-pod-rendering Revision key, init pipeline, store/builder wiring, file injection
nix-workload-kinds Projection and health rules for the four workload kinds
nix-store Binary cache server, signing and remote-build keys, endpoints
nix-builder Single-worker remote build backend
operator-runtime API surface, manager configuration, observability, delivery

Why

OpenSpec was introduced to this repository with an empty spec set. Backfilling
the current behaviour gives future changes a baseline to write deltas against,
instead of re-deriving the contract from the controllers each time.

Scope

Documentation only — no Go code, manifests or CI touched. Every spec passes
openspec validate --specs --strict.

Backfill the OpenSpec baseline for the three host-facing capabilities:
Machine reachability and fact collection, single-host convergence via the
NixosConfiguration orchestrator, and whole-cluster convergence via NixCluster.

Assisted-by: LLM
Signed-off-by: Maxim Belyy <maximbel2003@gmail.com>
Cover the behaviour every Nix workload shares — revision resolution from a
pinned commit, a Flux artifact or a polled ref, the rendered pod pipeline and
its store/builder wiring — plus the per-kind projection and health rules for
NixDeployment, NixJob, NixCronJob and NixStatefulSet.

Assisted-by: LLM
Signed-off-by: Maxim Belyy <maximbel2003@gmail.com>
Cover the NixStore binary cache and the single-worker NixBuilder, plus the
cross-cutting runtime contract: the API surface, namespace-local references,
manager configuration, observability, RBAC and how the operator is delivered.

Assisted-by: LLM
Signed-off-by: Maxim Belyy <maximbel2003@gmail.com>
Assisted-by: LLM
Signed-off-by: Maxim Belyy <maximbel2003@gmail.com>
@kitsunoff
kitsunoff merged commit 6710d1f into main Sep 26, 2026
5 of 6 checks passed
@kitsunoff
kitsunoff deleted the docs/openspec-baseline-specs branch September 26, 2026 10:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant