You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
rationale = "AffineScript is a programming language with affine types targeting Typed WASM. Primary clade is 'language'; secondary clades capture the compiler pipeline and type-system research aspects."
18
+
19
+
[forges]
20
+
github = "hyperpolymath/nextgen-languages"
21
+
# affinescript lives in the nextgen-languages monorepo submodule
22
+
# it is NOT a standalone GitHub repo
23
+
24
+
[lineage]
25
+
type = "submodule"
26
+
parent = "nextgen-languages — the hyperpolymath language monorepo"
27
+
born = "2025-09-12"
28
+
note = "Predates ANCHOR.a2ml convention. Retroactively assigned clade 2026-04-12 during suite upgrade."
one-sentence = "AffineScript is JavaScript-ergonomic correctness: the developer experience of the -script family raised to a higher correctness floor through affine types, compiling to Typed WASM."
// Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk>
3
+
= AffineScript Agent Instructions
4
+
:toc: preamble
5
+
6
+
Methodology-aware configuration for AI agents working in this repository.
7
+
Read at session start by any AI agent (Claude, Gemini, Copilot, etc.).
8
+
9
+
== Critical: read before touching code
10
+
11
+
1. **ANCHOR.a2ml is authoritative for scope.** The thesis is fixed. New features require a new ADR, not a code change. Bot scope creep has been a recurring problem (see manhattan-recovery 2026-04-10).
12
+
2. **No `.ml` edits without reading ANCHOR.a2ml + META.a2ml first.** The type system has interdependencies that are not obvious from reading individual files.
13
+
3. **dune build must pass** before and after every change. Run it.
14
+
4. **Thesis is the authority; code must conform.** If code contradicts thesis, code is wrong.
15
+
16
+
== Files
17
+
18
+
[cols="1,3"]
19
+
|===
20
+
| File | Purpose
21
+
22
+
| `methodology.a2ml`
23
+
| Default mode, ring ceiling, priority weights, wave cap
24
+
25
+
| `coverage.a2ml`
26
+
| Session coverage tracking — what was visited, what was skipped
27
+
28
+
| `debt.a2ml`
29
+
| Meander debt — things found but not fixed, carried between sessions
30
+
|===
31
+
32
+
== Open bugs (from ANCHOR.a2ml)
33
+
34
+
BUG-001 through BUG-004 are tracked in STATE.a2ml. Check before starting any type-system work — one of these may already cover the issue you found.
35
+
36
+
== Faces architecture
37
+
38
+
AffineScript supports multiple surface-syntax dialects (canonical, python-face, js-face, pseudocode-face). New faces follow the pattern in `lib/face.ml`. Do NOT add face-specific logic directly to the parser or type checker.
0 commit comments