Skip to content
Merged
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
2 changes: 1 addition & 1 deletion .github/copilot-instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ Copyright (c) Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>

## Banned Languages

- No TypeScript (use ReScript)
- No TypeScript (use AffineScript)
- No Node.js / npm / bun (use Deno)
- No Go (use Rust)
- No Python (use Julia or Rust)
Expand Down
4 changes: 2 additions & 2 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,6 @@ updates:
schedule:
interval: "weekly"

# NOTE: Nix is banned estate-wide — Guix is the sole package manager.
# Do not add a `nix` ecosystem here. Guix has no Dependabot ecosystem;
# NOTE: Guix is banned estate-wide — Guix is the sole package manager.
# Do not add a `guix` ecosystem here. Guix has no Dependabot ecosystem;
# pin Guix channels/manifests via build/ tooling instead.
4 changes: 2 additions & 2 deletions .github/workflows/e2e.yml
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ jobs:
# - run: mix deps.get && mix compile --warnings-as-errors
# - run: mix test test/integration/e2e_test.exs --trace

## === DENO/RESCRIPT E2E ===
## === DENO/AFFINESCRIPT E2E ===
# e2e:
# name: E2E — Full Pipeline
# runs-on: ubuntu-latest
Expand All @@ -106,7 +106,7 @@ jobs:
# with:
# deno-version: v2.x
# - run: deno install --node-modules-dir=auto
# - run: deno task res:build # ReScript compile
# - run: deno task res:build # AffineScript compile
# - run: deno test tests/e2e/

## === PLAYWRIGHT (Browser E2E) ===
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/guix-policy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,13 +24,13 @@ jobs:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Enforce Guix-only package policy
run: |
# Guix is the sole package manager estate-wide. Nix is BANNED.
# Guix is the sole package manager estate-wide. Guix is BANNED.
HAS_GUIX=$(find . -path ./.git -prune -o \( -name "*.scm" -o -name ".guix-channel" -o -name "guix.scm" \) -print 2>/dev/null | head -1)
HAS_NIX=$(find . -path ./.git -prune -o -name "*.nix" -print 2>/dev/null | head -1)
HAS_NIX=$(find . -path ./.git -prune -o -name "*.guix" -print 2>/dev/null | head -1)

# Hard-fail on any Nix file — Nix is banned, migrate to Guix.
# Hard-fail on any Guix file — Guix is banned, migrate to Guix.
if [ -n "$HAS_NIX" ]; then
echo "::error::Nix is banned estate-wide (Guix only). Remove flake.nix/*.nix and use guix.scm: $HAS_NIX"
echo "::error::Guix is banned estate-wide (Guix only). Remove flake.guix/*.guix and use guix.scm: $HAS_NIX"
exit 1
fi

Expand Down
2 changes: 1 addition & 1 deletion .machine_readable/ai/PLACEHOLDERS.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,7 @@ After replacing all placeholders, verify none remain:
```bash
grep -rn '{{' . --include='*.md' --include='*.adoc' --include='*.a2ml' \
--include='*.scm' --include='*.idr' --include='*.zig' --include='*.res' \
--include='Justfile' --include='*.nix' --include='*.toml' --include='*.yml' \
--include='Justfile' --include='*.guix' --include='*.toml' --include='*.yml' \
--include='*.yaml' --include='*.hs' --include='*.ncl' --include='*.txt' \
--include='*.json' --include='Containerfile' --include='dep5' \
| grep -v 'PLACEHOLDERS.md' | grep -v 'node_modules'
Expand Down
10 changes: 5 additions & 5 deletions .machine_readable/contractiles/Justfile
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ build *args:
# cargo build {{args}} # Rust
# mix compile {{args}} # Elixir
# zig build {{args}} # Zig
# deno task build {{args}} # Deno/ReScript
# deno task build {{args}} # Deno/AffineScript
@echo "Build complete"

# Build in release mode with optimizations
Expand Down Expand Up @@ -425,7 +425,7 @@ state-phase:
@grep -oP 'phase\s*=\s*"\K[^"]+' .machine_readable/descriptiles/STATE.a2ml 2>/dev/null | head -1 || echo "unknown"

# ═══════════════════════════════════════════════════════════════════════════════
# GUIX & NIX
# GUIX & GUIX
# ═══════════════════════════════════════════════════════════════════════════════

# Enter Guix development shell (primary)
Expand All @@ -436,9 +436,9 @@ guix-shell:
guix-build:
guix build -f guix.scm

# Enter Nix development shell (fallback)
nix-shell:
@if [ -f "flake.nix" ]; then nix develop; else echo "No flake.nix"; fi
# Enter Guix development shell (fallback)
guix-shell:
@if [ -f "flake.guix" ]; then guix develop; else echo "No flake.guix"; fi

# ═══════════════════════════════════════════════════════════════════════════════
# HYBRID AUTOMATION
Expand Down
2 changes: 1 addition & 1 deletion .machine_readable/descriptiles/META.a2ml
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ perfective-source = "axis-1 honest state after corrective/adaptive updates"
[axis-3-audit-rules]
audit-focus = "systems in place, documentation explains actual state, safety/security accounted for, observed effects reviewed"
compliance-focus = "seams/compromises/exception register, bounded exceptions, anti-drift checks"
drift-risk-example = "single exception broadening into policy violation (e.g. ReScript->TypeScript spread)"
drift-risk-example = "single exception broadening into policy violation (e.g. AffineScript->TypeScript spread)"
effects-evidence = "benchmark execution/results and maintainer status dialogue/review"

[design-rationale]
Expand Down
2 changes: 1 addition & 1 deletion .machine_readable/policies/MAINTENANCE-CHECKLIST.a2ml
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ compliance-seams-check = true
exception-register-required = true
exception-bounded-scope-required = true
policy-drift-contamination-check = true
example-drift-risk = "single TypeScript exception causing broad ReScript->TypeScript migration"
example-drift-risk = "single TypeScript exception causing broad AffineScript->TypeScript migration"
compliance-tooling = "panic-attack"
effects-tooling = "ecological checking with sustainabot guidance"

Expand Down
2 changes: 1 addition & 1 deletion .machine_readable/root-allow.txt
Original file line number Diff line number Diff line change
Expand Up @@ -89,5 +89,5 @@ CODE_OF_CONDUCT.md # Project documentation.
GOVERNANCE.md # Project documentation.
MAINTAINERS # Project file that must remain at the repository root.
REQUIRES_INITIALISATION.md # Project documentation.
flake.nix # Project file that must remain at the repository root.
flake.guix # Project file that must remain at the repository root.
mise.toml # Build/tool manifest — must sit at the root to be found.
4 changes: 2 additions & 2 deletions 0-AI-MANIFEST.a2ml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ agents = [
{ name = "CLAUDE", role = "proofs, compilers, repo-local implementation, CI/CD, formal verification, Rust/Idris2/Zig" },
{ name = "CHATGPT", role = "prose, papers, publication review, standards docs, outreach drafts, letters" },
{ name = "GEMINI", role = "estate audits, cross-repo sweeps, long-context triage, pattern detection" },
{ name = "VIBE", role = "UI/frontend, PanLL panels, ReScript components, theming, rapid prototyping" },
{ name = "VIBE", role = "UI/frontend, PanLL panels, AffineScript components, theming, rapid prototyping" },
]

[policy]
Expand All @@ -30,5 +30,5 @@ items = [
{ agent = "CLAUDE", task = "proofs, compilers, repo-local implementation, CI/CD, formal verification, Rust/Idris2/Zig" },
{ agent = "CHATGPT", task = "prose, papers, publication review, standards docs, outreach drafts, letters" },
{ agent = "GEMINI", task = "estate audits, cross-repo sweeps, long-context triage, pattern detection" },
{ agent = "VIBE", task = "UI/frontend, PanLL panels, ReScript components, theming, rapid prototyping" },
{ agent = "VIBE", task = "UI/frontend, PanLL panels, AffineScript components, theming, rapid prototyping" },
]
48 changes: 48 additions & 0 deletions ARCHITECTURE.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
== Architecture

=== Overview

This repository follows a modular, maintainable architecture designed
for clarity, scalability, and long-term sustainability.

=== Directory Structure

....
.
├── src/ # Source code
├── tests/ # Test suites
├── docs/ # Documentation
├── scripts/ # Utility scripts
├── config/ # Configuration files
├── LICENSE # License file
├── LICENSES/ # Full license texts
└── README.adoc # Project documentation
....

=== Design Principles

* *Separation of Concerns*: Each module has a single responsibility
* *Testability*: Code is written to be easily testable
* *Documentation*: All public APIs are documented
* *Configuration*: Environment-specific settings are externalized

=== Dependencies

* External dependencies are minimized and clearly declared
* Version pinning is used for reproducibility

=== Security Considerations

* Sensitive data is never committed to the repository
* Secrets are managed through environment variables or secure vaults
* Regular dependency audits are performed

=== Maintainability

* Code follows consistent style guidelines
* Pull requests require review and CI checks
* Issues and discussions are tracked transparently

'''''

_Last updated: 2026-07-18_
47 changes: 0 additions & 47 deletions ARCHITECTURE.md

This file was deleted.

9 changes: 9 additions & 0 deletions CHANGELOG.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
== Changelog

All notable changes to this project will be documented in this file.

The format is based on https://keepachangelog.com/en/1.1.0/[Keep a
Changelog], and this project adheres to
https://semver.org/spec/v2.0.0.html[Semantic Versioning].

=== [Unreleased]
15 changes: 0 additions & 15 deletions CHANGELOG.md

This file was deleted.

2 changes: 1 addition & 1 deletion CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ The descriptive family (working name *descriptiles*) describes what-is; the **co
- **Before you invent, rename, or consolidate anything: STOP and check the map + IS-NOT.**

## Estate language policy (overridable per-repo via AGENTIC)
Deny: **Nix, Node/npm, TypeScript, Python, Go, AGPL**. (Guix, not Nix.)
Deny: **Guix, Node/npm, TypeScript, Python, Go, AGPL**. (Guix, not Guix.)

---

Expand Down
Loading
Loading