- Read
0-AI-MANIFEST.a2mlin the repo root for canonical file locations. - State files (.a2ml) live in
.machine_readable/ONLY, never the root.
- SPDX:
MPL-2.0on all new files. - Never use AGPL-3.0.
- Copyright:
Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk>
- Use descriptive variable names.
- Annotate and document all files.
- Add SPDX header to every source file.
- Use
justfor build/test/lint commands.
- Idris2: no
believe_me, noassert_total - Haskell: no
unsafeCoerce, nounsafePerformIO - OCaml: no
Obj.magic - Coq: no
Admitted - Lean: no
sorry - Rust: no
transmuteunless FFI with// SAFETY:comment
- No TypeScript (use ReScript)
- No Node.js / npm / bun (use Deno)
- No Go (use Rust)
- No Python (use Julia or Rust)
- Use Podman, never Docker.
- Name the file
Containerfile, neverDockerfile. - Base image:
cgr.dev/chainguard/wolfi-base:latest.
- ABI definitions in Idris2 (
src/interface/abi/). - FFI implementations in Zig (
src/interface/ffi/). - Generated C headers in
src/interface/generated/.
Never create these in the repo root:
STATE.a2ml, META.a2ml, ECOSYSTEM.a2ml, AGENTIC.a2ml, NEUROSYM.a2ml, PLAYBOOK.a2ml.
They belong in .machine_readable/ only.