|
1 | 1 | ;; SPDX-License-Identifier: MPL-2.0 |
2 | | -;; META.scm - Meta-level information for rsr-template-repo |
3 | | -;; Media-Type: application/meta+scheme |
| 2 | +;; META.a2ml - Meta-level information for VeriSimDB |
| 3 | +;; Media-Type: application/vnd.meta+a2ml |
4 | 4 |
|
5 | 5 | (meta |
6 | | - (architecture-decisions ()) |
| 6 | + (architecture-decisions |
| 7 | + (("AD-001" |
| 8 | + (decision "Marr's three levels of analysis as the design lens") |
| 9 | + (rationale "Computational / algorithmic / implementational separation keeps the octad invariant clean") |
| 10 | + (source ".claude/CLAUDE.md section 'Design Philosophy'"))) |
| 11 | + (("AD-002" |
| 12 | + (decision "Rust core + Elixir orchestration split") |
| 13 | + (rationale "Rust for performance-critical modality stores; Elixir/OTP for distributed coordination + fault tolerance") |
| 14 | + (source "README.adoc + .claude/CLAUDE.md 'Architecture'"))) |
| 15 | + (("AD-003" |
| 16 | + (decision "Pluggable storage backend (verisim-storage) with redb as pure-Rust default") |
| 17 | + (rationale "Eliminate oxrocksdb-sys C++ dependency; Oxigraph feature-flagged") |
| 18 | + (source "rust-core/verisim-storage + rust-core/verisim-graph"))) |
| 19 | + (("AD-004" |
| 20 | + (decision "PLONK as ZKP scheme for VCL-DT PROOF clause") |
| 21 | + (rationale "Universal trusted setup + small proofs + recursion + circuit flexibility (see Trustfile table)") |
| 22 | + (source "contractiles/trust/Trustfile"))) |
| 23 | + (("AD-005" |
| 24 | + (decision "Git-backed flat-file store for GitHub CI integration (verisimdb-data repo)") |
| 25 | + (rationale "No persistent server needed for ~290-repo scanning workflow; verisim-api server runs locally as needed") |
| 26 | + (source ".claude/CLAUDE.md 'GitHub CI Integration'"))) |
| 27 | + (("AD-006" |
| 28 | + (decision "MPL-2.0 across the workspace (no AGPL)") |
| 29 | + (rationale "Sole-owner repo per estate license-policy umbrella") |
| 30 | + (source "LICENSE + Cargo.toml + PR #101 (closes issue #82)"))) |
| 31 | + (("AD-007" |
| 32 | + (decision "Tantivy 0.26 with order_by_score() for TopDocs") |
| 33 | + (rationale "Tantivy 0.26 collector API change; lz4_flex + lru CVE resolution via transitive bump") |
| 34 | + (source "PR #76 + reference_tantivy_0_26_collector_api memory")))) |
7 | 35 |
|
8 | 36 | (development-practices |
9 | | - (code-style ()) |
| 37 | + (code-style |
| 38 | + ("rustfmt + clippy --all-targets --all-features" |
| 39 | + "Elixir mix format" |
| 40 | + "AsciiDoc for prose docs" |
| 41 | + "a2ml for machine-readable artefacts")) |
10 | 42 | (security |
11 | | - (principle "Defense in depth")) |
12 | | - (testing ()) |
| 43 | + (principle "Defense in depth") |
| 44 | + (practices |
| 45 | + ("cargo deny check (advisories + bans + licenses + sources)" |
| 46 | + "cargo audit (RUSTSEC)" |
| 47 | + "cargo-llvm-cov coverage gate (>= 60%)" |
| 48 | + "fuzz targets (Rust + cargo-fuzz)" |
| 49 | + "OpenSSF Scorecard enforcement" |
| 50 | + "SHA-pinned actions" |
| 51 | + "Stapeln container signing + .ctp bundle attestations"))) |
| 52 | + (testing |
| 53 | + ("Rust: cargo test + integration tests under rust-core/*/tests/" |
| 54 | + "Elixir: mix test (incl. --include integration for 105 federation-adapter tests via selur-compose stack)" |
| 55 | + "Coq: formal proofs in formal/*.v with Print Assumptions guard")) |
13 | 56 | (versioning "SemVer") |
14 | | - (documentation "AsciiDoc") |
15 | | - (branching "main for stable")) |
| 57 | + (documentation "AsciiDoc (README.adoc, EXPLAINME.adoc, contractiles/README.adoc); a2ml for state/meta/ecosystem/agentic/neurosym/playbook") |
| 58 | + (branching "main for stable; feature branches off main; squash-merge into main")) |
16 | 59 |
|
17 | | - (design-rationale ())) |
| 60 | + (design-rationale |
| 61 | + (("rationale-octad" |
| 62 | + (claim "Eight modalities is not arbitrary") |
| 63 | + (reasoning "Each modality captures a distinct entity-level semantic: structure (Graph), similarity (Vector), high-dimensional shape (Tensor), type-system intent (Semantic), text content (Document), time (Temporal), origin (Provenance), location (Spatial). Together they span the practical entity-representation space without redundancy."))) |
| 64 | + (("rationale-drift-vs-eventual-consistency" |
| 65 | + (claim "Drift detection > eventual consistency for cross-modal data") |
| 66 | + (reasoning "Eventual consistency cures structural divergence; it does not cure semantic divergence (vector that no longer matches text; provenance hash whose chain is broken). Drift detection + self-normalisation operates at the semantic layer."))) |
| 67 | + (("rationale-formal-proofs" |
| 68 | + (claim "Coq proofs for the consistency obligations") |
| 69 | + (reasoning "Foundation-pack (P2/P3/D1/C2/C7/N2/V2/Q1) covers the invariants that would be expensive to debug empirically: hash-chain integrity, normaliser fixed-points, WAL idempotency, planner semantic equivalence."))) |
| 70 | + (("rationale-flat-file-ci" |
| 71 | + (claim "Git-backed flat-file store instead of persistent server in GitHub CI") |
| 72 | + (reasoning "Persistent server scoped to ~290 repos × per-PR scans would dominate CI cost. Flat-file store keeps the data path read-only-from-git and write-via-repository_dispatch; verisim-api server is opt-in for local dev or future Fly.io deployment."))))) |
0 commit comments