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 .claude/CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ Both are FOSS with independent governance (no Big Tech).
### Package Management

- **Primary**: Guix (guix.scm)
- **Fallback**: Nix (flake.nix)
- **Fallback**: Guix (flake.guix)
- **JS deps**: Deno (deno.json imports)

### Security Requirements
Expand Down
24 changes: 12 additions & 12 deletions .machine_readable/contractiles/Justfile
Original file line number Diff line number Diff line change
Expand Up @@ -235,7 +235,7 @@ init:

# Check for remaining placeholders
PATTERN="${LB}[A-Z_]*${RB}"
REMAINING=$(grep -rl "$PATTERN" . --include='*.md' --include='*.adoc' --include='*.yml' --include='*.yaml' --include='*.a2ml' --include='*.toml' --include='*.scm' --include='*.ncl' --include='*.nix' --include='*.json' --include='*.sh' 2>/dev/null | grep -v '.git/' | grep -v '.machine_readable/ai/PLACEHOLDERS.adoc' || true)
REMAINING=$(grep -rl "$PATTERN" . --include='*.md' --include='*.adoc' --include='*.yml' --include='*.yaml' --include='*.a2ml' --include='*.toml' --include='*.scm' --include='*.ncl' --include='*.guix' --include='*.json' --include='*.sh' 2>/dev/null | grep -v '.git/' | grep -v '.machine_readable/ai/PLACEHOLDERS.adoc' || true)
if [ -n "$REMAINING" ]; then
echo "WARNING: Remaining placeholders in:"
echo "$REMAINING" | sed 's/^/ /'
Expand Down Expand Up @@ -377,7 +377,7 @@ self-assess:
# Detect project characteristics
HAS_RUST=false; [ -f "Cargo.toml" ] && HAS_RUST=true
HAS_ELIXIR=false; [ -f "mix.exs" ] && HAS_ELIXIR=true
HAS_RESCRIPT=false; [ -f "rescript.json" ] || [ -f "bsconfig.json" ] && HAS_RESCRIPT=true
HAS_RESCRIPT=false; [ -f "affinescript.json" ] || [ -f "bsconfig.json" ] && HAS_RESCRIPT=true
HAS_IDRIS=false; ls *.ipkg >/dev/null 2>&1 && HAS_IDRIS=true
HAS_ZIG=false; [ -f "build.zig" ] || [ -d "ffi/zig" ] && HAS_ZIG=true
HAS_GLEAM=false; [ -f "gleam.toml" ] && HAS_GLEAM=true
Expand All @@ -386,7 +386,7 @@ self-assess:
HAS_API=false; grep -rq 'port\|listen\|endpoint' --include="*.exs" --include="*.rs" --include="*.toml" . 2>/dev/null && HAS_API=true
IS_LIBRARY=false; [ -f "Cargo.toml" ] && grep -q '\[lib\]' Cargo.toml 2>/dev/null && IS_LIBRARY=true

echo "Detected: Rust=$HAS_RUST Elixir=$HAS_ELIXIR ReScript=$HAS_RESCRIPT"
echo "Detected: Rust=$HAS_RUST Elixir=$HAS_ELIXIR AffineScript=$HAS_RESCRIPT"
echo " Idris=$HAS_IDRIS Zig=$HAS_ZIG Gleam=$HAS_GLEAM"
echo " Container=$HAS_CONTAINER Tests=$HAS_TESTS API=$HAS_API"
echo ""
Expand Down Expand Up @@ -464,16 +464,16 @@ self-assess:
echo ""

if ! $HAS_RESCRIPT && [ -d "examples" ] && ls examples/*.res >/dev/null 2>&1; then
echo " ○ examples/*.res — Template ReScript examples. Not your code."
echo " ○ examples/*.res — Template AffineScript examples. Not your code."
fi

if [ -f ".machine_readable/ai/PLACEHOLDERS.adoc" ]; then
echo " ○ .machine_readable/ai/PLACEHOLDERS.adoc — Template doc. Remove after init."
fi

if [ -f "flake.nix" ] && ! command -v nix >/dev/null 2>&1; then
echo " ○ flake.nixNix flake. Safe to remove if you don't use Nix."
echo " → KEEP if others might build with Nix."
if [ -f "flake.guix" ] && ! command -v guix >/dev/null 2>&1; then
echo " ○ flake.guixGuix flake. Safe to remove if you don't use Guix."
echo " → KEEP if others might build with Guix."
fi

if [ -f "guix.scm" ] && ! command -v guix >/dev/null 2>&1; then
Expand Down Expand Up @@ -592,7 +592,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 @@ -1155,7 +1155,7 @@ state-phase:
@grep -oP 'phase\s*=\s*"\K[^"]+' .machine_readable/STATE.a2ml 2>/dev/null | head -1 || echo "unknown"

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

# Enter Guix development shell (primary)
Expand All @@ -1166,9 +1166,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
52 changes: 27 additions & 25 deletions ABI-FFI-README.md → ABI-FFI-README.adoc
Original file line number Diff line number Diff line change
@@ -1,21 +1,20 @@
<!--
SPDX-License-Identifier: CC-BY-SA-4.0
Copyright (c) Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>
-->
# Conative Gating ABI/FFI Documentation
== Conative Gating ABI/FFI Documentation

## Overview
=== Overview

This library follows the **Hyperpolymath RSR Standard** for ABI and FFI design:
This library follows the *Hyperpolymath RSR Standard* for ABI and FFI
design:

- **ABI (Application Binary Interface)** defined in **Idris2** with formal proofs
- **FFI (Foreign Function Interface)** implemented in **Zig** for C compatibility
- **Generated C headers** bridge Idris2 ABI to Zig FFI
- **Any language** can call through standard C ABI
* *ABI (Application Binary Interface)* defined in *Idris2* with formal
proofs
* *FFI (Foreign Function Interface)* implemented in *Zig* for C
compatibility
* *Generated C headers* bridge Idris2 ABI to Zig FFI
* *Any language* can call through standard C ABI

## Architecture
=== Architecture

```
....
┌─────────────────────────────────────────────┐
│ ABI Definitions (Idris2) │
│ Src/Abi/ │
Expand All @@ -24,11 +23,11 @@ This library follows the **Hyperpolymath RSR Standard** for ABI and FFI design:
│ - Proofs.idr (Formal verification) │
│ - Foreign.idr (FFI declarations) │
└─────────────────┬───────────────────────────┘
```
....

## Directory Structure
=== Directory Structure

```
....
conative-gating/
├── Src/
│ ├── Abi/ # ABI definitions (Idris2)
Expand All @@ -37,18 +36,21 @@ conative-gating/
│ │ ├── Proofs.idr # Formal security proofs
│ │ └── Foreign.idr # FFI function declarations
│ └── lib/ # Core library (any language)
```
....

## Formally Verified Invariants
=== Formally Verified Invariants

- **Policy completeness**: NO-GO gate blocks ALL policy-violating outputs.
- **Gate monotonicity**: Once a NO-GO decision is made, it cannot be overridden.
- **Deterministic rule evaluation**: Identical inputs produce identical results.
- **False positive boundedness**: The gate does not block clean proposals.
* *Policy completeness*: NO-GO gate blocks ALL policy-violating outputs.
* *Gate monotonicity*: Once a NO-GO decision is made, it cannot be
overridden.
* *Deterministic rule evaluation*: Identical inputs produce identical
results.
* *False positive boundedness*: The gate does not block clean proposals.

## Building
=== Building

```bash
[source,bash]
----
# Verify ABI and proofs
idris2 --check Src/Abi/Proofs.idr
```
----
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.

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

All notable changes to `+conative-gating+` will be documented in this
file.

This file is generated from conventional commits by the
https://github.com/hyperpolymath/standards/blob/main/.github/workflows/changelog-reusable.yml[`+changelog-reusable.yml+`]
workflow (`+hyperpolymath/standards#206+`). Adopt the workflow in this
repo’s CI to keep this file in sync automatically — see
https://github.com/hyperpolymath/standards/blob/main/templates/cliff.toml[`+templates/cliff.toml+`]
for the canonical config.

The format follows https://keepachangelog.com/en/1.1.0/[Keep a
Changelog]; this project aims to follow
https://semver.org/spec/v2.0.0.html[Semantic Versioning].

=== [Unreleased]

==== Added

* feat(crg): add crg-grade and crg-badge justfile recipes
* feat: add stapeln.toml container definition
* feat: deploy UX Manifesto infrastructure
* feat: add CLADE.a2ml — clade taxonomy declaration

==== Fixed

* fix(ci): bump a2ml/k9-validate-action pins to canonical (#50)
* fix(ci): sync hypatia-scan.yml to canonical (#49)
* fix(ci): adopt canonical hypatia-scan.yml (#47)
* fix: remove stale banned gen-v-connector V-lang recipe (#46)
* fix(ci): Phase-2 fleet submission must not fail the security gate
(#45)
* fix(ci): hypatia-scan workdir ($\{\{ env.HOME }} resolves empty) (#44)
* fix(ci): hypatia-scan.yml – –exit-zero + GITHUB_TOKEN
(hyperpolymath/hypatia#213) (#39)
* fix(ci): rsr-antipattern duplicate heredoc + setup-beam ubuntu24 (#40)
* fix(ci): repair YAML block-scalar in workflow-linter Check Permissions
step (#41)
* fix(ci): move secret-scanner Cargo.toml gate from job-level if: to
step-level (#42)

==== Changed

* refactor: migrate 6SCM → 6A2 (.scm → .a2ml format)

==== Documentation

* docs: substantive CRG C annotation (EXPLAINME.adoc)
* docs: add EXPLAINME.adoc — prove-it file backing README claims

==== CI

* ci(rust): convert rust-ci.yml to thin wrapper (standards#174) (#54)
* ci: redistribute concurrency-cancel guard to read-only check workflows
(#52)
* ci(secret-scanner): drop duplicate –fail from trufflehog extra_args
(#38)
* ci: SHA-pin hyperpolymath validate-actions in dogfood-gate
* ci(antipattern): fix top-level dir + benchmark/lsp filename matching
(#37)

=== Pre-history

Prior commits to this file’s introduction are recorded in git history
but not formally classified into Keep-a-Changelog sections. To backfill,
run `+git cliff -o CHANGELOG.md+` locally using the canonical
https://github.com/hyperpolymath/standards/blob/main/templates/cliff.toml[`+cliff.toml+`]
— this is one-shot mechanical work.

'''''
Loading
Loading