Skip to content

Commit 819c14a

Browse files
Jonathan D.A. Jewellclaude
andcommitted
feat: fold cerro-torre, selur, svalinn, vordr into container-stack/
Replaces stub READMEs in container-stack/ with full source from standalone repos. All READMEs, ROADMAPs, and task files preserved in their subdirectories. - cerro-torre: image signing, Ed25519, .ctp bundles - selur: image sealing, zero-copy IPC bridge - svalinn: vulnerability scanning, policy enforcement - vordr: formally verified container runtime Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 7062cef commit 819c14a

1,016 files changed

Lines changed: 142339 additions & 48 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
## Machine-Readable Artefacts
2+
3+
The following files in `.machine_readable/` contain structured project metadata:
4+
5+
- `STATE.scm` - Current project state and progress
6+
- `META.scm` - Architecture decisions and development practices
7+
- `ECOSYSTEM.scm` - Position in the ecosystem and related projects
8+
- `AGENTIC.scm` - AI agent interaction patterns
9+
- `NEUROSYM.scm` - Neurosymbolic integration config
10+
- `PLAYBOOK.scm` - Operational runbook
11+
12+
---
13+
14+
# CLAUDE.md - AI Assistant Instructions
15+
16+
## Language Policy (Hyperpolymath Standard)
17+
18+
### ALLOWED Languages & Tools
19+
20+
| Language/Tool | Use Case | Notes |
21+
|---------------|----------|-------|
22+
| **ReScript** | Primary application code | Compiles to JS, type-safe |
23+
| **Deno** | Runtime & package management | Replaces Node/npm/bun |
24+
| **Rust** | Performance-critical, systems, WASM | Preferred for CLI tools |
25+
| **Tauri 2.0+** | Mobile apps (iOS/Android) | Rust backend + web UI |
26+
| **Dioxus** | Mobile apps (native UI) | Pure Rust, React-like |
27+
| **Gleam** | Backend services | Runs on BEAM or compiles to JS |
28+
| **Bash/POSIX Shell** | Scripts, automation | Keep minimal |
29+
| **JavaScript** | Only where ReScript cannot | MCP protocol glue, Deno APIs |
30+
| **Nickel** | Configuration language | For complex configs |
31+
| **Guile Scheme** | State/meta files | STATE.scm, META.scm, ECOSYSTEM.scm |
32+
| **Julia** | Batch scripts, data processing | Per RSR |
33+
| **OCaml** | AffineScript compiler | Language-specific |
34+
| **Ada** | Safety-critical systems | Where required |
35+
36+
### BANNED - Do Not Use
37+
38+
| Banned | Replacement |
39+
|--------|-------------|
40+
| TypeScript | ReScript |
41+
| Node.js | Deno |
42+
| npm | Deno |
43+
| Bun | Deno |
44+
| pnpm/yarn | Deno |
45+
| Go | Rust |
46+
| Python | Julia/Rust/ReScript |
47+
| Java/Kotlin | Rust/Tauri/Dioxus |
48+
| Swift | Tauri/Dioxus |
49+
| React Native | Tauri/Dioxus |
50+
| Flutter/Dart | Tauri/Dioxus |
51+
52+
### Mobile Development
53+
54+
**No exceptions for Kotlin/Swift** - use Rust-first approach:
55+
56+
1. **Tauri 2.0+** - Web UI (ReScript) + Rust backend, MIT/Apache-2.0
57+
2. **Dioxus** - Pure Rust native UI, MIT/Apache-2.0
58+
59+
Both are FOSS with independent governance (no Big Tech).
60+
61+
### Enforcement Rules
62+
63+
1. **No new TypeScript files** - Convert existing TS to ReScript
64+
2. **No package.json for runtime deps** - Use deno.json imports
65+
3. **No node_modules in production** - Deno caches deps automatically
66+
4. **No Go code** - Use Rust instead
67+
5. **No Python anywhere** - Use Julia for data/batch, Rust for systems, ReScript for apps
68+
6. **No Kotlin/Swift for mobile** - Use Tauri 2.0+ or Dioxus
69+
70+
### Package Management
71+
72+
- **Primary**: Guix (guix.scm)
73+
- **Fallback**: Nix (flake.nix)
74+
- **JS deps**: Deno (deno.json imports)
75+
76+
### Security Requirements
77+
78+
- No MD5/SHA1 for security (use SHA256+)
79+
- HTTPS only (no HTTP URLs)
80+
- No hardcoded secrets
81+
- SHA-pinned dependencies
82+
- SPDX license headers on all files
83+
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# SPDX-License-Identifier: MPL-2.0-or-later
2+
# Funding platforms for hyperpolymath projects
3+
# See: https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/displaying-a-sponsor-button-in-your-repository
4+
5+
github: hyperpolymath
6+
ko_fi: hyperpolymath
7+
liberapay: hyperpolymath
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
---
2+
name: Bug report
3+
about: Create a report to help us improve
4+
title: "[Bug]: "
5+
labels: 'bug, priority: unset, triage'
6+
assignees: ''
7+
8+
---
9+
10+
**Describe the bug**
11+
A clear and concise description of what the bug is.
12+
13+
**To Reproduce**
14+
Steps to reproduce the behavior:
15+
1. Go to '...'
16+
2. Click on '....'
17+
3. Scroll down to '....'
18+
4. See error
19+
20+
**Expected behavior**
21+
A clear and concise description of what you expected to happen.
22+
23+
**Screenshots**
24+
If applicable, add screenshots to help explain your problem.
25+
26+
**Desktop (please complete the following information):**
27+
- OS: [e.g. iOS]
28+
- Browser [e.g. chrome, safari]
29+
- Version [e.g. 22]
30+
31+
**Smartphone (please complete the following information):**
32+
- Device: [e.g. iPhone6]
33+
- OS: [e.g. iOS8.1]
34+
- Browser [e.g. stock browser, safari]
35+
- Version [e.g. 22]
36+
37+
**Additional context**
38+
Add any other context about the problem here.
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
---
2+
name: Custom issue template
3+
about: Describe this issue template's purpose here.
4+
title: ''
5+
labels: ''
6+
assignees: ''
7+
8+
---
9+
10+
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
---
2+
name: Documentation
3+
about: Report unclear, missing, or incorrect documentation
4+
title: "[DOCS]: "
5+
labels: 'documentation, priority: unset, triage'
6+
assignees: ''
7+
8+
---
9+
10+
name: Documentation
11+
description: Report unclear, missing, or incorrect documentation
12+
title: "[Docs]: "
13+
labels: ["documentation", "triage"]
14+
body:
15+
- type: markdown
16+
attributes:
17+
value: |
18+
Help us improve our documentation by reporting issues or gaps.
19+
20+
- type: dropdown
21+
id: type
22+
attributes:
23+
label: Documentation issue type
24+
options:
25+
- Missing (documentation doesn't exist)
26+
- Incorrect (information is wrong)
27+
- Unclear (confusing or hard to follow)
28+
- Outdated (no longer accurate)
29+
- Typo or grammar
30+
validations:
31+
required: true
32+
33+
- type: input
34+
id: location
35+
attributes:
36+
label: Location
37+
description: Where is this documentation? (URL, file path, or section name)
38+
placeholder: README.adoc, section "Installation"
39+
validations:
40+
required: true
41+
42+
- type: textarea
43+
id: description
44+
attributes:
45+
label: Description
46+
description: What's the problem with the current documentation?
47+
placeholder: Describe what's wrong or missing
48+
validations:
49+
required: true
50+
51+
- type: textarea
52+
id: suggestion
53+
attributes:
54+
label: Suggested improvement
55+
description: How should it be fixed or improved?
56+
placeholder: The documentation should say...
57+
validations:
58+
required: false
59+
60+
- type: checkboxes
61+
id: contribution
62+
attributes:
63+
label: Contribution
64+
options:
65+
- label: I would be willing to submit a PR to fix this
66+
required: false
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
---
2+
name: Feature request
3+
about: Suggest an idea for this project
4+
title: ''
5+
labels: 'enhancement, priority: unset, triage'
6+
assignees: ''
7+
8+
---
9+
10+
**Is your feature request related to a problem? Please describe.**
11+
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
12+
13+
**Describe the solution you'd like**
14+
A clear and concise description of what you want to happen.
15+
16+
**Describe alternatives you've considered**
17+
A clear and concise description of any alternative solutions or features you've considered.
18+
19+
**Additional context**
20+
Add any other context or screenshots about the feature request here.
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
---
2+
name: Question
3+
about: Ask a question about usage or behaviour
4+
title: "[QUESTION]: "
5+
labels: question, triage
6+
assignees: ''
7+
8+
---
9+
10+
name: Question
11+
description: Ask a question about usage or behaviour
12+
title: "[Question]: "
13+
labels: ["question", "triage"]
14+
body:
15+
- type: markdown
16+
attributes:
17+
value: |
18+
Have a question? You can also ask in [Discussions](../discussions) for broader conversations.
19+
20+
- type: textarea
21+
id: question
22+
attributes:
23+
label: Your question
24+
description: What would you like to know?
25+
placeholder: How do I...?
26+
validations:
27+
required: true
28+
29+
- type: textarea
30+
id: context
31+
attributes:
32+
label: Context
33+
description: Any relevant context that helps us answer your question
34+
placeholder: I'm trying to achieve X and I've tried Y...
35+
validations:
36+
required: false
37+
38+
- type: textarea
39+
id: research
40+
attributes:
41+
label: What I've already tried
42+
description: What have you already looked at or attempted?
43+
placeholder: I've read the README and searched issues but...
44+
validations:
45+
required: false
46+
47+
- type: checkboxes
48+
id: checked
49+
attributes:
50+
label: Pre-submission checklist
51+
options:
52+
- label: I have searched existing issues and discussions
53+
required: true
54+
- label: I have read the documentation
55+
required: true
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# SPDX-License-Identifier: MPL-2.0-or-later
2+
version: 2
3+
updates:
4+
- package-ecosystem: "github-actions"
5+
directory: "/"
6+
schedule:
7+
interval: "weekly"
8+
groups:
9+
actions:
10+
patterns:
11+
- "*"
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
# SPDX-License-Identifier: MPL-2.0-or-later
2+
name: Ada/SPARK Build
3+
4+
on:
5+
push:
6+
branches: [main]
7+
pull_request:
8+
branches: [main]
9+
10+
permissions: read-all
11+
12+
jobs:
13+
gnat-build:
14+
name: Build with GNAT
15+
runs-on: ubuntu-latest
16+
steps:
17+
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
18+
19+
- name: Install GNAT
20+
run: |
21+
sudo apt-get update
22+
sudo apt-get install -y gnat gprbuild
23+
24+
- name: Build cerro-torre
25+
run: |
26+
cd src
27+
gprbuild -P cerro_torre.gpr -j0
28+
29+
- name: Run unit tests
30+
run: |
31+
cd src
32+
gprbuild -P cerro_torre_test.gpr -j0
33+
./obj/test_runner
34+
35+
- name: Upload binary
36+
uses: actions/upload-artifact@v4
37+
with:
38+
name: cerro-torre-cli
39+
path: src/obj/ct
40+
41+
spark-proofs:
42+
name: SPARK Formal Verification
43+
runs-on: ubuntu-latest
44+
steps:
45+
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
46+
47+
- name: Install GNAT and SPARK
48+
run: |
49+
sudo apt-get update
50+
sudo apt-get install -y gnat gprbuild gnatprove
51+
52+
- name: Run SPARK proofs
53+
run: |
54+
cd src
55+
gnatprove -P cerro_torre.gpr --level=2 --report=all
56+
57+
- name: Check proof results
58+
run: |
59+
cd src
60+
# Exit with error if any proofs failed
61+
if grep -q "unproved" gnatprove/gnatprove.out 2>/dev/null; then
62+
echo "ERROR: Some SPARK proofs failed"
63+
exit 1
64+
fi
65+
66+
static-analysis:
67+
name: Static Analysis
68+
runs-on: ubuntu-latest
69+
steps:
70+
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
71+
72+
- name: Install GNAT
73+
run: |
74+
sudo apt-get update
75+
sudo apt-get install -y gnat gprbuild
76+
77+
- name: Run gnatcheck
78+
run: |
79+
cd src
80+
gnatcheck -P cerro_torre.gpr -rules -from=gnatcheck.rules

0 commit comments

Comments
 (0)