Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 10 additions & 7 deletions .claude/CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,14 @@ The following files in `.machine_readable/` contain structured project metadata:

| Language/Tool | Use Case | Notes |
|---------------|----------|-------|
| **ReScript** | Primary application code | Compiles to JS, type-safe |
| **AffineScript** | Primary application code | Compiles to JS/WASM, linear/affine type system |
| **Deno** | Runtime & package management | Replaces Node/npm/bun |
| **Rust** | Performance-critical, systems, WASM | Preferred for CLI tools |
| **Tauri 2.0+** | Mobile apps (iOS/Android) | Rust backend + web UI |
| **Dioxus** | Mobile apps (native UI) | Pure Rust, React-like |
| **Gleam** | Backend services | Runs on BEAM or compiles to JS |
| **Bash/POSIX Shell** | Scripts, automation | Keep minimal |
| **JavaScript** | Only where ReScript cannot | MCP protocol glue, Deno APIs |
| **JavaScript** | Only where AffineScript cannot, or as per-language reference (examples/) | Avoid for new code unless integrating an external JS API |
| **Nickel** | Configuration language | For complex configs |
| **Guile Scheme** | State/meta files | STATE.scm, META.scm, ECOSYSTEM.scm |
| **Julia** | Batch scripts, data processing | Per RSR |
Expand All @@ -37,35 +37,38 @@ The following files in `.machine_readable/` contain structured project metadata:

| Banned | Replacement |
|--------|-------------|
| TypeScript | ReScript |
| TypeScript | AffineScript |
| ReScript | AffineScript |
| Node.js | Deno |
| npm | Deno |
| Bun | Deno |
| pnpm/yarn | Deno |
| Go | Rust |
| Python | Julia/Rust/ReScript |
| Python | Julia/Rust/AffineScript |
| Java/Kotlin | Rust/Tauri/Dioxus |
| Swift | Tauri/Dioxus |
| React Native | Tauri/Dioxus |
| Flutter/Dart | Tauri/Dioxus |
| PMPL-1.0 / PMPL-1.0-or-later | MPL-2.0 |

### Mobile Development

**No exceptions for Kotlin/Swift** - use Rust-first approach:

1. **Tauri 2.0+** - Web UI (ReScript) + Rust backend, MIT/Apache-2.0
1. **Tauri 2.0+** - Web UI (AffineScript) + Rust backend, MIT/Apache-2.0
2. **Dioxus** - Pure Rust native UI, MIT/Apache-2.0

Both are FOSS with independent governance (no Big Tech).

### Enforcement Rules

1. **No new TypeScript files** - Convert existing TS to ReScript
1. **No new TypeScript or ReScript files** - Use AffineScript; meaningfully migrate existing TS/JS to AffineScript when touched (per-language `examples/` references may stay)
2. **No package.json for runtime deps** - Use deno.json imports
3. **No node_modules in production** - Deno caches deps automatically
4. **No Go code** - Use Rust instead
5. **No Python anywhere** - Use Julia for data/batch, Rust for systems, ReScript for apps
5. **No Python anywhere** - Use Julia for data/batch, Rust for systems, AffineScript for apps
6. **No Kotlin/Swift for mobile** - Use Tauri 2.0+ or Dioxus
7. **License**: MPL-2.0 only — never PMPL-1.0 / PMPL-1.0-or-later / MPL-2.0-or-later

### Package Management

Expand Down
2 changes: 1 addition & 1 deletion .clusterfuzzlite/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# SPDX-License-Identifier: PMPL-1.0-or-later
# SPDX-License-Identifier: MPL-2.0
FROM gcr.io/oss-fuzz-base/base-builder-rust@sha256:73c1d5648db54100639339d411a5d192cbc8bf413ee91e843a07cf6f0e319dc7

COPY . $SRC/absolute-zero
Expand Down
8 changes: 6 additions & 2 deletions .clusterfuzzlite/build.sh
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
#!/bin/bash -eu
# SPDX-License-Identifier: PMPL-1.0-or-later
# SPDX-License-Identifier: MPL-2.0
cd "$SRC"/absolute-zero
cargo +nightly fuzz build
# cargo-fuzz writes binaries to `fuzz/target/<triple>/release/<target>`
# (the fuzz crate's own target dir), not to the workspace root. The
# previous `./target/...` path was a vestige of an earlier layout where
# fuzz/ depended on the parent crate's `[lib]` (since removed).
for target in $(cargo +nightly fuzz list); do
cp ./target/x86_64-unknown-linux-gnu/release/$target $OUT/
cp fuzz/target/x86_64-unknown-linux-gnu/release/$target $OUT/
done
2 changes: 1 addition & 1 deletion .clusterfuzzlite/project.yaml
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
# SPDX-License-Identifier: MPL-2.0-or-later
# SPDX-License-Identifier: MPL-2.0
language: rust
2 changes: 1 addition & 1 deletion .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# SPDX-License-Identifier: MPL-2.0-or-later
# SPDX-License-Identifier: MPL-2.0
# Funding platforms for hyperpolymath projects
# See: https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/displaying-a-sponsor-button-in-your-repository

Expand Down
2 changes: 1 addition & 1 deletion .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# SPDX-License-Identifier: MPL-2.0-or-later
# SPDX-License-Identifier: MPL-2.0
version: 2
updates:
- package-ecosystem: "cargo"
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/cflite_batch.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# SPDX-License-Identifier: MPL-2.0-or-later
# SPDX-License-Identifier: MPL-2.0
name: ClusterFuzzLite batch fuzzing
on:
schedule:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/cflite_pr.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# SPDX-License-Identifier: MPL-2.0-or-later
# SPDX-License-Identifier: MPL-2.0
name: ClusterFuzzLite PR fuzzing
on:
pull_request:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# SPDX-License-Identifier: MPL-2.0-or-later
# SPDX-License-Identifier: MPL-2.0
name: CodeQL Security Analysis

on:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/governance.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# SPDX-License-Identifier: PMPL-1.0-or-later
# SPDX-License-Identifier: MPL-2.0

Check warning

Code scanning / Hypatia

Hypatia code_scanning_alerts: CSA001 Warning

Code scanning (Hypatia): hypatia/code_scanning_alerts/CSA001 -- Hypatia code_scanning_alerts: CSA001 -- 1 day(s) old
# governance.yml — single wrapper calling the shared estate governance bundle
# in hyperpolymath/standards instead of carrying per-repo copies.
#
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/hypatia-scan.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# SPDX-License-Identifier: PMPL-1.0-or-later
# SPDX-License-Identifier: MPL-2.0

Check failure

Code scanning / Hypatia

Hypatia code_scanning_alerts: CSA001 Error

Code scanning (Hypatia): hypatia/code_scanning_alerts/CSA001 -- Hypatia code_scanning_alerts: CSA001 -- 1 day(s) old
# Hypatia Neurosymbolic CI/CD Security Scan
name: Hypatia Security Scan

Expand Down
52 changes: 0 additions & 52 deletions .github/workflows/jekyll-gh-pages.yml

This file was deleted.

8 changes: 6 additions & 2 deletions .github/workflows/language-policy.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
# SPDX-License-Identifier: MPL-2.0-or-later
# SPDX-License-Identifier: MPL-2.0

Check failure

Code scanning / Hypatia

Hypatia code_scanning_alerts: CSA001 Error

Code scanning (Hypatia): hypatia/code_scanning_alerts/CSA001 -- Hypatia code_scanning_alerts: CSA001 -- 1 day(s) old

Check failure

Code scanning / Hypatia

Hypatia code_scanning_alerts: CSA001 Error

Code scanning (Hypatia): hypatia/code_scanning_alerts/CSA001 -- Hypatia code_scanning_alerts: CSA001 -- 1 day(s) old

Check failure

Code scanning / Hypatia

Hypatia code_scanning_alerts: CSA001 Error

Code scanning (Hypatia): hypatia/code_scanning_alerts/CSA001 -- Hypatia code_scanning_alerts: CSA001 -- 1 day(s) old

Check warning

Code scanning / Hypatia

Hypatia code_scanning_alerts: CSA001 Warning

Code scanning (Hypatia): hypatia/code_scanning_alerts/CSA001 -- Hypatia code_scanning_alerts: CSA001 -- 1 day(s) old
name: Language Policy Enforcement
on: [push, pull_request]

permissions:
contents: read

jobs:
check:
runs-on: ubuntu-latest
Expand All @@ -11,7 +15,7 @@
# Block new Python files (except SaltStack)
NEW_PY=$(git diff --name-only --diff-filter=A HEAD~1 2>/dev/null | grep -E '\.py$' | grep -v 'salt' || true)
if [ -n "$NEW_PY" ]; then
echo "❌ New Python files detected. Use Rust or ReScript instead."
echo "❌ New Python files detected. Use Rust or AffineScript instead."
echo "$NEW_PY"
exit 1
fi
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/mirror.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# SPDX-License-Identifier: MPL-2.0-or-later
# SPDX-License-Identifier: MPL-2.0
# SPDX-FileCopyrightText: 2025 Jonathan D.A. Jewell
name: Mirror to Git Forges

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/publish-container.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# SPDX-License-Identifier: MPL-2.0-or-later
# SPDX-License-Identifier: MPL-2.0

Check failure

Code scanning / Hypatia

Hypatia code_scanning_alerts: CSA001 Error

Code scanning (Hypatia): hypatia/code_scanning_alerts/CSA001 -- Hypatia code_scanning_alerts: CSA001 -- 1 day(s) old

Check failure

Code scanning / Hypatia

Hypatia code_scanning_alerts: CSA001 Error

Code scanning (Hypatia): hypatia/code_scanning_alerts/CSA001 -- Hypatia code_scanning_alerts: CSA001 -- 1 day(s) old
name: Publish Container

on:
Expand Down
41 changes: 0 additions & 41 deletions .github/workflows/rescript-deno-ci.yml

This file was deleted.

6 changes: 5 additions & 1 deletion .github/workflows/rust-ci.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
# SPDX-License-Identifier: MPL-2.0-or-later
# SPDX-License-Identifier: MPL-2.0

Check failure

Code scanning / Hypatia

Hypatia code_scanning_alerts: CSA001 Error

Code scanning (Hypatia): hypatia/code_scanning_alerts/CSA001 -- Hypatia code_scanning_alerts: CSA001 -- 1 day(s) old

Check failure

Code scanning / Hypatia

Hypatia code_scanning_alerts: CSA001 Error

Code scanning (Hypatia): hypatia/code_scanning_alerts/CSA001 -- Hypatia code_scanning_alerts: CSA001 -- 1 day(s) old

Check failure

Code scanning / Hypatia

Hypatia code_scanning_alerts: CSA001 Error

Code scanning (Hypatia): hypatia/code_scanning_alerts/CSA001 -- Hypatia code_scanning_alerts: CSA001 -- 1 day(s) old

Check failure

Code scanning / Hypatia

Hypatia code_scanning_alerts: CSA001 Error

Code scanning (Hypatia): hypatia/code_scanning_alerts/CSA001 -- Hypatia code_scanning_alerts: CSA001 -- 1 day(s) old

Check failure

Code scanning / Hypatia

Hypatia code_scanning_alerts: CSA001 Error

Code scanning (Hypatia): hypatia/code_scanning_alerts/CSA001 -- Hypatia code_scanning_alerts: CSA001 -- 1 day(s) old

Check failure

Code scanning / Hypatia

Hypatia code_scanning_alerts: CSA001 Error

Code scanning (Hypatia): hypatia/code_scanning_alerts/CSA001 -- Hypatia code_scanning_alerts: CSA001 -- 1 day(s) old

Check warning

Code scanning / Hypatia

Hypatia code_scanning_alerts: CSA001 Warning

Code scanning (Hypatia): hypatia/code_scanning_alerts/CSA001 -- Hypatia code_scanning_alerts: CSA001 -- 1 day(s) old

Check warning

Code scanning / Hypatia

Hypatia code_scanning_alerts: CSA001 Warning

Code scanning (Hypatia): hypatia/code_scanning_alerts/CSA001 -- Hypatia code_scanning_alerts: CSA001 -- 1 day(s) old

Check warning

Code scanning / Hypatia

Hypatia code_scanning_alerts: CSA001 Warning

Code scanning (Hypatia): hypatia/code_scanning_alerts/CSA001 -- Hypatia code_scanning_alerts: CSA001 -- 1 day(s) old

Check warning

Code scanning / Hypatia

Hypatia code_scanning_alerts: CSA001 Warning

Code scanning (Hypatia): hypatia/code_scanning_alerts/CSA001 -- Hypatia code_scanning_alerts: CSA001 -- 1 day(s) old
name: Rust CI
on: [push, pull_request]

permissions:
contents: read

env:
CARGO_TERM_COLOR: always
RUSTFLAGS: -Dwarnings
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/scorecard.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# SPDX-License-Identifier: MPL-2.0-or-later
# SPDX-License-Identifier: MPL-2.0
name: OSSF Scorecard
on:
push:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/secret-scanner.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# SPDX-License-Identifier: MPL-2.0-or-later
# SPDX-License-Identifier: MPL-2.0
# Prevention workflow - scans for hardcoded secrets before they reach main
name: Secret Scanner

Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -81,3 +81,6 @@ htmlcov/
# Crash recovery artifacts
ai-cli-crash-capture/
proofs/lean4/.lake/

# Rust build outputs in subdirectories (e.g. fuzz/target/)
**/target/
16 changes: 16 additions & 0 deletions .hypatia-ignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Hypatia rule exemptions for absolute-zero.
#
# Format: `<rule_id>:<file_path_relative_to_repo_root>` (one per line).
# Comments (lines starting with #) and blank lines are ignored.
#
# Adding an entry requires a stated rationale below the line so the
# exemption survives review and audit.

# Per-language CNO reference example. `examples/<lang>/` is a 30-language
# showcase comparing how each language expresses "do absolutely nothing"
# — the Go-specific runtime characteristics (goroutine scheduler init,
# GC startup, runtime.GOMAXPROCS) are the point of the example. Mirrors
# the rationale for keeping `examples/javascript/nop.js` (also a
# per-language reference). The repo language policy still bans new Go
# code; this is reference material, not implementation.
cicd_rules/banned_language_file:examples/go/nop.go
4 changes: 2 additions & 2 deletions .machine_readable/6a2/AGENTIC.a2ml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# SPDX-License-Identifier: PMPL-1.0-or-later
# SPDX-License-Identifier: MPL-2.0
# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk>
#
# AGENTIC.a2ml — AI agent constraints and capabilities for absolute-zero
Expand All @@ -22,7 +22,7 @@ can-create-files = true
# - Never commit secrets or credentials
# - Never use banned languages: TypeScript, Python (except SaltStack), Go, Node.js, Bun, npm
# - Never place checkpoint files outside .machine_readable/
# - Never use AGPL-3.0 license (use PMPL-1.0-or-later)
# - Never use AGPL-3.0 license (use MPL-2.0)
# - Never run the full test suite without user approval (mathlib build is expensive)

[proof-safety]
Expand Down
2 changes: 1 addition & 1 deletion .machine_readable/6a2/ECOSYSTEM.a2ml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# SPDX-License-Identifier: PMPL-1.0-or-later
# SPDX-License-Identifier: MPL-2.0
# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk>
#
# ECOSYSTEM.a2ml — Absolute Zero ecosystem position
Expand Down
4 changes: 2 additions & 2 deletions .machine_readable/6a2/META.a2ml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# SPDX-License-Identifier: PMPL-1.0-or-later
# SPDX-License-Identifier: MPL-2.0
# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk>
#
# META.a2ml — Absolute Zero meta-level information
Expand All @@ -9,7 +9,7 @@ version = "1.0.0"
last-updated = "2026-05-20"

[project-info]
license = "PMPL-1.0-or-later"
license = "MPL-2.0"
author = "Jonathan D.A. Jewell (hyperpolymath)"

[architecture-decisions]
Expand Down
2 changes: 1 addition & 1 deletion .machine_readable/6a2/NEUROSYM.a2ml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# SPDX-License-Identifier: PMPL-1.0-or-later
# SPDX-License-Identifier: MPL-2.0
# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk>
#
# NEUROSYM.a2ml — Neurosymbolic integration metadata for absolute-zero
Expand Down
2 changes: 1 addition & 1 deletion .machine_readable/6a2/PLAYBOOK.a2ml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# SPDX-License-Identifier: PMPL-1.0-or-later
# SPDX-License-Identifier: MPL-2.0
# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk>
#
# PLAYBOOK.a2ml — Operational playbook for absolute-zero
Expand Down
2 changes: 1 addition & 1 deletion .machine_readable/6a2/STATE.a2ml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# SPDX-License-Identifier: PMPL-1.0-or-later
# SPDX-License-Identifier: MPL-2.0
# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk>
#
# STATE.a2ml — Absolute Zero project state
Expand Down
2 changes: 1 addition & 1 deletion .machine_readable/AGENTIC.scm
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
;; SPDX-License-Identifier: PMPL-1.0-or-later
;; SPDX-License-Identifier: MPL-2.0

Check failure

Code scanning / Hypatia

Hypatia structural_drift: SD001 Error

Legacy .scm state file -- must be .a2ml in .machine_readable/6a2/
;; AGENTIC.scm - AI agent interaction patterns for absolute-zero

(define agentic-config
Expand Down
2 changes: 1 addition & 1 deletion .machine_readable/ECOSYSTEM.scm
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
;; SPDX-License-Identifier: PMPL-1.0-or-later
;; SPDX-License-Identifier: MPL-2.0

Check failure

Code scanning / Hypatia

Hypatia structural_drift: SD001 Error

Legacy .scm state file -- must be .a2ml in .machine_readable/6a2/
;; ECOSYSTEM.scm - Ecosystem position for absolute-zero
;; Media-Type: application/vnd.ecosystem+scm

Expand Down
2 changes: 1 addition & 1 deletion .machine_readable/META.scm
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
;; SPDX-License-Identifier: PMPL-1.0-or-later
;; SPDX-License-Identifier: MPL-2.0

Check failure

Code scanning / Hypatia

Hypatia structural_drift: SD001 Error

Legacy .scm state file -- must be .a2ml in .machine_readable/6a2/
;; META.scm - Meta-level information for absolute-zero
;; Media-Type: application/meta+scheme

Expand Down
2 changes: 1 addition & 1 deletion .machine_readable/NEUROSYM.scm
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
;; SPDX-License-Identifier: PMPL-1.0-or-later
;; SPDX-License-Identifier: MPL-2.0

Check failure

Code scanning / Hypatia

Hypatia structural_drift: SD001 Error

Legacy .scm state file -- must be .a2ml in .machine_readable/6a2/
;; NEUROSYM.scm - Neurosymbolic integration config for absolute-zero

(define neurosym-config
Expand Down
2 changes: 1 addition & 1 deletion .machine_readable/PLAYBOOK.scm
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
;; SPDX-License-Identifier: PMPL-1.0-or-later
;; SPDX-License-Identifier: MPL-2.0

Check failure

Code scanning / Hypatia

Hypatia structural_drift: SD001 Error

Legacy .scm state file -- must be .a2ml in .machine_readable/6a2/
;; PLAYBOOK.scm - Operational runbook for absolute-zero

(define playbook
Expand Down
2 changes: 1 addition & 1 deletion .machine_readable/contractiles/bust/Bustfile.a2ml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// Bustfile.a2ml — meta-repo bust contractile (breakage / rollback)
// SPDX-License-Identifier: PMPL-1.0-or-later
// SPDX-License-Identifier: MPL-2.0

Bust {
name: "absolute-zero"
Expand Down
2 changes: 1 addition & 1 deletion .machine_readable/contractiles/bust/bust.ncl
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# SPDX-License-Identifier: PMPL-1.0-or-later
# SPDX-License-Identifier: MPL-2.0
# Bust — error-handling / failure-recovery runner
#
# Pairs with: Bustfile.a2ml (same directory)
Expand Down
Loading
Loading