Future one-command enrollment, proven without a real candidate
Phase 2 retains a deterministic future-onboarding engine. The shipped example-node identity is synthetic; the current fleet already consists of debian1, debian2 and debian3, so no live enrollment is authorized.
Owner experience
Transaction groups
Tailscale pin, global collision checks, supported-host preflight.
Durable ledger, three-door snapshot, serial access convergence, existing host profile.
Ten-minute token metadata, pinned agent configuration, K3s join over tailscale0.
Exact Node identity, quarantine, node-pinned Job, token revocation, tokenless restart proof.
Paired non-dispatch registry publication and final audit receipt.
Trusted workstation
Owns the plan, ephemeral helpers, cluster observation, receipt validation and Git publication.
no reusable token in fileschecksum-verified helpersprotected labels controller-ownedCandidate cannot
Access Git credentials, cluster-admin kubeconfig, permanent K3s bootstrap authority or trusted scheduling state.
no self-trustno dispatch enablementno Phase 2 write commandPhase boundary
Phase 2: inspect, calculate, preview, validate, publish repository implementation.
Current Phase 3: verify and harden the already-enrolled debian1/debian2/debian3 cluster. Future enrollment remains separately locked.
Paired source-of-truth preview
The two previews are content-addressed and must be published as one logical transaction. Enrollment cannot silently add dispatch capacity.
Package workflow
The Phase 2 receipt proves only the generic onboarding engine. It does not authorize or imply a current fourth node.