From 15d204358cba2d7f1616bd005fba6cf583a75254 Mon Sep 17 00:00:00 2001 From: "Jonathan D.A. Jewell" <6759885+hyperpolymath@users.noreply.github.com> Date: Thu, 27 Aug 2026 10:26:11 +0100 Subject: [PATCH] =?UTF-8?q?policy:=20Nix=20is=20not=20a=20fallback=20?= =?UTF-8?q?=E2=80=94=20align=20the=20stragglers=20with=20LANGUAGE-POLICY?= =?UTF-8?q?=202.1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Owner ruling 2026-08-27: remove Nix entirely; Guix only. This is not a new rule. LANGUAGE-POLICY.adoc 2.1 already says, and has said since 2026-06-01: Nix was retired estate-wide on 2026-06-01. It is not a tier and not a fallback. hardened by a further owner ruling on 2026-07-28 that Nix flakes are to be thrown out of the estate. Six other documents simply never caught up, so the governing set contradicted itself: one file retired Nix while five others still offered it as a supported option, and CONTRIBUTING.adoc positively RECOMMENDED it ("Using Nix (recommended for reproducibility)"). Measured before changing anything: flake.nix exists in 0 of 381 local repos; guix.scm in 178. Nothing is stranded by this. QUICKSTART-DEV.adoc drop "Option B: Nix (fallback)"; Manual becomes B QUICKSTART-MAINTAINER.adoc drop the Nix packaging section and the optional-nix line CONTRIBUTING.adoc "Using Nix (recommended)" -> Guix; flake.nix -> guix.scm k9-svc/CONTRIBUTING.adoc same two corrections TEMPLATE-APPLICABILITY-POLICY.adoc "Guix/Nix reproducible build" -> Guix; drop flake.nix from the gate row EXPLAINME.adoc "Nix flakes as fallback" -> "Reproducible builds via Guix" ROADMAP.adoc drop flake.nix from the artefact list criterion 1.2.1 "...; Nix fallback only" -> "...(Guix only)" DELIBERATELY NOT TOUCHED: * No flake.nix is deleted. LANGUAGE-POLICY 2.1 carries an explicit warning: campaign #102 hand-diffed 277 candidates and removed exactly ONE, and fan-out REMOVE verdicts have a measured ~100% over-call rate. Removal is a per-repo judgement made while already working in that repo, never a sweep. This commit changes documentation only. * The rhodium-standard-repositories/ v1.0 material (RSR-AUDIT-GUIDE.adoc, PROJECT-STATUS.adoc, its CONTRIBUTING.adoc and README.adoc). RSR-SPEC-v2 records that v1.0's criteria legitimately required Nix flakes, so those files correctly describe a frozen earlier spec. "Correcting" them would falsify the historical record — the same mistake as renumbering the frozen spec.scm/compliance-criteria.scm. Flagged, not swept. * LANGUAGE-POLICY.adoc itself still names Nix, which is correct: it is the clause that retires it. Verified: hypatia's SSOT-parsing suites pass unchanged (24 tests, 0 failures); registry regenerated because criterion 1.2.1 lives under the registered spec home, and `just registry-check` reports in sync. The matching fixture copy is updated in hypatia under the same branch name. Co-Authored-By: Claude Opus 5 --- .machine_readable/REGISTRY.a2ml | 6 +++--- CONTRIBUTING.adoc | 6 +++--- EXPLAINME.adoc | 2 +- QUICKSTART-DEV.adoc | 13 +++---------- QUICKSTART-MAINTAINER.adoc | 9 +-------- ROADMAP.adoc | 2 +- TEMPLATE-APPLICABILITY-POLICY.adoc | 4 ++-- k9-svc/CONTRIBUTING.adoc | 6 +++--- .../spec/rsr-criteria-v2.a2ml | 2 +- 9 files changed, 18 insertions(+), 32 deletions(-) diff --git a/.machine_readable/REGISTRY.a2ml b/.machine_readable/REGISTRY.a2ml index 830d537d..2d7e2ce3 100644 --- a/.machine_readable/REGISTRY.a2ml +++ b/.machine_readable/REGISTRY.a2ml @@ -45,7 +45,7 @@ name = "K9 Self-Validating Components" stream = "foundation" home = "k9-svc/" canonical_doc = "k9-svc/README.adoc" -source_hash = "sha256:7cd1bc13879e6b6e100a94c74f6407b7d9883f188f3b52431e8e6d0a91577158" +source_hash = "sha256:1dab115bd5a7637975a3efc05649b0192d321816a9aeadd16ba9a16963c0257e" route = "the K9 specification, security analysis and adoption guidance (implementations live in hyperpolymath/k9-ecosystem)" [[spec]] @@ -126,7 +126,7 @@ name = "0-AI Gatekeeper Protocol" stream = "protocol" home = "0-ai-gatekeeper-protocol/" canonical_doc = "0-ai-gatekeeper-protocol/README.adoc" -source_hash = "sha256:33dbf3f5e2a265af2e826dc22de045e9d9b846312a4c53da64ea753775b7e641" +source_hash = "sha256:aaee3bfd9b1a09274af675d19bc7b242eeb2c0e6c5f39909797d911c56c28d3e" route = "the AI-agent entry/gating protocol behind 0-AI-MANIFEST" [[spec]] @@ -207,7 +207,7 @@ name = "RSR — Rhodium Standard Repositories" stream = "governance" home = "rhodium-standard-repositories/" canonical_doc = "rhodium-standard-repositories/README.adoc" -source_hash = "sha256:18c1139fd4ca8debad14ace23c3a9dd8a7dfcdef7dbe6c8c25e7b05749ea36c6" +source_hash = "sha256:b4a862d4c8014e17813ba5b7fc286ef4147530c13665824188dddfdcae5c9bc6" route = "the repository-compliance standard every repo is graded against" [[spec]] diff --git a/CONTRIBUTING.adoc b/CONTRIBUTING.adoc index 805b18b3..58d24f7b 100644 --- a/CONTRIBUTING.adoc +++ b/CONTRIBUTING.adoc @@ -2,9 +2,9 @@ git clone https://github.com/hyperpolymath/standards.git cd standards -== Using Nix (recommended for reproducibility) +== Using Guix (recommended for reproducibility) -nix develop +guix shell == Or using toolbox/distrobox @@ -31,7 +31,7 @@ Test suite (Perimeter 2-3) ├── .well-known/ # Protocol files (Perimeter 1-3) ├── .github/ # GitHub config (Perimeter 1) │ ├── ISSUE_TEMPLATE/ │ └── workflows/ ├── CHANGELOG.md ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md # This file ├── GOVERNANCE.md ├── LICENSE ├── -MAINTAINERS.md ├── README.adoc ├── SECURITY.md ├── flake.nix # Nix flake +MAINTAINERS.md ├── README.adoc ├── SECURITY.md ├── guix.scm # Guix manifest (Perimeter 1) └── Justfile # Task runner (Perimeter 1) .... diff --git a/EXPLAINME.adoc b/EXPLAINME.adoc index c91f761c..2ba626ea 100644 --- a/EXPLAINME.adoc +++ b/EXPLAINME.adoc @@ -51,7 +51,7 @@ link:REGISTRY.adoc[REGISTRY.adoc]). | Prevents supply-chain attacks from mutable tags. | Guix-first package management -| Reproducible builds; Nix flakes as fallback. +| Reproducible builds via Guix. |=== == How to use this repo diff --git a/QUICKSTART-DEV.adoc b/QUICKSTART-DEV.adoc index 546a3240..36ba3c72 100644 --- a/QUICKSTART-DEV.adoc +++ b/QUICKSTART-DEV.adoc @@ -23,21 +23,14 @@ Language + licence policy is binding: link:.claude/CLAUDE.md[.claude/CLAUDE.md]. == Set Up Development Environment -=== Option A: Guix (preferred) +=== Option A: Guix [source,bash] ---- guix shell ---- -=== Option B: Nix (fallback) - -[source,bash] ----- -nix develop ----- - -=== Option C: Manual +=== Option B: Manual [source,bash] ---- @@ -75,7 +68,7 @@ standards/ ├── scripts/build-registry.sh # Generator for REGISTRY.a2ml + TOPOLOGY.adoc ├── .machine_readable/ # State (descriptiles/), REGISTRY.a2ml, contractiles ├── Justfile # Task runner recipes -├── guix.scm / flake.nix # Guix (primary) / Nix (fallback) env +├── guix.scm # Guix reproducible environment └── .github/workflows/ # Enforcement + registry-verify CI ---- diff --git a/QUICKSTART-MAINTAINER.adoc b/QUICKSTART-MAINTAINER.adoc index 947286b5..81fe3f68 100644 --- a/QUICKSTART-MAINTAINER.adoc +++ b/QUICKSTART-MAINTAINER.adoc @@ -16,7 +16,7 @@ means bundling the spec tree and its reference implementations. * *Required:* `just`, `git` * *Optional (to build/test reference impls):* `cargo` (Rust), `deno`, `zig` -* *Optional (reproducible env):* `guix` (primary) or `nix` (fallback) +* *Optional (reproducible env):* `guix` == Build from Source @@ -38,13 +38,6 @@ Output: `spec bundle + reference-impl artefacts (no single binary)` guix build -f guix.scm ---- -=== Nix - -[source,bash] ----- -nix build ----- - === Container (Stapeln) [source,bash] diff --git a/ROADMAP.adoc b/ROADMAP.adoc index ae43ff6f..0160c9c6 100644 --- a/ROADMAP.adoc +++ b/ROADMAP.adoc @@ -65,7 +65,7 @@ Development roadmap for the Hyperpolymath standards and specifications repositor |Complete |**Build System** -|Justfile, Mustfile, flake.nix, guix.scm, .editorconfig +|Justfile, Mustfile, guix.scm, .editorconfig |Complete |**CHANGELOG Templates** diff --git a/TEMPLATE-APPLICABILITY-POLICY.adoc b/TEMPLATE-APPLICABILITY-POLICY.adoc index 80f02929..34402064 100644 --- a/TEMPLATE-APPLICABILITY-POLICY.adoc +++ b/TEMPLATE-APPLICABILITY-POLICY.adoc @@ -73,7 +73,7 @@ capability set drives everything else. .3+| Distribution | `published-package` | it publishes to a registry (crates.io / Hackage / JSR). | `container` | it ships a container image. -| `reproducible-build` | it provides a Guix/Nix reproducible build. +| `reproducible-build` | it provides a Guix reproducible build. .2+| Governance tier | `governance-tier` | it is load-bearing/critical enough to carry the full `AUDIT` / `AFFIRMATION` / `GOVERNANCE` / `MAINTAINERS` trio. Small leaf repos may decline it. @@ -106,7 +106,7 @@ and the SPDX licence invariant (`LICENCE-POLICY.adoc`). | `verification/proofs/**`, proof-CI | `formal-proofs` | service e2e, `.github/workflows/e2e.yml` | `api-service` | `container/`, `Containerfile` | `container` -| `build/guix.scm`, `flake.nix`, `.guix-channel` | `reproducible-build` +| `build/guix.scm`, `.guix-channel` | `reproducible-build` | mobile shell (Tauri/Dioxus) | `mobile` | `affinescript/` subtree | `affinescript` | `benches/` | `benchmarks` diff --git a/k9-svc/CONTRIBUTING.adoc b/k9-svc/CONTRIBUTING.adoc index f0eac66d..b9add4a3 100644 --- a/k9-svc/CONTRIBUTING.adoc +++ b/k9-svc/CONTRIBUTING.adoc @@ -3,9 +3,9 @@ git clone https://github.com/hyperpolymath/standards.git # Note: K9-SVC is located in standards/k9-svc cd k9-svc -== Using Nix (recommended for reproducibility) +== Using Guix (recommended for reproducibility) -nix develop +guix shell == Or using toolbox/distrobox @@ -32,7 +32,7 @@ suite (Perimeter 2-3) ├── .well-known/ # Protocol files (Perimeter 1-3) ├── .github/ # GitHub config (Perimeter 1) │ ├── ISSUE_TEMPLATE/ │ └── workflows/ ├── CHANGELOG.md ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md # This file ├── GOVERNANCE.md ├── LICENSE ├── MAINTAINERS.md ├── -README.adoc ├── SECURITY.md ├── flake.nix # Nix flake (Perimeter 1) └── +README.adoc ├── SECURITY.md ├── guix.scm # Guix manifest (Perimeter 1) └── Justfile # Task runner (Perimeter 1) .... diff --git a/rhodium-standard-repositories/spec/rsr-criteria-v2.a2ml b/rhodium-standard-repositories/spec/rsr-criteria-v2.a2ml index 0bb9dffd..55cac833 100644 --- a/rhodium-standard-repositories/spec/rsr-criteria-v2.a2ml +++ b/rhodium-standard-repositories/spec/rsr-criteria-v2.a2ml @@ -89,7 +89,7 @@ criteria = [ { id = "1.1.2", name = "justfile", desc = "Justfile task runner present with real recipes", tier = "bronze", gate = "universal", detect = "build_system_rules/justfile", template_ref = "Justfile" }, { id = "1.1.3", name = "no-makefile", desc = "No Makefile (Mustfile/justfile only)", tier = "bronze", gate = "universal", detect = "cicd_rules/makefile_detected", template_ref = "-" }, { id = "1.1.4", name = "editorconfig", desc = ".editorconfig present", tier = "silver", gate = "universal", detect = "manual", template_ref = ".editorconfig" }, - { id = "1.2.1", name = "guix-primary", desc = "Guix manifest (guix.scm) as primary reproducible build; Nix fallback only", tier = "silver", gate = "reproducible-build", detect = "build_system_rules/guix_primary", template_ref = "build/" }, + { id = "1.2.1", name = "guix-primary", desc = "Guix manifest (guix.scm) as the reproducible build (Guix only)", tier = "silver", gate = "reproducible-build", detect = "build_system_rules/guix_primary", template_ref = "build/" }, { id = "1.2.2", name = "git-hooks", desc = ".pre-commit-config.yaml with real hooks", tier = "silver", gate = "universal", detect = "manual", template_ref = "ci/.pre-commit-config.yaml" }, { id = "1.2.3", name = "container-rootless", desc = "Container config uses rootless Podman + Chainguard/Wolfi base", tier = "gold", gate = "container", detect = "cicd_rules/containerfile_base", template_ref = "build/container/" }, { id = "1.2.4", name = "tool-versions", desc = ".tool-versions pins toolchain versions", tier = "silver", gate = "universal", detect = "manual", template_ref = ".tool-versions" },