|
1 | | -;; SPDX-License-Identifier: PMPL-1.0-or-later |
2 | | -;; META.scm - Architectural decisions and project meta-information |
3 | | -;; Media-Type: application/meta+scheme |
| 1 | +# SPDX-License-Identifier: PMPL-1.0-or-later |
| 2 | +# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk> |
| 3 | +# |
| 4 | +# META.a2ml — Tangle meta-level information |
| 5 | +[metadata] |
| 6 | +version = "1.0.0" |
| 7 | +last-updated = "2026-04-11" |
4 | 8 |
|
5 | | -(define-meta tangle |
6 | | - (version "1.0.0") |
| 9 | +[project-info] |
| 10 | +license = "PMPL-1.0-or-later" |
| 11 | +author = "Jonathan D.A. Jewell (hyperpolymath)" |
7 | 12 |
|
8 | | - (architecture-decisions |
9 | | - ((adr-001 accepted "2026-02-12" |
10 | | - "Need to establish core type system for topological computation" |
11 | | - "Two-level type system: Word[n] (matchable braid data) and Tangle[A,B] (morphisms)" |
12 | | - "Enables pattern matching on braid structure while preserving isotopy equivalence. " |
13 | | - "Implicit coercion from Word to Tangle via realize function.") |
14 | | - (adr-002 accepted "2026-02-12" |
15 | | - "Need to achieve Turing completeness in a topological language" |
16 | | - "Recursion on definitions + pattern matching on braid words (identity=nil, g.w=cons)" |
17 | | - "Words serve as inductively defined data, enabling unbounded computation. " |
18 | | - "Braid words are isomorphic to cons-lists over generators.") |
19 | | - (adr-003 accepted "2026-02-12" |
20 | | - "Need arithmetic and imperative control alongside topology" |
21 | | - "Julia-the-Viper injection blocks: add{} (total data) and harvard{} (imperative)" |
22 | | - "Delimited syntax avoids ambiguity (+ means union in TANGLE, addition in add{}). " |
23 | | - "Three environments: Gamma (TANGLE), Delta (Harvard full), Pi (pure subset).") |
24 | | - (adr-004 accepted "2026-02-12" |
25 | | - "Need to handle two kinds of equality" |
26 | | - "== for structural equality on words, ~ for isotopy equivalence on tangles" |
27 | | - "~ has fixed mathematical meaning (equality in free ribbon category FR(T)). " |
28 | | - "Cannot be redefined or approximated without soundness loss.") |
29 | | - (adr-005 accepted "2026-02-12" |
30 | | - "Need a concrete strategy for simplification and invariant computation" |
31 | | - "Three-tier architecture: Tier 1 primitives, Tier 2 invariants (pluggable), Tier 3 stdlib" |
32 | | - "Simplify uses greedy Reidemeister reduction. Invariants are backend-pluggable. " |
33 | | - "Standard library written in pure TANGLE.")) |
| 13 | +[architecture-decisions] |
| 14 | +decisions = [ |
| 15 | + # No ADRs recorded |
| 16 | +] |
34 | 17 |
|
35 | | - (development-practices |
36 | | - (code-style |
37 | | - "Implementation in Rust (parser, type checker, evaluator). " |
38 | | - "ABI definitions in Idris2 with Zig FFI bridge. " |
39 | | - "Grammars in ISO/IEC 14977 EBNF.") |
40 | | - (security |
41 | | - "All commits signed. " |
42 | | - "Hypatia neurosymbolic scanning enabled. " |
43 | | - "panic-attack vulnerability scanning.") |
44 | | - (testing |
45 | | - "Comprehensive test suite alongside implementation. " |
46 | | - "Every typing rule and evaluation rule has corresponding test cases.") |
47 | | - (versioning |
48 | | - "Semantic versioning. " |
49 | | - "Specification version tracked separately from implementation.") |
50 | | - (documentation |
51 | | - "README.adoc for overview. " |
52 | | - "docs/spec/ for formal specification. " |
53 | | - "SONNET-TASKS.md for implementation plan.") |
54 | | - (branching |
55 | | - "Main branch protected. " |
56 | | - "Feature branches for implementation work.")) |
| 18 | +[development-practices] |
| 19 | +versioning = "SemVer" |
| 20 | +documentation = "AsciiDoc" |
| 21 | +build-tool = "just" |
57 | 22 |
|
58 | | - (design-rationale |
59 | | - (why-topological |
60 | | - "Topological programming offers novel reasoning about program equivalence. " |
61 | | - "Knot invariants provide sound approximations to program equality. " |
62 | | - "The mathematical foundation (ribbon categories) is well-studied.") |
63 | | - (why-two-types |
64 | | - "Words are intensional (matchable), tangles are extensional (isotopy). " |
65 | | - "Conflating them breaks either pattern matching or equivalence reasoning.") |
66 | | - (why-jtv |
67 | | - "Pure topology lacks convenient data manipulation. " |
68 | | - "Delimited injection blocks preserve TANGLE's topological purity while " |
69 | | - "enabling arithmetic and imperative logic where needed."))) |
| 23 | +[maintenance-axes] |
| 24 | +scoping-first = true |
| 25 | +axis-1 = "must > intend > like" |
| 26 | +axis-2 = "corrective > adaptive > perfective" |
| 27 | +axis-3 = "systems > compliance > effects" |
0 commit comments