From ccd9de06ef314a40992fccc4ccf6a6ac79de6a48 Mon Sep 17 00:00:00 2001 From: "Jonathan D.A. Jewell" <6759885+hyperpolymath@users.noreply.github.com> Date: Sat, 19 Sep 2026 09:28:18 +0000 Subject: [PATCH] refactor(root): move root artefacts to their canonical locations Applies the estate root-shape rollout: files that are not root-level by necessity move to where their tooling and the estate canon expect them, and every reference to them is updated in the same change. * .github/workflows/idris2-abi.yml * .machine_readable/root-allow.txt * HANDOFF.adoc * Justfile * QUICKSTART-MAINTAINER.adoc * build/guix.scm (from guix.scm) -> build/guix.scm * src/interface/Abi/README.adoc * src/interface/abi.ipkg (from abi.ipkg) -> src/interface/abi.ipkg Verified with `git apply --check` against current main before committing; no behaviour change intended, the Justfile entry points keep working. --- .github/workflows/idris2-abi.yml | 4 ++-- .machine_readable/root-allow.txt | 1 + HANDOFF.adoc | 2 +- Justfile | 2 +- QUICKSTART-MAINTAINER.adoc | 2 +- guix.scm | 28 ---------------------------- src/interface/Abi/README.adoc | 4 ++-- abi.ipkg => src/interface/abi.ipkg | 4 ++-- 8 files changed, 10 insertions(+), 37 deletions(-) delete mode 100644 guix.scm rename abi.ipkg => src/interface/abi.ipkg (90%) diff --git a/.github/workflows/idris2-abi.yml b/.github/workflows/idris2-abi.yml index 86cebee..52177a0 100644 --- a/.github/workflows/idris2-abi.yml +++ b/.github/workflows/idris2-abi.yml @@ -16,7 +16,7 @@ permissions: jobs: typecheck: - name: idris2 --typecheck abi.ipkg + name: idris2 --typecheck src/interface/abi.ipkg runs-on: ubuntu-latest timeout-minutes: 30 steps: @@ -41,4 +41,4 @@ jobs: - name: Typecheck the ABI run: | idris2 --version - idris2 --typecheck abi.ipkg + idris2 --typecheck src/interface/abi.ipkg diff --git a/.machine_readable/root-allow.txt b/.machine_readable/root-allow.txt index ceb2b98..3b3fccb 100644 --- a/.machine_readable/root-allow.txt +++ b/.machine_readable/root-allow.txt @@ -1 +1,2 @@ CLAUDE.md +build/ # build orchestration: guix.scm relocated here (canon 1.2.1 guix-primary template_ref = "build/") diff --git a/HANDOFF.adoc b/HANDOFF.adoc index c6b8440..2eb89b8 100644 --- a/HANDOFF.adoc +++ b/HANDOFF.adoc @@ -38,7 +38,7 @@ deno run --allow-read bin/evangeliser.js --kind false-friend # offline CLI * *Required:* https://deno.land[Deno] (latest stable) — runs everything above. * *Optional, now locally buildable* (these were "author-now / verify-in-CI" in the cloud env because it could not fetch them; on a desktop you can actually - build/verify): *Idris2* (`idris2 --typecheck abi.ipkg`), *Zig* (the FFI mirror + build/verify): *Idris2* (`idris2 --typecheck src/interface/abi.ipkg`), *Zig* (the FFI mirror under `src/interface/ffi/`). == Next steps (pick up from ROADMAP M2/M4/M5) diff --git a/Justfile b/Justfile index 302cc40..f3b47e8 100644 --- a/Justfile +++ b/Justfile @@ -205,7 +205,7 @@ nix-shell: # Guix build (if available) guix-build: - @command -v guix >/dev/null && guix build -f guix.scm || echo "Guix not installed" + @command -v guix >/dev/null && guix build -f build/guix.scm || echo "Guix not installed" # === HELP === diff --git a/QUICKSTART-MAINTAINER.adoc b/QUICKSTART-MAINTAINER.adoc index 64e5615..f827412 100644 --- a/QUICKSTART-MAINTAINER.adoc +++ b/QUICKSTART-MAINTAINER.adoc @@ -31,7 +31,7 @@ Output: `{{BUILD_OUTPUT_PATH}}` [source,bash] ---- -guix build -f guix.scm +guix build -f build/guix.scm ---- === Nix diff --git a/guix.scm b/guix.scm deleted file mode 100644 index 55e788e..0000000 --- a/guix.scm +++ /dev/null @@ -1,28 +0,0 @@ -;; SPDX-License-Identifier: MPL-2.0 -;; Guix development environment. -;; Usage: guix shell -D -f guix.scm - -(use-modules (guix packages) - (guix build-system gnu) - (guix licenses) - (gnu packages base) - (gnu packages bash) - (gnu packages base) - (gnu packages java) - (gnu packages rust) - (gnu packages cmake) - (gnu packages zig) - (gnu packages golang) - (gnu packages node) - (gnu packages python)) - -(package - (name "nextgen-language-evangeliser") - (version "0.1.0") - (source #f) - (build-system gnu-build-system) - (inputs (list coreutils bash make openjdk rust cmake zig go node python)) - (synopsis "nextgen-language-evangeliser") - (description "nextgen-language-evangeliser — part of the hyperpolymath ecosystem.") - (home-page "https://github.com/hyperpolymath/nextgen-language-evangeliser") - (license ((@@ (guix licenses) license) "MPL-2.0" "https://github.com/hyperpolymath/palimpsest-license"))) diff --git a/src/interface/Abi/README.adoc b/src/interface/Abi/README.adoc index 250e91b..6b79561 100644 --- a/src/interface/Abi/README.adoc +++ b/src/interface/Abi/README.adoc @@ -2,7 +2,7 @@ = ABI seam — the correspondence model (Idris2) The formally-typed core of the engine that *classifies* cross-language -correspondences. Typecheck with `idris2 --typecheck abi.ipkg` from the repo root. +correspondences. Typecheck with `idris2 --typecheck src/interface/abi.ipkg` from the repo root. == Modules @@ -34,7 +34,7 @@ The shapes are re-expressed here as fresh MPL-2.0 source rather than depended on == Status -*Typechecks clean* under Idris2 0.8.0 (`idris2 --typecheck abi.ipkg`; `%default +*Typechecks clean* under Idris2 0.8.0 (`idris2 --typecheck src/interface/abi.ipkg`; `%default total`, no escape hatches — verified 2026-06-18). The Zig FFI side of the seam (`src/interface/ffi/`) and the AffineScript host binding that consumes this ABI follow as later slices of the abstraction-model pivot. diff --git a/abi.ipkg b/src/interface/abi.ipkg similarity index 90% rename from abi.ipkg rename to src/interface/abi.ipkg index 53a4a79..8d55390 100644 --- a/abi.ipkg +++ b/src/interface/abi.ipkg @@ -8,7 +8,7 @@ -- EVERY filesystem (Idris2 requires capitalised namespace components). -- -- Typecheck with the package (not a bare --check, which warns on module/path): --- idris2 --typecheck abi.ipkg (or --build) +-- idris2 --typecheck src/interface/abi.ipkg (or --build) package abi @@ -18,7 +18,7 @@ authors = "Jonathan D.A. Jewell" brief = "Formally-typed ABI seam (Idris2): Concept/Form/Transition + the six CorrespondenceKinds, grounded in Dyadic + Echo" -sourcedir = "src/interface" +sourcedir = "." depends = base