Skip to content
Closed
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
8 changes: 6 additions & 2 deletions .claude/CLAUDE.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
<!--
SPDX-License-Identifier: MPL-2.0
Copyright (c) Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>
-->
## Machine-Readable Artefacts

The following files in `.machine_readable/` contain structured project metadata:
Expand Down Expand Up @@ -43,7 +47,7 @@ The following files in `.machine_readable/` contain structured project metadata:
| 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 |
Expand All @@ -61,7 +65,7 @@ Both are FOSS with independent governance (no Big Tech).
### Enforcement Rules

1. **No new TypeScript files** - Convert existing TS to AffineScript
2. **No package.json for runtime deps** - Use deno.json imports
2. **No package.json - use deno.json 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, AffineScript for apps
Expand Down
34 changes: 34 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# SPDX-License-Identifier: MPL-2.0
# CODEOWNERS - Define code review assignments for GitHub
# See: https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners

# Default: sole maintainer for all files
* @hyperpolymath

# Security-sensitive files require explicit ownership
SECURITY.md @hyperpolymath
.github/workflows/ @hyperpolymath
.machine_readable/ @hyperpolymath
contractiles/ @hyperpolymath

# License files
LICENSE @hyperpolymath
LICENSES/ @hyperpolymath

# Configuration
.gitignore @hyperpolymath
.github/ @hyperpolymath

# Documentation
README* @hyperpolymath
CONTRIBUTING* @hyperpolymath
CODE_OF_CONDUCT* @hyperpolymath
GOVERNANCE* @hyperpolymath
MAINTAINERS* @hyperpolymath
CHANGELOG* @hyperpolymath
ROADMAP* @hyperpolymath

# Build and CI
Justfile @hyperpolymath
Makefile @hyperpolymath
*.sh @hyperpolymath
4 changes: 4 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
<!--
SPDX-License-Identifier: MPL-2.0
Copyright (c) Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>
-->
---
name: Bug report
about: Create a report to help us improve
Expand Down
4 changes: 4 additions & 0 deletions .github/ISSUE_TEMPLATE/documentation.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
<!--
SPDX-License-Identifier: MPL-2.0
Copyright (c) Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>
-->
---
name: Documentation
about: Report unclear, missing, or incorrect documentation
Expand Down
4 changes: 4 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
<!--
SPDX-License-Identifier: MPL-2.0
Copyright (c) Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>
-->
---
name: Feature request
about: Suggest an idea for this project
Expand Down
4 changes: 4 additions & 0 deletions .github/ISSUE_TEMPLATE/question.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
<!--
SPDX-License-Identifier: MPL-2.0
Copyright (c) Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>
-->
---
name: Question
about: Ask a question about usage or behaviour
Expand Down
6 changes: 6 additions & 0 deletions .github/copilot/coding-agent.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
mcp_servers:
boj-server:
command: npx
args: ["-y", "@hyperpolymath/boj-server@latest"]
env:
BOJ_URL: http://localhost:7700
1 change: 1 addition & 0 deletions .github/workflows/casket-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ jobs:
build-and-test:
name: Build and Test Casket-SSG + Gnosis
runs-on: ${{ matrix.os }}
timeout-minutes: 15
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ on:
jobs:
build:
runs-on: ubuntu-latest
timeout-minutes: 15

steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v4
Expand Down Expand Up @@ -44,6 +45,7 @@ jobs:

language-check:
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v4

Expand Down
1 change: 1 addition & 0 deletions .github/workflows/dependency-review.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ jobs:
dependency-review:
name: Review Dependencies
runs-on: ubuntu-latest
timeout-minutes: 15

steps:
- name: Checkout code
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/governance.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,3 +32,4 @@ permissions:
jobs:
governance:
uses: hyperpolymath/standards/.github/workflows/governance-reusable.yml@861b5e911d9e5dcfb3c0ab3dd2a9a3c8fd0a1613
timeout-minutes: 10
3 changes: 2 additions & 1 deletion .github/workflows/hypatia-scan.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,5 +25,6 @@ permissions:

jobs:
hypatia:
uses: hyperpolymath/standards/.github/workflows/hypatia-scan-reusable.yml@97df762107501909f50bb770e9bc200b6c415600
uses: hyperpolymath/standards/.github/workflows/hypatia-scan-reusable.yml@6cd3772824e59c8c9affeab66061e25383544242
timeout-minutes: 10
secrets: inherit
1 change: 1 addition & 0 deletions .github/workflows/instant-sync.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ permissions:
jobs:
dispatch:
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- name: Trigger Propagation
uses: peter-evans/repository-dispatch@28959ce8df70de7be546dd1250a005dd32156697 # v3
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/license-compliance.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ jobs:
check-licenses:
name: Check License Compliance
runs-on: ubuntu-latest
timeout-minutes: 15

steps:
- name: Checkout code
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/mirror.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,5 @@ permissions:
jobs:
mirror:
uses: hyperpolymath/standards/.github/workflows/mirror-reusable.yml@e6b2884722350515934d443daf23442f2195796f
timeout-minutes: 10
secrets: inherit
2 changes: 2 additions & 0 deletions .github/workflows/pages.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ concurrency:
jobs:
build:
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v4
Expand Down Expand Up @@ -56,6 +57,7 @@ jobs:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
timeout-minutes: 15
needs: build
steps:
- name: Deploy to GitHub Pages
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ jobs:
build:
name: Build (${{ matrix.os }}-${{ matrix.arch }})
runs-on: ${{ matrix.runner }}
timeout-minutes: 15
strategy:
fail-fast: false
matrix:
Expand Down Expand Up @@ -118,6 +119,7 @@ jobs:
name: Create Release
needs: build
runs-on: ubuntu-latest
timeout-minutes: 15
permissions:
contents: write
steps:
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/sbom.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ jobs:
sbom:
name: Generate Software Bill of Materials
runs-on: ubuntu-latest
timeout-minutes: 15

steps:
- name: Checkout code
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/scorecard-enforcer.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ permissions: read-all
jobs:
scorecard:
runs-on: ubuntu-latest
timeout-minutes: 15
permissions:
security-events: write
id-token: write # For OIDC
Expand Down Expand Up @@ -60,6 +61,7 @@ jobs:
# Check specific high-priority items
check-critical:
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v4

Expand Down
1 change: 1 addition & 0 deletions .github/workflows/scorecard.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,5 @@ jobs:
security-events: write
id-token: write
uses: hyperpolymath/standards/.github/workflows/scorecard-reusable.yml@e0caf11508a3989574713c78f5f444f2ce5e33ef
timeout-minutes: 10
secrets: inherit
1 change: 1 addition & 0 deletions .github/workflows/secret-scanner.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,5 @@ permissions:
jobs:
scan:
uses: hyperpolymath/standards/.github/workflows/secret-scanner-reusable.yml@3e4bd4c93911750727e2e4c66dff859e00079da0
timeout-minutes: 10
secrets: inherit
1 change: 1 addition & 0 deletions .github/workflows/workflow-linter.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ permissions: read-all
jobs:
lint-workflows:
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v4

Expand Down
51 changes: 51 additions & 0 deletions .machine_readable/6a2/AGENTIC.a2ml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# 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
# Defines what AI agents can and cannot do in this repository.

[metadata]
version = "0.1.0"
last-updated = "2026-04-11"

[agent-permissions]
can-edit-source = true
can-edit-tests = true
can-edit-docs = true
can-edit-config = true
can-create-files = true

[agent-constraints]
# What AI agents must NOT do:
# - Never use banned language patterns (believe_me, unsafeCoerce, etc.)
# - Never commit secrets or credentials
# - Never use banned languages (TypeScript, Python, Go, etc.)
# - Never place state files in repository root (must be in .machine_readable/)
# - Never use AGPL license (use MPL-2.0)

[maintenance-integrity]
fail-closed = true
require-evidence-per-step = true
allow-silent-skip = false
require-rerun-after-fix = true
release-claim-requires-hard-pass = true

# ============================================================================
# METHODOLOGY (ADR-002)
# ============================================================================
# Detailed methodology configuration lives in:
# .machine_readable/bot_directives/methodology.a2ml
# .machine_readable/bot_directives/coverage.a2ml
# .machine_readable/bot_directives/debt.a2ml
#
# AGENTIC.a2ml declares WHAT agents can do (permissions, gating).
# bot_directives/ declares HOW agents should work (methodology).

[methodology]
instructions-dir = ".machine_readable/bot_directives/"
default-mode = "hybrid"

[automation-hooks]
# on-enter: Read 0-AI-MANIFEST.a2ml, then STATE.a2ml, then bot_directives/
# on-exit: Update STATE.a2ml, coverage.a2ml, and debt.a2ml with session outcomes
# on-commit: Run just validate-rsr
29 changes: 29 additions & 0 deletions .machine_readable/6a2/ECOSYSTEM.a2ml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# SPDX-License-Identifier: MPL-2.0
# ECOSYSTEM.a2ml β€” Ecosystem position
# Converted from ECOSYSTEM.scm on 2026-04-14

[metadata]
project = "pseudoscript"
ecosystem = "hyperpolymath"

[position]
type = "programming-language"
purpose = "Pseudocode-syntax AffineScript. Write code that looks like pseudocode. Get affine resource guarantees and typed WASM out."

[pipeline]
position = "co-product"
chain = "katagoria β†’ typell β†’ typed-wasm β†’ PanLL"
notes = "PseudoScript compiles to typed WasmGC. TypeLL grounds its type system. typed-wasm provides the shared binary layout and ABI conventions."
coordination = "nextgen-typing"

[related-projects]
projects = [
{ name = "typell", relationship = "type-theory-foundation", notes = "TypeLL's open-ended progressive framework grounds PseudoScript's type system. typell-pseudoscript bridge crate." },
{ name = "typed-wasm", relationship = "aggregate-library", notes = "Shared binary layout conventions for WasmGC cross-language calls. PseudoScript Option[T]/Result[T,E]/String have agreed layouts here." },
{ name = "nextgen-typing", relationship = "coordination-parent", notes = "Coordination monorepo for the type theory pipeline. Canonical architecture doc." },
{ name = "affinescript", relationship = "foundation", notes = "PseudoScript is a syntactic face of AffineScript." },
{ name = "rattlescript", relationship = "sibling", notes = "Both are syntactic faces of AffineScript." },
{ name = "ephapax", relationship = "sibling-wasm-target", notes = "Both compile to typed WasmGC. Independent designs; converge at binary level via typed-wasm." },
{ name = "katagoria", relationship = "research-upstream", notes = "Type theory research origination. Future PseudoScript type system extensions may originate there." },
{ name = "panll", relationship = "consumer", notes = "PseudoScript is one of PanLL's development language targets." },
]
53 changes: 53 additions & 0 deletions .machine_readable/6a2/META.a2ml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
# SPDX-License-Identifier: MPL-2.0
# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk>
#
# META.a2ml β€” Project meta-level information
# Architecture decisions, design rationale, governance.

[metadata]
version = "0.1.0"
last-updated = "2026-04-11"

[project-info]
type = "library" # TODO: update type (library|binary|service|website|monorepo) # library | binary | monorepo | service | website
languages = [] # e.g. ["rust", "zig", "idris2"]
license = "MPL-2.0"
author = "Jonathan D.A. Jewell (hyperpolymath)"

[architecture-decisions]
# ADR format: status = proposed | accepted | deprecated | superseded | rejected
# - { id = "ADR-001", title = "Use Zig for FFI", status = "accepted", date = "2026-02-14" }

[development-practices]
build-tool = "just"
container-runtime = "podman"
ci-platform = "github-actions"
package-manager = "guix" # guix | nix | cargo | mix

[maintenance-axes]
scoping-first = true
execution-order = "axis-1 > axis-2 > axis-3"
axis-1 = "must > intend > like"
axis-2 = "corrective > adaptive > perfective"
axis-3 = "systems > compliance > effects"

[scoping]
sources = "README, roadmap, status docs, maintenance checklist, CI/security docs"
marker-scan = "TODO/FIXME/XXX/HACK/STUB/PARTIAL"
idris-unsound-scan = "believe_me/assert_total"

[axis-2-maintenance-rules]
corrective-first = true
adaptive-second = true
adaptive-focus = "scope-change reconciliation, stale-reference removal, obsolete-work culling"
perfective-third = true
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)"
effects-evidence = "benchmark execution/results and maintainer status dialogue/review"

[design-rationale]
# Key design decisions and their reasoning
Loading