Skip to content

Commit e8592c0

Browse files
committed
Apply estate standardization: governance docs, contractiles, CI/CD cleanup
1 parent 8165ba1 commit e8592c0

51 files changed

Lines changed: 781 additions & 301 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.claude/CLAUDE.md

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
<!--
2+
SPDX-License-Identifier: MPL-2.0
3+
Copyright (c) Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>
4+
-->
15
## Machine-Readable Artefacts
26

37
The following files in `.machine_readable/` contain structured project metadata:
@@ -19,14 +23,14 @@ The following files in `.machine_readable/` contain structured project metadata:
1923

2024
| Language/Tool | Use Case | Notes |
2125
|---------------|----------|-------|
22-
| **ReScript** | Primary application code | Compiles to JS, type-safe |
26+
| **AffineScript** | Primary application code | Compiles to JS, type-safe |
2327
| **Deno** | Runtime & package management | Replaces Node/npm/bun |
2428
| **Rust** | Performance-critical, systems, WASM | Preferred for CLI tools |
2529
| **Tauri 2.0+** | Mobile apps (iOS/Android) | Rust backend + web UI |
2630
| **Dioxus** | Mobile apps (native UI) | Pure Rust, React-like |
2731
| **Gleam** | Backend services | Runs on BEAM or compiles to JS |
2832
| **Bash/POSIX Shell** | Scripts, automation | Keep minimal |
29-
| **JavaScript** | Only where ReScript cannot | MCP protocol glue, Deno APIs |
33+
| **JavaScript** | Only where AffineScript cannot | MCP protocol glue, Deno APIs |
3034
| **Python** | SaltStack only | No other Python permitted |
3135
| **Nickel** | Configuration language | For complex configs |
3236
| **Guile Scheme** | State/meta files | STATE.scm, META.scm, ECOSYSTEM.scm |
@@ -38,13 +42,13 @@ The following files in `.machine_readable/` contain structured project metadata:
3842

3943
| Banned | Replacement |
4044
|--------|-------------|
41-
| TypeScript | ReScript |
45+
| TypeScript | AffineScript |
4246
| Node.js | Deno |
4347
| npm | Deno |
4448
| Bun | Deno |
4549
| pnpm/yarn | Deno |
4650
| Go | Rust |
47-
| Python (general) | ReScript/Rust |
51+
| Python (general) | AffineScript/Rust |
4852
| Java/Kotlin | Rust/Tauri/Dioxus |
4953
| Swift | Tauri/Dioxus |
5054
| React Native | Tauri/Dioxus |
@@ -54,15 +58,15 @@ The following files in `.machine_readable/` contain structured project metadata:
5458

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

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

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

6266
### Enforcement Rules
6367

64-
1. **No new TypeScript files** - Convert existing TS to ReScript
65-
2. **No package.json for runtime deps** - Use deno.json imports
68+
1. **No new TypeScript files** - Convert existing TS to AffineScript
69+
2. **No package.json - use deno.json deps** - Use deno.json imports
6670
3. **No node_modules in production** - Deno caches deps automatically
6771
4. **No Go code** - Use Rust instead
6872
5. **Python only for SaltStack** - All other Python must be rewritten

.github/CODEOWNERS

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# SPDX-License-Identifier: MPL-2.0
2+
# CODEOWNERS - Define code review assignments for GitHub
3+
# See: https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners
4+
5+
# Default: sole maintainer for all files
6+
* @hyperpolymath
7+
8+
# Security-sensitive files require explicit ownership
9+
SECURITY.md @hyperpolymath
10+
.github/workflows/ @hyperpolymath
11+
.machine_readable/ @hyperpolymath
12+
contractiles/ @hyperpolymath
13+
14+
# License files
15+
LICENSE @hyperpolymath
16+
LICENSES/ @hyperpolymath
17+
18+
# Configuration
19+
.gitignore @hyperpolymath
20+
.github/ @hyperpolymath
21+
22+
# Documentation
23+
README* @hyperpolymath
24+
CONTRIBUTING* @hyperpolymath
25+
CODE_OF_CONDUCT* @hyperpolymath
26+
GOVERNANCE* @hyperpolymath
27+
MAINTAINERS* @hyperpolymath
28+
CHANGELOG* @hyperpolymath
29+
ROADMAP* @hyperpolymath
30+
31+
# Build and CI
32+
Justfile @hyperpolymath
33+
Makefile @hyperpolymath
34+
*.sh @hyperpolymath

.github/copilot/coding-agent.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
mcp_servers:
2+
boj-server:
3+
command: npx
4+
args: ["-y", "@hyperpolymath/boj-server@latest"]
5+
env:
6+
BOJ_URL: http://localhost:7700

.github/workflows/codeql.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ permissions:
2323
jobs:
2424
analyze:
2525
runs-on: ubuntu-latest
26+
timeout-minutes: 15
2627
permissions:
2728
contents: read
2829
security-events: write

.github/workflows/dogfood-gate.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ jobs:
2222
a2ml-validate:
2323
name: Validate A2ML manifests
2424
runs-on: ubuntu-latest
25+
timeout-minutes: 15
2526

2627
steps:
2728
- name: Checkout repository
@@ -66,6 +67,7 @@ jobs:
6667
k9-validate:
6768
name: Validate K9 contracts
6869
runs-on: ubuntu-latest
70+
timeout-minutes: 15
6971

7072
steps:
7173
- name: Checkout repository
@@ -115,6 +117,7 @@ jobs:
115117
empty-lint:
116118
name: Empty-linter (invisible characters)
117119
runs-on: ubuntu-latest
120+
timeout-minutes: 15
118121

119122
steps:
120123
- name: Checkout repository
@@ -179,6 +182,7 @@ jobs:
179182
groove-check:
180183
name: Groove manifest check
181184
runs-on: ubuntu-latest
185+
timeout-minutes: 15
182186

183187
steps:
184188
- name: Checkout repository
@@ -237,6 +241,7 @@ jobs:
237241
eclexiaiser-validate:
238242
name: Validate eclexiaiser manifest
239243
runs-on: ubuntu-latest
244+
timeout-minutes: 15
240245

241246
steps:
242247
- name: Checkout repository
@@ -300,6 +305,7 @@ print(f'Valid: {project[\"name\"]} ({len(functions)} function(s))')
300305
dogfood-summary:
301306
name: Dogfooding compliance summary
302307
runs-on: ubuntu-latest
308+
timeout-minutes: 15
303309
needs: [a2ml-validate, k9-validate, empty-lint, groove-check, eclexiaiser-validate]
304310
if: always()
305311

.github/workflows/governance.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,3 +32,4 @@ permissions:
3232
jobs:
3333
governance:
3434
uses: hyperpolymath/standards/.github/workflows/governance-reusable.yml@861b5e911d9e5dcfb3c0ab3dd2a9a3c8fd0a1613
35+
timeout-minutes: 10

.github/workflows/hypatia-scan.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ jobs:
4343
scan:
4444
name: Hypatia Neurosymbolic Analysis
4545
runs-on: ubuntu-latest
46+
timeout-minutes: 15
4647

4748
steps:
4849
- name: Checkout repository

.github/workflows/instant-sync.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ permissions:
1414
jobs:
1515
dispatch:
1616
runs-on: ubuntu-latest
17+
timeout-minutes: 15
1718
steps:
1819
- name: Trigger Propagation
1920
uses: peter-evans/repository-dispatch@28959ce8df70de7be546dd1250a005dd32156697 # v3

.github/workflows/mirror.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ permissions:
1313
jobs:
1414
mirror-gitlab:
1515
runs-on: ubuntu-latest
16+
timeout-minutes: 15
1617
if: vars.GITLAB_MIRROR_ENABLED == 'true'
1718
steps:
1819
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
@@ -31,6 +32,7 @@ jobs:
3132
3233
mirror-bitbucket:
3334
runs-on: ubuntu-latest
35+
timeout-minutes: 15
3436
if: vars.BITBUCKET_MIRROR_ENABLED == 'true'
3537
steps:
3638
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
@@ -49,6 +51,7 @@ jobs:
4951
5052
mirror-codeberg:
5153
runs-on: ubuntu-latest
54+
timeout-minutes: 15
5255
if: vars.CODEBERG_MIRROR_ENABLED == 'true'
5356
steps:
5457
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
@@ -67,6 +70,7 @@ jobs:
6770
6871
mirror-sourcehut:
6972
runs-on: ubuntu-latest
73+
timeout-minutes: 15
7074
if: vars.SOURCEHUT_MIRROR_ENABLED == 'true'
7175
steps:
7276
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
@@ -85,6 +89,7 @@ jobs:
8589
8690
mirror-disroot:
8791
runs-on: ubuntu-latest
92+
timeout-minutes: 15
8893
if: vars.DISROOT_MIRROR_ENABLED == 'true'
8994
steps:
9095
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
@@ -103,6 +108,7 @@ jobs:
103108
104109
mirror-gitea:
105110
runs-on: ubuntu-latest
111+
timeout-minutes: 15
106112
if: vars.GITEA_MIRROR_ENABLED == 'true'
107113
steps:
108114
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
@@ -121,6 +127,7 @@ jobs:
121127
122128
mirror-radicle:
123129
runs-on: ubuntu-latest
130+
timeout-minutes: 15
124131
if: vars.RADICLE_MIRROR_ENABLED == 'true'
125132
steps:
126133
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

.github/workflows/scorecard-enforcer.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ permissions:
2323
jobs:
2424
scorecard:
2525
runs-on: ubuntu-latest
26+
timeout-minutes: 15
2627
permissions:
2728
security-events: write
2829
id-token: write # For OIDC
@@ -61,6 +62,7 @@ jobs:
6162
# Check specific high-priority items
6263
check-critical:
6364
runs-on: ubuntu-latest
65+
timeout-minutes: 15
6466
steps:
6567
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
6668

0 commit comments

Comments
 (0)