Skip to content

Campaign (master): codify + roll out the immutable estate standards (pure-Zig FFI, Idris2 ABI, hexadeca-unified, SNIF-not-NIF, Rust/SPARK) #111

Description

@hyperpolymath

Master tracking issue for the (almost-)immutable estate standards. Sub-campaigns: #108 (test/bench), #109 (SNIF), #110 (coprocessor).

The rules

  1. All FFIs/APIs in pure Zig — no C source, no .h. C-ABI is the wire format only (Zig export fn / Idris2 %foreign "C:…" / Rust extern "C" need no headers). Exception: only where something is explicitly designed to connect to C, or a generated C adaptor (e.g. zig-api/generated/abi/zig_api.h).
  2. All ABIs specified in Idris2, with Idris2 wired as the CI prover (the proof-corpus.yml pattern; vcl-ut is the canonical exemplar — pinned Idris2 0.8.0 from source, proof-escape audit).
  3. Hexadeca-unified API: the V HexadecaSuite (16 bidirectional interfaces, developer-ecosystem/v-ecosystem/v_api_interfaces/) is the canonical concept and stays in V (owner's gift). The Zig equivalent is unified-zig-api (developer-ecosystem/zig-api/) — extend, don't rebuild (see adapter issue).
  4. SNIFs, not NIFs (Sandboxed-NIF) — see Campaign: SNIF (Sandboxed-NIF) for all estate languages — wrap raw NIFs, add a Rust/SPARK SNIF #109.
  5. Rust means Rust/SPARK, everywhere; Rust is never the ABI/API/FFI layer (Zig is). Exemplar: git-reticulator/docs/decisions/rust-spark-stance.adoc + spark-theatre-gate.yml.

Rollout actions

  • Write the canonical standards doc in hyperpolymath/standardsnot reachable from this session; needs an agent with standards-repo access.
  • Add/extend Mustfile (YAML: version 1, checks security/tests/format → just targets) across all owned + Joshua-Jewell-shared repos.
  • Ensure each repo's CLAUDE.md references the rules.
  • Apply estate-wide (~290 repos) — only the 6 below are reachable to the filing session: affinescript, developer-ecosystem, burble, verisimdb, git-reticulator, vcl-ut.

Audit of the reachable 6 (compliance + exceptions): see the audit-report issue.


Filed via Claude Code — https://claude.ai/code/session_01JNCDaWMB8NV6nAPrvmTg4w

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bindingsABI, FFI, WASM, and cross-language interop surfacesenhancementNew capability or improvement to existing behaviourmeta:campaignCoordinated multi-repo push with a defined end state

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions