|
4 | 4 | # META.a2ml — Project meta-level information |
5 | 5 | # Architecture decisions, design rationale, governance. |
6 | 6 |
|
7 | | -[metadata] |
| 7 | +# ── Project Identity ─────────────────────────────────────────────────────── |
| 8 | +[project-meta] |
8 | 9 | version = "1.0.0" |
9 | | -last-updated = "2026-03-24" |
10 | | - |
11 | | -[project-info] |
12 | | -type = "language" # library | binary | monorepo | service | website | language |
| 10 | +name = "007-lang" |
| 11 | +type = "language" |
13 | 12 | languages = ["rust"] |
14 | 13 | license = "PMPL-1.0-or-later" |
15 | 14 | author = "Jonathan D.A. Jewell (hyperpolymath)" |
16 | 15 |
|
17 | | -[architecture-decisions] |
18 | | -adrs = [ |
19 | | - { id = "ADR-001", title = "Harvard architecture — data and control are separate grammars", status = "accepted", date = "2026-03-20" }, |
20 | | - { id = "ADR-002", title = "Hermeneutic branching — branch is the only nondeterminism", status = "accepted", date = "2026-03-20" }, |
21 | | - { id = "ADR-003", title = "Rust compiler — correctness and safety", status = "accepted", date = "2026-03-20" }, |
22 | | - { id = "ADR-004", title = "BEAM primary target — actor model native support", status = "accepted", date = "2026-03-20" }, |
23 | | - { id = "ADR-005", title = "Dual-use label — anti-scrape measure for private repo", status = "accepted", date = "2026-03-20" }, |
24 | | -] |
| 16 | +# ── Architecture Decisions ───────────────────────────────────────────────── |
| 17 | +[project-meta.architecture-decisions] |
| 18 | + |
| 19 | +[project-meta.architecture-decisions.adr-001] |
| 20 | +status = "accepted" |
| 21 | +date = "2026-03-20" |
| 22 | +context = "Agent injection is the primary vulnerability in multi-agent systems." |
| 23 | +decision = "Harvard architecture — data and control are separate grammars." |
| 24 | +consequences = "Agent injection is a parse error, not a runtime check. Structurally impossible to inject control into data." |
| 25 | + |
| 26 | +[project-meta.architecture-decisions.adr-002] |
| 27 | +status = "accepted" |
| 28 | +date = "2026-03-20" |
| 29 | +context = "Agent behaviour must be auditable and reproducible." |
| 30 | +decision = "Hermeneutic branching — branch is the only nondeterminism." |
| 31 | +consequences = "Every branch decision generates a trace record explaining why. Behaviour is auditable and reproducible." |
| 32 | + |
| 33 | +[project-meta.architecture-decisions.adr-003] |
| 34 | +status = "accepted" |
| 35 | +date = "2026-03-20" |
| 36 | +context = "Correctness and memory safety are non-negotiable for a meta-language." |
| 37 | +decision = "Rust compiler — correctness and safety." |
| 38 | +consequences = "No GC pauses, ownership model enforced at compile time, SPARK integration path via Idris2-ABI + Zig-FFI." |
25 | 39 |
|
26 | | -[development-practices] |
| 40 | +[project-meta.architecture-decisions.adr-004] |
| 41 | +status = "accepted" |
| 42 | +date = "2026-03-20" |
| 43 | +context = "Need a robust concurrent runtime for lightweight agents." |
| 44 | +decision = "BEAM primary target via Elixir/OTP codegen." |
| 45 | +consequences = "Native support for actor model, isolation, and fault tolerance." |
| 46 | + |
| 47 | +[project-meta.architecture-decisions.adr-005] |
| 48 | +status = "accepted" |
| 49 | +date = "2026-03-20" |
| 50 | +context = "007 is a private repo; naming must not be a scraping surface." |
| 51 | +decision = "Dual-use label — anti-scrape measure for private repo." |
| 52 | +consequences = "The name '007' is intentionally ambiguous; the codebase is not discoverable by naive scanning." |
| 53 | + |
| 54 | +[project-meta.architecture-decisions.adr-006] |
| 55 | +status = "accepted" |
| 56 | +date = "2026-04-13" |
| 57 | +context = "Verification needs a stable binary target." |
| 58 | +decision = "Adopt typed-wasm as the only verified codegen target." |
| 59 | +consequences = "007 IR is lifted onto typed-wasm surface sugar for formal verification." |
| 60 | + |
| 61 | +# ── Development Practices ────────────────────────────────────────────────── |
| 62 | +[project-meta.development-practices] |
27 | 63 | build-tool = "just" |
28 | 64 | container-runtime = "podman" |
29 | 65 | ci-platform = "github-actions" |
30 | 66 | package-manager = "cargo" |
31 | 67 | development-model = "claude-only" |
| 68 | +code-style = "rust-stable" |
| 69 | +security = "harvard-separation" |
| 70 | +testing = "canonical-proof-suite" |
| 71 | +versioning = "semver" |
| 72 | +documentation = "asciidoc" |
| 73 | +branching = "trunk-based" |
32 | 74 |
|
33 | | -[maintenance-axes] |
| 75 | +# ── Maintenance Axes ─────────────────────────────────────────────────────── |
| 76 | +[project-meta.maintenance-axes] |
34 | 77 | scoping-first = true |
35 | 78 | execution-order = "axis-1 > axis-2 > axis-3" |
36 | 79 | axis-1 = "must > intend > like" |
37 | 80 | axis-2 = "corrective > adaptive > perfective" |
38 | 81 | axis-3 = "systems > compliance > effects" |
39 | 82 |
|
40 | | -[scoping] |
41 | | -sources = "README, spec/, docs/, STATE.a2ml" |
42 | | -marker-scan = "TODO/FIXME/XXX/HACK/STUB/PARTIAL" |
43 | | -idris-unsound-scan = "N/A — Rust project" |
44 | | - |
45 | | -[axis-2-maintenance-rules] |
| 83 | +[project-meta.axis-2-maintenance-rules] |
46 | 84 | corrective-first = true |
47 | 85 | adaptive-second = true |
48 | 86 | adaptive-focus = "spec-implementation alignment, parser-EBNF sync, stale test removal" |
49 | 87 | perfective-third = true |
50 | 88 | perfective-source = "axis-1 honest state after corrective/adaptive updates" |
51 | 89 |
|
52 | | -[axis-3-audit-rules] |
| 90 | +[project-meta.axis-3-audit-rules] |
53 | 91 | audit-focus = "Harvard separation holds, no agent injection paths, session type soundness" |
54 | 92 | compliance-focus = "EBNF coverage, test coverage per language feature, dual-use notice present" |
55 | 93 | drift-risk-example = "runtime check replacing parse-time rejection (violates Harvard architecture)" |
56 | 94 | effects-evidence = "test suite results, parser coverage metrics" |
57 | 95 |
|
58 | | -[design-rationale] |
| 96 | +# ── Design Rationale ────────────────────────────────────────────────────── |
| 97 | +[project-meta.design-rationale] |
59 | 98 | harvard-architecture = "Agent injection is a parse error, not a runtime check. Data and control flow through separate grammars, preventing prompt-injection-like attacks at the language level." |
60 | 99 | hermeneutic-branching = "Every branch decision generates a trace record explaining why. This makes agent behaviour auditable and reproducible." |
61 | 100 | six-pillars = "Harvard architecture, actors, capabilities, session types, linear handles, choreographies — each pillar addresses a specific failure mode in existing agent frameworks." |
0 commit comments